inputs: Complete the below
def byte_compile(py_files, optimize=0, force=0, prefix=None, base_dir=None, verbose=1, dry_run=0, direct=None):

    ''''Byte-compile a collection of Python source files to .pyc
    files in a __pycache__ subdirectory.  \'py_files\' is a list
    of files to compile; any files that don\'t end in ".py" are silently
    skipped.  \'optimize\' must be one of the following:
    0 - don\'t optimize
    1 - normal optimization (like "python -O")
    2 - extra optimization (like "python -OO")
    If \'force\' is true, all files are recompiled regardless of
    timestamps.
    The source filename encoded in each bytecode file defaults to the
    filenames listed in \'py_files\'; you can modify these with \'prefix\' and
    \'basedir\'.  \'prefix\' is a string that will be stripped off of each
    source filename, and \'base_dir\' is a directory name that will be
    prepended (after \'prefix\' is stripped).  You can supply either or both
    (or neither) of \'prefix\' and \'base_dir\', as you wish.
    If \'dry_run\' is true, doesn\'t actually do anything that would
    affect the filesystem.
    Byte-compilation is either done directly in this interpreter process
    with the standard py_compile module, or indirectly by writing a
    temporary script and executing it.  Normally, you should let
    \'byte_compile()\' figure out to use direct compilation or not (see
    the source for details).  The \'direct\' flag is used by the script
    generated in indirect mode; unless you know what you\'re doing, leave
    it set to None.'
    '''
targets: import subprocess
    if sys.dont_write_bytecode:
        raise DistutilsByteCompileError('byte-compiling    is    disabled.')
    if (direct is None):
        direct = (__debug__ and (optimize == 0))
    if (not direct):
        try:
            from tempfile import mkstemp
            (script_fd, script_name) = mkstemp('.py')
        except ImportError:
            from tempfile import mktemp
            (script_fd, script_name) = (None, mktemp('.py'))
        log.info("writing    byte-compilation    script    '%s'", script_name)
        if (not dry_run):
            if (script_fd is not None):
                script = os.fdopen(script_fd, 'w')
            else:
                script = open(script_name, 'w')
            script.write('from    distutils.util    import    byte_compile\nfiles    =    [\n')
            script.write((',\n'.join(map(repr, py_files)) + ']\n'))
            script.write(('\nbyte_compile(files,    optimize=%r,    force=%r,\n                                                    prefix=%r,    base_dir=%r,\n                                                    verbose=%r,    dry_run=0,\n                                                    direct=1)\n' % (optimize, force, prefix, base_dir, verbose)))
            script.close()
        cmd = [sys.executable]
        cmd.extend(subprocess._optim_args_from_interpreter_flags())
        cmd.append(script_name)
        spawn(cmd, dry_run=dry_run)
        execute(os.remove, (script_name,), ('removing    %s' % script_name), dry_run=dry_run)
    else:
        from py_compile import compile
        for file in py_files:
            if (file[(-3):] != '.py'):
                continue
            if (optimize >= 0):
                opt = ('' if (optimize == 0) else optimize)
                cfile = importlib.util.cache_from_source(file, optimization=opt)
            else:
                cfile = importlib.util.cache_from_source(file)
            dfile = file
            if prefix:
                if (file[:len(prefix)] != prefix):
                   ...