| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -35,7 +35,7 @@ | |||
| 35 | 35 | from matplotlib.figure import Figure | |
| 36 | 36 | from matplotlib.font_manager import get_font, fontManager as _fontManager | |
| 37 | 37 | from matplotlib._afm import AFM | |
| 38 | - from matplotlib.ft2font import FIXED_WIDTH, ITALIC, FT2Font, Kerning, LoadFlags | ||
| 38 | + from matplotlib.ft2font import FT2Font, FaceFlags, Kerning, LoadFlags, StyleFlags | ||
| 39 | 39 | from matplotlib.transforms import Affine2D, BboxBase | |
| 40 | 40 | from matplotlib.path import Path | |
| 41 | 41 | from matplotlib.dates import UTC | |
@@ -1416,15 +1416,15 @@ def embedTTFType42(font, characters, descriptor): | |||
| 1416 | 1416 | ||
| 1417 | 1417 | flags = 0 | |
| 1418 | 1418 | symbolic = False # ps_name.name in ('Cmsy10', 'Cmmi10', 'Cmex10') | |
| 1419 | - if ff & FIXED_WIDTH: | ||
| 1419 | + if FaceFlags.FIXED_WIDTH in ff: | ||
| 1420 | 1420 | flags |= 1 << 0 | |
| 1421 | 1421 | if 0: # TODO: serif | |
| 1422 | 1422 | flags |= 1 << 1 | |
| 1423 | 1423 | if symbolic: | |
| 1424 | 1424 | flags |= 1 << 2 | |
| 1425 | 1425 | else: | |
| 1426 | 1426 | flags |= 1 << 5 | |
| 1427 | - if sf & ITALIC: | ||
| 1427 | + if StyleFlags.ITALIC in sf: | ||
| 1428 | 1428 | flags |= 1 << 6 | |
| 1429 | 1429 | if 0: # TODO: all caps | |
| 1430 | 1430 | flags |= 1 << 16 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -381,7 +381,7 @@ def ttfFontProperty(font): | |||
| 381 | 381 | style = 'italic' | |
| 382 | 382 | elif sfnt2.find('regular') >= 0: | |
| 383 | 383 | style = 'normal' | |
| 384 | - elif font.style_flags & ft2font.ITALIC: | ||
| 384 | + elif ft2font.StyleFlags.ITALIC in font.style_flags: | ||
| 385 | 385 | style = 'italic' | |
| 386 | 386 | else: | |
| 387 | 387 | style = 'normal' | |
@@ -430,7 +430,7 @@ def get_weight(): # From fontconfig's FcFreeTypeQueryFaceInternal. | |||
| 430 | 430 | for regex, weight in _weight_regexes: | |
| 431 | 431 | if re.search(regex, style, re.I): | |
| 432 | 432 | return weight | |
| 433 | - if font.style_flags & ft2font.BOLD: | ||
| 433 | + if ft2font.StyleFlags.BOLD in font.style_flags: | ||
| 434 | 434 | return 700 # "bold" | |
| 435 | 435 | return 500 # "medium", not "regular"! | |
| 436 | 436 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -8,19 +8,27 @@ from numpy.typing import NDArray | |||
| 8 | 8 | ||
| 9 | 9 | __freetype_build_type__: str | |
| 10 | 10 | __freetype_version__: str | |
| 11 | - BOLD: int | ||
| 12 | - EXTERNAL_STREAM: int | ||
| 13 | - FAST_GLYPHS: int | ||
| 14 | - FIXED_SIZES: int | ||
| 15 | - FIXED_WIDTH: int | ||
| 16 | - GLYPH_NAMES: int | ||
| 17 | - HORIZONTAL: int | ||
| 18 | - ITALIC: int | ||
| 19 | - KERNING: int | ||
| 20 | - MULTIPLE_MASTERS: int | ||
| 21 | - SCALABLE: int | ||
| 22 | - SFNT: int | ||
| 23 | - VERTICAL: int | ||
| 11 | + | ||
| 12 | + class FaceFlags(Enum): | ||
| 13 | + SCALABLE = ... | ||
| 14 | + FIXED_SIZES = ... | ||
| 15 | + FIXED_WIDTH = ... | ||
| 16 | + SFNT = ... | ||
| 17 | + HORIZONTAL = ... | ||
| 18 | + VERTICAL = ... | ||
| 19 | + KERNING = ... | ||
| 20 | + FAST_GLYPHS = ... | ||
| 21 | + MULTIPLE_MASTERS = ... | ||
| 22 | + GLYPH_NAMES = ... | ||
| 23 | + EXTERNAL_STREAM = ... | ||
| 24 | + HINTER = ... | ||
| 25 | + CID_KEYED = ... | ||
| 26 | + TRICKY = ... | ||
| 27 | + COLOR = ... | ||
| 28 | + # VARIATION = ... # FT 2.9 | ||
| 29 | + # SVG = ... # FT 2.12 | ||
| 30 | + # SBIX = ... # FT 2.12 | ||
| 31 | + # SBIX_OVERLAY = ... # FT 2.12 | ||
| 24 | 32 | ||
| 25 | 33 | class Kerning(Enum): | |
| 26 | 34 | DEFAULT = ... | |
@@ -54,6 +62,10 @@ class LoadFlags(Enum): | |||
| 54 | 62 | TARGET_LCD = ... | |
| 55 | 63 | TARGET_LCD_V = ... | |
| 56 | 64 | ||
| 65 | + class StyleFlags(Enum): | ||
| 66 | + ITALIC = ... | ||
| 67 | + BOLD = ... | ||
| 68 | + | ||
| 57 | 69 | class _SfntHeadDict(TypedDict): | |
| 58 | 70 | version: tuple[int, int] | |
| 59 | 71 | fontRevision: tuple[int, int] | |
@@ -232,7 +244,7 @@ class FT2Font(Buffer): | |||
| 232 | 244 | @property | |
| 233 | 245 | def descender(self) -> int: ... | |
| 234 | 246 | @property | |
| 235 | - def face_flags(self) -> int: ... | ||
| 247 | + def face_flags(self) -> FaceFlags: ... | ||
| 236 | 248 | @property | |
| 237 | 249 | def family_name(self) -> str: ... | |
| 238 | 250 | @property | |
@@ -256,7 +268,7 @@ class FT2Font(Buffer): | |||
| 256 | 268 | @property | |
| 257 | 269 | def scalable(self) -> bool: ... | |
| 258 | 270 | @property | |
| 259 | - def style_flags(self) -> int: ... | ||
| 271 | + def style_flags(self) -> StyleFlags: ... | ||
| 260 | 272 | @property | |
| 261 | 273 | def style_name(self) -> str: ... | |
| 262 | 274 | @property | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -44,10 +44,11 @@ def test_ft2font_dejavu_attrs(): | |||
| 44 | 44 | assert font.num_fixed_sizes == 0 # All glyphs are scalable. | |
| 45 | 45 | assert font.num_charmaps == 5 | |
| 46 | 46 | # Other internal flags are set, so only check the ones we're allowed to test. | |
| 47 | - expected_flags = (ft2font.SCALABLE | ft2font.SFNT | ft2font.HORIZONTAL | | ||
| 48 | - ft2font.KERNING | ft2font.GLYPH_NAMES) | ||
| 49 | - assert (font.face_flags & expected_flags) == expected_flags | ||
| 50 | - assert font.style_flags == 0 # Not italic or bold. | ||
| 47 | + expected_flags = (ft2font.FaceFlags.SCALABLE | ft2font.FaceFlags.SFNT | | ||
| 48 | + ft2font.FaceFlags.HORIZONTAL | ft2font.FaceFlags.KERNING | | ||
| 49 | + ft2font.FaceFlags.GLYPH_NAMES) | ||
| 50 | + assert expected_flags in font.face_flags | ||
| 51 | + assert font.style_flags == ft2font.StyleFlags.NORMAL | ||
| 51 | 52 | assert font.scalable | |
| 52 | 53 | # From FontForge: Font Information → General tab → entry name below. | |
| 53 | 54 | assert font.units_per_EM == 2048 # Em Size. | |
@@ -76,10 +77,10 @@ def test_ft2font_cm_attrs(): | |||
| 76 | 77 | assert font.num_fixed_sizes == 0 # All glyphs are scalable. | |
| 77 | 78 | assert font.num_charmaps == 2 | |
| 78 | 79 | # Other internal flags are set, so only check the ones we're allowed to test. | |
| 79 | - expected_flags = (ft2font.SCALABLE | ft2font.SFNT | ft2font.HORIZONTAL | | ||
| 80 | - ft2font.GLYPH_NAMES) | ||
| 81 | - assert (font.face_flags & expected_flags) == expected_flags, font.face_flags | ||
| 82 | - assert font.style_flags == 0 # Not italic or bold. | ||
| 80 | + expected_flags = (ft2font.FaceFlags.SCALABLE | ft2font.FaceFlags.SFNT | | ||
| 81 | + ft2font.FaceFlags.HORIZONTAL | ft2font.FaceFlags.GLYPH_NAMES) | ||
| 82 | + assert expected_flags in font.face_flags | ||
| 83 | + assert font.style_flags == ft2font.StyleFlags.NORMAL | ||
| 83 | 84 | assert font.scalable | |
| 84 | 85 | # From FontForge: Font Information → General tab → entry name below. | |
| 85 | 86 | assert font.units_per_EM == 2048 # Em Size. | |
@@ -108,10 +109,10 @@ def test_ft2font_stix_bold_attrs(): | |||
| 108 | 109 | assert font.num_fixed_sizes == 0 # All glyphs are scalable. | |
| 109 | 110 | assert font.num_charmaps == 3 | |
| 110 | 111 | # Other internal flags are set, so only check the ones we're allowed to test. | |
| 111 | - expected_flags = (ft2font.SCALABLE | ft2font.SFNT | ft2font.HORIZONTAL | | ||
| 112 | - ft2font.GLYPH_NAMES) | ||
| 113 | - assert (font.face_flags & expected_flags) == expected_flags, font.face_flags | ||
| 114 | - assert font.style_flags == ft2font.BOLD | ||
| 112 | + expected_flags = (ft2font.FaceFlags.SCALABLE | ft2font.FaceFlags.SFNT | | ||
| 113 | + ft2font.FaceFlags.HORIZONTAL | ft2font.FaceFlags.GLYPH_NAMES) | ||
| 114 | + assert expected_flags in font.face_flags | ||
| 115 | + assert font.style_flags == ft2font.StyleFlags.BOLD | ||
| 115 | 116 | assert font.scalable | |
| 116 | 117 | # From FontForge: Font Information → General tab → entry name below. | |
| 117 | 118 | assert font.units_per_EM == 1000 # Em Size. | |
| Back | FazBrowse Home | New Git URL |
0 commit comments