Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
type=lambda s: CFFOptimization(int(s)),
default=CFFOptimization.SUBROUTINIZE,
def save_otfs(
self,
ufos,
ttf=False,
is_instance=False,
interpolatable=False,
autohint=None,
subset=None,
use_production_names=None,
subroutinize=None, # deprecated
optimize_cff=CFFOptimization.NONE,
cff_round_tolerance=None,
remove_overlaps=True,
overlaps_backend=None,
reverse_direction=True,
conversion_error=None,
feature_writers=None,
interpolate_layout_from=None,
interpolate_layout_dir=None,
output_path=None,
output_dir=None,
debug_feature_file=None,
inplace=True,
):
"""Build OpenType binaries from UFOs.
Args:
exclusive with 'output_path' argument.
"""
assert not (output_path and output_dir), "mutually exclusive args"
if output_path is not None and len(ufos) > 1:
raise ValueError("output_path requires a single input")
if subroutinize is not None:
import warnings
warnings.warn(
"the 'subroutinize' argument is deprecated, use 'optimize_cff'",
UserWarning,
)
if subroutinize:
optimize_cff = CFFOptimization.SUBROUTINIZE
else:
# for b/w compatibility, we still run the charstring specializer
# even when --no-subroutinize is used. Use the new --optimize-cff
# option to disable both specilization and subroutinization
optimize_cff = CFFOptimization.SPECIALIZE
ext = "ttf" if ttf else "otf"
if interpolate_layout_from is not None:
if interpolate_layout_dir is None:
interpolate_layout_dir = self._output_dir(
ext, is_instance=False, interpolatable=interpolatable
)
finder = partial(_varLib_finder, directory=interpolate_layout_dir, ext=ext)
# no need to generate automatic features in ufo2ft, since here we
# are interpolating precompiled GPOS table with fontTools.varLib.
help="Run ttfautohint. Can provide arguments, quoted",
)
contourGroup.add_argument(
"--cff-round-tolerance",
type=float,
default=None,
metavar="FLOAT",
help="Restrict rounding of point coordinates in CFF table to only "
"those floats whose absolute difference from their integral part "
"is less than or equal to the tolerance. By default, all floats "
"are rounded to integer (tolerance 0.5); 0 disables rounding.",
)
contourGroup.add_argument(
"--optimize-cff",
type=lambda s: CFFOptimization(int(s)),
default=CFFOptimization.SUBROUTINIZE,
help="0 disables all optimizations; 1 specializes the CFF charstring "
"operators; 2 (default) also enables subroutinization",
)
contourGroup.add_argument(
"--no-optimize-gvar",
dest="optimize_gvar",
action="store_false",
help="Do not perform IUP optimization on variable font's 'gvar' table. "
"(only works with 'variable' TrueType-flavored output)",
)
layoutGroup = parser.add_argument_group(title="Handling of OpenType Layout")
layoutGroup.add_argument(
"--interpolate-binary-layout",
nargs="?",
default=False,
raise ValueError("output_path requires a single input")
if subroutinize is not None:
import warnings
warnings.warn(
"the 'subroutinize' argument is deprecated, use 'optimize_cff'",
UserWarning,
)
if subroutinize:
optimize_cff = CFFOptimization.SUBROUTINIZE
else:
# for b/w compatibility, we still run the charstring specializer
# even when --no-subroutinize is used. Use the new --optimize-cff
# option to disable both specilization and subroutinization
optimize_cff = CFFOptimization.SPECIALIZE
ext = "ttf" if ttf else "otf"
if interpolate_layout_from is not None:
if interpolate_layout_dir is None:
interpolate_layout_dir = self._output_dir(
ext, is_instance=False, interpolatable=interpolatable
)
finder = partial(_varLib_finder, directory=interpolate_layout_dir, ext=ext)
# no need to generate automatic features in ufo2ft, since here we
# are interpolating precompiled GPOS table with fontTools.varLib.
# An empty 'featureWriters' list tells ufo2ft to not generate any
# automatic features.
# TODO: Add an argument to ufo2ft.compileOTF/compileTTF to
# completely skip compiling features into OTL tables
feature_writers = []