[OpenFontFormat] Change name of OpenFont class to OpenFontFile
This commit is contained in:
parent
8fe052ed17
commit
6a33053dfc
@ -251,6 +251,7 @@ def parse_table_directory_entry(f: BinaryIO) -> TableDirectoryEntry:
|
||||
length = read_u32(f)
|
||||
return TableDirectoryEntry(tableTag, checkSum, offset, length)
|
||||
|
||||
# TODO: This should just be a dict[TableTag, TableDirectoryEntry]
|
||||
@dataclass
|
||||
class FontDirectoryByTable:
|
||||
cmap: Optional[TableDirectoryEntry] = None
|
||||
@ -5828,7 +5829,7 @@ class FontVariations:
|
||||
vertical_metrics_variations: Optional[VVARTable]
|
||||
|
||||
@dataclass
|
||||
class OpenFont:
|
||||
class OpenFontFile:
|
||||
# required tables
|
||||
character_to_glyph_mapping: CmapTable
|
||||
font_header: HeadTable
|
||||
@ -5839,8 +5840,9 @@ class OpenFont:
|
||||
OS2_and_Windows_specific_metrics: OS2Table
|
||||
PostScript_information: PostTable
|
||||
|
||||
# TFF/CFF
|
||||
# TFF/CFF, SVG
|
||||
outlines: TrueTypeOutlines | CompactFontOutlines
|
||||
scalar_vector_graphics: Optional[SvgTable]
|
||||
|
||||
# optional tables
|
||||
digital_signature: Optional[DSIGTable]
|
||||
@ -5873,7 +5875,7 @@ def parse_at_table_directory_entry_with_length(f: BinaryIO, table: Optional[Tabl
|
||||
def possibly_parse_at_table_directory_entry_with_length(f: BinaryIO, table: Optional[TableDirectoryEntry], parser: Callable[[BinaryIO, int], SomeTable]) -> Optional[SomeTable]:
|
||||
return parse_at_table_directory_entry_with_length(f, table, parser) if table else None
|
||||
|
||||
def parse_open_font(f: BinaryIO) -> OpenFont:
|
||||
def parse_open_font_file(f: BinaryIO) -> OpenFontFile:
|
||||
font_directory = parse_font_directory(f)
|
||||
|
||||
font_header = parse_at_table_directory_entry(f, font_directory.by_table.head, parse_head_table)
|
||||
@ -5886,7 +5888,6 @@ def parse_open_font(f: BinaryIO) -> OpenFont:
|
||||
PostScript_information = parse_at_table_directory_entry_with_length(f, font_directory.by_table.post, parse_post_table)
|
||||
|
||||
# optional
|
||||
|
||||
digital_signature = possibly_parse_at_table_directory_entry(f, font_directory.by_table.DSIG, parse_DSIG_table)
|
||||
horizontal_device_metrics = possibly_parse_at_table_directory_entry(f, font_directory.by_table.hdmx, lambda f: parse_hdmx_table(f, maximum_profile.numGlyphs))
|
||||
kerning = possibly_parse_at_table_directory_entry(f, font_directory.by_table.Kern, parse_Kern_table)
|
||||
@ -5919,7 +5920,6 @@ def parse_open_font(f: BinaryIO) -> OpenFont:
|
||||
|
||||
# SVG
|
||||
scalar_vector_graphics = possibly_parse_at_table_directory_entry(f, font_directory.by_table.svg, parse_svg_table)
|
||||
assert scalar_vector_graphics is None, "TODO: This"
|
||||
|
||||
# Advanced
|
||||
baseline_data = possibly_parse_at_table_directory_entry(f, font_directory.by_table.BASE, parse_BASE_table)
|
||||
@ -5953,8 +5953,8 @@ def parse_open_font(f: BinaryIO) -> OpenFont:
|
||||
|
||||
font_variations = FontVariations(axis_variations, CVT_variations, font_variations_, glyph_variations, horizontal_metrics_variations, metrics_variations, style_attributes, vertical_metrics_variations)
|
||||
|
||||
return OpenFont(character_to_glyph_mapping, font_header, horizontal_header, horizontal_metrics, maximum_profile, naming_table, OS2_and_Windows_specific_metrics, PostScript_information, outlines, digital_signature, horizontal_device_metrics, kerning, linear_threshold_data, PCL5_data, vertical_device_metrics, vertical_metrics_header, vertical_metrics, colour_table, colour_palette_table, advanced_features, font_variations)
|
||||
return OpenFontFile(character_to_glyph_mapping, font_header, horizontal_header, horizontal_metrics, maximum_profile, naming_table, OS2_and_Windows_specific_metrics, PostScript_information, outlines, scalar_vector_graphics, digital_signature, horizontal_device_metrics, kerning, linear_threshold_data, PCL5_data, vertical_device_metrics, vertical_metrics_header, vertical_metrics, colour_table, colour_palette_table, advanced_features, font_variations)
|
||||
|
||||
def parse_file(file_path: str) -> OpenFont:
|
||||
def open_font(file_path: str) -> OpenFontFile: # as in `open (verb) font (noun)`, not OpenFont
|
||||
with open(file_path, 'rb') as f:
|
||||
return parse_open_font(f)
|
||||
return parse_open_font_file(f)
|
||||
|
@ -1,8 +1,8 @@
|
||||
import os
|
||||
|
||||
from OpenFont import FontSpecificNameID, NameID, NameTable_Format_0, OpenFont, PredefinedNameID, TrueTypeOutlines, parse_file
|
||||
from OpenFont import FontSpecificNameID, NameID, NameTable_Format_0, OpenFontFile, PredefinedNameID, TrueTypeOutlines, open_font
|
||||
|
||||
def search_names(font: OpenFont, nameID: NameID) -> str:
|
||||
def search_names(font: OpenFontFile, nameID: NameID) -> str:
|
||||
assert isinstance(font.naming_table, NameTable_Format_0)
|
||||
|
||||
for nameRecord in font.naming_table.nameRecord:
|
||||
@ -11,7 +11,7 @@ def search_names(font: OpenFont, nameID: NameID) -> str:
|
||||
|
||||
assert False, f"Name not found: {nameID}"
|
||||
|
||||
def print_font(font: OpenFont):
|
||||
def print_font(font: OpenFontFile):
|
||||
assert isinstance(font.naming_table, NameTable_Format_0)
|
||||
assert isinstance(font.outlines, TrueTypeOutlines)
|
||||
|
||||
@ -24,12 +24,9 @@ def print_font(font: OpenFont):
|
||||
print(f"\tAxes: [{', '.join(axis_names)}] ({num_instances} instances)")
|
||||
|
||||
path = "examples/"
|
||||
# path = "examples/android_fonts/api_level/30"
|
||||
# path = "examples/android_fonts/api_level/30/NotoNaskhArabic-Bold.ttf"
|
||||
path = "examples/JetBrainsMono-2.304/"
|
||||
if os.path.isfile(path):
|
||||
try:
|
||||
font = parse_file(path)
|
||||
font = open_font(path)
|
||||
except AssertionError as err:
|
||||
print("Failed:", path)
|
||||
raise err
|
||||
@ -42,7 +39,7 @@ else:
|
||||
case '.ttf':
|
||||
file_path = os.path.join(root, file)
|
||||
try:
|
||||
font = parse_file(file_path)
|
||||
font = open_font(file_path)
|
||||
except AssertionError as err:
|
||||
print("Failed:", file_path)
|
||||
raise err
|
||||
|
Loading…
Reference in New Issue
Block a user