def _get_codename(self, pathname, basename):
file_py  = pathname + "<STR_LIT>"<EOL>file_pyc = pathname + "<STR_LIT>"<EOL>file_pyo = pathname + "<STR_LIT>"<EOL>if os.path.isfile(file_pyo) andos.stat(file_pyo).st_mtime >= os.stat(file_py).st_mtime:<EOL><INDENT>fname = file_pyo    <EOL><DEDENT>elif not os.path.isfile(file_pyc) oros.stat(file_pyc).st_mtime < os.stat(file_py).st_mtime:<EOL><INDENT>import py_compile<EOL>if self.debug:<EOL><INDENT>print("<STR_LIT>", file_py)<EOL><DEDENT>try:<EOL><INDENT>py_compile.compile(file_py, file_pyc, None, True)<EOL><DEDENT>except py_compile.PyCompileError as err:<EOL><INDENT>print(err.msg)<EOL><DEDENT>fname = file_pyc<EOL><DEDENT>else:<EOL><INDENT>fname = file_pyc<EOL><DEDENT>archivename = os.path.split(fname)[<NUM_LIT:1>]<EOL>if basename:<EOL><INDENT>archivename = "<STR_LIT>" % (basename, archivename)<EOL><DEDENT>return (fname, archivename)<EOL>
Return (filename, archivename) for the path.

        Given a module name path, return the correct file path and
        archive name, compiling if necessary.  For example, given
        /python/lib/string, return (/python/lib/string.pyc, string).