|
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