From 5fc65d71681adb55031f37c46d98f3691007e184 Mon Sep 17 00:00:00 2001 From: Just van Rossum Date: Mon, 29 Mar 2021 11:45:58 +0200 Subject: [PATCH] Misc py23 cleanups (#2243) * Replaced all from ...py23 import * with explicit name imports, or removed completely when possible. * Replaced tounicode() with tostr() * Changed all BytesIO ans StringIO imports to from io import ..., replaced all UnicodeIO with StringIO. * Replaced all unichr() with chr() * Misc minor tweaks and fixes --- Doc/source/ttx.rst | 16 +- Lib/fontTools/__init__.py | 1 - Lib/fontTools/afmLib.py | 1 - Lib/fontTools/agl.py | 8 +- Lib/fontTools/cffLib/__init__.py | 7 +- Lib/fontTools/cffLib/specializer.py | 1 - Lib/fontTools/cffLib/width.py | 5 +- Lib/fontTools/designspaceLib/__init__.py | 17 +- Lib/fontTools/encodings/MacRoman.py | 2 - Lib/fontTools/encodings/StandardEncoding.py | 2 - Lib/fontTools/encodings/__init__.py | 2 - Lib/fontTools/encodings/codecs.py | 47 ++- Lib/fontTools/feaLib/__main__.py | 1 - Lib/fontTools/feaLib/ast.py | 5 +- Lib/fontTools/feaLib/builder.py | 5 +- Lib/fontTools/feaLib/lexer.py | 1 - Lib/fontTools/feaLib/parser.py | 6 +- Lib/fontTools/fontBuilder.py | 3 - Lib/fontTools/merge.py | 1 - Lib/fontTools/misc/__init__.py | 2 - Lib/fontTools/misc/arrayTools.py | 1 - Lib/fontTools/misc/bezierTools.py | 3 +- Lib/fontTools/misc/classifyTools.py | 1 - Lib/fontTools/misc/cliTools.py | 1 - Lib/fontTools/misc/dictTools.py | 1 - Lib/fontTools/misc/eexec.py | 3 +- Lib/fontTools/misc/encodingTools.py | 1 - Lib/fontTools/misc/etree.py | 4 +- Lib/fontTools/misc/filenames.py | 8 +- Lib/fontTools/misc/fixedTools.py | 2 - Lib/fontTools/misc/intTools.py | 2 - Lib/fontTools/misc/loggingTools.py | 1 - Lib/fontTools/misc/macCreatorType.py | 3 +- Lib/fontTools/misc/macRes.py | 3 +- Lib/fontTools/misc/plistlib/__init__.py | 9 +- Lib/fontTools/misc/psCharStrings.py | 2 +- Lib/fontTools/misc/psLib.py | 19 +- Lib/fontTools/misc/psOperators.py | 2 - Lib/fontTools/misc/sstruct.py | 2 +- Lib/fontTools/misc/symfont.py | 4 +- Lib/fontTools/misc/testTools.py | 5 +- Lib/fontTools/misc/textTools.py | 2 +- Lib/fontTools/misc/timeTools.py | 1 - Lib/fontTools/misc/xmlReader.py | 1 - Lib/fontTools/misc/xmlWriter.py | 8 +- Lib/fontTools/mtiLib/__init__.py | 1 - Lib/fontTools/mtiLib/__main__.py | 1 - Lib/fontTools/pens/basePen.py | 2 +- Lib/fontTools/pens/pointPen.py | 2 +- Lib/fontTools/pens/recordingPen.py | 1 - Lib/fontTools/subset/__main__.py | 1 - Lib/fontTools/svgLib/__init__.py | 2 - Lib/fontTools/svgLib/path/__init__.py | 2 +- Lib/fontTools/svgLib/path/arc.py | 4 +- Lib/fontTools/svgLib/path/parser.py | 1 - Lib/fontTools/t1Lib/__init__.py | 2 +- Lib/fontTools/ttLib/__init__.py | 1 - Lib/fontTools/ttLib/macUtils.py | 2 +- Lib/fontTools/ttLib/standardGlyphOrder.py | 2 - Lib/fontTools/ttLib/tables/B_A_S_E_.py | 1 - .../ttLib/tables/BitmapGlyphMetrics.py | 1 - Lib/fontTools/ttLib/tables/C_B_D_T_.py | 2 +- Lib/fontTools/ttLib/tables/C_B_L_C_.py | 1 - Lib/fontTools/ttLib/tables/C_F_F_.py | 2 +- Lib/fontTools/ttLib/tables/C_F_F__2.py | 3 +- Lib/fontTools/ttLib/tables/C_O_L_R_.py | 1 - Lib/fontTools/ttLib/tables/C_P_A_L_.py | 2 +- Lib/fontTools/ttLib/tables/D_S_I_G_.py | 2 +- Lib/fontTools/ttLib/tables/DefaultTable.py | 2 +- Lib/fontTools/ttLib/tables/E_B_D_T_.py | 2 +- Lib/fontTools/ttLib/tables/E_B_L_C_.py | 2 +- Lib/fontTools/ttLib/tables/F_F_T_M_.py | 1 - Lib/fontTools/ttLib/tables/F__e_a_t.py | 2 - Lib/fontTools/ttLib/tables/G_D_E_F_.py | 1 - Lib/fontTools/ttLib/tables/G_M_A_P_.py | 2 +- Lib/fontTools/ttLib/tables/G_P_K_G_.py | 2 +- Lib/fontTools/ttLib/tables/G_P_O_S_.py | 1 - Lib/fontTools/ttLib/tables/G_S_U_B_.py | 1 - Lib/fontTools/ttLib/tables/G__l_a_t.py | 5 +- Lib/fontTools/ttLib/tables/G__l_o_c.py | 1 - Lib/fontTools/ttLib/tables/H_V_A_R_.py | 1 - Lib/fontTools/ttLib/tables/J_S_T_F_.py | 1 - Lib/fontTools/ttLib/tables/L_T_S_H_.py | 1 - Lib/fontTools/ttLib/tables/M_A_T_H_.py | 1 - Lib/fontTools/ttLib/tables/M_E_T_A_.py | 8 +- Lib/fontTools/ttLib/tables/M_V_A_R_.py | 1 - Lib/fontTools/ttLib/tables/O_S_2f_2.py | 1 - Lib/fontTools/ttLib/tables/S_I_N_G_.py | 2 +- Lib/fontTools/ttLib/tables/S_T_A_T_.py | 1 - Lib/fontTools/ttLib/tables/S_V_G_.py | 4 +- Lib/fontTools/ttLib/tables/S__i_l_f.py | 6 +- Lib/fontTools/ttLib/tables/S__i_l_l.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_B_.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_C_.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_D_.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_J_.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_P_.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_S_.py | 1 - Lib/fontTools/ttLib/tables/T_S_I_V_.py | 2 +- Lib/fontTools/ttLib/tables/T_S_I__0.py | 1 - Lib/fontTools/ttLib/tables/T_S_I__1.py | 4 +- Lib/fontTools/ttLib/tables/T_S_I__2.py | 1 - Lib/fontTools/ttLib/tables/T_S_I__3.py | 1 - Lib/fontTools/ttLib/tables/T_S_I__5.py | 1 - Lib/fontTools/ttLib/tables/T_T_F_A_.py | 1 - Lib/fontTools/ttLib/tables/TupleVariation.py | 2 +- Lib/fontTools/ttLib/tables/V_D_M_X_.py | 1 - Lib/fontTools/ttLib/tables/V_O_R_G_.py | 3 +- Lib/fontTools/ttLib/tables/V_V_A_R_.py | 1 - Lib/fontTools/ttLib/tables/__init__.py | 3 +- Lib/fontTools/ttLib/tables/_a_n_k_r.py | 1 - Lib/fontTools/ttLib/tables/_a_v_a_r.py | 5 +- Lib/fontTools/ttLib/tables/_b_s_l_n.py | 1 - Lib/fontTools/ttLib/tables/_c_i_d_g.py | 1 - Lib/fontTools/ttLib/tables/_c_m_a_p.py | 2 +- Lib/fontTools/ttLib/tables/_c_v_a_r.py | 2 +- Lib/fontTools/ttLib/tables/_c_v_t.py | 1 - Lib/fontTools/ttLib/tables/_f_e_a_t.py | 1 - Lib/fontTools/ttLib/tables/_f_p_g_m.py | 1 - Lib/fontTools/ttLib/tables/_f_v_a_r.py | 4 +- Lib/fontTools/ttLib/tables/_g_a_s_p.py | 1 - Lib/fontTools/ttLib/tables/_g_c_i_d.py | 1 - Lib/fontTools/ttLib/tables/_g_l_y_f.py | 4 +- Lib/fontTools/ttLib/tables/_g_v_a_r.py | 4 +- Lib/fontTools/ttLib/tables/_h_d_m_x.py | 2 +- Lib/fontTools/ttLib/tables/_h_e_a_d.py | 1 - Lib/fontTools/ttLib/tables/_h_h_e_a.py | 1 - Lib/fontTools/ttLib/tables/_h_m_t_x.py | 1 - Lib/fontTools/ttLib/tables/_k_e_r_n.py | 1 - Lib/fontTools/ttLib/tables/_l_c_a_r.py | 1 - Lib/fontTools/ttLib/tables/_l_o_c_a.py | 1 - Lib/fontTools/ttLib/tables/_l_t_a_g.py | 2 +- Lib/fontTools/ttLib/tables/_m_a_x_p.py | 1 - Lib/fontTools/ttLib/tables/_m_e_t_a.py | 2 +- Lib/fontTools/ttLib/tables/_m_o_r_t.py | 1 - Lib/fontTools/ttLib/tables/_m_o_r_x.py | 1 - Lib/fontTools/ttLib/tables/_n_a_m_e.py | 11 +- Lib/fontTools/ttLib/tables/_o_p_b_d.py | 1 - Lib/fontTools/ttLib/tables/_p_o_s_t.py | 2 +- Lib/fontTools/ttLib/tables/_p_r_e_p.py | 1 - Lib/fontTools/ttLib/tables/_p_r_o_p.py | 1 - Lib/fontTools/ttLib/tables/_s_b_i_x.py | 4 +- Lib/fontTools/ttLib/tables/_t_r_a_k.py | 2 +- Lib/fontTools/ttLib/tables/_v_h_e_a.py | 1 - Lib/fontTools/ttLib/tables/_v_m_t_x.py | 1 - Lib/fontTools/ttLib/tables/asciiTable.py | 2 +- Lib/fontTools/ttLib/tables/otBase.py | 2 +- Lib/fontTools/ttLib/tables/otConverters.py | 6 +- Lib/fontTools/ttLib/tables/otData.py | 3 - Lib/fontTools/ttLib/tables/otTables.py | 2 +- Lib/fontTools/ttLib/tables/sbixGlyph.py | 1 - Lib/fontTools/ttLib/tables/sbixStrike.py | 5 +- Lib/fontTools/ttLib/tables/ttProgram.py | 3 +- Lib/fontTools/ttLib/ttCollection.py | 4 +- Lib/fontTools/ttLib/ttFont.py | 4 +- Lib/fontTools/ttLib/woff2.py | 3 +- Lib/fontTools/ttx.py | 2 +- Lib/fontTools/ufoLib/plistlib.py | 3 +- Lib/fontTools/unicode.py | 5 +- Lib/fontTools/unicodedata/__init__.py | 12 +- Lib/fontTools/varLib/__init__.py | 8 +- MetaTools/buildTableList.py | 2 - Snippets/cmap-format.py | 1 - Snippets/interpolate.py | 1 - Snippets/layout-features.py | 1 - Snippets/subset-fpgm.py | 1 - Tests/afmLib/afmLib_test.py | 1 - Tests/agl_test.py | 2 - Tests/designspaceLib/designspace_test.py | 1 - Tests/encodings/codecs_test.py | 9 +- Tests/feaLib/builder_test.py | 4 +- Tests/feaLib/lexer_test.py | 9 +- Tests/merge_test.py | 3 +- Tests/misc/arrayTools_test.py | 4 +- Tests/misc/bezierTools_test.py | 1 - Tests/misc/classifyTools_test.py | 1 - Tests/misc/eexec_test.py | 1 - Tests/misc/encodingTools_test.py | 3 +- Tests/misc/fixedTools_test.py | 1 - Tests/misc/loggingTools_test.py | 2 +- Tests/misc/macRes_test.py | 2 +- Tests/misc/plistlib_test.py | 4 +- Tests/misc/py23_test.py | 3 +- Tests/misc/testTools_test.py | 2 - Tests/misc/textTools_test.py | 1 - Tests/misc/timeTools_test.py | 1 - Tests/misc/transform_test.py | 1 - Tests/misc/xmlReader_test.py | 5 +- Tests/misc/xmlWriter_test.py | 3 +- Tests/mtiLib/mti_test.py | 2 +- Tests/pens/pointPen_test.py | 4 +- Tests/subset/subset_test.py | 2 +- Tests/svgLib/path/parser_test.py | 2 - Tests/svgLib/path/path_test.py | 3 +- Tests/svgLib/path/shapes_test.py | 2 - Tests/t1Lib/t1Lib_test.py | 1 - Tests/ttLib/tables/C_F_F__2_test.py | 6 +- Tests/ttLib/tables/C_F_F_test.py | 4 +- Tests/ttLib/tables/C_P_A_L_test.py | 1 - Tests/ttLib/tables/M_V_A_R_test.py | 1 - Tests/ttLib/tables/S_T_A_T_test.py | 1 - Tests/ttLib/tables/T_S_I__0_test.py | 2 +- Tests/ttLib/tables/T_S_I__1_test.py | 4 +- Tests/ttLib/tables/TupleVariation_test.py | 2 +- Tests/ttLib/tables/_a_n_k_r_test.py | 1 - Tests/ttLib/tables/_a_v_a_r_test.py | 4 +- Tests/ttLib/tables/_b_s_l_n_test.py | 1 - Tests/ttLib/tables/_c_i_d_g_test.py | 2 - Tests/ttLib/tables/_c_m_a_p_test.py | 1 - Tests/ttLib/tables/_c_v_a_r_test.py | 1 - Tests/ttLib/tables/_f_p_g_m_test.py | 1 - Tests/ttLib/tables/_f_v_a_r_test.py | 2 +- Tests/ttLib/tables/_g_c_i_d_test.py | 2 - Tests/ttLib/tables/_g_l_y_f_test.py | 4 +- Tests/ttLib/tables/_g_v_a_r_test.py | 1 - Tests/ttLib/tables/_h_h_e_a_test.py | 1 - Tests/ttLib/tables/_h_m_t_x_test.py | 1 - Tests/ttLib/tables/_k_e_r_n_test.py | 1 - Tests/ttLib/tables/_l_c_a_r_test.py | 1 - Tests/ttLib/tables/_l_t_a_g_test.py | 2 +- Tests/ttLib/tables/_m_e_t_a_test.py | 2 +- Tests/ttLib/tables/_m_o_r_t_test.py | 1 - Tests/ttLib/tables/_m_o_r_x_test.py | 3 +- Tests/ttLib/tables/_n_a_m_e_test.py | 8 +- Tests/ttLib/tables/_o_p_b_d_test.py | 1 - Tests/ttLib/tables/_p_r_o_p_test.py | 1 - Tests/ttLib/tables/_t_r_a_k_test.py | 1 - Tests/ttLib/tables/_v_h_e_a_test.py | 1 - Tests/ttLib/tables/_v_m_t_x_test.py | 1 - Tests/ttLib/tables/otBase_test.py | 1 - Tests/ttLib/tables/otConverters_test.py | 2 - Tests/ttLib/tables/otTables_test.py | 3 +- Tests/ttLib/tables/tables_test.py | 6 +- Tests/ttLib/tables/ttProgram_test.py | 5 +- Tests/ttLib/woff2_test.py | 3 +- Tests/ttx/ttx_test.py | 1 - Tests/unicodedata_test.py | 296 +++++++++--------- Tests/varLib/featureVars_test.py | 1 - Tests/varLib/instancer/instancer_test.py | 4 +- Tests/varLib/interpolatable_test.py | 1 - Tests/varLib/interpolate_layout_test.py | 1 - Tests/varLib/models_test.py | 1 - Tests/varLib/mutator_test.py | 1 - Tests/varLib/varLib_test.py | 2 +- Tests/voltLib/parser_test.py | 6 +- 245 files changed, 396 insertions(+), 561 deletions(-) diff --git a/Doc/source/ttx.rst b/Doc/source/ttx.rst index d672bfc80..b6e43f5db 100644 --- a/Doc/source/ttx.rst +++ b/Doc/source/ttx.rst @@ -35,14 +35,14 @@ The TTX file format The following tables are currently supported:: - BASE, CBDT, CBLC, CFF, CFF2, COLR, CPAL, DSIG, EBDT, EBLC, FFTM, - Feat, GDEF, GMAP, GPKG, GPOS, GSUB, Glat, Gloc, HVAR, JSTF, LTSH, - MATH, META, MVAR, OS/2, SING, STAT, SVG, Silf, Sill, TSI0, TSI1, - TSI2, TSI3, TSI5, TSIB, TSIC, TSID, TSIJ, TSIP, TSIS, TSIV, TTFA, - VDMX, VORG, VVAR, ankr, avar, bsln, cidg, cmap, cvar, cvt, feat, - fpgm, fvar, gasp, gcid, glyf, gvar, hdmx, head, hhea, hmtx, kern, - lcar, loca, ltag, maxp, meta, mort, morx, name, opbd, post, prep, - prop, sbix, trak, vhea and vmtx + BASE, CBDT, CBLC, CFF, CFF2, COLR, CPAL, DSIG, Debg, EBDT, EBLC, + FFTM, Feat, GDEF, GMAP, GPKG, GPOS, GSUB, Glat, Gloc, HVAR, JSTF, + LTSH, MATH, META, MVAR, OS/2, SING, STAT, SVG, Silf, Sill, TSI0, + TSI1, TSI2, TSI3, TSI5, TSIB, TSIC, TSID, TSIJ, TSIP, TSIS, TSIV, + TTFA, VDMX, VORG, VVAR, ankr, avar, bsln, cidg, cmap, cvar, cvt, + feat, fpgm, fvar, gasp, gcid, glyf, gvar, hdmx, head, hhea, hmtx, + kern, lcar, loca, ltag, maxp, meta, mort, morx, name, opbd, post, + prep, prop, sbix, trak, vhea and vmtx .. end table list diff --git a/Lib/fontTools/__init__.py b/Lib/fontTools/__init__.py index e703895f5..3d4db6223 100644 --- a/Lib/fontTools/__init__.py +++ b/Lib/fontTools/__init__.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import logging from fontTools.misc.loggingTools import configLogger diff --git a/Lib/fontTools/afmLib.py b/Lib/fontTools/afmLib.py index 67f145f4f..49d995122 100644 --- a/Lib/fontTools/afmLib.py +++ b/Lib/fontTools/afmLib.py @@ -46,7 +46,6 @@ Here is an example of using `afmLib` to read, modify and write an AFM file: """ -from fontTools.misc.py23 import * import re # every single line starts with a "word" diff --git a/Lib/fontTools/agl.py b/Lib/fontTools/agl.py index b7d0bfa3a..4f7ff920c 100644 --- a/Lib/fontTools/agl.py +++ b/Lib/fontTools/agl.py @@ -26,7 +26,7 @@ This is used by fontTools when it has to construct glyph names for a font which doesn't include any (e.g. format 3.0 post tables). """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tostr import re @@ -5140,7 +5140,7 @@ def _glyphComponentToUnicode(component, isZapfDingbats): # to the corresponding character in that list. uchars = LEGACY_AGL2UV.get(component) if uchars: - return "".join(map(unichr, uchars)) + return "".join(map(chr, uchars)) # Otherwise, if the component is of the form "uni" (U+0075, # U+006E, and U+0069) followed by a sequence of uppercase @@ -5210,7 +5210,7 @@ def _uniToUnicode(component): if any(c >= 0xD800 and c <= 0xDFFF for c in chars): # The AGL specification explicitly excluded surrogate pairs. return None - return ''.join([unichr(c) for c in chars]) + return ''.join([chr(c) for c in chars]) _re_u = re.compile("^u([0-9A-F]{4,6})$") @@ -5228,5 +5228,5 @@ def _uToUnicode(component): return None if ((value >= 0x0000 and value <= 0xD7FF) or (value >= 0xE000 and value <= 0x10FFFF)): - return unichr(value) + return chr(value) return None diff --git a/Lib/fontTools/cffLib/__init__.py b/Lib/fontTools/cffLib/__init__.py index 59db36c74..95f9dc30e 100644 --- a/Lib/fontTools/cffLib/__init__.py +++ b/Lib/fontTools/cffLib/__init__.py @@ -11,7 +11,7 @@ the demands of variable fonts. This module parses both original CFF and CFF2. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, tobytes, tostr from fontTools.misc import sstruct from fontTools.misc import psCharStrings from fontTools.misc.arrayTools import unionRect, intRect @@ -20,6 +20,7 @@ from fontTools.ttLib import TTFont from fontTools.ttLib.tables.otBase import OTTableWriter from fontTools.ttLib.tables.otBase import OTTableReader from fontTools.ttLib.tables import otTables as ot +from io import BytesIO import struct import logging import re @@ -1245,7 +1246,7 @@ class ASCIIConverter(SimpleConverter): return tobytes(value, encoding='ascii') def xmlWrite(self, xmlWriter, name, value): - xmlWriter.simpletag(name, value=tounicode(value, encoding="ascii")) + xmlWriter.simpletag(name, value=tostr(value, encoding="ascii")) xmlWriter.newline() def xmlRead(self, name, attrs, content, parent): @@ -1261,7 +1262,7 @@ class Latin1Converter(SimpleConverter): return tobytes(value, encoding='latin1') def xmlWrite(self, xmlWriter, name, value): - value = tounicode(value, encoding="latin1") + value = tostr(value, encoding="latin1") if name in ['Notice', 'Copyright']: value = re.sub(r"[\r\n]\s+", " ", value) xmlWriter.simpletag(name, value=value) diff --git a/Lib/fontTools/cffLib/specializer.py b/Lib/fontTools/cffLib/specializer.py index a1a22b9a2..fbfefa925 100644 --- a/Lib/fontTools/cffLib/specializer.py +++ b/Lib/fontTools/cffLib/specializer.py @@ -13,7 +13,6 @@ and specific forms of the operation. """ -from fontTools.misc.py23 import * from fontTools.cffLib import maxStackLimit diff --git a/Lib/fontTools/cffLib/width.py b/Lib/fontTools/cffLib/width.py index edce446fa..00b859bb5 100644 --- a/Lib/fontTools/cffLib/width.py +++ b/Lib/fontTools/cffLib/width.py @@ -7,11 +7,10 @@ value do not need to specify their width in their charstring, saving bytes. This module determines the optimum ``defaultWidthX`` and ``nominalWidthX`` values for a font, when provided with a list of glyph widths.""" -from fontTools.misc.py23 import * -from fontTools.ttLib import TTFont, getTableClass +from fontTools.ttLib import TTFont from collections import defaultdict from operator import add -from functools import partial, reduce +from functools import reduce class missingdict(dict): diff --git a/Lib/fontTools/designspaceLib/__init__.py b/Lib/fontTools/designspaceLib/__init__.py index f69c93030..9ea22fe69 100644 --- a/Lib/fontTools/designspaceLib/__init__.py +++ b/Lib/fontTools/designspaceLib/__init__.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes, tostr from fontTools.misc.loggingTools import LogMixin import collections +from io import BytesIO, StringIO import os import posixpath from fontTools.misc import etree as ET @@ -290,25 +291,25 @@ class InstanceDescriptor(SimpleDescriptor): filename = posixpath_property("_filename") def setStyleName(self, styleName, languageCode="en"): - self.localisedStyleName[languageCode] = tounicode(styleName) + self.localisedStyleName[languageCode] = tostr(styleName) def getStyleName(self, languageCode="en"): return self.localisedStyleName.get(languageCode) def setFamilyName(self, familyName, languageCode="en"): - self.localisedFamilyName[languageCode] = tounicode(familyName) + self.localisedFamilyName[languageCode] = tostr(familyName) def getFamilyName(self, languageCode="en"): return self.localisedFamilyName.get(languageCode) def setStyleMapStyleName(self, styleMapStyleName, languageCode="en"): - self.localisedStyleMapStyleName[languageCode] = tounicode(styleMapStyleName) + self.localisedStyleMapStyleName[languageCode] = tostr(styleMapStyleName) def getStyleMapStyleName(self, languageCode="en"): return self.localisedStyleMapStyleName.get(languageCode) def setStyleMapFamilyName(self, styleMapFamilyName, languageCode="en"): - self.localisedStyleMapFamilyName[languageCode] = tounicode(styleMapFamilyName) + self.localisedStyleMapFamilyName[languageCode] = tostr(styleMapFamilyName) def getStyleMapFamilyName(self, languageCode="en"): return self.localisedStyleMapFamilyName.get(languageCode) @@ -823,7 +824,7 @@ class BaseDocReader(LogMixin): # '{http://www.w3.org/XML/1998/namespace}lang' for key, lang in labelNameElement.items(): if key == XML_LANG: - axisObject.labelNames[lang] = tounicode(labelNameElement.text) + axisObject.labelNames[lang] = tostr(labelNameElement.text) self.documentObject.axes.append(axisObject) self.axisDefaults[axisObject.name] = axisObject.default @@ -1099,10 +1100,10 @@ class DesignSpaceDocument(LogMixin, AsDictMixin): return self def tostring(self, encoding=None): - if encoding is unicode or ( + if encoding is str or ( encoding is not None and encoding.lower() == "unicode" ): - f = UnicodeIO() + f = StringIO() xml_declaration = False elif encoding is None or encoding == "utf-8": f = BytesIO() diff --git a/Lib/fontTools/encodings/MacRoman.py b/Lib/fontTools/encodings/MacRoman.py index 9e8f24413..25232d385 100644 --- a/Lib/fontTools/encodings/MacRoman.py +++ b/Lib/fontTools/encodings/MacRoman.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - MacRoman = [ 'NUL', 'Eth', 'eth', 'Lslash', 'lslash', 'Scaron', 'scaron', 'Yacute', 'yacute', 'HT', 'LF', 'Thorn', 'thorn', 'CR', 'Zcaron', 'zcaron', 'DLE', 'DC1', diff --git a/Lib/fontTools/encodings/StandardEncoding.py b/Lib/fontTools/encodings/StandardEncoding.py index 60b587349..810b2a092 100644 --- a/Lib/fontTools/encodings/StandardEncoding.py +++ b/Lib/fontTools/encodings/StandardEncoding.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - StandardEncoding = [ '.notdef', '.notdef', '.notdef', '.notdef', '.notdef', '.notdef', '.notdef', '.notdef', '.notdef', '.notdef', diff --git a/Lib/fontTools/encodings/__init__.py b/Lib/fontTools/encodings/__init__.py index b1760311b..156cb232a 100644 --- a/Lib/fontTools/encodings/__init__.py +++ b/Lib/fontTools/encodings/__init__.py @@ -1,3 +1 @@ """Empty __init__.py file to signal Python this directory is a package.""" - -from fontTools.misc.py23 import * diff --git a/Lib/fontTools/encodings/codecs.py b/Lib/fontTools/encodings/codecs.py index c2288a777..3b1a82562 100644 --- a/Lib/fontTools/encodings/codecs.py +++ b/Lib/fontTools/encodings/codecs.py @@ -1,7 +1,6 @@ """Extend the Python codecs module with a few encodings that are used in OpenType (name table) but missing from Python. See https://github.com/fonttools/fonttools/issues/236 for details.""" -from fontTools.misc.py23 import * import codecs import encodings @@ -57,35 +56,35 @@ class ExtendCodec(codecs.Codec): _extended_encodings = { "x_mac_japanese_ttx": ("shift_jis", { - b"\xFC": unichr(0x007C), - b"\x7E": unichr(0x007E), - b"\x80": unichr(0x005C), - b"\xA0": unichr(0x00A0), - b"\xFD": unichr(0x00A9), - b"\xFE": unichr(0x2122), - b"\xFF": unichr(0x2026), + b"\xFC": chr(0x007C), + b"\x7E": chr(0x007E), + b"\x80": chr(0x005C), + b"\xA0": chr(0x00A0), + b"\xFD": chr(0x00A9), + b"\xFE": chr(0x2122), + b"\xFF": chr(0x2026), }), "x_mac_trad_chinese_ttx": ("big5", { - b"\x80": unichr(0x005C), - b"\xA0": unichr(0x00A0), - b"\xFD": unichr(0x00A9), - b"\xFE": unichr(0x2122), - b"\xFF": unichr(0x2026), + b"\x80": chr(0x005C), + b"\xA0": chr(0x00A0), + b"\xFD": chr(0x00A9), + b"\xFE": chr(0x2122), + b"\xFF": chr(0x2026), }), "x_mac_korean_ttx": ("euc_kr", { - b"\x80": unichr(0x00A0), - b"\x81": unichr(0x20A9), - b"\x82": unichr(0x2014), - b"\x83": unichr(0x00A9), - b"\xFE": unichr(0x2122), - b"\xFF": unichr(0x2026), + b"\x80": chr(0x00A0), + b"\x81": chr(0x20A9), + b"\x82": chr(0x2014), + b"\x83": chr(0x00A9), + b"\xFE": chr(0x2122), + b"\xFF": chr(0x2026), }), "x_mac_simp_chinese_ttx": ("gb2312", { - b"\x80": unichr(0x00FC), - b"\xA0": unichr(0x00A0), - b"\xFD": unichr(0x00A9), - b"\xFE": unichr(0x2122), - b"\xFF": unichr(0x2026), + b"\x80": chr(0x00FC), + b"\xA0": chr(0x00A0), + b"\xFD": chr(0x00A9), + b"\xFE": chr(0x2122), + b"\xFF": chr(0x2026), }), } diff --git a/Lib/fontTools/feaLib/__main__.py b/Lib/fontTools/feaLib/__main__.py index 348cf0a91..99c642313 100644 --- a/Lib/fontTools/feaLib/__main__.py +++ b/Lib/fontTools/feaLib/__main__.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.feaLib.builder import addOpenTypeFeatures, Builder from fontTools.feaLib.error import FeatureLibError diff --git a/Lib/fontTools/feaLib/ast.py b/Lib/fontTools/feaLib/ast.py index 5bf5bbcfa..763d0d2c6 100644 --- a/Lib/fontTools/feaLib/ast.py +++ b/Lib/fontTools/feaLib/ast.py @@ -1,10 +1,9 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import byteord, tobytes from fontTools.feaLib.error import FeatureLibError from fontTools.feaLib.location import FeatureLibLocation from fontTools.misc.encodingTools import getEncoding from collections import OrderedDict import itertools -from typing import NamedTuple SHIFT = " " * 4 @@ -1669,7 +1668,7 @@ class NameRecord(Statement): def escape(c, escape_pattern): # Also escape U+0022 QUOTATION MARK and U+005C REVERSE SOLIDUS if c >= 0x20 and c <= 0x7E and c not in (0x22, 0x5C): - return unichr(c) + return chr(c) else: return escape_pattern % c diff --git a/Lib/fontTools/feaLib/builder.py b/Lib/fontTools/feaLib/builder.py index ae81c9ff9..4a7d95758 100644 --- a/Lib/fontTools/feaLib/builder.py +++ b/Lib/fontTools/feaLib/builder.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, tostr from fontTools.misc import sstruct from fontTools.misc.textTools import binary2num, safeEval from fontTools.feaLib.error import FeatureLibError @@ -33,6 +33,7 @@ from fontTools.otlLib.builder import ( from fontTools.otlLib.error import OpenTypeLibError from collections import defaultdict import itertools +from io import StringIO import logging import warnings import os @@ -78,7 +79,7 @@ def addOpenTypeFeaturesFromString( """ - featurefile = UnicodeIO(tounicode(features)) + featurefile = StringIO(tostr(features)) if filename: featurefile.name = filename addOpenTypeFeatures(font, featurefile, tables=tables, debug=debug) diff --git a/Lib/fontTools/feaLib/lexer.py b/Lib/fontTools/feaLib/lexer.py index 3caf3dc5a..140fbd829 100644 --- a/Lib/fontTools/feaLib/lexer.py +++ b/Lib/fontTools/feaLib/lexer.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.feaLib.error import FeatureLibError, IncludedFeaNotFound from fontTools.feaLib.location import FeatureLibLocation import re diff --git a/Lib/fontTools/feaLib/parser.py b/Lib/fontTools/feaLib/parser.py index 04e8bfb76..804cba9fe 100644 --- a/Lib/fontTools/feaLib/parser.py +++ b/Lib/fontTools/feaLib/parser.py @@ -1,7 +1,7 @@ from fontTools.feaLib.error import FeatureLibError from fontTools.feaLib.lexer import Lexer, IncludingLexer, NonIncludingLexer from fontTools.misc.encodingTools import getEncoding -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, tobytes, tostr import fontTools.feaLib.ast as ast import logging import os @@ -1222,12 +1222,12 @@ class Parser(object): # We convert surrogates to actual Unicode by round-tripping through # Python's UTF-16 codec in a special mode. utf16 = tobytes(s, "utf_16_be", "surrogatepass") - return tounicode(utf16, "utf_16_be") + return tostr(utf16, "utf_16_be") @staticmethod def unescape_unichr_(match): n = match.group(0)[1:] - return unichr(int(n, 16)) + return chr(int(n, 16)) @staticmethod def unescape_byte_(match, encoding): diff --git a/Lib/fontTools/fontBuilder.py b/Lib/fontTools/fontBuilder.py index 6e5773070..e2824084c 100644 --- a/Lib/fontTools/fontBuilder.py +++ b/Lib/fontTools/fontBuilder.py @@ -129,10 +129,8 @@ fb.save("test.otf") ``` """ -from .misc.py23 import * from .ttLib import TTFont, newTable from .ttLib.tables._c_m_a_p import cmap_classes -from .ttLib.tables._n_a_m_e import NameRecord, makeName from .misc.timeTools import timestampNow import struct from collections import OrderedDict @@ -894,7 +892,6 @@ def buildCmapSubTable(cmapping, format, platformID, platEncID): def addFvar(font, axes, instances): from .ttLib.tables._f_v_a_r import Axis, NamedInstance - from .designspaceLib import AxisDescriptor assert axes diff --git a/Lib/fontTools/merge.py b/Lib/fontTools/merge.py index 96b80236c..2df22a8d0 100644 --- a/Lib/fontTools/merge.py +++ b/Lib/fontTools/merge.py @@ -2,7 +2,6 @@ # # Google Author(s): Behdad Esfahbod, Roozbeh Pournader -from fontTools.misc.py23 import * from fontTools.misc.timeTools import timestampNow from fontTools import ttLib, cffLib from fontTools.ttLib.tables import otTables, _h_e_a_d diff --git a/Lib/fontTools/misc/__init__.py b/Lib/fontTools/misc/__init__.py index b1760311b..156cb232a 100644 --- a/Lib/fontTools/misc/__init__.py +++ b/Lib/fontTools/misc/__init__.py @@ -1,3 +1 @@ """Empty __init__.py file to signal Python this directory is a package.""" - -from fontTools.misc.py23 import * diff --git a/Lib/fontTools/misc/arrayTools.py b/Lib/fontTools/misc/arrayTools.py index 9a64b2929..c20a9eda4 100644 --- a/Lib/fontTools/misc/arrayTools.py +++ b/Lib/fontTools/misc/arrayTools.py @@ -2,7 +2,6 @@ so on. """ -from fontTools.misc.py23 import * from fontTools.misc.roundTools import otRound from fontTools.misc.vector import Vector as _Vector import math diff --git a/Lib/fontTools/misc/bezierTools.py b/Lib/fontTools/misc/bezierTools.py index caa4557d3..2cf2640c3 100644 --- a/Lib/fontTools/misc/bezierTools.py +++ b/Lib/fontTools/misc/bezierTools.py @@ -3,8 +3,7 @@ """ from fontTools.misc.arrayTools import calcBounds, sectRect, rectArea -from fontTools.misc.transform import Offset, Identity -from fontTools.misc.py23 import * +from fontTools.misc.transform import Identity import math from collections import namedtuple diff --git a/Lib/fontTools/misc/classifyTools.py b/Lib/fontTools/misc/classifyTools.py index 73101186b..ae88a8f77 100644 --- a/Lib/fontTools/misc/classifyTools.py +++ b/Lib/fontTools/misc/classifyTools.py @@ -1,7 +1,6 @@ """ fontTools.misc.classifyTools.py -- tools for classifying things. """ -from fontTools.misc.py23 import * class Classifier(object): diff --git a/Lib/fontTools/misc/cliTools.py b/Lib/fontTools/misc/cliTools.py index 4e5353b93..e8c176772 100644 --- a/Lib/fontTools/misc/cliTools.py +++ b/Lib/fontTools/misc/cliTools.py @@ -1,5 +1,4 @@ """Collection of utilities for command-line interfaces and console scripts.""" -from fontTools.misc.py23 import * import os import re diff --git a/Lib/fontTools/misc/dictTools.py b/Lib/fontTools/misc/dictTools.py index 47528684f..ae7932c99 100644 --- a/Lib/fontTools/misc/dictTools.py +++ b/Lib/fontTools/misc/dictTools.py @@ -1,6 +1,5 @@ """Misc dict tools.""" -from fontTools.misc.py23 import * __all__ = ['hashdict'] diff --git a/Lib/fontTools/misc/eexec.py b/Lib/fontTools/misc/eexec.py index 36719a1cb..71f733c1f 100644 --- a/Lib/fontTools/misc/eexec.py +++ b/Lib/fontTools/misc/eexec.py @@ -12,7 +12,8 @@ the new key at the end of the operation. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, bytesjoin, byteord + def _decryptChar(cipher, R): cipher = byteord(cipher) diff --git a/Lib/fontTools/misc/encodingTools.py b/Lib/fontTools/misc/encodingTools.py index 438e484d9..eccf951d3 100644 --- a/Lib/fontTools/misc/encodingTools.py +++ b/Lib/fontTools/misc/encodingTools.py @@ -1,7 +1,6 @@ """fontTools.misc.encodingTools.py -- tools for working with OpenType encodings. """ -from fontTools.misc.py23 import * import fontTools.encodings.codecs # Map keyed by platformID, then platEncID, then possibly langID diff --git a/Lib/fontTools/misc/etree.py b/Lib/fontTools/misc/etree.py index 8bd2d08cb..6e943e4b5 100644 --- a/Lib/fontTools/misc/etree.py +++ b/Lib/fontTools/misc/etree.py @@ -11,7 +11,7 @@ or subclasses built-in ElementTree classes to add features that are only availble in lxml, like OrderedDict for attributes, pretty_print and iterwalk. """ -from fontTools.misc.py23 import unicode, tounicode, open +from fontTools.misc.py23 import unicode, tostr XML_DECLARATION = """""" @@ -242,7 +242,7 @@ except ImportError: Reject all bytes input that contains non-ASCII characters. """ try: - s = tounicode(s, encoding="ascii", errors="strict") + s = tostr(s, encoding="ascii", errors="strict") except UnicodeDecodeError: raise ValueError( "Bytes strings can only contain ASCII characters. " diff --git a/Lib/fontTools/misc/filenames.py b/Lib/fontTools/misc/filenames.py index 0a6a52807..0f0100088 100644 --- a/Lib/fontTools/misc/filenames.py +++ b/Lib/fontTools/misc/filenames.py @@ -16,7 +16,7 @@ by Tal Leming and is copyright (c) 2005-2016, The RoboFab Developers: - Tal Leming - Just van Rossum """ -from fontTools.misc.py23 import unicode + illegalCharacters = r"\" * + / : < > ? [ \ ] | \0".split(" ") illegalCharacters += [chr(i) for i in range(1, 32)] @@ -95,9 +95,9 @@ def userNameToFileName(userName, existing=[], prefix="", suffix=""): >>> userNameToFileName("alt.con") == "alt._con" True """ - # the incoming name must be a unicode string - if not isinstance(userName, unicode): - raise ValueError("The value for userName must be a unicode string.") + # the incoming name must be a str + if not isinstance(userName, str): + raise ValueError("The value for userName must be a string.") # establish the prefix and suffix lengths prefixLength = len(prefix) suffixLength = len(suffix) diff --git a/Lib/fontTools/misc/fixedTools.py b/Lib/fontTools/misc/fixedTools.py index eda81c33c..f0474abff 100644 --- a/Lib/fontTools/misc/fixedTools.py +++ b/Lib/fontTools/misc/fixedTools.py @@ -17,9 +17,7 @@ functions for converting between fixed-point, float and string representations. The maximum value that can still fit in an F2Dot14. (1.99993896484375) """ -from fontTools.misc.py23 import * from .roundTools import otRound -import math import logging log = logging.getLogger(__name__) diff --git a/Lib/fontTools/misc/intTools.py b/Lib/fontTools/misc/intTools.py index 9f4497ba0..448e1627a 100644 --- a/Lib/fontTools/misc/intTools.py +++ b/Lib/fontTools/misc/intTools.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - __all__ = ['popCount'] diff --git a/Lib/fontTools/misc/loggingTools.py b/Lib/fontTools/misc/loggingTools.py index a8b45f232..d1baa8392 100644 --- a/Lib/fontTools/misc/loggingTools.py +++ b/Lib/fontTools/misc/loggingTools.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import sys import logging import timeit diff --git a/Lib/fontTools/misc/macCreatorType.py b/Lib/fontTools/misc/macCreatorType.py index c28ceb989..fb237200b 100644 --- a/Lib/fontTools/misc/macCreatorType.py +++ b/Lib/fontTools/misc/macCreatorType.py @@ -1,5 +1,4 @@ -from fontTools.misc.py23 import * -import sys +from fontTools.misc.py23 import Tag, bytesjoin, strjoin try: import xattr except ImportError: diff --git a/Lib/fontTools/misc/macRes.py b/Lib/fontTools/misc/macRes.py index 0053ee3a1..2c15b347c 100644 --- a/Lib/fontTools/misc/macRes.py +++ b/Lib/fontTools/misc/macRes.py @@ -1,4 +1,5 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, tostr +from io import BytesIO import struct from fontTools.misc import sstruct from collections import OrderedDict diff --git a/Lib/fontTools/misc/plistlib/__init__.py b/Lib/fontTools/misc/plistlib/__init__.py index d8391041d..84dc41832 100644 --- a/Lib/fontTools/misc/plistlib/__init__.py +++ b/Lib/fontTools/misc/plistlib/__init__.py @@ -1,5 +1,4 @@ import collections.abc -import sys import re from typing import ( Any, @@ -24,10 +23,8 @@ from functools import singledispatch from fontTools.misc import etree -from fontTools.misc.py23 import ( - tounicode, - tobytes, -) +from fontTools.misc.py23 import tostr + # By default, we # - deserialize elements as bytes and @@ -368,7 +365,7 @@ def _dict_element(d: Mapping[str, PlistEncodable], ctx: SimpleNamespace) -> etre continue raise TypeError("keys must be strings") k = etree.SubElement(el, "key") - k.text = tounicode(key, "utf-8") + k.text = tostr(key, "utf-8") el.append(_make_element(value, ctx)) ctx.indent_level -= 1 return el diff --git a/Lib/fontTools/misc/psCharStrings.py b/Lib/fontTools/misc/psCharStrings.py index 66ad8ed9a..cb6750504 100644 --- a/Lib/fontTools/misc/psCharStrings.py +++ b/Lib/fontTools/misc/psCharStrings.py @@ -2,7 +2,7 @@ CFF dictionary data and Type1/Type2 CharStrings. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, strjoin from fontTools.misc.fixedTools import ( fixedToFloat, floatToFixed, floatToFixedToStr, strToFixedToFloat, ) diff --git a/Lib/fontTools/misc/psLib.py b/Lib/fontTools/misc/psLib.py index e47483021..916755ce3 100644 --- a/Lib/fontTools/misc/psLib.py +++ b/Lib/fontTools/misc/psLib.py @@ -1,6 +1,21 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, tobytes, tostr from fontTools.misc import eexec -from .psOperators import * +from .psOperators import ( + PSOperators, + ps_StandardEncoding, + ps_array, + ps_boolean, + ps_dict, + ps_integer, + ps_literal, + ps_mark, + ps_name, + ps_operator, + ps_procedure, + ps_procmark, + ps_real, + ps_string, +) import re from collections.abc import Callable from string import whitespace diff --git a/Lib/fontTools/misc/psOperators.py b/Lib/fontTools/misc/psOperators.py index de278fd63..3b378f590 100644 --- a/Lib/fontTools/misc/psOperators.py +++ b/Lib/fontTools/misc/psOperators.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - _accessstrings = {0: "", 1: "readonly", 2: "executeonly", 3: "noaccess"} diff --git a/Lib/fontTools/misc/sstruct.py b/Lib/fontTools/misc/sstruct.py index 319e43d28..ba1f87886 100644 --- a/Lib/fontTools/misc/sstruct.py +++ b/Lib/fontTools/misc/sstruct.py @@ -46,7 +46,7 @@ calcsize(fmt) it returns the size of the data in bytes. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes, tostr from fontTools.misc.fixedTools import fixedToFloat as fi2fl, floatToFixed as fl2fi import struct import re diff --git a/Lib/fontTools/misc/symfont.py b/Lib/fontTools/misc/symfont.py index d3e5ce23a..a1a873006 100644 --- a/Lib/fontTools/misc/symfont.py +++ b/Lib/fontTools/misc/symfont.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.pens.basePen import BasePen from functools import partial from itertools import count @@ -112,8 +111,7 @@ MomentXYPen = partial(GreenPen, func=x*y) def printGreenPen(penName, funcs, file=sys.stdout): print( -'''from fontTools.misc.py23 import * -from fontTools.pens.basePen import BasePen +'''from fontTools.pens.basePen import BasePen class %s(BasePen): diff --git a/Lib/fontTools/misc/testTools.py b/Lib/fontTools/misc/testTools.py index be9bc851d..1b258e372 100644 --- a/Lib/fontTools/misc/testTools.py +++ b/Lib/fontTools/misc/testTools.py @@ -1,12 +1,13 @@ """Helpers for writing unit tests.""" from collections.abc import Iterable +from io import BytesIO import os import shutil import sys import tempfile from unittest import TestCase as _TestCase -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes from fontTools.misc.xmlWriter import XMLWriter @@ -25,7 +26,7 @@ def parseXML(xmlSnippet): xml = b"" if isinstance(xmlSnippet, bytes): xml += xmlSnippet - elif isinstance(xmlSnippet, unicode): + elif isinstance(xmlSnippet, str): xml += tobytes(xmlSnippet, 'utf-8') elif isinstance(xmlSnippet, Iterable): xml += b"".join(tobytes(s, 'utf-8') for s in xmlSnippet) diff --git a/Lib/fontTools/misc/textTools.py b/Lib/fontTools/misc/textTools.py index 63838a591..072976af8 100644 --- a/Lib/fontTools/misc/textTools.py +++ b/Lib/fontTools/misc/textTools.py @@ -1,7 +1,7 @@ """fontTools.misc.textTools.py -- miscellaneous routines.""" -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, strjoin, tobytes import ast import string diff --git a/Lib/fontTools/misc/timeTools.py b/Lib/fontTools/misc/timeTools.py index 13613827b..f4b84f6e7 100644 --- a/Lib/fontTools/misc/timeTools.py +++ b/Lib/fontTools/misc/timeTools.py @@ -1,7 +1,6 @@ """fontTools.misc.timeTools.py -- tools for working with OpenType timestamps. """ -from fontTools.misc.py23 import * import os import time from datetime import datetime, timezone diff --git a/Lib/fontTools/misc/xmlReader.py b/Lib/fontTools/misc/xmlReader.py index 406bba27c..b2707e993 100644 --- a/Lib/fontTools/misc/xmlReader.py +++ b/Lib/fontTools/misc/xmlReader.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools import ttLib from fontTools.misc.textTools import safeEval from fontTools.ttLib.tables.DefaultTable import DefaultTable diff --git a/Lib/fontTools/misc/xmlWriter.py b/Lib/fontTools/misc/xmlWriter.py index 6ab8469e4..fec127a9f 100644 --- a/Lib/fontTools/misc/xmlWriter.py +++ b/Lib/fontTools/misc/xmlWriter.py @@ -1,6 +1,6 @@ """xmlWriter.py -- Simple XML authoring class""" -from fontTools.misc.py23 import * +from fontTools.misc.py23 import byteord, strjoin, tobytes, tostr import sys import os import string @@ -34,8 +34,8 @@ class XMLWriter(object): self.totype = tobytes except TypeError: # This better not fail. - self.file.write(tounicode('')) - self.totype = tounicode + self.file.write('') + self.totype = tostr self.indentwhite = self.totype(indentwhite) if newlinestr is None: self.newlinestr = self.totype(os.linesep) @@ -156,7 +156,7 @@ class XMLWriter(object): return "" data = "" for attr, value in attributes: - if not isinstance(value, (bytes, unicode)): + if not isinstance(value, (bytes, str)): value = str(value) data = data + ' %s="%s"' % (attr, escapeattr(value)) return data diff --git a/Lib/fontTools/mtiLib/__init__.py b/Lib/fontTools/mtiLib/__init__.py index 8525754f2..667a216de 100644 --- a/Lib/fontTools/mtiLib/__init__.py +++ b/Lib/fontTools/mtiLib/__init__.py @@ -6,7 +6,6 @@ # http://monotype.github.io/OpenType_Table_Source/otl_source.html # https://github.com/Monotype/OpenType_Table_Source/ -from fontTools.misc.py23 import * from fontTools import ttLib from fontTools.ttLib.tables._c_m_a_p import cmap_classes from fontTools.ttLib.tables import otTables as ot diff --git a/Lib/fontTools/mtiLib/__main__.py b/Lib/fontTools/mtiLib/__main__.py index eacfefd59..fe6b638ba 100644 --- a/Lib/fontTools/mtiLib/__main__.py +++ b/Lib/fontTools/mtiLib/__main__.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import sys from fontTools.mtiLib import main diff --git a/Lib/fontTools/pens/basePen.py b/Lib/fontTools/pens/basePen.py index 34f89f8d2..2161e0211 100644 --- a/Lib/fontTools/pens/basePen.py +++ b/Lib/fontTools/pens/basePen.py @@ -36,7 +36,7 @@ Coordinates are usually expressed as (x, y) tuples, but generally any sequence of length 2 will do. """ -from typing import Any, Tuple +from typing import Tuple from fontTools.misc.loggingTools import LogMixin diff --git a/Lib/fontTools/pens/pointPen.py b/Lib/fontTools/pens/pointPen.py index 92846d315..26f99d419 100644 --- a/Lib/fontTools/pens/pointPen.py +++ b/Lib/fontTools/pens/pointPen.py @@ -13,7 +13,7 @@ For instance, whether or not a point is smooth, and its name. """ import math -from typing import Any, List, Optional, Tuple +from typing import Any, Optional, Tuple from fontTools.pens.basePen import AbstractPen diff --git a/Lib/fontTools/pens/recordingPen.py b/Lib/fontTools/pens/recordingPen.py index abce1ad76..99e87e5a5 100644 --- a/Lib/fontTools/pens/recordingPen.py +++ b/Lib/fontTools/pens/recordingPen.py @@ -140,7 +140,6 @@ class RecordingPointPen(AbstractPointPen): if __name__ == "__main__": - from fontTools.pens.basePen import _TestPen pen = RecordingPen() pen.moveTo((0, 0)) pen.lineTo((0, 100)) diff --git a/Lib/fontTools/subset/__main__.py b/Lib/fontTools/subset/__main__.py index 93549d5d1..220384731 100644 --- a/Lib/fontTools/subset/__main__.py +++ b/Lib/fontTools/subset/__main__.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import sys from fontTools.subset import main diff --git a/Lib/fontTools/svgLib/__init__.py b/Lib/fontTools/svgLib/__init__.py index ca5af1cf5..c049006bf 100644 --- a/Lib/fontTools/svgLib/__init__.py +++ b/Lib/fontTools/svgLib/__init__.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - from .path import SVGPath, parse_path __all__ = ["SVGPath", "parse_path"] diff --git a/Lib/fontTools/svgLib/path/__init__.py b/Lib/fontTools/svgLib/path/__init__.py index 9dc5ac61c..9440429bd 100644 --- a/Lib/fontTools/svgLib/path/__init__.py +++ b/Lib/fontTools/svgLib/path/__init__.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tostr from fontTools.pens.transformPen import TransformPen from fontTools.misc import etree diff --git a/Lib/fontTools/svgLib/path/arc.py b/Lib/fontTools/svgLib/path/arc.py index 25b9aa5e8..318107121 100644 --- a/Lib/fontTools/svgLib/path/arc.py +++ b/Lib/fontTools/svgLib/path/arc.py @@ -4,10 +4,8 @@ The code is mostly adapted from Blink's SVGPathNormalizer::DecomposeArcToCubic https://github.com/chromium/chromium/blob/93831f2/third_party/ blink/renderer/core/svg/svg_path_parser.cc#L169-L278 """ -from fontTools.misc.py23 import * -from fontTools.misc.py23 import isfinite from fontTools.misc.transform import Identity, Scale -from math import atan2, ceil, cos, fabs, pi, radians, sin, sqrt, tan +from math import atan2, ceil, cos, fabs, isfinite, pi, radians, sin, sqrt, tan TWO_PI = 2 * pi diff --git a/Lib/fontTools/svgLib/path/parser.py b/Lib/fontTools/svgLib/path/parser.py index 3d8d539d5..1fcf8998c 100644 --- a/Lib/fontTools/svgLib/path/parser.py +++ b/Lib/fontTools/svgLib/path/parser.py @@ -7,7 +7,6 @@ # Copyright (c) 2013-2014 Lennart Regebro # License: MIT -from fontTools.misc.py23 import * from .arc import EllipticalArc import re diff --git a/Lib/fontTools/t1Lib/__init__.py b/Lib/fontTools/t1Lib/__init__.py index 88729aec9..e1d94d35f 100644 --- a/Lib/fontTools/t1Lib/__init__.py +++ b/Lib/fontTools/t1Lib/__init__.py @@ -15,7 +15,7 @@ write(path, data, kind='OTHER', dohex=False) part should be written as hexadecimal or binary, but only if kind is 'OTHER'. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin from fontTools.misc import eexec from fontTools.misc.macCreatorType import getMacCreatorAndType import os diff --git a/Lib/fontTools/ttLib/__init__.py b/Lib/fontTools/ttLib/__init__.py index 7b01ddd4b..16417e73b 100644 --- a/Lib/fontTools/ttLib/__init__.py +++ b/Lib/fontTools/ttLib/__init__.py @@ -41,7 +41,6 @@ Dumping 'prep' table... """ -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import deprecateFunction import logging diff --git a/Lib/fontTools/ttLib/macUtils.py b/Lib/fontTools/ttLib/macUtils.py index e8c9ed5e1..496fb6725 100644 --- a/Lib/fontTools/ttLib/macUtils.py +++ b/Lib/fontTools/ttLib/macUtils.py @@ -1,5 +1,5 @@ """ttLib.macUtils.py -- Various Mac-specific stuff.""" -from fontTools.misc.py23 import * +from io import BytesIO from fontTools.misc.macRes import ResourceReader, ResourceError diff --git a/Lib/fontTools/ttLib/standardGlyphOrder.py b/Lib/fontTools/ttLib/standardGlyphOrder.py index 9697fcc60..1f980e454 100644 --- a/Lib/fontTools/ttLib/standardGlyphOrder.py +++ b/Lib/fontTools/ttLib/standardGlyphOrder.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - # # 'post' table formats 1.0 and 2.0 rely on this list of "standard" # glyphs. diff --git a/Lib/fontTools/ttLib/tables/B_A_S_E_.py b/Lib/fontTools/ttLib/tables/B_A_S_E_.py index 6c4863adf..9551e2c6d 100644 --- a/Lib/fontTools/ttLib/tables/B_A_S_E_.py +++ b/Lib/fontTools/ttLib/tables/B_A_S_E_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py b/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py index 7e19b0117..9197923da 100644 --- a/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py +++ b/Lib/fontTools/ttLib/tables/BitmapGlyphMetrics.py @@ -1,6 +1,5 @@ # Since bitmap glyph metrics are shared between EBLC and EBDT # this class gets its own python file. -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval import logging diff --git a/Lib/fontTools/ttLib/tables/C_B_D_T_.py b/Lib/fontTools/ttLib/tables/C_B_D_T_.py index 6fd4143b0..11bb60b8b 100644 --- a/Lib/fontTools/ttLib/tables/C_B_D_T_.py +++ b/Lib/fontTools/ttLib/tables/C_B_D_T_.py @@ -3,7 +3,7 @@ # Google Author(s): Matt Fontaine -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc import sstruct from . import E_B_D_T_ from .BitmapGlyphMetrics import BigGlyphMetrics, bigGlyphMetricsFormat, SmallGlyphMetrics, smallGlyphMetricsFormat diff --git a/Lib/fontTools/ttLib/tables/C_B_L_C_.py b/Lib/fontTools/ttLib/tables/C_B_L_C_.py index ed7e3aed4..2f785710e 100644 --- a/Lib/fontTools/ttLib/tables/C_B_L_C_.py +++ b/Lib/fontTools/ttLib/tables/C_B_L_C_.py @@ -2,7 +2,6 @@ # # Google Author(s): Matt Fontaine -from fontTools.misc.py23 import * from . import E_B_L_C_ class table_C_B_L_C_(E_B_L_C_.table_E_B_L_C_): diff --git a/Lib/fontTools/ttLib/tables/C_F_F_.py b/Lib/fontTools/ttLib/tables/C_F_F_.py index 1d3860c96..d12b89d26 100644 --- a/Lib/fontTools/ttLib/tables/C_F_F_.py +++ b/Lib/fontTools/ttLib/tables/C_F_F_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from io import BytesIO from fontTools import cffLib from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/C_F_F__2.py b/Lib/fontTools/ttLib/tables/C_F_F__2.py index 7aaf4ce68..6217ebba0 100644 --- a/Lib/fontTools/ttLib/tables/C_F_F__2.py +++ b/Lib/fontTools/ttLib/tables/C_F_F__2.py @@ -1,5 +1,4 @@ -from fontTools.misc.py23 import * -from fontTools import cffLib +from io import BytesIO from fontTools.ttLib.tables.C_F_F_ import table_C_F_F_ diff --git a/Lib/fontTools/ttLib/tables/C_O_L_R_.py b/Lib/fontTools/ttLib/tables/C_O_L_R_.py index c6f6e1790..4004d4177 100644 --- a/Lib/fontTools/ttLib/tables/C_O_L_R_.py +++ b/Lib/fontTools/ttLib/tables/C_O_L_R_.py @@ -2,7 +2,6 @@ # # Google Author(s): Behdad Esfahbod -from fontTools.misc.py23 import * from fontTools.misc.textTools import safeEval from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/C_P_A_L_.py b/Lib/fontTools/ttLib/tables/C_P_A_L_.py index f351acf69..c095095e6 100644 --- a/Lib/fontTools/ttLib/tables/C_P_A_L_.py +++ b/Lib/fontTools/ttLib/tables/C_P_A_L_.py @@ -2,7 +2,7 @@ # # Google Author(s): Behdad Esfahbod -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc.textTools import safeEval from . import DefaultTable import array diff --git a/Lib/fontTools/ttLib/tables/D_S_I_G_.py b/Lib/fontTools/ttLib/tables/D_S_I_G_.py index d9a02ba24..1a520cab6 100644 --- a/Lib/fontTools/ttLib/tables/D_S_I_G_.py +++ b/Lib/fontTools/ttLib/tables/D_S_I_G_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, strjoin, tobytes, tostr from fontTools.misc.textTools import safeEval from fontTools.misc import sstruct from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/DefaultTable.py b/Lib/fontTools/ttLib/tables/DefaultTable.py index 16f5da07c..c70480a33 100644 --- a/Lib/fontTools/ttLib/tables/DefaultTable.py +++ b/Lib/fontTools/ttLib/tables/DefaultTable.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag from fontTools.ttLib import getClassTag class DefaultTable(object): diff --git a/Lib/fontTools/ttLib/tables/E_B_D_T_.py b/Lib/fontTools/ttLib/tables/E_B_D_T_.py index e85a4cd1b..5d9e7244a 100644 --- a/Lib/fontTools/ttLib/tables/E_B_D_T_.py +++ b/Lib/fontTools/ttLib/tables/E_B_D_T_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, strjoin from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval, readHex, hexStr, deHexStr from .BitmapGlyphMetrics import BigGlyphMetrics, bigGlyphMetricsFormat, SmallGlyphMetrics, smallGlyphMetricsFormat diff --git a/Lib/fontTools/ttLib/tables/E_B_L_C_.py b/Lib/fontTools/ttLib/tables/E_B_L_C_.py index b065df078..94d40d966 100644 --- a/Lib/fontTools/ttLib/tables/E_B_L_C_.py +++ b/Lib/fontTools/ttLib/tables/E_B_L_C_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc import sstruct from . import DefaultTable from fontTools.misc.textTools import safeEval diff --git a/Lib/fontTools/ttLib/tables/F_F_T_M_.py b/Lib/fontTools/ttLib/tables/F_F_T_M_.py index 20a12eca5..2376f2db0 100644 --- a/Lib/fontTools/ttLib/tables/F_F_T_M_.py +++ b/Lib/fontTools/ttLib/tables/F_F_T_M_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from fontTools.misc.timeTools import timestampFromString, timestampToString diff --git a/Lib/fontTools/ttLib/tables/F__e_a_t.py b/Lib/fontTools/ttLib/tables/F__e_a_t.py index d7f0ba3d6..7e5106149 100644 --- a/Lib/fontTools/ttLib/tables/F__e_a_t.py +++ b/Lib/fontTools/ttLib/tables/F__e_a_t.py @@ -1,8 +1,6 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.fixedTools import floatToFixedToStr from fontTools.misc.textTools import safeEval -from .otBase import BaseTTXConverter from . import DefaultTable from . import grUtils import struct diff --git a/Lib/fontTools/ttLib/tables/G_D_E_F_.py b/Lib/fontTools/ttLib/tables/G_D_E_F_.py index 5fb65d540..d4a574148 100644 --- a/Lib/fontTools/ttLib/tables/G_D_E_F_.py +++ b/Lib/fontTools/ttLib/tables/G_D_E_F_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/G_M_A_P_.py b/Lib/fontTools/ttLib/tables/G_M_A_P_.py index 277f6f576..5b30dcfe4 100644 --- a/Lib/fontTools/ttLib/tables/G_M_A_P_.py +++ b/Lib/fontTools/ttLib/tables/G_M_A_P_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes, tostr from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/G_P_K_G_.py b/Lib/fontTools/ttLib/tables/G_P_K_G_.py index d2a8e27f8..7598a62aa 100644 --- a/Lib/fontTools/ttLib/tables/G_P_K_G_.py +++ b/Lib/fontTools/ttLib/tables/G_P_K_G_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval, readHex from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/G_P_O_S_.py b/Lib/fontTools/ttLib/tables/G_P_O_S_.py index 34d1ce145..013c8209b 100644 --- a/Lib/fontTools/ttLib/tables/G_P_O_S_.py +++ b/Lib/fontTools/ttLib/tables/G_P_O_S_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/G_S_U_B_.py b/Lib/fontTools/ttLib/tables/G_S_U_B_.py index 5ba87785a..44036490d 100644 --- a/Lib/fontTools/ttLib/tables/G_S_U_B_.py +++ b/Lib/fontTools/ttLib/tables/G_S_U_B_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/G__l_a_t.py b/Lib/fontTools/ttLib/tables/G__l_a_t.py index 8fdb96714..a4e8e38fa 100644 --- a/Lib/fontTools/ttLib/tables/G__l_a_t.py +++ b/Lib/fontTools/ttLib/tables/G__l_a_t.py @@ -1,12 +1,11 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.fixedTools import floatToFixedToStr from fontTools.misc.textTools import safeEval -from itertools import * +# from itertools import * from functools import partial from . import DefaultTable from . import grUtils -import struct, operator, warnings +import struct Glat_format_0 = """ diff --git a/Lib/fontTools/ttLib/tables/G__l_o_c.py b/Lib/fontTools/ttLib/tables/G__l_o_c.py index 4ff8a47b5..fa114a314 100644 --- a/Lib/fontTools/ttLib/tables/G__l_o_c.py +++ b/Lib/fontTools/ttLib/tables/G__l_o_c.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/H_V_A_R_.py b/Lib/fontTools/ttLib/tables/H_V_A_R_.py index 67d5a7bbb..56992ad03 100644 --- a/Lib/fontTools/ttLib/tables/H_V_A_R_.py +++ b/Lib/fontTools/ttLib/tables/H_V_A_R_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/J_S_T_F_.py b/Lib/fontTools/ttLib/tables/J_S_T_F_.py index 704f03040..ddf54055f 100644 --- a/Lib/fontTools/ttLib/tables/J_S_T_F_.py +++ b/Lib/fontTools/ttLib/tables/J_S_T_F_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/L_T_S_H_.py b/Lib/fontTools/ttLib/tables/L_T_S_H_.py index 689548b9b..94c2c22a0 100644 --- a/Lib/fontTools/ttLib/tables/L_T_S_H_.py +++ b/Lib/fontTools/ttLib/tables/L_T_S_H_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.textTools import safeEval from . import DefaultTable import struct diff --git a/Lib/fontTools/ttLib/tables/M_A_T_H_.py b/Lib/fontTools/ttLib/tables/M_A_T_H_.py index 7bf9098e4..d894c0827 100644 --- a/Lib/fontTools/ttLib/tables/M_A_T_H_.py +++ b/Lib/fontTools/ttLib/tables/M_A_T_H_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/M_E_T_A_.py b/Lib/fontTools/ttLib/tables/M_E_T_A_.py index c42e2cbbb..d4f6bc8cf 100644 --- a/Lib/fontTools/ttLib/tables/M_E_T_A_.py +++ b/Lib/fontTools/ttLib/tables/M_E_T_A_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import byteord from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from . import DefaultTable @@ -229,7 +229,7 @@ class GlyphRecord(object): # XXX The following two functions are really broken around UTF-8 vs Unicode def mapXMLToUTF8(string): - uString = unicode() + uString = str() strLen = len(string) i = 0 while i < strLen: @@ -245,9 +245,9 @@ def mapXMLToUTF8(string): i = i+1 valStr = string[j:i] - uString = uString + unichr(eval('0x' + valStr)) + uString = uString + chr(eval('0x' + valStr)) else: - uString = uString + unichr(byteord(string[i])) + uString = uString + chr(byteord(string[i])) i = i +1 return uString.encode('utf_8') diff --git a/Lib/fontTools/ttLib/tables/M_V_A_R_.py b/Lib/fontTools/ttLib/tables/M_V_A_R_.py index 4bae5afe3..34ab20f7d 100644 --- a/Lib/fontTools/ttLib/tables/M_V_A_R_.py +++ b/Lib/fontTools/ttLib/tables/M_V_A_R_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/O_S_2f_2.py b/Lib/fontTools/ttLib/tables/O_S_2f_2.py index 9d833d960..a57652246 100644 --- a/Lib/fontTools/ttLib/tables/O_S_2f_2.py +++ b/Lib/fontTools/ttLib/tables/O_S_2f_2.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval, num2binary, binary2num from fontTools.ttLib.tables import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/S_I_N_G_.py b/Lib/fontTools/ttLib/tables/S_I_N_G_.py index 619924236..dd9b63c48 100644 --- a/Lib/fontTools/ttLib/tables/S_I_N_G_.py +++ b/Lib/fontTools/ttLib/tables/S_I_N_G_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, tobytes, tostr from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/S_T_A_T_.py b/Lib/fontTools/ttLib/tables/S_T_A_T_.py index c8278e0ce..1769de91b 100644 --- a/Lib/fontTools/ttLib/tables/S_T_A_T_.py +++ b/Lib/fontTools/ttLib/tables/S_T_A_T_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/S_V_G_.py b/Lib/fontTools/ttLib/tables/S_V_G_.py index 89551cdab..135f2718f 100644 --- a/Lib/fontTools/ttLib/tables/S_V_G_.py +++ b/Lib/fontTools/ttLib/tables/S_V_G_.py @@ -1,12 +1,12 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, strjoin, tobytes, tostr from fontTools.misc import sstruct from . import DefaultTable try: import xml.etree.cElementTree as ET except ImportError: import xml.etree.ElementTree as ET +from io import BytesIO import struct -import re import logging diff --git a/Lib/fontTools/ttLib/tables/S__i_l_f.py b/Lib/fontTools/ttLib/tables/S__i_l_f.py index 9953d156e..95880b07b 100644 --- a/Lib/fontTools/ttLib/tables/S__i_l_f.py +++ b/Lib/fontTools/ttLib/tables/S__i_l_f.py @@ -1,13 +1,13 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import byteord from fontTools.misc import sstruct from fontTools.misc.fixedTools import floatToFixedToStr from fontTools.misc.textTools import safeEval -from itertools import * +# from itertools import * from . import DefaultTable from . import grUtils from array import array from functools import reduce -import struct, operator, warnings, re, sys +import struct, re, sys Silf_hdr_format = ''' > diff --git a/Lib/fontTools/ttLib/tables/S__i_l_l.py b/Lib/fontTools/ttLib/tables/S__i_l_l.py index 4d1344188..5ab9ee346 100644 --- a/Lib/fontTools/ttLib/tables/S__i_l_l.py +++ b/Lib/fontTools/ttLib/tables/S__i_l_l.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.fixedTools import floatToFixedToStr from fontTools.misc.textTools import safeEval diff --git a/Lib/fontTools/ttLib/tables/T_S_I_B_.py b/Lib/fontTools/ttLib/tables/T_S_I_B_.py index 88b001592..25d43104a 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_B_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_B_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .T_S_I_V_ import table_T_S_I_V_ class table_T_S_I_B_(table_T_S_I_V_): diff --git a/Lib/fontTools/ttLib/tables/T_S_I_C_.py b/Lib/fontTools/ttLib/tables/T_S_I_C_.py index 4f4763f36..573b3f9c3 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_C_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_C_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/T_S_I_D_.py b/Lib/fontTools/ttLib/tables/T_S_I_D_.py index 1fd3cb120..310eb174f 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_D_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_D_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .T_S_I_V_ import table_T_S_I_V_ class table_T_S_I_D_(table_T_S_I_V_): diff --git a/Lib/fontTools/ttLib/tables/T_S_I_J_.py b/Lib/fontTools/ttLib/tables/T_S_I_J_.py index 462ad89e5..c1a46ba6e 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_J_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_J_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .T_S_I_V_ import table_T_S_I_V_ class table_T_S_I_J_(table_T_S_I_V_): diff --git a/Lib/fontTools/ttLib/tables/T_S_I_P_.py b/Lib/fontTools/ttLib/tables/T_S_I_P_.py index 06d57354f..778974c86 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_P_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_P_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .T_S_I_V_ import table_T_S_I_V_ class table_T_S_I_P_(table_T_S_I_V_): diff --git a/Lib/fontTools/ttLib/tables/T_S_I_S_.py b/Lib/fontTools/ttLib/tables/T_S_I_S_.py index 27fcac766..61c9f76fe 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_S_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_S_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .T_S_I_V_ import table_T_S_I_V_ class table_T_S_I_S_(table_T_S_I_V_): diff --git a/Lib/fontTools/ttLib/tables/T_S_I_V_.py b/Lib/fontTools/ttLib/tables/T_S_I_V_.py index 1939cdc7b..802144528 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I_V_.py +++ b/Lib/fontTools/ttLib/tables/T_S_I_V_.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import strjoin, tobytes, tostr from . import asciiTable class table_T_S_I_V_(asciiTable.asciiTable): diff --git a/Lib/fontTools/ttLib/tables/T_S_I__0.py b/Lib/fontTools/ttLib/tables/T_S_I__0.py index 04f58cddc..b187f4251 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I__0.py +++ b/Lib/fontTools/ttLib/tables/T_S_I__0.py @@ -5,7 +5,6 @@ TSI0 is the index table containing the lengths and offsets for the glyph programs and 'extra' programs ('fpgm', 'prep', and 'cvt') that are contained in the TSI1 table. """ -from fontTools.misc.py23 import * from . import DefaultTable import struct diff --git a/Lib/fontTools/ttLib/tables/T_S_I__1.py b/Lib/fontTools/ttLib/tables/T_S_I__1.py index b014cb4bd..9ae7acd6c 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I__1.py +++ b/Lib/fontTools/ttLib/tables/T_S_I__1.py @@ -4,7 +4,7 @@ tool to store its hinting source data. TSI1 contains the text of the glyph programs in the form of low-level assembly code, as well as the 'extra' programs 'fpgm', 'ppgm' (i.e. 'prep'), and 'cvt'. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import strjoin, tobytes, tostr from . import DefaultTable from fontTools.misc.loggingTools import LogMixin @@ -68,7 +68,7 @@ class table_T_S_I__1(LogMixin, DefaultTable.DefaultTable): "%r textLength (%d) must not be > 32768" % (name, textLength)) text = data[textOffset:textOffset+textLength] assert len(text) == textLength - text = tounicode(text, encoding='utf-8') + text = tostr(text, encoding='utf-8') if text: programs[name] = text if isExtra: diff --git a/Lib/fontTools/ttLib/tables/T_S_I__2.py b/Lib/fontTools/ttLib/tables/T_S_I__2.py index f7206d083..036c98153 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I__2.py +++ b/Lib/fontTools/ttLib/tables/T_S_I__2.py @@ -5,7 +5,6 @@ TSI2 is the index table containing the lengths and offsets for the glyph programs that are contained in the TSI3 table. It uses the same format as the TSI0 table. """ -from fontTools.misc.py23 import * from fontTools import ttLib superclass = ttLib.getTableClass("TSI0") diff --git a/Lib/fontTools/ttLib/tables/T_S_I__3.py b/Lib/fontTools/ttLib/tables/T_S_I__3.py index 92e0e53e3..a2490142b 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I__3.py +++ b/Lib/fontTools/ttLib/tables/T_S_I__3.py @@ -3,7 +3,6 @@ tool to store its hinting source data. TSI3 contains the text of the glyph programs in the form of 'VTTTalk' code. """ -from fontTools.misc.py23 import * from fontTools import ttLib superclass = ttLib.getTableClass("TSI1") diff --git a/Lib/fontTools/ttLib/tables/T_S_I__5.py b/Lib/fontTools/ttLib/tables/T_S_I__5.py index 5c7da1cb4..7be09f9a4 100644 --- a/Lib/fontTools/ttLib/tables/T_S_I__5.py +++ b/Lib/fontTools/ttLib/tables/T_S_I__5.py @@ -3,7 +3,6 @@ tool to store its hinting source data. TSI5 contains the VTT character groups. """ -from fontTools.misc.py23 import * from fontTools.misc.textTools import safeEval from . import DefaultTable import sys diff --git a/Lib/fontTools/ttLib/tables/T_T_F_A_.py b/Lib/fontTools/ttLib/tables/T_T_F_A_.py index 3fdbd0702..8446dfc56 100644 --- a/Lib/fontTools/ttLib/tables/T_T_F_A_.py +++ b/Lib/fontTools/ttLib/tables/T_T_F_A_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from . import asciiTable class table_T_T_F_A_(asciiTable.asciiTable): diff --git a/Lib/fontTools/ttLib/tables/TupleVariation.py b/Lib/fontTools/ttLib/tables/TupleVariation.py index 7f5c3a66a..a63fb6c61 100644 --- a/Lib/fontTools/ttLib/tables/TupleVariation.py +++ b/Lib/fontTools/ttLib/tables/TupleVariation.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin from fontTools.misc.fixedTools import ( fixedToFloat as fi2fl, floatToFixed as fl2fi, diff --git a/Lib/fontTools/ttLib/tables/V_D_M_X_.py b/Lib/fontTools/ttLib/tables/V_D_M_X_.py index b4028c35f..ba8593f1c 100644 --- a/Lib/fontTools/ttLib/tables/V_D_M_X_.py +++ b/Lib/fontTools/ttLib/tables/V_D_M_X_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from . import DefaultTable from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval diff --git a/Lib/fontTools/ttLib/tables/V_O_R_G_.py b/Lib/fontTools/ttLib/tables/V_O_R_G_.py index 9f8139fb1..0b7fe959c 100644 --- a/Lib/fontTools/ttLib/tables/V_O_R_G_.py +++ b/Lib/fontTools/ttLib/tables/V_O_R_G_.py @@ -1,7 +1,6 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc.textTools import safeEval from . import DefaultTable -import operator import struct diff --git a/Lib/fontTools/ttLib/tables/V_V_A_R_.py b/Lib/fontTools/ttLib/tables/V_V_A_R_.py index b835fc162..88f30552a 100644 --- a/Lib/fontTools/ttLib/tables/V_V_A_R_.py +++ b/Lib/fontTools/ttLib/tables/V_V_A_R_.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/__init__.py b/Lib/fontTools/ttLib/tables/__init__.py index 0c99c22e9..bbfb8b70f 100644 --- a/Lib/fontTools/ttLib/tables/__init__.py +++ b/Lib/fontTools/ttLib/tables/__init__.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * # DON'T EDIT! This file is generated by MetaTools/buildTableList.py. def _moduleFinderHint(): @@ -15,6 +14,7 @@ def _moduleFinderHint(): from . import C_O_L_R_ from . import C_P_A_L_ from . import D_S_I_G_ + from . import D__e_b_g from . import E_B_D_T_ from . import E_B_L_C_ from . import F_F_T_M_ @@ -39,6 +39,7 @@ def _moduleFinderHint(): from . import S__i_l_f from . import S__i_l_l from . import T_S_I_B_ + from . import T_S_I_C_ from . import T_S_I_D_ from . import T_S_I_J_ from . import T_S_I_P_ diff --git a/Lib/fontTools/ttLib/tables/_a_n_k_r.py b/Lib/fontTools/ttLib/tables/_a_n_k_r.py index 9372168d8..1f2946c2c 100644 --- a/Lib/fontTools/ttLib/tables/_a_n_k_r.py +++ b/Lib/fontTools/ttLib/tables/_a_n_k_r.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_a_v_a_r.py b/Lib/fontTools/ttLib/tables/_a_v_a_r.py index 02c4c8877..2b6a40ed8 100644 --- a/Lib/fontTools/ttLib/tables/_a_v_a_r.py +++ b/Lib/fontTools/ttLib/tables/_a_v_a_r.py @@ -1,5 +1,4 @@ -from fontTools.misc.py23 import * -from fontTools import ttLib +from fontTools.misc.py23 import bytesjoin from fontTools.misc import sstruct from fontTools.misc.fixedTools import ( fixedToFloat as fi2fl, @@ -7,10 +6,8 @@ from fontTools.misc.fixedTools import ( floatToFixedToStr as fl2str, strToFixedToFloat as str2fl, ) -from fontTools.misc.textTools import safeEval from fontTools.ttLib import TTLibError from . import DefaultTable -import array import struct import logging diff --git a/Lib/fontTools/ttLib/tables/_b_s_l_n.py b/Lib/fontTools/ttLib/tables/_b_s_l_n.py index 8c0e39eab..8e266fa54 100644 --- a/Lib/fontTools/ttLib/tables/_b_s_l_n.py +++ b/Lib/fontTools/ttLib/tables/_b_s_l_n.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_c_i_d_g.py b/Lib/fontTools/ttLib/tables/_c_i_d_g.py index b9722563c..de83d4d6b 100644 --- a/Lib/fontTools/ttLib/tables/_c_i_d_g.py +++ b/Lib/fontTools/ttLib/tables/_c_i_d_g.py @@ -1,5 +1,4 @@ # coding: utf-8 -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_c_m_a_p.py b/Lib/fontTools/ttLib/tables/_c_m_a_p.py index f7f926691..a65a0c25c 100644 --- a/Lib/fontTools/ttLib/tables/_c_m_a_p.py +++ b/Lib/fontTools/ttLib/tables/_c_m_a_p.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc.textTools import safeEval, readHex from fontTools.misc.encodingTools import getEncoding from fontTools.ttLib import getSearchRange diff --git a/Lib/fontTools/ttLib/tables/_c_v_a_r.py b/Lib/fontTools/ttLib/tables/_c_v_a_r.py index e336d2487..09b2c16c5 100644 --- a/Lib/fontTools/ttLib/tables/_c_v_a_r.py +++ b/Lib/fontTools/ttLib/tables/_c_v_a_r.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from . import DefaultTable from fontTools.misc import sstruct from fontTools.ttLib.tables.TupleVariation import \ diff --git a/Lib/fontTools/ttLib/tables/_c_v_t.py b/Lib/fontTools/ttLib/tables/_c_v_t.py index 0016e3bb9..26395c933 100644 --- a/Lib/fontTools/ttLib/tables/_c_v_t.py +++ b/Lib/fontTools/ttLib/tables/_c_v_t.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.textTools import safeEval from . import DefaultTable import sys diff --git a/Lib/fontTools/ttLib/tables/_f_e_a_t.py b/Lib/fontTools/ttLib/tables/_f_e_a_t.py index 35344fddf..eb03f8ba6 100644 --- a/Lib/fontTools/ttLib/tables/_f_e_a_t.py +++ b/Lib/fontTools/ttLib/tables/_f_e_a_t.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_f_p_g_m.py b/Lib/fontTools/ttLib/tables/_f_p_g_m.py index 77fdc6d06..ec3576ce4 100644 --- a/Lib/fontTools/ttLib/tables/_f_p_g_m.py +++ b/Lib/fontTools/ttLib/tables/_f_p_g_m.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from . import DefaultTable from . import ttProgram diff --git a/Lib/fontTools/ttLib/tables/_f_v_a_r.py b/Lib/fontTools/ttLib/tables/_f_v_a_r.py index 933b25eb7..7487da623 100644 --- a/Lib/fontTools/ttLib/tables/_f_v_a_r.py +++ b/Lib/fontTools/ttLib/tables/_f_v_a_r.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, bytesjoin from fontTools.misc import sstruct from fontTools.misc.fixedTools import ( fixedToFloat as fi2fl, @@ -6,7 +6,7 @@ from fontTools.misc.fixedTools import ( floatToFixedToStr as fl2str, strToFixedToFloat as str2fl, ) -from fontTools.misc.textTools import safeEval, num2binary, binary2num +from fontTools.misc.textTools import safeEval from fontTools.ttLib import TTLibError from . import DefaultTable import struct diff --git a/Lib/fontTools/ttLib/tables/_g_a_s_p.py b/Lib/fontTools/ttLib/tables/_g_a_s_p.py index b49ccb59c..2c80913c4 100644 --- a/Lib/fontTools/ttLib/tables/_g_a_s_p.py +++ b/Lib/fontTools/ttLib/tables/_g_a_s_p.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.textTools import safeEval from . import DefaultTable import struct diff --git a/Lib/fontTools/ttLib/tables/_g_c_i_d.py b/Lib/fontTools/ttLib/tables/_g_c_i_d.py index b2da40af8..2e746c846 100644 --- a/Lib/fontTools/ttLib/tables/_g_c_i_d.py +++ b/Lib/fontTools/ttLib/tables/_g_c_i_d.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_g_l_y_f.py b/Lib/fontTools/ttLib/tables/_g_l_y_f.py index b8ed20d5e..4680ddbf0 100644 --- a/Lib/fontTools/ttLib/tables/_g_l_y_f.py +++ b/Lib/fontTools/ttLib/tables/_g_l_y_f.py @@ -1,7 +1,7 @@ """_g_l_y_f.py -- Converter classes for the 'glyf' table.""" from collections import namedtuple -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, tostr from fontTools.misc import sstruct from fontTools import ttLib from fontTools import version @@ -152,7 +152,7 @@ class table__g_l_y_f(DefaultTable.DefaultTable): if glyph.numberOfContours: if splitGlyphs: glyphPath = userNameToFileName( - tounicode(glyphName, 'utf-8'), + tostr(glyphName, 'utf-8'), existingGlyphFiles, prefix=path + ".", suffix=ext) diff --git a/Lib/fontTools/ttLib/tables/_g_v_a_r.py b/Lib/fontTools/ttLib/tables/_g_v_a_r.py index 944170713..8c9b530ee 100644 --- a/Lib/fontTools/ttLib/tables/_g_v_a_r.py +++ b/Lib/fontTools/ttLib/tables/_g_v_a_r.py @@ -1,8 +1,6 @@ -from fontTools.misc.py23 import * -from fontTools import ttLib +from fontTools.misc.py23 import bytesjoin from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval -from fontTools.ttLib import TTLibError from . import DefaultTable import array import itertools diff --git a/Lib/fontTools/ttLib/tables/_h_d_m_x.py b/Lib/fontTools/ttLib/tables/_h_d_m_x.py index db5d9d8aa..954d1bc18 100644 --- a/Lib/fontTools/ttLib/tables/_h_d_m_x.py +++ b/Lib/fontTools/ttLib/tables/_h_d_m_x.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, strjoin from fontTools.misc import sstruct from . import DefaultTable import array diff --git a/Lib/fontTools/ttLib/tables/_h_e_a_d.py b/Lib/fontTools/ttLib/tables/_h_e_a_d.py index 154669aee..4d19da03f 100644 --- a/Lib/fontTools/ttLib/tables/_h_e_a_d.py +++ b/Lib/fontTools/ttLib/tables/_h_e_a_d.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.fixedTools import floatToFixedToStr, strToFixedToFloat from fontTools.misc.textTools import safeEval, num2binary, binary2num diff --git a/Lib/fontTools/ttLib/tables/_h_h_e_a.py b/Lib/fontTools/ttLib/tables/_h_h_e_a.py index 4d93b28ab..9b8baaadf 100644 --- a/Lib/fontTools/ttLib/tables/_h_h_e_a.py +++ b/Lib/fontTools/ttLib/tables/_h_h_e_a.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from fontTools.misc.fixedTools import ( diff --git a/Lib/fontTools/ttLib/tables/_h_m_t_x.py b/Lib/fontTools/ttLib/tables/_h_m_t_x.py index 730574733..6980b8d81 100644 --- a/Lib/fontTools/ttLib/tables/_h_m_t_x.py +++ b/Lib/fontTools/ttLib/tables/_h_m_t_x.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.roundTools import otRound from fontTools import ttLib from fontTools.misc.textTools import safeEval diff --git a/Lib/fontTools/ttLib/tables/_k_e_r_n.py b/Lib/fontTools/ttLib/tables/_k_e_r_n.py index 39e659233..f3f714b2c 100644 --- a/Lib/fontTools/ttLib/tables/_k_e_r_n.py +++ b/Lib/fontTools/ttLib/tables/_k_e_r_n.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import getSearchRange from fontTools.misc.textTools import safeEval, readHex from fontTools.misc.fixedTools import ( diff --git a/Lib/fontTools/ttLib/tables/_l_c_a_r.py b/Lib/fontTools/ttLib/tables/_l_c_a_r.py index a3ee0dd21..e63310efe 100644 --- a/Lib/fontTools/ttLib/tables/_l_c_a_r.py +++ b/Lib/fontTools/ttLib/tables/_l_c_a_r.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_l_o_c_a.py b/Lib/fontTools/ttLib/tables/_l_o_c_a.py index df61fafd2..6a8693ed4 100644 --- a/Lib/fontTools/ttLib/tables/_l_o_c_a.py +++ b/Lib/fontTools/ttLib/tables/_l_o_c_a.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from . import DefaultTable import sys import array diff --git a/Lib/fontTools/ttLib/tables/_l_t_a_g.py b/Lib/fontTools/ttLib/tables/_l_t_a_g.py index 011c46be4..caec72a37 100644 --- a/Lib/fontTools/ttLib/tables/_l_t_a_g.py +++ b/Lib/fontTools/ttLib/tables/_l_t_a_g.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, tobytes from fontTools.misc.textTools import safeEval from . import DefaultTable import struct diff --git a/Lib/fontTools/ttLib/tables/_m_a_x_p.py b/Lib/fontTools/ttLib/tables/_m_a_x_p.py index fc1e69dd6..e810806dc 100644 --- a/Lib/fontTools/ttLib/tables/_m_a_x_p.py +++ b/Lib/fontTools/ttLib/tables/_m_a_x_p.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/_m_e_t_a.py b/Lib/fontTools/ttLib/tables/_m_e_t_a.py index 2cd479c9a..1a125f824 100644 --- a/Lib/fontTools/ttLib/tables/_m_e_t_a.py +++ b/Lib/fontTools/ttLib/tables/_m_e_t_a.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, strjoin from fontTools.misc import sstruct from fontTools.misc.textTools import readHex from fontTools.ttLib import TTLibError diff --git a/Lib/fontTools/ttLib/tables/_m_o_r_t.py b/Lib/fontTools/ttLib/tables/_m_o_r_t.py index ea86ba8d6..261e593e2 100644 --- a/Lib/fontTools/ttLib/tables/_m_o_r_t.py +++ b/Lib/fontTools/ttLib/tables/_m_o_r_t.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_m_o_r_x.py b/Lib/fontTools/ttLib/tables/_m_o_r_x.py index e64e2b81c..da299c6d8 100644 --- a/Lib/fontTools/ttLib/tables/_m_o_r_x.py +++ b/Lib/fontTools/ttLib/tables/_m_o_r_x.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_n_a_m_e.py b/Lib/fontTools/ttLib/tables/_n_a_m_e.py index 4bb9024ba..206469def 100644 --- a/Lib/fontTools/ttLib/tables/_n_a_m_e.py +++ b/Lib/fontTools/ttLib/tables/_n_a_m_e.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, bytesjoin, strjoin, tobytes, tostr from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from fontTools.misc.encodingTools import getEncoding @@ -133,7 +133,7 @@ class table__n_a_m_e(DefaultTable.DefaultTable): """ if not hasattr(self, 'names'): self.names = [] - if not isinstance(string, unicode): + if not isinstance(string, str): if isinstance(string, bytes): log.warning( "name string is bytes, ensure it's correctly encoded: %r", string) @@ -310,10 +310,9 @@ class table__n_a_m_e(DefaultTable.DefaultTable): "'platforms' must contain at least one (platformID, platEncID, langID) tuple" if not hasattr(self, 'names'): self.names = [] - if not isinstance(string, unicode): + if not isinstance(string, str): raise TypeError( - "expected %s, found %s: %r" % ( - unicode.__name__, type(string).__name__,string )) + "expected str, found %s: %r" % (type(string).__name__, string)) nameID = self._findUnusedNameID(minNameID + 1) for platformID, platEncID, langID in platforms: self.names.append(makeName(string, nameID, platformID, platEncID, langID)) @@ -457,7 +456,7 @@ class NameRecord(object): elif byteord(string[0]) == 0 and all(isascii(byteord(b)) for b in string[1:]): string = bytesjoin(b'\0'+bytechr(byteord(b)) for b in string[1:]) - string = tounicode(string, encoding=encoding, errors=errors) + string = tostr(string, encoding=encoding, errors=errors) # If decoded strings still looks like UTF-16BE, it suggests a double-encoding. # Fix it up. diff --git a/Lib/fontTools/ttLib/tables/_o_p_b_d.py b/Lib/fontTools/ttLib/tables/_o_p_b_d.py index a8768968a..b22af216b 100644 --- a/Lib/fontTools/ttLib/tables/_o_p_b_d.py +++ b/Lib/fontTools/ttLib/tables/_o_p_b_d.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_p_o_s_t.py b/Lib/fontTools/ttLib/tables/_p_o_s_t.py index 3dd3b77cf..e26e81f80 100644 --- a/Lib/fontTools/ttLib/tables/_p_o_s_t.py +++ b/Lib/fontTools/ttLib/tables/_p_o_s_t.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, byteord, tobytes, tostr from fontTools import ttLib from fontTools.ttLib.standardGlyphOrder import standardGlyphOrder from fontTools.misc import sstruct diff --git a/Lib/fontTools/ttLib/tables/_p_r_e_p.py b/Lib/fontTools/ttLib/tables/_p_r_e_p.py index b66ad1bf5..7f517fb8e 100644 --- a/Lib/fontTools/ttLib/tables/_p_r_e_p.py +++ b/Lib/fontTools/ttLib/tables/_p_r_e_p.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools import ttLib superclass = ttLib.getTableClass("fpgm") diff --git a/Lib/fontTools/ttLib/tables/_p_r_o_p.py b/Lib/fontTools/ttLib/tables/_p_r_o_p.py index 7b4738a3f..aead9d720 100644 --- a/Lib/fontTools/ttLib/tables/_p_r_o_p.py +++ b/Lib/fontTools/ttLib/tables/_p_r_o_p.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from .otBase import BaseTTXConverter diff --git a/Lib/fontTools/ttLib/tables/_s_b_i_x.py b/Lib/fontTools/ttLib/tables/_s_b_i_x.py index 0bfabca4a..c4b2ad389 100644 --- a/Lib/fontTools/ttLib/tables/_s_b_i_x.py +++ b/Lib/fontTools/ttLib/tables/_s_b_i_x.py @@ -1,9 +1,7 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval, num2binary, binary2num from . import DefaultTable -from .sbixGlyph import * -from .sbixStrike import * +from .sbixStrike import Strike sbixHeaderFormat = """ diff --git a/Lib/fontTools/ttLib/tables/_t_r_a_k.py b/Lib/fontTools/ttLib/tables/_t_r_a_k.py index 7448916c2..7f3227dc5 100644 --- a/Lib/fontTools/ttLib/tables/_t_r_a_k.py +++ b/Lib/fontTools/ttLib/tables/_t_r_a_k.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc import sstruct from fontTools.misc.fixedTools import ( fixedToFloat as fi2fl, diff --git a/Lib/fontTools/ttLib/tables/_v_h_e_a.py b/Lib/fontTools/ttLib/tables/_v_h_e_a.py index 55ba45a1d..2bb24667f 100644 --- a/Lib/fontTools/ttLib/tables/_v_h_e_a.py +++ b/Lib/fontTools/ttLib/tables/_v_h_e_a.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import safeEval from fontTools.misc.fixedTools import ( diff --git a/Lib/fontTools/ttLib/tables/_v_m_t_x.py b/Lib/fontTools/ttLib/tables/_v_m_t_x.py index 761a4c9a5..fc818d83d 100644 --- a/Lib/fontTools/ttLib/tables/_v_m_t_x.py +++ b/Lib/fontTools/ttLib/tables/_v_m_t_x.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools import ttLib superclass = ttLib.getTableClass("hmtx") diff --git a/Lib/fontTools/ttLib/tables/asciiTable.py b/Lib/fontTools/ttLib/tables/asciiTable.py index 0ad83ebe7..7b036c8e1 100644 --- a/Lib/fontTools/ttLib/tables/asciiTable.py +++ b/Lib/fontTools/ttLib/tables/asciiTable.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import strjoin, tobytes, tostr from . import DefaultTable diff --git a/Lib/fontTools/ttLib/tables/otBase.py b/Lib/fontTools/ttLib/tables/otBase.py index c47e940f0..3c07f9e11 100644 --- a/Lib/fontTools/ttLib/tables/otBase.py +++ b/Lib/fontTools/ttLib/tables/otBase.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, bytesjoin from .DefaultTable import DefaultTable import sys import array diff --git a/Lib/fontTools/ttLib/tables/otConverters.py b/Lib/fontTools/ttLib/tables/otConverters.py index 28c8cc876..4af38acd1 100644 --- a/Lib/fontTools/ttLib/tables/otConverters.py +++ b/Lib/fontTools/ttLib/tables/otConverters.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, tobytes, tostr from fontTools.misc.fixedTools import ( fixedToFloat as fi2fl, floatToFixed as fl2fi, @@ -424,8 +424,8 @@ class Char64(SimpleValue): zeroPos = data.find(b"\0") if zeroPos >= 0: data = data[:zeroPos] - s = tounicode(data, encoding="ascii", errors="replace") - if s != tounicode(data, encoding="ascii", errors="ignore"): + s = tostr(data, encoding="ascii", errors="replace") + if s != tostr(data, encoding="ascii", errors="ignore"): log.warning('replaced non-ASCII characters in "%s"' % s) return s diff --git a/Lib/fontTools/ttLib/tables/otData.py b/Lib/fontTools/ttLib/tables/otData.py index f1c2c5665..c42941693 100755 --- a/Lib/fontTools/ttLib/tables/otData.py +++ b/Lib/fontTools/ttLib/tables/otData.py @@ -1,6 +1,3 @@ -# coding: utf-8 -from fontTools.misc.py23 import * - otData = [ # diff --git a/Lib/fontTools/ttLib/tables/otTables.py b/Lib/fontTools/ttLib/tables/otTables.py index 29ca29714..85befb3b1 100644 --- a/Lib/fontTools/ttLib/tables/otTables.py +++ b/Lib/fontTools/ttLib/tables/otTables.py @@ -8,7 +8,7 @@ converter objects from otConverters.py. from enum import IntEnum import itertools from collections import namedtuple -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin from fontTools.misc.roundTools import otRound from fontTools.misc.textTools import pad, safeEval from .otBase import ( diff --git a/Lib/fontTools/ttLib/tables/sbixGlyph.py b/Lib/fontTools/ttLib/tables/sbixGlyph.py index c27ecfe2d..fe29c0904 100644 --- a/Lib/fontTools/ttLib/tables/sbixGlyph.py +++ b/Lib/fontTools/ttLib/tables/sbixGlyph.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct from fontTools.misc.textTools import readHex, safeEval import struct diff --git a/Lib/fontTools/ttLib/tables/sbixStrike.py b/Lib/fontTools/ttLib/tables/sbixStrike.py index 7e3e17e8b..b367a99fd 100644 --- a/Lib/fontTools/ttLib/tables/sbixStrike.py +++ b/Lib/fontTools/ttLib/tables/sbixStrike.py @@ -1,7 +1,6 @@ -from fontTools.misc.py23 import * from fontTools.misc import sstruct -from fontTools.misc.textTools import readHex -from .sbixGlyph import * +from fontTools.misc.textTools import safeEval +from .sbixGlyph import Glyph import struct sbixStrikeHeaderFormat = """ diff --git a/Lib/fontTools/ttLib/tables/ttProgram.py b/Lib/fontTools/ttLib/tables/ttProgram.py index 3094d62bc..a1dfa3c52 100644 --- a/Lib/fontTools/ttLib/tables/ttProgram.py +++ b/Lib/fontTools/ttLib/tables/ttProgram.py @@ -1,8 +1,9 @@ """ttLib.tables.ttProgram.py -- Assembler/disassembler for TrueType bytecode programs.""" -from fontTools.misc.py23 import * +from fontTools.misc.py23 import strjoin from fontTools.misc.textTools import num2binary, binary2num, readHex import array +from io import StringIO import re import logging diff --git a/Lib/fontTools/ttLib/ttCollection.py b/Lib/fontTools/ttLib/ttCollection.py index eb22ba76c..3db4c8cd3 100644 --- a/Lib/fontTools/ttLib/ttCollection.py +++ b/Lib/fontTools/ttLib/ttCollection.py @@ -1,6 +1,6 @@ -from fontTools.misc.py23 import * from fontTools.ttLib.ttFont import TTFont from fontTools.ttLib.sfnt import readTTCHeader, writeTTCHeader +from io import BytesIO import struct import logging @@ -104,7 +104,7 @@ class TTCollection(object): return self.fonts[item] def __setitem__(self, item, value): - self.fonts[item] = values + self.fonts[item] = value def __delitem__(self, item): return self.fonts[item] diff --git a/Lib/fontTools/ttLib/ttFont.py b/Lib/fontTools/ttLib/ttFont.py index c230e26d2..6a7b4fe71 100644 --- a/Lib/fontTools/ttLib/ttFont.py +++ b/Lib/fontTools/ttLib/ttFont.py @@ -1,11 +1,11 @@ from fontTools.misc import xmlWriter -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, byteord, tostr from fontTools.misc.loggingTools import deprecateArgument from fontTools.ttLib import TTLibError from fontTools.ttLib.sfnt import SFNTReader, SFNTWriter +from io import BytesIO, StringIO import os import logging -import itertools log = logging.getLogger(__name__) diff --git a/Lib/fontTools/ttLib/woff2.py b/Lib/fontTools/ttLib/woff2.py index d088b70f6..cc58afa5f 100644 --- a/Lib/fontTools/ttLib/woff2.py +++ b/Lib/fontTools/ttLib/woff2.py @@ -1,4 +1,5 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, bytechr, byteord, bytesjoin +from io import BytesIO import sys import array import struct diff --git a/Lib/fontTools/ttx.py b/Lib/fontTools/ttx.py index 9522c625f..2eed0c5cc 100644 --- a/Lib/fontTools/ttx.py +++ b/Lib/fontTools/ttx.py @@ -86,7 +86,7 @@ usage: ttx [options] inputfile1 [... inputfileN] """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, tostr from fontTools.ttLib import TTFont, TTLibError from fontTools.misc.macCreatorType import getMacCreatorAndType from fontTools.unicode import setUnicodeData diff --git a/Lib/fontTools/ufoLib/plistlib.py b/Lib/fontTools/ufoLib/plistlib.py index cfea9a5eb..763816873 100644 --- a/Lib/fontTools/ufoLib/plistlib.py +++ b/Lib/fontTools/ufoLib/plistlib.py @@ -2,7 +2,8 @@ for the old ufoLib.plistlib module, which was moved to fontTools.misc.plistlib. Please use the latter instead. """ -from fontTools.misc.plistlib import dump, dumps, load, loads, tobytes +from fontTools.misc.plistlib import dump, dumps, load, loads +from fontTools.misc.py23 import tobytes # The following functions were part of the old py2-like ufoLib.plistlib API. # They are kept only for backward compatiblity. diff --git a/Lib/fontTools/unicode.py b/Lib/fontTools/unicode.py index feb761d66..e0867aa1f 100644 --- a/Lib/fontTools/unicode.py +++ b/Lib/fontTools/unicode.py @@ -1,7 +1,4 @@ -from fontTools.misc.py23 import * - def _makeunicodes(f): - import re lines = iter(f.readlines()) unicodes = {} for line in lines: @@ -39,7 +36,7 @@ class _UnicodeBuiltin(object): except ImportError: import unicodedata try: - return unicodedata.name(unichr(charCode)) + return unicodedata.name(chr(charCode)) except ValueError: return "????" diff --git a/Lib/fontTools/unicodedata/__init__.py b/Lib/fontTools/unicodedata/__init__.py index 404ad8b85..8845b8295 100644 --- a/Lib/fontTools/unicodedata/__init__.py +++ b/Lib/fontTools/unicodedata/__init__.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import byteord, tostr import re from bisect import bisect_right @@ -50,7 +50,7 @@ def script(char): 'Latn' >>> script(",") 'Zyyy' - >>> script(unichr(0x10FFFF)) + >>> script(chr(0x10FFFF)) 'Zzzz' """ code = byteord(char) @@ -73,9 +73,9 @@ def script_extension(char): >>> script_extension("a") == {'Latn'} True - >>> script_extension(unichr(0x060C)) == {'Rohg', 'Syrc', 'Yezi', 'Arab', 'Thaa'} + >>> script_extension(chr(0x060C)) == {'Rohg', 'Syrc', 'Yezi', 'Arab', 'Thaa'} True - >>> script_extension(unichr(0x10FFFF)) == {'Zzzz'} + >>> script_extension(chr(0x10FFFF)) == {'Zzzz'} True """ code = byteord(char) @@ -219,9 +219,9 @@ def block(char): >>> block("a") 'Basic Latin' - >>> block(unichr(0x060C)) + >>> block(chr(0x060C)) 'Arabic' - >>> block(unichr(0xEFFFF)) + >>> block(chr(0xEFFFF)) 'No_Block' """ code = byteord(char) diff --git a/Lib/fontTools/varLib/__init__.py b/Lib/fontTools/varLib/__init__.py index 995159bcd..36ff0d97b 100644 --- a/Lib/fontTools/varLib/__init__.py +++ b/Lib/fontTools/varLib/__init__.py @@ -18,7 +18,7 @@ Then you can make a variable-font this way: API *will* change in near future. """ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, tostr from fontTools.misc.roundTools import noRound, otRound from fontTools.misc.vector import Vector from fontTools.ttLib import TTFont, newTable @@ -91,7 +91,7 @@ def _add_fvar(font, axes, instances): "stylename element with an 'xml:lang=\"en\"' attribute)." ) localisedStyleName = dict(instance.localisedStyleName) - localisedStyleName["en"] = tounicode(instance.styleName) + localisedStyleName["en"] = tostr(instance.styleName) else: localisedStyleName = instance.localisedStyleName @@ -100,7 +100,7 @@ def _add_fvar(font, axes, instances): inst = NamedInstance() inst.subfamilyNameID = nameTable.addMultilingualName(localisedStyleName) if psname is not None: - psname = tounicode(psname) + psname = tostr(psname) inst.postscriptNameID = nameTable.addName(psname) inst.coordinates = {axes[k].tag:axes[k].map_backward(v) for k,v in coordinates.items()} #inst.coordinates = {axes[k].tag:v for k,v in coordinates.items()} @@ -751,7 +751,7 @@ def load_designspace(designspace): if not axis.tag: raise VarLibValidationError(f"Axis at index {axis_index} needs a tag.") if not axis.labelNames: - axis.labelNames["en"] = tounicode(axis_name) + axis.labelNames["en"] = tostr(axis_name) axes[axis_name] = axis log.info("Axes:\n%s", pformat([axis.asdict() for axis in axes.values()])) diff --git a/MetaTools/buildTableList.py b/MetaTools/buildTableList.py index 36b9fa0a0..c3766b981 100755 --- a/MetaTools/buildTableList.py +++ b/MetaTools/buildTableList.py @@ -33,8 +33,6 @@ tables.sort() with open(os.path.join(tablesDir, "__init__.py"), "w") as file: file.write(''' -from fontTools.misc.py23 import * - # DON'T EDIT! This file is generated by MetaTools/buildTableList.py. def _moduleFinderHint(): """Dummy function to let modulefinder know what tables may be diff --git a/Snippets/cmap-format.py b/Snippets/cmap-format.py index 369df0009..0a78670fb 100755 --- a/Snippets/cmap-format.py +++ b/Snippets/cmap-format.py @@ -10,7 +10,6 @@ # getEncoding() of subtable and use that encoding to map the # characters to Unicode... TODO: Extend this script to do that. -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.ttLib.tables._c_m_a_p import CmapSubtable import sys diff --git a/Snippets/interpolate.py b/Snippets/interpolate.py index ca4498542..063046c9c 100755 --- a/Snippets/interpolate.py +++ b/Snippets/interpolate.py @@ -21,7 +21,6 @@ # $ ./interpolate.py && open Roboto.ttf -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.ttLib.tables._n_a_m_e import NameRecord from fontTools.ttLib.tables._f_v_a_r import table__f_v_a_r, Axis, NamedInstance diff --git a/Snippets/layout-features.py b/Snippets/layout-features.py index 60ed20d33..53e973559 100755 --- a/Snippets/layout-features.py +++ b/Snippets/layout-features.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.ttLib.tables import otTables import sys diff --git a/Snippets/subset-fpgm.py b/Snippets/subset-fpgm.py index e242a77c4..d06c3f5f1 100755 --- a/Snippets/subset-fpgm.py +++ b/Snippets/subset-fpgm.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont import sys diff --git a/Tests/afmLib/afmLib_test.py b/Tests/afmLib/afmLib_test.py index 498679058..3e9d9d881 100644 --- a/Tests/afmLib/afmLib_test.py +++ b/Tests/afmLib/afmLib_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import unittest import os from fontTools import afmLib diff --git a/Tests/agl_test.py b/Tests/agl_test.py index 0391ce20b..f2fb72d0f 100644 --- a/Tests/agl_test.py +++ b/Tests/agl_test.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -from fontTools.misc.py23 import * from fontTools import agl import unittest diff --git a/Tests/designspaceLib/designspace_test.py b/Tests/designspaceLib/designspace_test.py index f883730fe..8daf741d9 100644 --- a/Tests/designspaceLib/designspace_test.py +++ b/Tests/designspaceLib/designspace_test.py @@ -5,7 +5,6 @@ import sys import pytest import warnings -from fontTools.misc.py23 import open from fontTools.misc import plistlib from fontTools.designspaceLib import ( DesignSpaceDocument, SourceDescriptor, AxisDescriptor, RuleDescriptor, diff --git a/Tests/encodings/codecs_test.py b/Tests/encodings/codecs_test.py index ec8f92cd6..9dac416a6 100644 --- a/Tests/encodings/codecs_test.py +++ b/Tests/encodings/codecs_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import unittest import fontTools.encodings.codecs # Not to be confused with "import codecs" @@ -6,19 +5,19 @@ class ExtendedCodecsTest(unittest.TestCase): def test_decode_mac_japanese(self): self.assertEqual(b'x\xfe\xfdy'.decode("x_mac_japanese_ttx"), - unichr(0x78)+unichr(0x2122)+unichr(0x00A9)+unichr(0x79)) + chr(0x78)+chr(0x2122)+chr(0x00A9)+chr(0x79)) def test_encode_mac_japanese(self): self.assertEqual(b'x\xfe\xfdy', - (unichr(0x78)+unichr(0x2122)+unichr(0x00A9)+unichr(0x79)).encode("x_mac_japanese_ttx")) + (chr(0x78)+chr(0x2122)+chr(0x00A9)+chr(0x79)).encode("x_mac_japanese_ttx")) def test_decode_mac_trad_chinese(self): self.assertEqual(b'\x80'.decode("x_mac_trad_chinese_ttx"), - unichr(0x5C)) + chr(0x5C)) def test_decode_mac_romanian(self): self.assertEqual(b'x\xfb'.decode("mac_romanian"), - unichr(0x78)+unichr(0x02DA)) + chr(0x78)+chr(0x02DA)) if __name__ == '__main__': import sys diff --git a/Tests/feaLib/builder_test.py b/Tests/feaLib/builder_test.py index 2567a74c4..0a55239c9 100644 --- a/Tests/feaLib/builder_test.py +++ b/Tests/feaLib/builder_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.feaLib.builder import Builder, addOpenTypeFeatures, \ addOpenTypeFeaturesFromString @@ -8,6 +7,7 @@ from fontTools.feaLib.parser import Parser from fontTools.feaLib import ast from fontTools.feaLib.lexer import Lexer import difflib +from io import StringIO import os import re import shutil @@ -775,7 +775,7 @@ class BuilderTest(unittest.TestCase): self.assertRaises(NotImplementedError, self.build, "", tables={"FOO"}) def test_build_pre_parsed_ast_featurefile(self): - f = UnicodeIO("feature liga {sub f i by f_i;} liga;") + f = StringIO("feature liga {sub f i by f_i;} liga;") tree = Parser(f).parse() font = makeTTFont() addOpenTypeFeatures(font, tree) diff --git a/Tests/feaLib/lexer_test.py b/Tests/feaLib/lexer_test.py index 238552ec9..24dc5dbab 100644 --- a/Tests/feaLib/lexer_test.py +++ b/Tests/feaLib/lexer_test.py @@ -1,6 +1,7 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes from fontTools.feaLib.error import FeatureLibError, IncludedFeaNotFound from fontTools.feaLib.lexer import IncludingLexer, Lexer +from io import StringIO import os import shutil import tempfile @@ -184,7 +185,7 @@ class IncludingLexerTest(unittest.TestCase): lambda: list(lexer)) def test_featurefilepath_None(self): - lexer = IncludingLexer(UnicodeIO("# foobar")) + lexer = IncludingLexer(StringIO("# foobar")) self.assertIsNone(lexer.featurefilepath) files = set(loc.file for _, _, loc in lexer) self.assertIn("", files) @@ -196,7 +197,7 @@ class IncludingLexerTest(unittest.TestCase): pos A B -40; } kern; """, encoding="utf-8")) - including = UnicodeIO("include(%s);" % included.name) + including = StringIO("include(%s);" % included.name) try: lexer = IncludingLexer(including) files = set(loc.file for _, _, loc in lexer) @@ -224,7 +225,7 @@ class IncludingLexerTest(unittest.TestCase): # itself have a path, because it was initialized from # an in-memory stream, so it will use the current working # directory to resolve relative include statements - lexer = IncludingLexer(UnicodeIO("include(included.fea);")) + lexer = IncludingLexer(StringIO("include(included.fea);")) files = set(os.path.realpath(loc.file) for _, _, loc in lexer) expected = os.path.realpath(included.name) self.assertIn(expected, files) diff --git a/Tests/merge_test.py b/Tests/merge_test.py index 0fb89c10e..015248dd0 100644 --- a/Tests/merge_test.py +++ b/Tests/merge_test.py @@ -1,10 +1,9 @@ import io import itertools -from fontTools.misc.py23 import * from fontTools import ttLib from fontTools.ttLib.tables._g_l_y_f import Glyph from fontTools.fontBuilder import FontBuilder -from fontTools.merge import * +from fontTools.merge import Merger import unittest import pytest diff --git a/Tests/misc/arrayTools_test.py b/Tests/misc/arrayTools_test.py index 127f153c8..45b186fe5 100644 --- a/Tests/misc/arrayTools_test.py +++ b/Tests/misc/arrayTools_test.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * -from fontTools.misc.py23 import round3 from fontTools.misc.arrayTools import ( calcBounds, calcIntBounds, updateBounds, pointInRect, pointsInRect, vectorLength, asInt16, normRect, scaleRect, offsetRect, insetRect, @@ -20,7 +18,7 @@ def test_calcIntBounds(): assert calcIntBounds( [(0.1, 40.1), (0.1, 100.1), (49.9, 49.9), (78.5, 9.5)], - round=round3 + round=round ) == (0, 10, 78, 100) diff --git a/Tests/misc/bezierTools_test.py b/Tests/misc/bezierTools_test.py index af120e686..c5cd1b732 100644 --- a/Tests/misc/bezierTools_test.py +++ b/Tests/misc/bezierTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.bezierTools import ( calcQuadraticBounds, calcCubicBounds, segmentPointAtT, splitLine, splitQuadratic, splitCubic, splitQuadraticAtT, splitCubicAtT, solveCubic) diff --git a/Tests/misc/classifyTools_test.py b/Tests/misc/classifyTools_test.py index 071baec66..72a975231 100644 --- a/Tests/misc/classifyTools_test.py +++ b/Tests/misc/classifyTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.classifyTools import classify diff --git a/Tests/misc/eexec_test.py b/Tests/misc/eexec_test.py index 4c508dd7b..f72760a70 100644 --- a/Tests/misc/eexec_test.py +++ b/Tests/misc/eexec_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.eexec import decrypt, encrypt diff --git a/Tests/misc/encodingTools_test.py b/Tests/misc/encodingTools_test.py index 49961d843..1a131f61f 100644 --- a/Tests/misc/encodingTools_test.py +++ b/Tests/misc/encodingTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import unittest from fontTools.misc.encodingTools import getEncoding @@ -19,7 +18,7 @@ class EncodingTest(unittest.TestCase): def test_extended_mac_encodings(self): encoding = getEncoding(1, 1, 0) # Mac Japanese decoded = b'\xfe'.decode(encoding) - self.assertEqual(decoded, unichr(0x2122)) + self.assertEqual(decoded, chr(0x2122)) def test_extended_unknown(self): self.assertEqual(getEncoding(10, 11, 12), None) diff --git a/Tests/misc/fixedTools_test.py b/Tests/misc/fixedTools_test.py index fe836ea63..dea61b908 100644 --- a/Tests/misc/fixedTools_test.py +++ b/Tests/misc/fixedTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.fixedTools import ( fixedToFloat, floatToFixed, diff --git a/Tests/misc/loggingTools_test.py b/Tests/misc/loggingTools_test.py index c726d5eea..fd13044cd 100644 --- a/Tests/misc/loggingTools_test.py +++ b/Tests/misc/loggingTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import ( LevelFormatter, Timer, @@ -6,6 +5,7 @@ from fontTools.misc.loggingTools import ( ChannelsFilter, LogMixin, ) +from io import StringIO import logging import textwrap import time diff --git a/Tests/misc/macRes_test.py b/Tests/misc/macRes_test.py index 2c0fd6a4e..a6a8e9d47 100644 --- a/Tests/misc/macRes_test.py +++ b/Tests/misc/macRes_test.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from io import BytesIO import sys import os import tempfile diff --git a/Tests/misc/plistlib_test.py b/Tests/misc/plistlib_test.py index 7222bd28b..b2ce408d1 100644 --- a/Tests/misc/plistlib_test.py +++ b/Tests/misc/plistlib_test.py @@ -5,7 +5,7 @@ import codecs import collections from io import BytesIO from numbers import Integral -from fontTools.misc.py23 import tounicode +from fontTools.misc.py23 import tostr from fontTools.misc import etree from fontTools.misc import plistlib from fontTools.ufoLib.plistlib import ( @@ -421,7 +421,7 @@ def test_fromtree(parametrized_pl): def _strip(txt): return ( - "".join(l.strip() for l in tounicode(txt, "utf-8").splitlines()) + "".join(l.strip() for l in tostr(txt, "utf-8").splitlines()) if txt is not None else "" ) diff --git a/Tests/misc/py23_test.py b/Tests/misc/py23_test.py index 911ecce73..61274cc2e 100644 --- a/Tests/misc/py23_test.py +++ b/Tests/misc/py23_test.py @@ -1,6 +1,7 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes from fontTools.misc.textTools import deHexStr import filecmp +from io import StringIO import tempfile from subprocess import check_call import sys diff --git a/Tests/misc/testTools_test.py b/Tests/misc/testTools_test.py index 82e73a1b5..80d4d2bab 100644 --- a/Tests/misc/testTools_test.py +++ b/Tests/misc/testTools_test.py @@ -1,5 +1,3 @@ -# -*- coding: utf-8 -*- -from fontTools.misc.py23 import * import fontTools.misc.testTools as testTools import unittest diff --git a/Tests/misc/textTools_test.py b/Tests/misc/textTools_test.py index 44c7cc33d..f83abf916 100644 --- a/Tests/misc/textTools_test.py +++ b/Tests/misc/textTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.textTools import pad diff --git a/Tests/misc/timeTools_test.py b/Tests/misc/timeTools_test.py index e1e0cd839..4d75ce4ee 100644 --- a/Tests/misc/timeTools_test.py +++ b/Tests/misc/timeTools_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.timeTools import asctime, timestampNow, timestampToString, timestampFromString, epoch_diff import os import time diff --git a/Tests/misc/transform_test.py b/Tests/misc/transform_test.py index d679e28a1..4efab81f4 100644 --- a/Tests/misc/transform_test.py +++ b/Tests/misc/transform_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.transform import Transform, Identity, Offset, Scale import math import pytest diff --git a/Tests/misc/xmlReader_test.py b/Tests/misc/xmlReader_test.py index afa18218f..f6775cbcd 100644 --- a/Tests/misc/xmlReader_test.py +++ b/Tests/misc/xmlReader_test.py @@ -1,6 +1,5 @@ -# -*- coding: utf-8 -*- - -from fontTools.misc.py23 import * +from fontTools.misc.py23 import strjoin +from io import BytesIO import os import unittest from fontTools.ttLib import TTFont diff --git a/Tests/misc/xmlWriter_test.py b/Tests/misc/xmlWriter_test.py index fd0ba89a2..fd4f24089 100644 --- a/Tests/misc/xmlWriter_test.py +++ b/Tests/misc/xmlWriter_test.py @@ -1,4 +1,5 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, tobytes +from io import BytesIO import os import unittest from fontTools.misc.xmlWriter import XMLWriter diff --git a/Tests/mtiLib/mti_test.py b/Tests/mtiLib/mti_test.py index 1666dd45c..f0e7bdf3d 100644 --- a/Tests/mtiLib/mti_test.py +++ b/Tests/mtiLib/mti_test.py @@ -1,8 +1,8 @@ -from fontTools.misc.py23 import * from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib import TTFont from fontTools import mtiLib import difflib +from io import StringIO import os import sys import unittest diff --git a/Tests/pens/pointPen_test.py b/Tests/pens/pointPen_test.py index 07261d039..a9201780e 100644 --- a/Tests/pens/pointPen_test.py +++ b/Tests/pens/pointPen_test.py @@ -256,10 +256,10 @@ class TestSegmentToPointPen(unittest.TestCase): pen.closePath() self.assertEqual("beginPath() addPoint((10, 10), segmentType='line') " "addPoint((10, 20)) addPoint((20, 20)) " - "addPoint((20, 10), segmentType=qcurve) endPath()", + "addPoint((20, 10), segmentType='qcurve') endPath()", repr(tpen)) - def test_quad(self): + def test_quad2(self): tpen = _TestPointPen() pen = SegmentToPointPen(tpen) pen.qCurveTo((10, 20), (20, 20), (20, 10), (10, 10), None) diff --git a/Tests/subset/subset_test.py b/Tests/subset/subset_test.py index 44c1722ea..3f9348b95 100644 --- a/Tests/subset/subset_test.py +++ b/Tests/subset/subset_test.py @@ -1,5 +1,5 @@ import io -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes, tostr from fontTools.misc.testTools import getXML from fontTools import subset from fontTools.fontBuilder import FontBuilder diff --git a/Tests/svgLib/path/parser_test.py b/Tests/svgLib/path/parser_test.py index d76e99524..b533dd8e8 100644 --- a/Tests/svgLib/path/parser_test.py +++ b/Tests/svgLib/path/parser_test.py @@ -1,5 +1,3 @@ - -from fontTools.misc.py23 import * from fontTools.pens.recordingPen import RecordingPen from fontTools.svgLib import parse_path diff --git a/Tests/svgLib/path/path_test.py b/Tests/svgLib/path/path_test.py index e99df502f..8ee334a07 100644 --- a/Tests/svgLib/path/path_test.py +++ b/Tests/svgLib/path/path_test.py @@ -1,5 +1,4 @@ - -from fontTools.misc.py23 import * +from fontTools.misc.py23 import tobytes from fontTools.pens.recordingPen import RecordingPen from fontTools.svgLib import SVGPath diff --git a/Tests/svgLib/path/shapes_test.py b/Tests/svgLib/path/shapes_test.py index 9cf8fad3e..24e3dd2eb 100644 --- a/Tests/svgLib/path/shapes_test.py +++ b/Tests/svgLib/path/shapes_test.py @@ -1,5 +1,3 @@ - -from fontTools.misc.py23 import * from fontTools.svgLib.path import shapes from fontTools.misc import etree import pytest diff --git a/Tests/t1Lib/t1Lib_test.py b/Tests/t1Lib/t1Lib_test.py index ba012253c..92b3e9e1c 100644 --- a/Tests/t1Lib/t1Lib_test.py +++ b/Tests/t1Lib/t1Lib_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * import unittest import os import sys diff --git a/Tests/ttLib/tables/C_F_F__2_test.py b/Tests/ttLib/tables/C_F_F__2_test.py index 2f0535c2b..10f9b2fbb 100644 --- a/Tests/ttLib/tables/C_F_F__2_test.py +++ b/Tests/ttLib/tables/C_F_F__2_test.py @@ -1,7 +1,7 @@ """cff2Lib_test.py -- unit test for Adobe CFF fonts.""" -from fontTools.misc.py23 import * -from fontTools.ttLib import TTFont, newTable +from fontTools.ttLib import TTFont +from io import StringIO import re import os import unittest @@ -39,7 +39,7 @@ class CFFTableTest(unittest.TestCase): font = TTFont(file=CFF_BIN) cffTable = font['CFF2'] cffData = cffTable.compile(font) - out = UnicodeIO() + out = StringIO() font.saveXML(out) cff2XML = out.getvalue() cff2XML = strip_VariableItems(cff2XML) diff --git a/Tests/ttLib/tables/C_F_F_test.py b/Tests/ttLib/tables/C_F_F_test.py index bbdbf4c35..cb8d8c55b 100644 --- a/Tests/ttLib/tables/C_F_F_test.py +++ b/Tests/ttLib/tables/C_F_F_test.py @@ -1,7 +1,7 @@ """cffLib_test.py -- unit test for Adobe CFF fonts.""" -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont, newTable +from io import StringIO import re import os import unittest @@ -31,7 +31,7 @@ class CFFTableTest(unittest.TestCase): font = TTFont(sfntVersion='OTTO') cffTable = font['CFF '] = newTable('CFF ') cffTable.decompile(self.cffData, font) - out = UnicodeIO() + out = StringIO() font.saveXML(out) cffXML = strip_ttLibVersion(out.getvalue()).splitlines() self.assertEqual(cffXML, self.cffXML) diff --git a/Tests/ttLib/tables/C_P_A_L_test.py b/Tests/ttLib/tables/C_P_A_L_test.py index b018a5247..10c8ea0e2 100644 --- a/Tests/ttLib/tables/C_P_A_L_test.py +++ b/Tests/ttLib/tables/C_P_A_L_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import getXML, parseXML from fontTools.misc.textTools import deHexStr from fontTools.ttLib import getTableModule, newTable diff --git a/Tests/ttLib/tables/M_V_A_R_test.py b/Tests/ttLib/tables/M_V_A_R_test.py index 356fc1413..3972d8c30 100644 --- a/Tests/ttLib/tables/M_V_A_R_test.py +++ b/Tests/ttLib/tables/M_V_A_R_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib.tables._f_v_a_r import Axis diff --git a/Tests/ttLib/tables/S_T_A_T_test.py b/Tests/ttLib/tables/S_T_A_T_test.py index 5366e8a26..c5c123410 100644 --- a/Tests/ttLib/tables/S_T_A_T_test.py +++ b/Tests/ttLib/tables/S_T_A_T_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/T_S_I__0_test.py b/Tests/ttLib/tables/T_S_I__0_test.py index 3e30d8589..44ca44ed3 100644 --- a/Tests/ttLib/tables/T_S_I__0_test.py +++ b/Tests/ttLib/tables/T_S_I__0_test.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import SimpleNamespace +from types import SimpleNamespace from fontTools.misc.textTools import deHexStr from fontTools.misc.testTools import getXML from fontTools.ttLib.tables.T_S_I__0 import table_T_S_I__0 diff --git a/Tests/ttLib/tables/T_S_I__1_test.py b/Tests/ttLib/tables/T_S_I__1_test.py index 9f0c949a4..3a565adc6 100644 --- a/Tests/ttLib/tables/T_S_I__1_test.py +++ b/Tests/ttLib/tables/T_S_I__1_test.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import unichr, tobytes +from fontTools.misc.py23 import tobytes from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.ttLib import TTFont, TTLibError from fontTools.ttLib.tables.T_S_I__0 import table_T_S_I__0 @@ -33,7 +33,7 @@ def font(indextable): # ['a', 'b', 'c', ...] ch = 0x61 n = len(indextable.indices) - font.glyphOrder = [unichr(i) for i in range(ch, ch+n)] + font.glyphOrder = [chr(i) for i in range(ch, ch+n)] font['TSI0'] = indextable return font diff --git a/Tests/ttLib/tables/TupleVariation_test.py b/Tests/ttLib/tables/TupleVariation_test.py index 06c574411..d7a0bc8a6 100644 --- a/Tests/ttLib/tables/TupleVariation_test.py +++ b/Tests/ttLib/tables/TupleVariation_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.misc.testTools import parseXML from fontTools.misc.textTools import deHexStr, hexStr @@ -6,6 +5,7 @@ from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib.tables.TupleVariation import \ log, TupleVariation, compileSharedTuples, decompileSharedTuples, \ compileTupleVariationStore, decompileTupleVariationStore, inferRegion_ +from io import BytesIO import random import unittest diff --git a/Tests/ttLib/tables/_a_n_k_r_test.py b/Tests/ttLib/tables/_a_n_k_r_test.py index 1679cc09d..6c9be16d0 100644 --- a/Tests/ttLib/tables/_a_n_k_r_test.py +++ b/Tests/ttLib/tables/_a_n_k_r_test.py @@ -1,5 +1,4 @@ # coding: utf-8 -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_a_v_a_r_test.py b/Tests/ttLib/tables/_a_v_a_r_test.py index 0b5f0e7ba..429ca2e8d 100644 --- a/Tests/ttLib/tables/_a_v_a_r_test.py +++ b/Tests/ttLib/tables/_a_v_a_r_test.py @@ -1,12 +1,10 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML from fontTools.misc.textTools import deHexStr from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib import TTLibError from fontTools.ttLib.tables._a_v_a_r import table__a_v_a_r from fontTools.ttLib.tables._f_v_a_r import table__f_v_a_r, Axis -import collections -import logging +from io import BytesIO import unittest diff --git a/Tests/ttLib/tables/_b_s_l_n_test.py b/Tests/ttLib/tables/_b_s_l_n_test.py index 9fd9d3863..e40c1bd27 100644 --- a/Tests/ttLib/tables/_b_s_l_n_test.py +++ b/Tests/ttLib/tables/_b_s_l_n_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_c_i_d_g_test.py b/Tests/ttLib/tables/_c_i_d_g_test.py index 64146330b..11c1fc0f2 100644 --- a/Tests/ttLib/tables/_c_i_d_g_test.py +++ b/Tests/ttLib/tables/_c_i_d_g_test.py @@ -1,5 +1,3 @@ -# coding: utf-8 -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_c_m_a_p_test.py b/Tests/ttLib/tables/_c_m_a_p_test.py index 2ea6e7042..63285045e 100644 --- a/Tests/ttLib/tables/_c_m_a_p_test.py +++ b/Tests/ttLib/tables/_c_m_a_p_test.py @@ -1,7 +1,6 @@ import io import os import re -from fontTools.misc.py23 import * from fontTools import ttLib from fontTools.fontBuilder import FontBuilder import unittest diff --git a/Tests/ttLib/tables/_c_v_a_r_test.py b/Tests/ttLib/tables/_c_v_a_r_test.py index cdd4c612c..31c19538c 100644 --- a/Tests/ttLib/tables/_c_v_a_r_test.py +++ b/Tests/ttLib/tables/_c_v_a_r_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import TTLibError, getTableModule, newTable diff --git a/Tests/ttLib/tables/_f_p_g_m_test.py b/Tests/ttLib/tables/_f_p_g_m_test.py index 0a34121c7..ff233dd9c 100644 --- a/Tests/ttLib/tables/_f_p_g_m_test.py +++ b/Tests/ttLib/tables/_f_p_g_m_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib.tables._f_p_g_m import table__f_p_g_m from fontTools.ttLib.tables import ttProgram diff --git a/Tests/ttLib/tables/_f_v_a_r_test.py b/Tests/ttLib/tables/_f_v_a_r_test.py index 54c44ebc8..2ac5237f1 100644 --- a/Tests/ttLib/tables/_f_v_a_r_test.py +++ b/Tests/ttLib/tables/_f_v_a_r_test.py @@ -1,10 +1,10 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML from fontTools.misc.textTools import deHexStr from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib import TTLibError from fontTools.ttLib.tables._f_v_a_r import table__f_v_a_r, Axis, NamedInstance from fontTools.ttLib.tables._n_a_m_e import table__n_a_m_e, NameRecord +from io import BytesIO import unittest diff --git a/Tests/ttLib/tables/_g_c_i_d_test.py b/Tests/ttLib/tables/_g_c_i_d_test.py index 5093b7851..e76667713 100644 --- a/Tests/ttLib/tables/_g_c_i_d_test.py +++ b/Tests/ttLib/tables/_g_c_i_d_test.py @@ -1,5 +1,3 @@ -# coding: utf-8 -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_g_l_y_f_test.py b/Tests/ttLib/tables/_g_l_y_f_test.py index 79addcef7..531bb82aa 100644 --- a/Tests/ttLib/tables/_g_l_y_f_test.py +++ b/Tests/ttLib/tables/_g_l_y_f_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.fixedTools import otRound from fontTools.misc.testTools import getXML, parseXML from fontTools.pens.ttGlyphPen import TTGlyphPen @@ -19,6 +18,7 @@ from fontTools.ttLib.tables._g_l_y_f import ( from fontTools.ttLib.tables import ttProgram import sys import array +from io import StringIO import itertools import pytest import re @@ -225,7 +225,7 @@ class GlyfTableTest(unittest.TestCase): font['head'].decompile(self.headData, font) font['loca'].decompile(self.locaData, font) glyfTable.decompile(self.glyfData, font) - out = UnicodeIO() + out = StringIO() font.saveXML(out) glyfXML = strip_ttLibVersion(out.getvalue()).splitlines() self.assertEqual(glyfXML, self.glyfXML) diff --git a/Tests/ttLib/tables/_g_v_a_r_test.py b/Tests/ttLib/tables/_g_v_a_r_test.py index 9a00fded0..077bb639e 100644 --- a/Tests/ttLib/tables/_g_v_a_r_test.py +++ b/Tests/ttLib/tables/_g_v_a_r_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import TTLibError, getTableClass, getTableModule, newTable diff --git a/Tests/ttLib/tables/_h_h_e_a_test.py b/Tests/ttLib/tables/_h_h_e_a_test.py index bba49e3a8..e04fd7bb0 100644 --- a/Tests/ttLib/tables/_h_h_e_a_test.py +++ b/Tests/ttLib/tables/_h_h_e_a_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.misc.testTools import parseXML, getXML from fontTools.misc.textTools import deHexStr diff --git a/Tests/ttLib/tables/_h_m_t_x_test.py b/Tests/ttLib/tables/_h_m_t_x_test.py index b21cda649..79d0cb7ec 100644 --- a/Tests/ttLib/tables/_h_m_t_x_test.py +++ b/Tests/ttLib/tables/_h_m_t_x_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML, getXML from fontTools.misc.textTools import deHexStr from fontTools.ttLib import TTFont, newTable, TTLibError diff --git a/Tests/ttLib/tables/_k_e_r_n_test.py b/Tests/ttLib/tables/_k_e_r_n_test.py index 483086c4a..eb48bae65 100644 --- a/Tests/ttLib/tables/_k_e_r_n_test.py +++ b/Tests/ttLib/tables/_k_e_r_n_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import newTable from fontTools.ttLib.tables._k_e_r_n import ( KernTable_format_0, KernTable_format_unkown) diff --git a/Tests/ttLib/tables/_l_c_a_r_test.py b/Tests/ttLib/tables/_l_c_a_r_test.py index 288092f01..5837a07ae 100644 --- a/Tests/ttLib/tables/_l_c_a_r_test.py +++ b/Tests/ttLib/tables/_l_c_a_r_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_l_t_a_g_test.py b/Tests/ttLib/tables/_l_t_a_g_test.py index 67279364e..fc9be82a3 100644 --- a/Tests/ttLib/tables/_l_t_a_g_test.py +++ b/Tests/ttLib/tables/_l_t_a_g_test.py @@ -1,6 +1,6 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML from fontTools.misc.xmlWriter import XMLWriter +from io import BytesIO import os import struct import unittest diff --git a/Tests/ttLib/tables/_m_e_t_a_test.py b/Tests/ttLib/tables/_m_e_t_a_test.py index 3a4f2f5b2..f05ff576b 100644 --- a/Tests/ttLib/tables/_m_e_t_a_test.py +++ b/Tests/ttLib/tables/_m_e_t_a_test.py @@ -1,9 +1,9 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML from fontTools.misc.textTools import deHexStr from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib import TTLibError from fontTools.ttLib.tables._m_e_t_a import table__m_e_t_a +from io import BytesIO import unittest diff --git a/Tests/ttLib/tables/_m_o_r_t_test.py b/Tests/ttLib/tables/_m_o_r_t_test.py index c89a19b3d..3e7169be3 100644 --- a/Tests/ttLib/tables/_m_o_r_t_test.py +++ b/Tests/ttLib/tables/_m_o_r_t_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_m_o_r_x_test.py b/Tests/ttLib/tables/_m_o_r_x_test.py index 0730d2349..0b807f820 100644 --- a/Tests/ttLib/tables/_m_o_r_x_test.py +++ b/Tests/ttLib/tables/_m_o_r_x_test.py @@ -1,5 +1,4 @@ -# coding: utf-8 -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytechr, bytesjoin from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_n_a_m_e_test.py b/Tests/ttLib/tables/_n_a_m_e_test.py index 11aeebae9..8e8297049 100644 --- a/Tests/ttLib/tables/_n_a_m_e_test.py +++ b/Tests/ttLib/tables/_n_a_m_e_test.py @@ -1,9 +1,9 @@ -# -*- coding: utf-8 -*- -from fontTools.misc.py23 import * +from fontTools.misc.py23 import bytesjoin, tostr from fontTools.misc import sstruct from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.misc.testTools import FakeFont from fontTools.misc.xmlWriter import XMLWriter +from io import BytesIO import struct import unittest from fontTools.ttLib import newTable @@ -338,7 +338,7 @@ class NameRecordTest(unittest.TestCase): def test_toUnicode_macromanian(self): name = makeName(b"Foo Italic\xfb", 222, 1, 0, 37) # Mac Romanian self.assertEqual("mac_romanian", name.getEncoding()) - self.assertEqual("Foo Italic"+unichr(0x02DA), name.toUnicode()) + self.assertEqual("Foo Italic"+chr(0x02DA), name.toUnicode()) def test_toUnicode_UnicodeDecodeError(self): name = makeName(b"\1", 111, 0, 2, 7) @@ -430,7 +430,7 @@ class NameRecordTest(unittest.TestCase): def test_extended_mac_encodings(self): name = makeName(b'\xfe', 123, 1, 1, 0) # Mac Japanese - self.assertEqual(name.toUnicode(), unichr(0x2122)) + self.assertEqual(name.toUnicode(), chr(0x2122)) def test_extended_mac_encodings_errors(self): s = "汉仪彩云体简" diff --git a/Tests/ttLib/tables/_o_p_b_d_test.py b/Tests/ttLib/tables/_o_p_b_d_test.py index 3d5f90fa7..d62ada8b2 100644 --- a/Tests/ttLib/tables/_o_p_b_d_test.py +++ b/Tests/ttLib/tables/_o_p_b_d_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_p_r_o_p_test.py b/Tests/ttLib/tables/_p_r_o_p_test.py index b293fa654..63c2924b6 100644 --- a/Tests/ttLib/tables/_p_r_o_p_test.py +++ b/Tests/ttLib/tables/_p_r_o_p_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import FakeFont, getXML, parseXML from fontTools.misc.textTools import deHexStr, hexStr from fontTools.ttLib import newTable diff --git a/Tests/ttLib/tables/_t_r_a_k_test.py b/Tests/ttLib/tables/_t_r_a_k_test.py index d37b54879..2ea6cf59d 100644 --- a/Tests/ttLib/tables/_t_r_a_k_test.py +++ b/Tests/ttLib/tables/_t_r_a_k_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML, getXML from fontTools.misc.textTools import deHexStr from fontTools.ttLib import TTFont, TTLibError diff --git a/Tests/ttLib/tables/_v_h_e_a_test.py b/Tests/ttLib/tables/_v_h_e_a_test.py index 61445e5cc..c60186323 100644 --- a/Tests/ttLib/tables/_v_h_e_a_test.py +++ b/Tests/ttLib/tables/_v_h_e_a_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.misc.testTools import parseXML, getXML from fontTools.misc.textTools import deHexStr diff --git a/Tests/ttLib/tables/_v_m_t_x_test.py b/Tests/ttLib/tables/_v_m_t_x_test.py index 286651cf5..5ea2d2451 100644 --- a/Tests/ttLib/tables/_v_m_t_x_test.py +++ b/Tests/ttLib/tables/_v_m_t_x_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib.tables._v_m_t_x import table__v_m_t_x import _h_m_t_x_test import unittest diff --git a/Tests/ttLib/tables/otBase_test.py b/Tests/ttLib/tables/otBase_test.py index 4351d03bc..ce0416e42 100644 --- a/Tests/ttLib/tables/otBase_test.py +++ b/Tests/ttLib/tables/otBase_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.textTools import deHexStr from fontTools.ttLib.tables.otBase import OTTableReader, OTTableWriter import unittest diff --git a/Tests/ttLib/tables/otConverters_test.py b/Tests/ttLib/tables/otConverters_test.py index dd90031b1..1aff03bd0 100644 --- a/Tests/ttLib/tables/otConverters_test.py +++ b/Tests/ttLib/tables/otConverters_test.py @@ -1,5 +1,3 @@ -# coding: utf-8 -from fontTools.misc.py23 import * from fontTools.misc.loggingTools import CapturingLogHandler from fontTools.misc.testTools import FakeFont, makeXMLWriter from fontTools.misc.textTools import deHexStr diff --git a/Tests/ttLib/tables/otTables_test.py b/Tests/ttLib/tables/otTables_test.py index c04464dfd..9202aa557 100644 --- a/Tests/ttLib/tables/otTables_test.py +++ b/Tests/ttLib/tables/otTables_test.py @@ -1,10 +1,9 @@ -# coding: utf-8 -from fontTools.misc.py23 import * from fontTools.misc.testTools import getXML, parseXML, FakeFont from fontTools.misc.textTools import deHexStr, hexStr from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib.tables.otBase import OTTableReader, OTTableWriter import fontTools.ttLib.tables.otTables as otTables +from io import StringIO import unittest diff --git a/Tests/ttLib/tables/tables_test.py b/Tests/ttLib/tables/tables_test.py index b031b48f4..f66323fbf 100644 --- a/Tests/ttLib/tables/tables_test.py +++ b/Tests/ttLib/tables/tables_test.py @@ -1,5 +1,5 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont, tagToXML +from io import StringIO import os import sys import re @@ -253,13 +253,13 @@ def read_expected_ttx(testfile, tableTag): def dump_ttx(font, tableTag): - f = UnicodeIO() + f = StringIO() font.saveXML(f, newlinestr='\n', tables=[tableTag]) return ttLibVersion_RE.sub('', f.getvalue()) def load_ttx(ttx): - f = UnicodeIO() + f = StringIO() f.write(ttx) f.seek(0) font = TTFont() diff --git a/Tests/ttLib/tables/ttProgram_test.py b/Tests/ttLib/tables/ttProgram_test.py index 0bc14ab29..be6e86a0a 100644 --- a/Tests/ttLib/tables/ttProgram_test.py +++ b/Tests/ttLib/tables/ttProgram_test.py @@ -1,10 +1,9 @@ -from fontTools.misc.py23 import * from fontTools.misc.xmlWriter import XMLWriter from fontTools.ttLib.tables.ttProgram import Program from fontTools.misc.textTools import deHexStr import array +from io import StringIO import os -import re import unittest CURR_DIR = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) @@ -104,7 +103,7 @@ class ProgramTest(unittest.TestCase): p = Program() p.fromBytecode(BYTECODE) ttfont = TestFont() - buf = UnicodeIO() + buf = StringIO() writer = XMLWriter(buf, newlinestr='\n') try: p.toXML(writer, ttfont) diff --git a/Tests/ttLib/woff2_test.py b/Tests/ttLib/woff2_test.py index 23aab4aa9..c0d60ceed 100644 --- a/Tests/ttLib/woff2_test.py +++ b/Tests/ttLib/woff2_test.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag, bytechr, byteord from fontTools import ttLib from fontTools.ttLib import woff2 from fontTools.ttLib.tables import _g_l_y_f @@ -12,6 +12,7 @@ import unittest from fontTools.misc import sstruct from fontTools import fontBuilder from fontTools.pens.ttGlyphPen import TTGlyphPen +from io import BytesIO import struct import os import random diff --git a/Tests/ttx/ttx_test.py b/Tests/ttx/ttx_test.py index 3d4c3f92b..c24634745 100644 --- a/Tests/ttx/ttx_test.py +++ b/Tests/ttx/ttx_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.misc.testTools import parseXML from fontTools.misc.timeTools import timestampSinceEpoch from fontTools.ttLib import TTFont, TTLibError diff --git a/Tests/unicodedata_test.py b/Tests/unicodedata_test.py index a1ab6f122..05f7de684 100644 --- a/Tests/unicodedata_test.py +++ b/Tests/unicodedata_test.py @@ -1,5 +1,3 @@ -from fontTools.misc.py23 import * - from fontTools import unicodedata import pytest @@ -7,159 +5,159 @@ import pytest def test_script(): assert unicodedata.script("a") == "Latn" - assert unicodedata.script(unichr(0)) == "Zyyy" - assert unicodedata.script(unichr(0x0378)) == "Zzzz" - assert unicodedata.script(unichr(0x10FFFF)) == "Zzzz" + assert unicodedata.script(chr(0)) == "Zyyy" + assert unicodedata.script(chr(0x0378)) == "Zzzz" + assert unicodedata.script(chr(0x10FFFF)) == "Zzzz" # these were randomly sampled, one character per script - assert unicodedata.script(unichr(0x1E918)) == 'Adlm' - assert unicodedata.script(unichr(0x1170D)) == 'Ahom' - assert unicodedata.script(unichr(0x145A0)) == 'Hluw' - assert unicodedata.script(unichr(0x0607)) == 'Arab' - assert unicodedata.script(unichr(0x056C)) == 'Armn' - assert unicodedata.script(unichr(0x10B27)) == 'Avst' - assert unicodedata.script(unichr(0x1B41)) == 'Bali' - assert unicodedata.script(unichr(0x168AD)) == 'Bamu' - assert unicodedata.script(unichr(0x16ADD)) == 'Bass' - assert unicodedata.script(unichr(0x1BE5)) == 'Batk' - assert unicodedata.script(unichr(0x09F3)) == 'Beng' - assert unicodedata.script(unichr(0x11C5B)) == 'Bhks' - assert unicodedata.script(unichr(0x3126)) == 'Bopo' - assert unicodedata.script(unichr(0x1103B)) == 'Brah' - assert unicodedata.script(unichr(0x2849)) == 'Brai' - assert unicodedata.script(unichr(0x1A0A)) == 'Bugi' - assert unicodedata.script(unichr(0x174E)) == 'Buhd' - assert unicodedata.script(unichr(0x18EE)) == 'Cans' - assert unicodedata.script(unichr(0x102B7)) == 'Cari' - assert unicodedata.script(unichr(0x1053D)) == 'Aghb' - assert unicodedata.script(unichr(0x11123)) == 'Cakm' - assert unicodedata.script(unichr(0xAA1F)) == 'Cham' - assert unicodedata.script(unichr(0xAB95)) == 'Cher' - assert unicodedata.script(unichr(0x1F0C7)) == 'Zyyy' - assert unicodedata.script(unichr(0x2C85)) == 'Copt' - assert unicodedata.script(unichr(0x12014)) == 'Xsux' - assert unicodedata.script(unichr(0x1082E)) == 'Cprt' - assert unicodedata.script(unichr(0xA686)) == 'Cyrl' - assert unicodedata.script(unichr(0x10417)) == 'Dsrt' - assert unicodedata.script(unichr(0x093E)) == 'Deva' - assert unicodedata.script(unichr(0x1BC4B)) == 'Dupl' - assert unicodedata.script(unichr(0x1310C)) == 'Egyp' - assert unicodedata.script(unichr(0x1051C)) == 'Elba' - assert unicodedata.script(unichr(0x2DA6)) == 'Ethi' - assert unicodedata.script(unichr(0x10AD)) == 'Geor' - assert unicodedata.script(unichr(0x2C52)) == 'Glag' - assert unicodedata.script(unichr(0x10343)) == 'Goth' - assert unicodedata.script(unichr(0x11371)) == 'Gran' - assert unicodedata.script(unichr(0x03D0)) == 'Grek' - assert unicodedata.script(unichr(0x0AAA)) == 'Gujr' - assert unicodedata.script(unichr(0x0A4C)) == 'Guru' - assert unicodedata.script(unichr(0x23C9F)) == 'Hani' - assert unicodedata.script(unichr(0xC259)) == 'Hang' - assert unicodedata.script(unichr(0x1722)) == 'Hano' - assert unicodedata.script(unichr(0x108F5)) == 'Hatr' - assert unicodedata.script(unichr(0x05C2)) == 'Hebr' - assert unicodedata.script(unichr(0x1B072)) == 'Hira' - assert unicodedata.script(unichr(0x10847)) == 'Armi' - assert unicodedata.script(unichr(0x033A)) == 'Zinh' - assert unicodedata.script(unichr(0x10B66)) == 'Phli' - assert unicodedata.script(unichr(0x10B4B)) == 'Prti' - assert unicodedata.script(unichr(0xA98A)) == 'Java' - assert unicodedata.script(unichr(0x110B2)) == 'Kthi' - assert unicodedata.script(unichr(0x0CC6)) == 'Knda' - assert unicodedata.script(unichr(0x3337)) == 'Kana' - assert unicodedata.script(unichr(0xA915)) == 'Kali' - assert unicodedata.script(unichr(0x10A2E)) == 'Khar' - assert unicodedata.script(unichr(0x17AA)) == 'Khmr' - assert unicodedata.script(unichr(0x11225)) == 'Khoj' - assert unicodedata.script(unichr(0x112B6)) == 'Sind' - assert unicodedata.script(unichr(0x0ED7)) == 'Laoo' - assert unicodedata.script(unichr(0xAB3C)) == 'Latn' - assert unicodedata.script(unichr(0x1C48)) == 'Lepc' - assert unicodedata.script(unichr(0x1923)) == 'Limb' - assert unicodedata.script(unichr(0x1071D)) == 'Lina' - assert unicodedata.script(unichr(0x100EC)) == 'Linb' - assert unicodedata.script(unichr(0xA4E9)) == 'Lisu' - assert unicodedata.script(unichr(0x10284)) == 'Lyci' - assert unicodedata.script(unichr(0x10926)) == 'Lydi' - assert unicodedata.script(unichr(0x11161)) == 'Mahj' - assert unicodedata.script(unichr(0x0D56)) == 'Mlym' - assert unicodedata.script(unichr(0x0856)) == 'Mand' - assert unicodedata.script(unichr(0x10AF0)) == 'Mani' - assert unicodedata.script(unichr(0x11CB0)) == 'Marc' - assert unicodedata.script(unichr(0x11D28)) == 'Gonm' - assert unicodedata.script(unichr(0xABDD)) == 'Mtei' - assert unicodedata.script(unichr(0x1E897)) == 'Mend' - assert unicodedata.script(unichr(0x109B0)) == 'Merc' - assert unicodedata.script(unichr(0x10993)) == 'Mero' - assert unicodedata.script(unichr(0x16F5D)) == 'Plrd' - assert unicodedata.script(unichr(0x1160B)) == 'Modi' - assert unicodedata.script(unichr(0x18A8)) == 'Mong' - assert unicodedata.script(unichr(0x16A48)) == 'Mroo' - assert unicodedata.script(unichr(0x1128C)) == 'Mult' - assert unicodedata.script(unichr(0x105B)) == 'Mymr' - assert unicodedata.script(unichr(0x108AF)) == 'Nbat' - assert unicodedata.script(unichr(0x19B3)) == 'Talu' - assert unicodedata.script(unichr(0x1143D)) == 'Newa' - assert unicodedata.script(unichr(0x07F4)) == 'Nkoo' - assert unicodedata.script(unichr(0x1B192)) == 'Nshu' - assert unicodedata.script(unichr(0x169C)) == 'Ogam' - assert unicodedata.script(unichr(0x1C56)) == 'Olck' - assert unicodedata.script(unichr(0x10CE9)) == 'Hung' - assert unicodedata.script(unichr(0x10316)) == 'Ital' - assert unicodedata.script(unichr(0x10A93)) == 'Narb' - assert unicodedata.script(unichr(0x1035A)) == 'Perm' - assert unicodedata.script(unichr(0x103D5)) == 'Xpeo' - assert unicodedata.script(unichr(0x10A65)) == 'Sarb' - assert unicodedata.script(unichr(0x10C09)) == 'Orkh' - assert unicodedata.script(unichr(0x0B60)) == 'Orya' - assert unicodedata.script(unichr(0x104CF)) == 'Osge' - assert unicodedata.script(unichr(0x104A8)) == 'Osma' - assert unicodedata.script(unichr(0x16B12)) == 'Hmng' - assert unicodedata.script(unichr(0x10879)) == 'Palm' - assert unicodedata.script(unichr(0x11AF1)) == 'Pauc' - assert unicodedata.script(unichr(0xA869)) == 'Phag' - assert unicodedata.script(unichr(0x10909)) == 'Phnx' - assert unicodedata.script(unichr(0x10B81)) == 'Phlp' - assert unicodedata.script(unichr(0xA941)) == 'Rjng' - assert unicodedata.script(unichr(0x16C3)) == 'Runr' - assert unicodedata.script(unichr(0x0814)) == 'Samr' - assert unicodedata.script(unichr(0xA88C)) == 'Saur' - assert unicodedata.script(unichr(0x111C8)) == 'Shrd' - assert unicodedata.script(unichr(0x1045F)) == 'Shaw' - assert unicodedata.script(unichr(0x115AD)) == 'Sidd' - assert unicodedata.script(unichr(0x1D8C0)) == 'Sgnw' - assert unicodedata.script(unichr(0x0DB9)) == 'Sinh' - assert unicodedata.script(unichr(0x110F9)) == 'Sora' - assert unicodedata.script(unichr(0x11A60)) == 'Soyo' - assert unicodedata.script(unichr(0x1B94)) == 'Sund' - assert unicodedata.script(unichr(0xA81F)) == 'Sylo' - assert unicodedata.script(unichr(0x0740)) == 'Syrc' - assert unicodedata.script(unichr(0x1714)) == 'Tglg' - assert unicodedata.script(unichr(0x1761)) == 'Tagb' - assert unicodedata.script(unichr(0x1965)) == 'Tale' - assert unicodedata.script(unichr(0x1A32)) == 'Lana' - assert unicodedata.script(unichr(0xAA86)) == 'Tavt' - assert unicodedata.script(unichr(0x116A5)) == 'Takr' - assert unicodedata.script(unichr(0x0B8E)) == 'Taml' - assert unicodedata.script(unichr(0x1754D)) == 'Tang' - assert unicodedata.script(unichr(0x0C40)) == 'Telu' - assert unicodedata.script(unichr(0x07A4)) == 'Thaa' - assert unicodedata.script(unichr(0x0E42)) == 'Thai' - assert unicodedata.script(unichr(0x0F09)) == 'Tibt' - assert unicodedata.script(unichr(0x2D3A)) == 'Tfng' - assert unicodedata.script(unichr(0x114B0)) == 'Tirh' - assert unicodedata.script(unichr(0x1038B)) == 'Ugar' - assert unicodedata.script(unichr(0xA585)) == 'Vaii' - assert unicodedata.script(unichr(0x118CF)) == 'Wara' - assert unicodedata.script(unichr(0xA066)) == 'Yiii' - assert unicodedata.script(unichr(0x11A31)) == 'Zanb' + assert unicodedata.script(chr(0x1E918)) == 'Adlm' + assert unicodedata.script(chr(0x1170D)) == 'Ahom' + assert unicodedata.script(chr(0x145A0)) == 'Hluw' + assert unicodedata.script(chr(0x0607)) == 'Arab' + assert unicodedata.script(chr(0x056C)) == 'Armn' + assert unicodedata.script(chr(0x10B27)) == 'Avst' + assert unicodedata.script(chr(0x1B41)) == 'Bali' + assert unicodedata.script(chr(0x168AD)) == 'Bamu' + assert unicodedata.script(chr(0x16ADD)) == 'Bass' + assert unicodedata.script(chr(0x1BE5)) == 'Batk' + assert unicodedata.script(chr(0x09F3)) == 'Beng' + assert unicodedata.script(chr(0x11C5B)) == 'Bhks' + assert unicodedata.script(chr(0x3126)) == 'Bopo' + assert unicodedata.script(chr(0x1103B)) == 'Brah' + assert unicodedata.script(chr(0x2849)) == 'Brai' + assert unicodedata.script(chr(0x1A0A)) == 'Bugi' + assert unicodedata.script(chr(0x174E)) == 'Buhd' + assert unicodedata.script(chr(0x18EE)) == 'Cans' + assert unicodedata.script(chr(0x102B7)) == 'Cari' + assert unicodedata.script(chr(0x1053D)) == 'Aghb' + assert unicodedata.script(chr(0x11123)) == 'Cakm' + assert unicodedata.script(chr(0xAA1F)) == 'Cham' + assert unicodedata.script(chr(0xAB95)) == 'Cher' + assert unicodedata.script(chr(0x1F0C7)) == 'Zyyy' + assert unicodedata.script(chr(0x2C85)) == 'Copt' + assert unicodedata.script(chr(0x12014)) == 'Xsux' + assert unicodedata.script(chr(0x1082E)) == 'Cprt' + assert unicodedata.script(chr(0xA686)) == 'Cyrl' + assert unicodedata.script(chr(0x10417)) == 'Dsrt' + assert unicodedata.script(chr(0x093E)) == 'Deva' + assert unicodedata.script(chr(0x1BC4B)) == 'Dupl' + assert unicodedata.script(chr(0x1310C)) == 'Egyp' + assert unicodedata.script(chr(0x1051C)) == 'Elba' + assert unicodedata.script(chr(0x2DA6)) == 'Ethi' + assert unicodedata.script(chr(0x10AD)) == 'Geor' + assert unicodedata.script(chr(0x2C52)) == 'Glag' + assert unicodedata.script(chr(0x10343)) == 'Goth' + assert unicodedata.script(chr(0x11371)) == 'Gran' + assert unicodedata.script(chr(0x03D0)) == 'Grek' + assert unicodedata.script(chr(0x0AAA)) == 'Gujr' + assert unicodedata.script(chr(0x0A4C)) == 'Guru' + assert unicodedata.script(chr(0x23C9F)) == 'Hani' + assert unicodedata.script(chr(0xC259)) == 'Hang' + assert unicodedata.script(chr(0x1722)) == 'Hano' + assert unicodedata.script(chr(0x108F5)) == 'Hatr' + assert unicodedata.script(chr(0x05C2)) == 'Hebr' + assert unicodedata.script(chr(0x1B072)) == 'Hira' + assert unicodedata.script(chr(0x10847)) == 'Armi' + assert unicodedata.script(chr(0x033A)) == 'Zinh' + assert unicodedata.script(chr(0x10B66)) == 'Phli' + assert unicodedata.script(chr(0x10B4B)) == 'Prti' + assert unicodedata.script(chr(0xA98A)) == 'Java' + assert unicodedata.script(chr(0x110B2)) == 'Kthi' + assert unicodedata.script(chr(0x0CC6)) == 'Knda' + assert unicodedata.script(chr(0x3337)) == 'Kana' + assert unicodedata.script(chr(0xA915)) == 'Kali' + assert unicodedata.script(chr(0x10A2E)) == 'Khar' + assert unicodedata.script(chr(0x17AA)) == 'Khmr' + assert unicodedata.script(chr(0x11225)) == 'Khoj' + assert unicodedata.script(chr(0x112B6)) == 'Sind' + assert unicodedata.script(chr(0x0ED7)) == 'Laoo' + assert unicodedata.script(chr(0xAB3C)) == 'Latn' + assert unicodedata.script(chr(0x1C48)) == 'Lepc' + assert unicodedata.script(chr(0x1923)) == 'Limb' + assert unicodedata.script(chr(0x1071D)) == 'Lina' + assert unicodedata.script(chr(0x100EC)) == 'Linb' + assert unicodedata.script(chr(0xA4E9)) == 'Lisu' + assert unicodedata.script(chr(0x10284)) == 'Lyci' + assert unicodedata.script(chr(0x10926)) == 'Lydi' + assert unicodedata.script(chr(0x11161)) == 'Mahj' + assert unicodedata.script(chr(0x0D56)) == 'Mlym' + assert unicodedata.script(chr(0x0856)) == 'Mand' + assert unicodedata.script(chr(0x10AF0)) == 'Mani' + assert unicodedata.script(chr(0x11CB0)) == 'Marc' + assert unicodedata.script(chr(0x11D28)) == 'Gonm' + assert unicodedata.script(chr(0xABDD)) == 'Mtei' + assert unicodedata.script(chr(0x1E897)) == 'Mend' + assert unicodedata.script(chr(0x109B0)) == 'Merc' + assert unicodedata.script(chr(0x10993)) == 'Mero' + assert unicodedata.script(chr(0x16F5D)) == 'Plrd' + assert unicodedata.script(chr(0x1160B)) == 'Modi' + assert unicodedata.script(chr(0x18A8)) == 'Mong' + assert unicodedata.script(chr(0x16A48)) == 'Mroo' + assert unicodedata.script(chr(0x1128C)) == 'Mult' + assert unicodedata.script(chr(0x105B)) == 'Mymr' + assert unicodedata.script(chr(0x108AF)) == 'Nbat' + assert unicodedata.script(chr(0x19B3)) == 'Talu' + assert unicodedata.script(chr(0x1143D)) == 'Newa' + assert unicodedata.script(chr(0x07F4)) == 'Nkoo' + assert unicodedata.script(chr(0x1B192)) == 'Nshu' + assert unicodedata.script(chr(0x169C)) == 'Ogam' + assert unicodedata.script(chr(0x1C56)) == 'Olck' + assert unicodedata.script(chr(0x10CE9)) == 'Hung' + assert unicodedata.script(chr(0x10316)) == 'Ital' + assert unicodedata.script(chr(0x10A93)) == 'Narb' + assert unicodedata.script(chr(0x1035A)) == 'Perm' + assert unicodedata.script(chr(0x103D5)) == 'Xpeo' + assert unicodedata.script(chr(0x10A65)) == 'Sarb' + assert unicodedata.script(chr(0x10C09)) == 'Orkh' + assert unicodedata.script(chr(0x0B60)) == 'Orya' + assert unicodedata.script(chr(0x104CF)) == 'Osge' + assert unicodedata.script(chr(0x104A8)) == 'Osma' + assert unicodedata.script(chr(0x16B12)) == 'Hmng' + assert unicodedata.script(chr(0x10879)) == 'Palm' + assert unicodedata.script(chr(0x11AF1)) == 'Pauc' + assert unicodedata.script(chr(0xA869)) == 'Phag' + assert unicodedata.script(chr(0x10909)) == 'Phnx' + assert unicodedata.script(chr(0x10B81)) == 'Phlp' + assert unicodedata.script(chr(0xA941)) == 'Rjng' + assert unicodedata.script(chr(0x16C3)) == 'Runr' + assert unicodedata.script(chr(0x0814)) == 'Samr' + assert unicodedata.script(chr(0xA88C)) == 'Saur' + assert unicodedata.script(chr(0x111C8)) == 'Shrd' + assert unicodedata.script(chr(0x1045F)) == 'Shaw' + assert unicodedata.script(chr(0x115AD)) == 'Sidd' + assert unicodedata.script(chr(0x1D8C0)) == 'Sgnw' + assert unicodedata.script(chr(0x0DB9)) == 'Sinh' + assert unicodedata.script(chr(0x110F9)) == 'Sora' + assert unicodedata.script(chr(0x11A60)) == 'Soyo' + assert unicodedata.script(chr(0x1B94)) == 'Sund' + assert unicodedata.script(chr(0xA81F)) == 'Sylo' + assert unicodedata.script(chr(0x0740)) == 'Syrc' + assert unicodedata.script(chr(0x1714)) == 'Tglg' + assert unicodedata.script(chr(0x1761)) == 'Tagb' + assert unicodedata.script(chr(0x1965)) == 'Tale' + assert unicodedata.script(chr(0x1A32)) == 'Lana' + assert unicodedata.script(chr(0xAA86)) == 'Tavt' + assert unicodedata.script(chr(0x116A5)) == 'Takr' + assert unicodedata.script(chr(0x0B8E)) == 'Taml' + assert unicodedata.script(chr(0x1754D)) == 'Tang' + assert unicodedata.script(chr(0x0C40)) == 'Telu' + assert unicodedata.script(chr(0x07A4)) == 'Thaa' + assert unicodedata.script(chr(0x0E42)) == 'Thai' + assert unicodedata.script(chr(0x0F09)) == 'Tibt' + assert unicodedata.script(chr(0x2D3A)) == 'Tfng' + assert unicodedata.script(chr(0x114B0)) == 'Tirh' + assert unicodedata.script(chr(0x1038B)) == 'Ugar' + assert unicodedata.script(chr(0xA585)) == 'Vaii' + assert unicodedata.script(chr(0x118CF)) == 'Wara' + assert unicodedata.script(chr(0xA066)) == 'Yiii' + assert unicodedata.script(chr(0x11A31)) == 'Zanb' def test_script_extension(): assert unicodedata.script_extension("a") == {"Latn"} - assert unicodedata.script_extension(unichr(0)) == {"Zyyy"} - assert unicodedata.script_extension(unichr(0x0378)) == {"Zzzz"} - assert unicodedata.script_extension(unichr(0x10FFFF)) == {"Zzzz"} + assert unicodedata.script_extension(chr(0)) == {"Zyyy"} + assert unicodedata.script_extension(chr(0x0378)) == {"Zzzz"} + assert unicodedata.script_extension(chr(0x10FFFF)) == {"Zzzz"} assert unicodedata.script_extension("\u0660") == {'Arab', 'Thaa', 'Yezi'} assert unicodedata.script_extension("\u0964") == { diff --git a/Tests/varLib/featureVars_test.py b/Tests/varLib/featureVars_test.py index 84228868f..89675af2e 100644 --- a/Tests/varLib/featureVars_test.py +++ b/Tests/varLib/featureVars_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.varLib.featureVars import ( overlayFeatureVariations) diff --git a/Tests/varLib/instancer/instancer_test.py b/Tests/varLib/instancer/instancer_test.py index c3e0729be..cb7e8547a 100644 --- a/Tests/varLib/instancer/instancer_test.py +++ b/Tests/varLib/instancer/instancer_test.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag from fontTools.misc.fixedTools import floatToFixedToFloat from fontTools import ttLib from fontTools import designspaceLib @@ -14,9 +14,11 @@ from fontTools.varLib import featureVars from fontTools.varLib import models import collections from copy import deepcopy +from io import BytesIO, StringIO import logging import os import re +from types import SimpleNamespace import pytest diff --git a/Tests/varLib/interpolatable_test.py b/Tests/varLib/interpolatable_test.py index d6bc6ce68..a30be71e4 100644 --- a/Tests/varLib/interpolatable_test.py +++ b/Tests/varLib/interpolatable_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.varLib.interpolatable import main as interpolatable_main import os diff --git a/Tests/varLib/interpolate_layout_test.py b/Tests/varLib/interpolate_layout_test.py index 8fdf60f52..d7134d79d 100644 --- a/Tests/varLib/interpolate_layout_test.py +++ b/Tests/varLib/interpolate_layout_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.varLib import build from fontTools.varLib.interpolate_layout import interpolate_layout diff --git a/Tests/varLib/models_test.py b/Tests/varLib/models_test.py index 1027f29f6..c220d3d26 100644 --- a/Tests/varLib/models_test.py +++ b/Tests/varLib/models_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.varLib.models import ( normalizeLocation, supportScalar, VariationModel, VariationModelError) import pytest diff --git a/Tests/varLib/mutator_test.py b/Tests/varLib/mutator_test.py index 010ab5dda..abe5d0270 100644 --- a/Tests/varLib/mutator_test.py +++ b/Tests/varLib/mutator_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.varLib import build from fontTools.varLib.mutator import main as mutator diff --git a/Tests/varLib/varLib_test.py b/Tests/varLib/varLib_test.py index 0be1c99de..b8e7183bb 100644 --- a/Tests/varLib/varLib_test.py +++ b/Tests/varLib/varLib_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont, newTable from fontTools.varLib import build, load_designspace from fontTools.varLib.errors import VarLibValidationError @@ -11,6 +10,7 @@ from fontTools.designspaceLib import ( ) from fontTools.feaLib.builder import addOpenTypeFeaturesFromString import difflib +from io import BytesIO import os import shutil import sys diff --git a/Tests/voltLib/parser_test.py b/Tests/voltLib/parser_test.py index 92080a870..0e0191fcc 100644 --- a/Tests/voltLib/parser_test.py +++ b/Tests/voltLib/parser_test.py @@ -1,7 +1,7 @@ -from fontTools.misc.py23 import * from fontTools.voltLib import ast from fontTools.voltLib.error import VoltLibError from fontTools.voltLib.parser import Parser +from io import StringIO import unittest @@ -1223,12 +1223,12 @@ class ParserTest(unittest.TestCase): '\nDEF_GLYPH ".notdef" ID 0 TYPE BASE END_GLYPH END\n') def parse_(self, text): - return Parser(UnicodeIO(text)).parse() + return Parser(StringIO(text)).parse() def parse(self, text): doc = self.parse_(text) self.assertEqual('\n'.join(str(s) for s in doc.statements), text) - return Parser(UnicodeIO(text)).parse() + return Parser(StringIO(text)).parse() if __name__ == "__main__": import sys