|
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 |
| 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. |
369 | 359 |
|
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) |
| 360 | + It is used when populating the font lookup dictionary. |
| 361 | + """}) |
374 | 362 |
|
375 | 363 |
|
376 | 364 | def ttfFontProperty(font): |
@@ -630,16 +618,10 @@ class FontProperties: |
630 | 618 | fontconfig. |
631 | 619 | """ |
632 | 620 |
|
633 | | - def __init__(self, |
634 | | - family = None, |
635 | | - style = None, |
636 | | - variant= None, |
637 | | - weight = None, |
638 | | - stretch= None, |
639 | | - size = None, |
640 | | - fname = None, # if set, it's a hardcoded filename to use |
641 | | - math_fontfamily = None, |
642 | | - ): |
| 621 | + def __init__(self, family=None, style=None, variant=None, weight=None, |
| 622 | + stretch=None, size=None, |
| 623 | + fname=None, # if set, it's a hardcoded filename to use |
| 624 | + math_fontfamily=None): |
643 | 625 | self._family = _normalize_font_family(rcParams['font.family']) |
644 | 626 | self._slant = rcParams['font.style'] |
645 | 627 | self._variant = rcParams['font.variant'] |
|
0 commit comments