def __init__(self, timing=False, verbose="INFO", validate_ufo=False): logging.basicConfig(level=getattr(logging, verbose.upper())) logging.getLogger("fontTools.subset").setLevel(logging.WARNING) if timing: configLogger(logger=timer.logger, level=logging.DEBUG) logger.debug("ufoLib UFO validation is %s", "enabled" if validate_ufo else "disabled") self.validate_ufo = validate_ufo
def main(args=None): log = compreffor.log timer = compreffor.timer timer.reset() options = parse_arguments(args) # consume kwargs that are not passed on to 'compress' function infile = options.pop('infile') outfile = options.pop('outfile') decompress = options.pop('decompress') generate_cff = options.pop('generate_cff') check = options.pop('check') verbose = options.pop('verbose') if verbose == 1: level = logging.INFO elif verbose > 1: level = logging.DEBUG else: level = logging.WARNING configLogger(logger=log, level=level) orig_size = os.path.getsize(infile) font = TTFont(infile) if decompress: log.info("Decompressing font with FontTools Subsetter") with timer("decompress the font"): compreffor.decompress(font) log.info("Compressing font through %s Compreffor", "pure-Python" if options['method_python'] else "C++") compreffor.compress(font, **options) with timer("compile and save compressed font"): font.save(outfile) if generate_cff: cff_file = os.path.splitext(outfile)[0] + ".cff" with open(cff_file, 'wb') as f: font['CFF '].cff.compile(f, None) log.info("Saved CFF data to '%s'" % os.path.basename(cff_file)) if check: log.info("Checking compression integrity and call depth") passed = compreffor.check(infile, outfile) if not passed: return 1 comp_size = os.path.getsize(outfile) log.info("Compressed to '%s' -- saved %s" % (os.path.basename(outfile), human_size(orig_size - comp_size))) log.debug("Total time: %gs", timer.time())
def __init__(self, timing=False): if timing: configLogger(logger=timer.logger, level=logging.DEBUG)
def logger(): log = logging.getLogger(next(unique_logger_name)) configLogger(logger=log, level="DEBUG", stream=StringIO()) return log
def __init__(self, timing=False, verbose='INFO'): logging.basicConfig(level=getattr(logging, verbose.upper())) logging.getLogger('fontTools.subset').setLevel(logging.WARNING) if timing: configLogger(logger=timer.logger, level=logging.DEBUG)
def __init__(self, timing=False, verbose='INFO'): logging.basicConfig(level=getattr(logging, verbose.upper())) self.logger = logging.getLogger('fontmake') if timing: configLogger(logger=timer.logger, level=logging.DEBUG)