Example #1
0
 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])
Example #2
0
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
Example #3
0
    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])
Example #4
0
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
Example #5
0
    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])
Example #6
0
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
Example #7
0
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)))
Example #8
0
 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])
Example #9
0
 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])
Example #10
0
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)
Example #11
0
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)
Example #12
0
 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])
Example #13
0
 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])
Example #14
0
    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])
Example #15
0
 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))
Example #16
0
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))
Example #17
0
    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
Example #18
0
    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 " +\
Example #19
0
 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))