summaryrefslogtreecommitdiffstats
path: root/FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2023-01-23 14:28:53 -0800
committeryum <yum.food.vr@gmail.com>2023-01-23 14:32:09 -0800
commit9fff496394dcd94c4084694ca96a5e07ab836274 (patch)
treed89b78e16ecb6011bdd74555da79f7a8c1d90752 /FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py
parent9329d64f991b8b3289af22e4c2eedb09a97c5640 (diff)
package.ps1 now fetches all dependencies
Don't literally check in Python since it looks dodgy (rightfully so). Instead the build script just fetches it. * Update README, simplifying language and documenting other projects
Diffstat (limited to 'FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py')
-rw-r--r--FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py122
1 files changed, 0 insertions, 122 deletions
diff --git a/FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py b/FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py
deleted file mode 100644
index 3abd370..0000000
--- a/FOSS/Python/Dependencies/future-0.18.2/docs/other/auto2to3.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python3
-"""Wrapper to run 2to3 automatically at import time.
-
-Usage:
- auto2to3 -m mypackage.main_module
- auto2to3 mypackage/script.py
-
-By default, all modules imported from a subdirectory of the current
-directory will be run through `2to3`. To change this behavior, use the
-`--package` or `--dir` flags to `auto2to3` to specify which packages or
-directories contain Python 2 code that should be converted.
-
-2to3 output is cached on disk between runs for speed.
-
-Based on auto2to3.py by Georg Brandl:
-http://dev.pocoo.org/hg/sandbox/file/tip/auto2to3.py
-"""
-
-import argparse
-import os
-import sys
-import imp
-import runpy
-from io import StringIO
-from pkgutil import ImpImporter, ImpLoader
-import runpy
-import sys
-import tempfile
-
-import lib2to3
-from lib2to3.refactor import RefactoringTool, get_fixers_from_package
-
-fixes = get_fixers_from_package('lib2to3.fixes')
-rt = RefactoringTool(fixes)
-
-PACKAGES = []
-DIRS = []
-
-def maybe_2to3(filename, modname=None):
- """Returns a python3 version of filename."""
- need_2to3 = False
- filename = os.path.abspath(filename)
- if any(filename.startswith(d) for d in DIRS):
- need_2to3 = True
- elif modname is not None and any(modname.startswith(p) for p in PACKAGES):
- need_2to3 = True
- if not need_2to3:
- return filename
- outfilename = '/_auto2to3_'.join(os.path.split(filename))
- if (not os.path.exists(outfilename) or
- os.stat(filename).st_mtime > os.stat(outfilename).st_mtime):
- try:
- with open(filename) as file:
- contents = file.read()
- contents = rt.refactor_docstring(contents, filename)
- tree = rt.refactor_string(contents, filename)
- except Exception as err:
- raise ImportError("2to3 couldn't convert %r" % filename)
- outfile = open(outfilename, 'wb')
- outfile.write(str(tree).encode('utf8'))
- outfile.close()
- return outfilename
-
-
-
-class ToThreeImporter(ImpImporter):
- def find_module(self, fullname, path=None):
- # this duplicates most of ImpImporter.find_module
- subname = fullname.split(".")[-1]
- if subname != fullname and self.path is None:
- return None
- if self.path is None:
- path = None
- else:
- path = [os.path.realpath(self.path)]
- try:
- file, filename, etc = imp.find_module(subname, path)
- except ImportError:
- return None
- if file and etc[2] == imp.PY_SOURCE:
- outfilename = maybe_2to3(filename, modname=fullname)
- if outfilename != filename:
- file.close()
- filename = outfilename
- file = open(filename, 'rb')
- return ImpLoader(fullname, file, filename, etc)
-
-
-# setup the hook
-sys.path_hooks.append(ToThreeImporter)
-for key in sys.path_importer_cache:
- if sys.path_importer_cache[key] is None:
- sys.path_importer_cache[key] = ToThreeImporter(key)
-
-def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('--package', action='append')
- parser.add_argument('--dir', action='append')
- parser.add_argument('-m', action='store', metavar='MODULE')
- args, rest = parser.parse_known_args()
- if args.package:
- PACKAGES.extend(args.package)
- if args.dir:
- DIRS.extend(os.path.abspath(d) for d in args.dir)
- if not PACKAGES and not DIRS:
- DIRS.append(os.getcwd())
- if args.m:
- sys.argv[1:] = rest
- runpy.run_module(args.m, run_name='__main__', alter_sys=True)
- elif rest:
- sys.argv = rest
- converted = maybe_2to3(rest[0])
- with open(converted) as f:
- new_globals = dict(__name__='__main__',
- __file__=rest[0])
- exec(f.read(), new_globals)
- else:
- import code
- code.interact()
-
-if __name__ == '__main__':
- main()