fonttools 4.55.6__cp311-cp311-musllinux_1_2_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of fonttools might be problematic. Click here for more details.
- fontTools/__init__.py +8 -0
- fontTools/__main__.py +35 -0
- fontTools/afmLib.py +439 -0
- fontTools/agl.py +5233 -0
- fontTools/cffLib/CFF2ToCFF.py +203 -0
- fontTools/cffLib/CFFToCFF2.py +305 -0
- fontTools/cffLib/__init__.py +3659 -0
- fontTools/cffLib/specializer.py +924 -0
- fontTools/cffLib/transforms.py +490 -0
- fontTools/cffLib/width.py +210 -0
- fontTools/colorLib/__init__.py +0 -0
- fontTools/colorLib/builder.py +664 -0
- fontTools/colorLib/errors.py +2 -0
- fontTools/colorLib/geometry.py +143 -0
- fontTools/colorLib/table_builder.py +223 -0
- fontTools/colorLib/unbuilder.py +81 -0
- fontTools/config/__init__.py +75 -0
- fontTools/cu2qu/__init__.py +15 -0
- fontTools/cu2qu/__main__.py +6 -0
- fontTools/cu2qu/benchmark.py +54 -0
- fontTools/cu2qu/cli.py +198 -0
- fontTools/cu2qu/cu2qu.c +14829 -0
- fontTools/cu2qu/cu2qu.cpython-311-x86_64-linux-musl.so +0 -0
- fontTools/cu2qu/cu2qu.py +531 -0
- fontTools/cu2qu/errors.py +77 -0
- fontTools/cu2qu/ufo.py +349 -0
- fontTools/designspaceLib/__init__.py +3338 -0
- fontTools/designspaceLib/__main__.py +6 -0
- fontTools/designspaceLib/split.py +475 -0
- fontTools/designspaceLib/statNames.py +253 -0
- fontTools/designspaceLib/types.py +147 -0
- fontTools/encodings/MacRoman.py +258 -0
- fontTools/encodings/StandardEncoding.py +258 -0
- fontTools/encodings/__init__.py +1 -0
- fontTools/encodings/codecs.py +135 -0
- fontTools/feaLib/__init__.py +4 -0
- fontTools/feaLib/__main__.py +78 -0
- fontTools/feaLib/ast.py +2134 -0
- fontTools/feaLib/builder.py +1747 -0
- fontTools/feaLib/error.py +22 -0
- fontTools/feaLib/lexer.c +17986 -0
- fontTools/feaLib/lexer.cpython-311-x86_64-linux-musl.so +0 -0
- fontTools/feaLib/lexer.py +287 -0
- fontTools/feaLib/location.py +12 -0
- fontTools/feaLib/lookupDebugInfo.py +12 -0
- fontTools/feaLib/parser.py +2359 -0
- fontTools/feaLib/variableScalar.py +113 -0
- fontTools/fontBuilder.py +1008 -0
- fontTools/help.py +36 -0
- fontTools/merge/__init__.py +248 -0
- fontTools/merge/__main__.py +6 -0
- fontTools/merge/base.py +81 -0
- fontTools/merge/cmap.py +141 -0
- fontTools/merge/layout.py +526 -0
- fontTools/merge/options.py +85 -0
- fontTools/merge/tables.py +341 -0
- fontTools/merge/unicode.py +78 -0
- fontTools/merge/util.py +143 -0
- fontTools/misc/__init__.py +1 -0
- fontTools/misc/arrayTools.py +424 -0
- fontTools/misc/bezierTools.c +41831 -0
- fontTools/misc/bezierTools.cpython-311-x86_64-linux-musl.so +0 -0
- fontTools/misc/bezierTools.py +1497 -0
- fontTools/misc/classifyTools.py +170 -0
- fontTools/misc/cliTools.py +53 -0
- fontTools/misc/configTools.py +349 -0
- fontTools/misc/cython.py +27 -0
- fontTools/misc/dictTools.py +83 -0
- fontTools/misc/eexec.py +119 -0
- fontTools/misc/encodingTools.py +72 -0
- fontTools/misc/etree.py +479 -0
- fontTools/misc/filenames.py +245 -0
- fontTools/misc/fixedTools.py +253 -0
- fontTools/misc/intTools.py +25 -0
- fontTools/misc/iterTools.py +12 -0
- fontTools/misc/lazyTools.py +42 -0
- fontTools/misc/loggingTools.py +543 -0
- fontTools/misc/macCreatorType.py +56 -0
- fontTools/misc/macRes.py +261 -0
- fontTools/misc/plistlib/__init__.py +681 -0
- fontTools/misc/plistlib/py.typed +0 -0
- fontTools/misc/psCharStrings.py +1496 -0
- fontTools/misc/psLib.py +398 -0
- fontTools/misc/psOperators.py +572 -0
- fontTools/misc/py23.py +96 -0
- fontTools/misc/roundTools.py +110 -0
- fontTools/misc/sstruct.py +231 -0
- fontTools/misc/symfont.py +244 -0
- fontTools/misc/testTools.py +229 -0
- fontTools/misc/textTools.py +154 -0
- fontTools/misc/timeTools.py +88 -0
- fontTools/misc/transform.py +516 -0
- fontTools/misc/treeTools.py +45 -0
- fontTools/misc/vector.py +147 -0
- fontTools/misc/visitor.py +142 -0
- fontTools/misc/xmlReader.py +188 -0
- fontTools/misc/xmlWriter.py +204 -0
- fontTools/mtiLib/__init__.py +1402 -0
- fontTools/mtiLib/__main__.py +5 -0
- fontTools/otlLib/__init__.py +1 -0
- fontTools/otlLib/builder.py +3221 -0
- fontTools/otlLib/error.py +11 -0
- fontTools/otlLib/maxContextCalc.py +96 -0
- fontTools/otlLib/optimize/__init__.py +53 -0
- fontTools/otlLib/optimize/__main__.py +6 -0
- fontTools/otlLib/optimize/gpos.py +453 -0
- fontTools/pens/__init__.py +1 -0
- fontTools/pens/areaPen.py +52 -0
- fontTools/pens/basePen.py +475 -0
- fontTools/pens/boundsPen.py +98 -0
- fontTools/pens/cairoPen.py +26 -0
- fontTools/pens/cocoaPen.py +26 -0
- fontTools/pens/cu2quPen.py +325 -0
- fontTools/pens/explicitClosingLinePen.py +101 -0
- fontTools/pens/filterPen.py +241 -0
- fontTools/pens/freetypePen.py +462 -0
- fontTools/pens/hashPointPen.py +89 -0
- fontTools/pens/momentsPen.c +13448 -0
- fontTools/pens/momentsPen.cpython-311-x86_64-linux-musl.so +0 -0
- fontTools/pens/momentsPen.py +879 -0
- fontTools/pens/perimeterPen.py +69 -0
- fontTools/pens/pointInsidePen.py +192 -0
- fontTools/pens/pointPen.py +600 -0
- fontTools/pens/qtPen.py +29 -0
- fontTools/pens/qu2cuPen.py +105 -0
- fontTools/pens/quartzPen.py +43 -0
- fontTools/pens/recordingPen.py +335 -0
- fontTools/pens/reportLabPen.py +79 -0
- fontTools/pens/reverseContourPen.py +96 -0
- fontTools/pens/roundingPen.py +130 -0
- fontTools/pens/statisticsPen.py +312 -0
- fontTools/pens/svgPathPen.py +310 -0
- fontTools/pens/t2CharStringPen.py +68 -0
- fontTools/pens/teePen.py +55 -0
- fontTools/pens/transformPen.py +115 -0
- fontTools/pens/ttGlyphPen.py +335 -0
- fontTools/pens/wxPen.py +29 -0
- fontTools/qu2cu/__init__.py +15 -0
- fontTools/qu2cu/__main__.py +7 -0
- fontTools/qu2cu/benchmark.py +56 -0
- fontTools/qu2cu/cli.py +125 -0
- fontTools/qu2cu/qu2cu.c +16269 -0
- fontTools/qu2cu/qu2cu.cpython-311-x86_64-linux-musl.so +0 -0
- fontTools/qu2cu/qu2cu.py +405 -0
- fontTools/subset/__init__.py +3838 -0
- fontTools/subset/__main__.py +6 -0
- fontTools/subset/cff.py +184 -0
- fontTools/subset/svg.py +253 -0
- fontTools/subset/util.py +25 -0
- fontTools/svgLib/__init__.py +3 -0
- fontTools/svgLib/path/__init__.py +65 -0
- fontTools/svgLib/path/arc.py +154 -0
- fontTools/svgLib/path/parser.py +322 -0
- fontTools/svgLib/path/shapes.py +183 -0
- fontTools/t1Lib/__init__.py +648 -0
- fontTools/tfmLib.py +460 -0
- fontTools/ttLib/__init__.py +26 -0
- fontTools/ttLib/__main__.py +109 -0
- fontTools/ttLib/macUtils.py +54 -0
- fontTools/ttLib/removeOverlaps.py +393 -0
- fontTools/ttLib/reorderGlyphs.py +284 -0
- fontTools/ttLib/scaleUpem.py +436 -0
- fontTools/ttLib/sfnt.py +662 -0
- fontTools/ttLib/standardGlyphOrder.py +271 -0
- fontTools/ttLib/tables/B_A_S_E_.py +14 -0
- fontTools/ttLib/tables/BitmapGlyphMetrics.py +64 -0
- fontTools/ttLib/tables/C_B_D_T_.py +113 -0
- fontTools/ttLib/tables/C_B_L_C_.py +19 -0
- fontTools/ttLib/tables/C_F_F_.py +61 -0
- fontTools/ttLib/tables/C_F_F__2.py +26 -0
- fontTools/ttLib/tables/C_O_L_R_.py +165 -0
- fontTools/ttLib/tables/C_P_A_L_.py +305 -0
- fontTools/ttLib/tables/D_S_I_G_.py +158 -0
- fontTools/ttLib/tables/D__e_b_g.py +17 -0
- fontTools/ttLib/tables/DefaultTable.py +49 -0
- fontTools/ttLib/tables/E_B_D_T_.py +835 -0
- fontTools/ttLib/tables/E_B_L_C_.py +718 -0
- fontTools/ttLib/tables/F_F_T_M_.py +52 -0
- fontTools/ttLib/tables/F__e_a_t.py +149 -0
- fontTools/ttLib/tables/G_D_E_F_.py +13 -0
- fontTools/ttLib/tables/G_M_A_P_.py +148 -0
- fontTools/ttLib/tables/G_P_K_G_.py +133 -0
- fontTools/ttLib/tables/G_P_O_S_.py +14 -0
- fontTools/ttLib/tables/G_S_U_B_.py +13 -0
- fontTools/ttLib/tables/G__l_a_t.py +235 -0
- fontTools/ttLib/tables/G__l_o_c.py +85 -0
- fontTools/ttLib/tables/H_V_A_R_.py +13 -0
- fontTools/ttLib/tables/J_S_T_F_.py +13 -0
- fontTools/ttLib/tables/L_T_S_H_.py +58 -0
- fontTools/ttLib/tables/M_A_T_H_.py +13 -0
- fontTools/ttLib/tables/M_E_T_A_.py +352 -0
- fontTools/ttLib/tables/M_V_A_R_.py +13 -0
- fontTools/ttLib/tables/O_S_2f_2.py +752 -0
- fontTools/ttLib/tables/S_I_N_G_.py +99 -0
- fontTools/ttLib/tables/S_T_A_T_.py +15 -0
- fontTools/ttLib/tables/S_V_G_.py +223 -0
- fontTools/ttLib/tables/S__i_l_f.py +1040 -0
- fontTools/ttLib/tables/S__i_l_l.py +92 -0
- fontTools/ttLib/tables/T_S_I_B_.py +13 -0
- fontTools/ttLib/tables/T_S_I_C_.py +14 -0
- fontTools/ttLib/tables/T_S_I_D_.py +13 -0
- fontTools/ttLib/tables/T_S_I_J_.py +13 -0
- fontTools/ttLib/tables/T_S_I_P_.py +13 -0
- fontTools/ttLib/tables/T_S_I_S_.py +13 -0
- fontTools/ttLib/tables/T_S_I_V_.py +26 -0
- fontTools/ttLib/tables/T_S_I__0.py +59 -0
- fontTools/ttLib/tables/T_S_I__1.py +166 -0
- fontTools/ttLib/tables/T_S_I__2.py +17 -0
- fontTools/ttLib/tables/T_S_I__3.py +22 -0
- fontTools/ttLib/tables/T_S_I__5.py +49 -0
- fontTools/ttLib/tables/T_T_F_A_.py +14 -0
- fontTools/ttLib/tables/TupleVariation.py +884 -0
- fontTools/ttLib/tables/V_A_R_C_.py +12 -0
- fontTools/ttLib/tables/V_D_M_X_.py +249 -0
- fontTools/ttLib/tables/V_O_R_G_.py +165 -0
- fontTools/ttLib/tables/V_V_A_R_.py +13 -0
- fontTools/ttLib/tables/__init__.py +97 -0
- fontTools/ttLib/tables/_a_n_k_r.py +15 -0
- fontTools/ttLib/tables/_a_v_a_r.py +191 -0
- fontTools/ttLib/tables/_b_s_l_n.py +15 -0
- fontTools/ttLib/tables/_c_i_d_g.py +24 -0
- fontTools/ttLib/tables/_c_m_a_p.py +1578 -0
- fontTools/ttLib/tables/_c_v_a_r.py +94 -0
- fontTools/ttLib/tables/_c_v_t.py +55 -0
- fontTools/ttLib/tables/_f_e_a_t.py +15 -0
- fontTools/ttLib/tables/_f_p_g_m.py +60 -0
- fontTools/ttLib/tables/_f_v_a_r.py +261 -0
- fontTools/ttLib/tables/_g_a_s_p.py +63 -0
- fontTools/ttLib/tables/_g_c_i_d.py +13 -0
- fontTools/ttLib/tables/_g_l_y_f.py +2311 -0
- fontTools/ttLib/tables/_g_v_a_r.py +292 -0
- fontTools/ttLib/tables/_h_d_m_x.py +127 -0
- fontTools/ttLib/tables/_h_e_a_d.py +130 -0
- fontTools/ttLib/tables/_h_h_e_a.py +147 -0
- fontTools/ttLib/tables/_h_m_t_x.py +160 -0
- fontTools/ttLib/tables/_k_e_r_n.py +289 -0
- fontTools/ttLib/tables/_l_c_a_r.py +13 -0
- fontTools/ttLib/tables/_l_o_c_a.py +70 -0
- fontTools/ttLib/tables/_l_t_a_g.py +72 -0
- fontTools/ttLib/tables/_m_a_x_p.py +147 -0
- fontTools/ttLib/tables/_m_e_t_a.py +112 -0
- fontTools/ttLib/tables/_m_o_r_t.py +14 -0
- fontTools/ttLib/tables/_m_o_r_x.py +15 -0
- fontTools/ttLib/tables/_n_a_m_e.py +1237 -0
- fontTools/ttLib/tables/_o_p_b_d.py +14 -0
- fontTools/ttLib/tables/_p_o_s_t.py +317 -0
- fontTools/ttLib/tables/_p_r_e_p.py +16 -0
- fontTools/ttLib/tables/_p_r_o_p.py +12 -0
- fontTools/ttLib/tables/_s_b_i_x.py +129 -0
- fontTools/ttLib/tables/_t_r_a_k.py +332 -0
- fontTools/ttLib/tables/_v_h_e_a.py +139 -0
- fontTools/ttLib/tables/_v_m_t_x.py +19 -0
- fontTools/ttLib/tables/asciiTable.py +20 -0
- fontTools/ttLib/tables/grUtils.py +92 -0
- fontTools/ttLib/tables/otBase.py +1465 -0
- fontTools/ttLib/tables/otConverters.py +2065 -0
- fontTools/ttLib/tables/otData.py +6400 -0
- fontTools/ttLib/tables/otTables.py +2700 -0
- fontTools/ttLib/tables/otTraverse.py +162 -0
- fontTools/ttLib/tables/sbixGlyph.py +149 -0
- fontTools/ttLib/tables/sbixStrike.py +177 -0
- fontTools/ttLib/tables/table_API_readme.txt +91 -0
- fontTools/ttLib/tables/ttProgram.py +594 -0
- fontTools/ttLib/ttCollection.py +125 -0
- fontTools/ttLib/ttFont.py +1155 -0
- fontTools/ttLib/ttGlyphSet.py +500 -0
- fontTools/ttLib/ttVisitor.py +32 -0
- fontTools/ttLib/woff2.py +1683 -0
- fontTools/ttx.py +467 -0
- fontTools/ufoLib/__init__.py +2477 -0
- fontTools/ufoLib/converters.py +334 -0
- fontTools/ufoLib/errors.py +22 -0
- fontTools/ufoLib/etree.py +6 -0
- fontTools/ufoLib/filenames.py +291 -0
- fontTools/ufoLib/glifLib.py +2022 -0
- fontTools/ufoLib/kerning.py +91 -0
- fontTools/ufoLib/plistlib.py +47 -0
- fontTools/ufoLib/pointPen.py +6 -0
- fontTools/ufoLib/utils.py +76 -0
- fontTools/ufoLib/validators.py +1186 -0
- fontTools/unicode.py +50 -0
- fontTools/unicodedata/Blocks.py +802 -0
- fontTools/unicodedata/OTTags.py +50 -0
- fontTools/unicodedata/ScriptExtensions.py +806 -0
- fontTools/unicodedata/Scripts.py +3618 -0
- fontTools/unicodedata/__init__.py +298 -0
- fontTools/varLib/__init__.py +1511 -0
- fontTools/varLib/__main__.py +6 -0
- fontTools/varLib/avar.py +260 -0
- fontTools/varLib/avarPlanner.py +1004 -0
- fontTools/varLib/builder.py +215 -0
- fontTools/varLib/cff.py +631 -0
- fontTools/varLib/errors.py +219 -0
- fontTools/varLib/featureVars.py +689 -0
- fontTools/varLib/instancer/__init__.py +1937 -0
- fontTools/varLib/instancer/__main__.py +5 -0
- fontTools/varLib/instancer/featureVars.py +190 -0
- fontTools/varLib/instancer/names.py +388 -0
- fontTools/varLib/instancer/solver.py +309 -0
- fontTools/varLib/interpolatable.py +1209 -0
- fontTools/varLib/interpolatableHelpers.py +396 -0
- fontTools/varLib/interpolatablePlot.py +1269 -0
- fontTools/varLib/interpolatableTestContourOrder.py +82 -0
- fontTools/varLib/interpolatableTestStartingPoint.py +107 -0
- fontTools/varLib/interpolate_layout.py +124 -0
- fontTools/varLib/iup.c +19154 -0
- fontTools/varLib/iup.cpython-311-x86_64-linux-musl.so +0 -0
- fontTools/varLib/iup.py +490 -0
- fontTools/varLib/merger.py +1717 -0
- fontTools/varLib/models.py +642 -0
- fontTools/varLib/multiVarStore.py +253 -0
- fontTools/varLib/mutator.py +518 -0
- fontTools/varLib/mvar.py +40 -0
- fontTools/varLib/plot.py +238 -0
- fontTools/varLib/stat.py +149 -0
- fontTools/varLib/varStore.py +767 -0
- fontTools/voltLib/__init__.py +5 -0
- fontTools/voltLib/ast.py +448 -0
- fontTools/voltLib/error.py +12 -0
- fontTools/voltLib/lexer.py +99 -0
- fontTools/voltLib/parser.py +656 -0
- fontTools/voltLib/voltToFea.py +730 -0
- fonttools-4.55.6.data/data/share/man/man1/ttx.1 +225 -0
- fonttools-4.55.6.dist-info/LICENSE +21 -0
- fonttools-4.55.6.dist-info/METADATA +3413 -0
- fonttools-4.55.6.dist-info/RECORD +329 -0
- fonttools-4.55.6.dist-info/WHEEL +5 -0
- fonttools-4.55.6.dist-info/entry_points.txt +5 -0
- fonttools-4.55.6.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
from fontTools.ttLib.ttFont import TTFont
|
|
2
|
+
from fontTools.ttLib.sfnt import readTTCHeader, writeTTCHeader
|
|
3
|
+
from io import BytesIO
|
|
4
|
+
import struct
|
|
5
|
+
import logging
|
|
6
|
+
|
|
7
|
+
log = logging.getLogger(__name__)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TTCollection(object):
|
|
11
|
+
"""Object representing a TrueType Collection / OpenType Collection.
|
|
12
|
+
The main API is self.fonts being a list of TTFont instances.
|
|
13
|
+
|
|
14
|
+
If shareTables is True, then different fonts in the collection
|
|
15
|
+
might point to the same table object if the data for the table was
|
|
16
|
+
the same in the font file. Note, however, that this might result
|
|
17
|
+
in suprises and incorrect behavior if the different fonts involved
|
|
18
|
+
have different GlyphOrder. Use only if you know what you are doing.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
def __init__(self, file=None, shareTables=False, **kwargs):
|
|
22
|
+
fonts = self.fonts = []
|
|
23
|
+
if file is None:
|
|
24
|
+
return
|
|
25
|
+
|
|
26
|
+
assert "fontNumber" not in kwargs, kwargs
|
|
27
|
+
|
|
28
|
+
closeStream = False
|
|
29
|
+
if not hasattr(file, "read"):
|
|
30
|
+
file = open(file, "rb")
|
|
31
|
+
closeStream = True
|
|
32
|
+
|
|
33
|
+
tableCache = {} if shareTables else None
|
|
34
|
+
|
|
35
|
+
header = readTTCHeader(file)
|
|
36
|
+
for i in range(header.numFonts):
|
|
37
|
+
font = TTFont(file, fontNumber=i, _tableCache=tableCache, **kwargs)
|
|
38
|
+
fonts.append(font)
|
|
39
|
+
|
|
40
|
+
# don't close file if lazy=True, as the TTFont hold a reference to the original
|
|
41
|
+
# file; the file will be closed once the TTFonts are closed in the
|
|
42
|
+
# TTCollection.close(). We still want to close the file if lazy is None or
|
|
43
|
+
# False, because in that case the TTFont no longer need the original file
|
|
44
|
+
# and we want to avoid 'ResourceWarning: unclosed file'.
|
|
45
|
+
if not kwargs.get("lazy") and closeStream:
|
|
46
|
+
file.close()
|
|
47
|
+
|
|
48
|
+
def __enter__(self):
|
|
49
|
+
return self
|
|
50
|
+
|
|
51
|
+
def __exit__(self, type, value, traceback):
|
|
52
|
+
self.close()
|
|
53
|
+
|
|
54
|
+
def close(self):
|
|
55
|
+
for font in self.fonts:
|
|
56
|
+
font.close()
|
|
57
|
+
|
|
58
|
+
def save(self, file, shareTables=True):
|
|
59
|
+
"""Save the font to disk. Similarly to the constructor,
|
|
60
|
+
the 'file' argument can be either a pathname or a writable
|
|
61
|
+
file object.
|
|
62
|
+
"""
|
|
63
|
+
if not hasattr(file, "write"):
|
|
64
|
+
final = None
|
|
65
|
+
file = open(file, "wb")
|
|
66
|
+
else:
|
|
67
|
+
# assume "file" is a writable file object
|
|
68
|
+
# write to a temporary stream to allow saving to unseekable streams
|
|
69
|
+
final = file
|
|
70
|
+
file = BytesIO()
|
|
71
|
+
|
|
72
|
+
tableCache = {} if shareTables else None
|
|
73
|
+
|
|
74
|
+
offsets_offset = writeTTCHeader(file, len(self.fonts))
|
|
75
|
+
offsets = []
|
|
76
|
+
for font in self.fonts:
|
|
77
|
+
offsets.append(file.tell())
|
|
78
|
+
font._save(file, tableCache=tableCache)
|
|
79
|
+
file.seek(0, 2)
|
|
80
|
+
|
|
81
|
+
file.seek(offsets_offset)
|
|
82
|
+
file.write(struct.pack(">%dL" % len(self.fonts), *offsets))
|
|
83
|
+
|
|
84
|
+
if final:
|
|
85
|
+
final.write(file.getvalue())
|
|
86
|
+
file.close()
|
|
87
|
+
|
|
88
|
+
def saveXML(self, fileOrPath, newlinestr="\n", writeVersion=True, **kwargs):
|
|
89
|
+
from fontTools.misc import xmlWriter
|
|
90
|
+
|
|
91
|
+
writer = xmlWriter.XMLWriter(fileOrPath, newlinestr=newlinestr)
|
|
92
|
+
|
|
93
|
+
if writeVersion:
|
|
94
|
+
from fontTools import version
|
|
95
|
+
|
|
96
|
+
version = ".".join(version.split(".")[:2])
|
|
97
|
+
writer.begintag("ttCollection", ttLibVersion=version)
|
|
98
|
+
else:
|
|
99
|
+
writer.begintag("ttCollection")
|
|
100
|
+
writer.newline()
|
|
101
|
+
writer.newline()
|
|
102
|
+
|
|
103
|
+
for font in self.fonts:
|
|
104
|
+
font._saveXML(writer, writeVersion=False, **kwargs)
|
|
105
|
+
writer.newline()
|
|
106
|
+
|
|
107
|
+
writer.endtag("ttCollection")
|
|
108
|
+
writer.newline()
|
|
109
|
+
|
|
110
|
+
writer.close()
|
|
111
|
+
|
|
112
|
+
def __getitem__(self, item):
|
|
113
|
+
return self.fonts[item]
|
|
114
|
+
|
|
115
|
+
def __setitem__(self, item, value):
|
|
116
|
+
self.fonts[item] = value
|
|
117
|
+
|
|
118
|
+
def __delitem__(self, item):
|
|
119
|
+
return self.fonts[item]
|
|
120
|
+
|
|
121
|
+
def __len__(self):
|
|
122
|
+
return len(self.fonts)
|
|
123
|
+
|
|
124
|
+
def __iter__(self):
|
|
125
|
+
return iter(self.fonts)
|