Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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())
Ejemplo n.º 3
0
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())
Ejemplo n.º 4
0
 def __init__(self, timing=False):
     if timing:
         configLogger(logger=timer.logger, level=logging.DEBUG)
Ejemplo n.º 5
0
def logger():
    log = logging.getLogger(next(unique_logger_name))
    configLogger(logger=log, level="DEBUG", stream=StringIO())
    return log
Ejemplo n.º 6
0
def logger():
    log = logging.getLogger(next(unique_logger_name))
    configLogger(logger=log, level="DEBUG", stream=StringIO())
    return log
Ejemplo n.º 7
0
 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)
Ejemplo n.º 8
0
 def __init__(self, timing=False):
     if timing:
         configLogger(logger=timer.logger, level=logging.DEBUG)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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)