|
23 | 23 | # - setWeights function needs improvement
|
24 | 24 | # - 'light' is an invalid weight value, remove it.
|
25 | 25 |
|
| 26 | +import dataclasses |
26 | 27 | from functools import lru_cache
|
27 | 28 | import json
|
28 | 29 | import logging
|
@@ -342,35 +343,22 @@ def findSystemFonts(fontpaths=None, fontext='ttf'):
|
342 | 343 | return [fname for fname in fontfiles if os.path.exists(fname)]
|
343 | 344 |
|
344 | 345 |
|
345 |
| -class FontEntry: |
346 |
| - """ |
347 |
| - A class for storing Font properties. It is used when populating |
348 |
| - the font lookup dictionary. |
349 |
| - """ |
350 |
| - def __init__(self, |
351 |
| - fname ='', |
352 |
| - name ='', |
353 |
| - style ='normal', |
354 |
| - variant='normal', |
355 |
| - weight ='normal', |
356 |
| - stretch='normal', |
357 |
| - size ='medium', |
358 |
| - ): |
359 |
| - self.fname = fname |
360 |
| - self.name = name |
361 |
| - self.style = style |
362 |
| - self.variant = variant |
363 |
| - self.weight = weight |
364 |
| - self.stretch = stretch |
365 |
| - try: |
366 |
| - self.size = str(float(size)) |
367 |
| - except ValueError: |
368 |
| - self.size = size |
369 |
| - |
370 |
| - def __repr__(self): |
371 |
| - return "<Font '%s' (%s) %s %s %s %s>" % ( |
372 |
| - self.name, os.path.basename(self.fname), self.style, self.variant, |
373 |
| - self.weight, self.stretch) |
| 346 | +FontEntry = dataclasses.make_dataclass( |
| 347 | + 'FontEntry', [ |
| 348 | + ('fname', str, dataclasses.field(default='')), |
| 349 | + ('name', str, dataclasses.field(default='')), |
| 350 | + ('style', str, dataclasses.field(default='normal')), |
| 351 | + ('variant', str, dataclasses.field(default='normal')), |
| 352 | + ('weight', str, dataclasses.field(default='normal')), |
| 353 | + ('stretch', str, dataclasses.field(default='normal')), |
| 354 | + ('size', str, dataclasses.field(default='medium')), |
| 355 | + ], |
| 356 | + namespace={ |
| 357 | + '__doc__': """ |
| 358 | + A class for storing Font properties. |
| 359 | +
|
| 360 | + It is used when populating the font lookup dictionary. |
| 361 | + """}) |
374 | 362 |
|
375 | 363 |
|
376 | 364 | def ttfFontProperty(font):
|
|
0 commit comments