def run(self): """overridden from install_lib class""" install_lib.install_lib.run(self) # create Products.__init__.py if needed if subpackage_of: product_init = join(self.install_dir, subpackage_of, '__init__.py') if not exists(product_init): self.announce('creating %s' % product_init) with open(product_init, 'w') as stream: stream.write(EMPTY_FILE) # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname for directory in include_dirs: dest = join(self.install_dir, base, directory) if sys.version_info >= (3, 0): exclude = {'invalid_encoded_data*', 'unknown_encoding*'} else: exclude = set() shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest, ignore=shutil.ignore_patterns(*exclude)) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) # pylint: disable=no-name-in-module from distutils.util import run_2to3 print(('running 2to3 on', dest)) run_2to3([dest])
def setup_python3(): # Taken from "distribute" setup.py from distutils.filelist import FileList from distutils import dir_util, file_util, util, log tmp_src = join("build", "src") log.set_verbosity(1) fl = FileList() for line in open("MANIFEST.in"): if not line.strip(): continue fl.process_template_line(line) dir_util.create_tree(tmp_src, fl.files) outfiles_2to3 = [] for f in fl.files: outf, copied = file_util.copy_file(f, join(tmp_src, f), update=1) if copied and outf.endswith(".py"): outfiles_2to3.append(outf) util.run_2to3(outfiles_2to3) # arrange setup to use the copy sys.path.insert(0, tmp_src) return tmp_src
def run(self): """overridden from install_lib class""" install_lib.install_lib.run(self) # create Products.__init__.py if needed if subpackage_of: product_init = join(self.install_dir, subpackage_of, '__init__.py') if not exists(product_init): self.announce('creating %s' % product_init) stream = open(product_init, 'w') stream.write(EMPTY_FILE) stream.close() # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname for directory in include_dirs: dest = join(self.install_dir, base, directory) if sys.version_info >= (3, 0): exclude = set(('func_unknown_encoding.py', 'func_invalid_encoded_data.py')) else: exclude = set() shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest, ignore=lambda dir, names: list(set(names) & exclude)) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) # pylint: disable=no-name-in-module from distutils.util import run_2to3 print('running 2to3 on', dest) run_2to3([dest])
def setup_python3(): """Taken from "distribute" setup.py.""" from distutils.filelist import FileList from distutils import dir_util, file_util, util from os.path import join, exists tmp_src = join("build", "src") # Not covered by "setup.py clean --all", so explicit deletion required. if exists(tmp_src): dir_util.remove_tree(tmp_src) # log.set_verbosity(1) fl = FileList() for line in open("MANIFEST.in"): if not line.strip(): continue fl.process_template_line(line) dir_util.create_tree(tmp_src, fl.files) outfiles_2to3 = [] for f in fl.files: outf, copied = file_util.copy_file(f, join(tmp_src, f), update=1) if copied and outf.endswith(".py"): outfiles_2to3.append(outf) util.run_2to3(outfiles_2to3) # arrange setup to use the copy sys.path.insert(0, tmp_src) return tmp_src
def run(self): """overridden from install_lib class""" install_lib.install_lib.run(self) # create Products.__init__.py if needed if subpackage_of: product_init = join(self.install_dir, subpackage_of, '__init__.py') if not exists(product_init): self.announce('creating %s' % product_init) stream = open(product_init, 'w') stream.write(EMPTY_FILE) stream.close() # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname for directory in include_dirs: dest = join(self.install_dir, base, directory) if sys.version_info >= (3, 0): exclude = set(('func_unknown_encoding.py', 'func_invalid_encoded_data.py')) else: exclude = set() shutil.rmtree(dest, ignore_errors=True) shutil.copytree( directory, dest, ignore=lambda dir, names: list(set(names) & exclude)) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) from distutils.util import run_2to3 print('running 2to3 on', dest) run_2to3([dest])
def setup_python3(): # Taken from "distribute" setup.py from distutils.filelist import FileList from distutils import dir_util, file_util, util, log from os.path import join tmp_src = join("build", "src") log.set_verbosity(1) fl = FileList() for line in open("MANIFEST.in"): if not line.strip(): continue fl.process_template_line(line) dir_util.create_tree(tmp_src, fl.files) outfiles_2to3 = [] for f in fl.files: outf, copied = file_util.copy_file(f, join(tmp_src, f), update=1) if copied and outf.endswith(".py"): outfiles_2to3.append(outf) util.run_2to3(outfiles_2to3) # arrange setup to use the copy sys.path.insert(0, tmp_src) return tmp_src
def generate_proto(sr_path, dst_path): """Invokes the Protocol Compiler to generate a _pb2.py from the given .proto file. Also, run 2to3 conversion to make the package compatible with Python 3 code.""" proto_files = glob("{0}/*.proto".format(sr_path)) if len(proto_files) == 0: sys.stderr.write("Unable to locate proto source files") sys.exit(-1) protoc_command = [ protoc, "-I", sr_path, "--python_out={}".format(dst_path), ] + proto_files if protoc is None: sys.stderr.write( "protoc is not installed nor found in ../src. Please compile it " "or install the binary package.\n" ) sys.exit(-1) print(" ".join(protoc_command)) if subprocess.call(protoc_command) != 0: sys.exit(-1) run_2to3(glob("{0}/*_pb2.py".format(dst_path)))
def run(self): """overridden from install_lib class""" build_py.run(self) # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname basedir = os.path.join(self.build_lib, base) for directory in include_dirs: dest = join(basedir, directory) shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) from distutils.util import run_2to3 print(('running 2to3 on', dest)) run_2to3([dest])
def run(self): """overridden from install_lib class""" build_py.run(self) # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname basedir = os.path.join(self.build_lib, base) for directory in include_dirs: dest = join(basedir, directory) shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) from distutils.util import run_2to3 print('running 2to3 on', dest) run_2to3([dest])
def main(argv): parser = OptionParser(usage='%prog [path]') parser.add_option('-i', '--ignorepath', dest='ignored_paths', action='append', default=[]) options, args = parser.parse_args(argv) ignored_paths = {os.path.abspath(p) for p in options.ignored_paths} path = os.path.abspath(args[0]) if args else os.getcwd() convertables = [] for filename in iglob(os.path.join(path, '*.py')): if filename in ignored_paths: continue basename, ext = os.path.splitext(filename) if basename.endswith('3'): continue filename3 = basename + '3' + ext copy(filename, filename3) convertables.append(filename3) run_2to3(convertables)
def run(self): """overridden from install_lib class""" install_lib.install_lib.run(self) # manually install included directories if any if include_dirs: for directory in include_dirs: dest = join(self.install_dir, directory) if sys.version_info >= (3, 0): exclude = set(['invalid_encoded_data*', 'unknown_encoding*']) else: exclude = set() shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest, ignore=shutil.ignore_patterns(*exclude)) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) # pylint: disable=no-name-in-module from distutils.util import run_2to3 print(('running 2to3 on', dest)) run_2to3([dest])
def run(self): """overridden from install_lib class""" install_lib.install_lib.run(self) # create Products.__init__.py if needed if subpackage_of: product_init = join(self.install_dir, subpackage_of, '__init__.py') if not exists(product_init): self.announce('creating %s' % product_init) stream = open(product_init, 'w') stream.write(EMPTY_FILE) stream.close() # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname for directory in include_dirs: dest = join(self.install_dir, base, directory) if sys.version_info >= (3, 0): exclude = set(('func_unknown_encoding.py', 'func_invalid_encoded_data.py', 'invalid_encoded_data.py')) else: exclude = set() shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest) # since python2.5's copytree doesn't support the ignore # parameter, the following loop to remove the exclude set # was added for (dirpath, _, filenames) in os.walk(dest): for n in filenames: if n in exclude: os.remove(os.path.join(dirpath, n)) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) # pylint: disable=no-name-in-module from distutils.util import run_2to3 print(('running 2to3 on', dest)) run_2to3([dest])
def run(self): """overridden from install_lib class""" install_lib.install_lib.run(self) # create Products.__init__.py if needed if subpackage_of: product_init = join(self.install_dir, subpackage_of, "__init__.py") if not exists(product_init): self.announce("creating %s" % product_init) stream = open(product_init, "w") stream.write(EMPTY_FILE) stream.close() # manually install included directories if any if include_dirs: if subpackage_of: base = join(subpackage_of, modname) else: base = modname for directory in include_dirs: dest = join(self.install_dir, base, directory) if sys.version_info >= (3, 0): exclude = set(("func_unknown_encoding.py", "func_invalid_encoded_data.py")) else: exclude = set() shutil.rmtree(dest, ignore_errors=True) shutil.copytree(directory, dest) # since python2.5's copytree doesn't support the ignore # parameter, the following loop to remove the exclude set # was added for (dirpath, dirnames, filenames) in os.walk(dest): for n in filenames: if n in exclude: os.remove(os.path.join(dirpath, n)) if sys.version_info >= (3, 0): # process manually python file in include_dirs (test data) # pylint: disable=no-name-in-module from distutils.util import run_2to3 print("running 2to3 on", dest) run_2to3([dest])
def run_2to3_on_build_dirs(self): for dir in self.makefile_src_paths(): buildir = os.path.join(self.codes_dir, os.path.relpath(dir, self.codes_src_dir)) run_2to3(self.pyfiles_in_build_dir(buildir))
def run_2to3_on_build_dirs(paths, target, src): for dir in paths: buildir = os.path.join(target, os.path.relpath(dir, src)) run_2to3(pyfiles_in_build_dir(buildir))
outfiles_2to3 = [] dist_script = os.path.join("build", "src", "distribute_setup.py") for f in fl.files: outf, copied = file_util.copy_file(f, os.path.join(tmp_src, f), update=1) if copied and outf.endswith(".py") and outf != dist_script: outfiles_2to3.append(outf) if copied and outf.endswith('api_tests.txt'): # XXX support this in distutils as well from lib2to3.main import main main( 'lib2to3.fixes', ['-wd', os.path.join(tmp_src, 'tests', 'api_tests.txt')]) util.run_2to3(outfiles_2to3) # arrange setup to use the copy sys.path.insert(0, tmp_src) src_root = tmp_src from distutils.util import convert_path d = {} init_path = convert_path('setuptools/command/__init__.py') exec(open(init_path).read(), d) SETUP_COMMANDS = d['__all__'] VERSION = "0.6.24" from setuptools import setup, find_packages
tmp.close() dir_util.create_tree(package_prefix, fl.files) outfiles_2to3 = [] #dist_script = os.path.join("build", "src", "distribute_setup.py") for f in fl.files: outf, copied = file_util.copy_file(f, os.path.join(package_prefix, f), update=1) if copied and outf.endswith(".py"): #and outf != dist_script: outfiles_2to3.append(outf) if copied and outf.endswith('api_tests.txt'): # XXX support this in distutils as well from lib2to3.main import main main('lib2to3.fixes', ['-wd', os.path.join(package_prefix, 'tests', 'api_tests.txt')]) util.run_2to3(outfiles_2to3) # arrange setup to use the copy sys.path.insert(0, package_prefix) src_root = package_prefix print('done.') else: from distutils.core import setup from distutils.core import Extension class build(_build): user_options = _build.user_options + \ [ #('r-autoconfig', None, # "guess all configuration paths from " +\