def METHOD_NAME(args=None):
    parser = argparse.ArgumentParser()
    parser.add_argument("input", nargs='+', metavar="INPUT")
    parser.add_argument("-o", "--output")
    parser.add_argument("-e", "--max-error", type=float, default=MAX_ERR)
    parser.add_argument("--post-format", type=float, default=POST_FORMAT)
    parser.add_argument(
        "--keep-direction", dest='reverse_direction', action='store_false')
    parser.add_argument("--face-index", type=int, default=-1)
    parser.add_argument("--overwrite", action='store_true')
    options = parser.parse_args(args)
    if options.output and len(options.input) > 1:
        if not os.path.isdir(options.output):
            parser.error("-o/--output option must be a directory when "
                         "processing multiple fonts")
    files = list(chain.from_iterable(map(glob.glob, options.input)))
    # Set the pool capacity to be the minimum of file quantity and CPU count,
    # at least 1.
    poolCapacity = max(min(os.cpu_count(), len(files)), 1)
    # Limit parallel capacity to 60 on win32 to avoid WaitForMultipleObjects
    # errors. See https://bugs.python.org/issue45077
    if poolCapacity > 60 and sys.platform == "win32":
        poolCapacity = 60
    # Do not use "with" statement, or code coverage will malfunction.
    pool = Pool(poolCapacity)
    try:
        pool.map(partial(run, options=options), files)
    finally:
        pool.close()
        pool.join()