示例#1
0
    def __from_data(cls, data):
        meta_vars = fix_kw(data["meta"])
        # variables = data["variables"]
        install_paths = data.get("install_paths", None)

        executables = {}
        for name, executable in data["executables"].items():
            executables[name] = Executable.from_parse_dict(fix_kw(executable))

        file_sections = {}

        def json_to_file_section(data):
            category = data["category"]
            name = data["name"]
            section = InstalledSection(category, name, data["source_dir"], data["target_dir"], data["files"])
            return category, name, section

        for section in data["file_sections"]:
            category, name, files = json_to_file_section(section)
            if category in file_sections:
                if name in file_sections[category]:
                    raise ValueError("section %s of type %s already exists !" % (name, category))
                file_sections[category][name] = files
            else:
                file_sections[category] = {name: files}
        return cls(file_sections, meta_vars, executables, install_paths)
示例#2
0
    def test_basic(self):
        exe = Executable.from_representation("foo = core:main")
        self.assertEqual(exe.name, "foo")
        self.assertEqual(exe.module, "core")
        self.assertEqual(exe.function, "main")

        self.assertEqual(exe.full_representation(), "foo = core:main")
    def __from_data(cls, data):
        meta_vars = fix_kw(data["meta"])
        #variables = data["variables"]
        install_paths = data.get("install_paths", None)

        executables = {}
        for name, executable in data["executables"].items():
            executables[name] = Executable.from_parse_dict(fix_kw(executable))

        file_sections = {}

        def json_to_file_section(data):
            category = data["category"]
            name = data["name"]
            section = InstalledSection(category, name, data["source_dir"],
                                       data["target_dir"], data["files"])
            return category, name, section

        for section in data["file_sections"]:
            category, name, files = json_to_file_section(section)
            if category in file_sections:
                if name in file_sections[category]:
                    raise ValueError("section %s of type %s already exists !" % (name, category))
                file_sections[category][name] = files
            else:
                file_sections[category] = {name: files}
        return cls(file_sections, meta_vars, executables, install_paths)
示例#4
0
    def test_basic(self):
        exe = Executable.from_representation("foo = core:main")
        self.assertEqual(exe.name, "foo")
        self.assertEqual(exe.module, "core")
        self.assertEqual(exe.function, "main")

        self.assertEqual(exe.full_representation(), "foo = core:main")
    def __from_data(cls, data):
        def _encode_kw(d):
            return dict([(k.encode(), v) for k, v in d.items()])

        meta_vars = _encode_kw(data["meta"])
        path_vars = data["variables"]["paths"]

        executables = {}
        for name, executable in data["variables"]["executables"].items():
            executables[name] = Executable.from_parse_dict(_encode_kw(executable))

        file_sections = {}

        def json_to_file_section(data):
            tp, section_name = data["name"].split(":", 1)
            section = InstalledSection(tp, section_name, data["source_dir"],
                                       data["target_dir"], data["files"])
            return tp, section_name, section

        for section in data["file_sections"]:
            tp, name, files = json_to_file_section(section)
            if tp in file_sections:
                if name in file_sections[tp]:
                    raise ValueError("section %s of type %s already exists !" % (name, type))
                file_sections[tp][name] = files
            else:
                file_sections[tp] = {name: files}
        return cls(file_sections, meta_vars, path_vars, executables)
def distutils_to_package_description(dist):
    root = bento.core.node.Node("", None)
    top = root.find_dir(os.getcwd())

    data = {}

    data['name'] = dist.get_name()
    data['version'] = dist.get_version()
    data['author'] = dist.get_author()
    data['author_email'] = dist.get_author_email()
    data['maintainer'] = dist.get_contact()
    data['maintainer_email'] = dist.get_contact_email()
    data['summary'] = dist.get_description()
    data['description'] = dist.get_long_description().replace("#", "\#")
    data['license'] = dist.get_license()
    data['platforms'] = dist.get_platforms()

    data['download_url'] = dist.get_download_url()
    data['url'] = dist.get_url()

    # XXX: reliable way to detect whether Distribution was monkey-patched by
    # setuptools
    try:
        reqs = getattr(dist, "install_requires")
        # FIXME: how to detect this correctly
        if is_string(reqs):
            reqs = [reqs]
        data['install_requires'] = reqs
    except AttributeError:
        pass

    if dist.py_modules is None:
        data['py_modules'] = []
    else:
        data['py_modules'] = dist.py_modules
    if dist.packages is None:
        packages = []
    else:
        packages = dist.packages
    data['packages'] = validate_packages(packages, top)
    if dist.ext_modules:
        data['extensions'] = dict([(e.name, e) for e in dist.ext_modules])
    else:
        data['extensions'] = {}
    data['classifiers'] = dist.get_classifiers()

    data["executables"] = {}

    entry_points = entry_points_from_dist(dist)
    if entry_points:
        console_scripts = entry_points.get("console_scripts", [])
        for entry in console_scripts:
            exe = Executable.from_representation(entry)
            data["executables"][exe.name] = exe

    return PackageDescription(**data)
示例#7
0
文件: conv.py 项目: aspidites/Bento
def distutils_to_package_description(dist):
    root = bento.core.node.Node("", None)
    top = root.find_dir(os.getcwd())

    data = {}

    data['name'] = dist.get_name()
    data['version'] = dist.get_version()
    data['author'] = dist.get_author()
    data['author_email'] = dist.get_author_email()
    data['maintainer'] = dist.get_contact()
    data['maintainer_email'] = dist.get_contact_email()
    data['summary'] = dist.get_description()
    data['description'] = dist.get_long_description().replace("#", "\#")
    data['license'] = dist.get_license()
    data['platforms'] = dist.get_platforms()

    data['download_url'] = dist.get_download_url()
    data['url'] = dist.get_url()

    # XXX: reliable way to detect whether Distribution was monkey-patched by
    # setuptools
    try:
        reqs = getattr(dist, "install_requires")
        # FIXME: how to detect this correctly
        if issubclass(type(reqs), (str, unicode)):
            reqs = [reqs]
        data['install_requires'] = reqs
    except AttributeError:
        pass

    if dist.py_modules is None:
        data['py_modules'] = []
    else:
        data['py_modules'] = dist.py_modules
    if dist.packages is None:
        packages = []
    else:
        packages = dist.packages
    data['packages'] = validate_packages(packages, top)
    if dist.ext_modules:
        data['extensions'] = dict([(e.name, e) for e in dist.ext_modules])
    else:
        data['extensions'] = {}
    data['classifiers'] = dist.get_classifiers()

    data["executables"] = {}

    entry_points = entry_points_from_dist(dist)
    if entry_points:
        console_scripts = entry_points.get("console_scripts", [])
        for entry in console_scripts:
            exe = Executable.from_representation(entry)
            data["executables"][exe.name] = exe

    return PackageDescription(**data)
示例#8
0
文件: package.py 项目: abadger/Bento
def build_executables_from_dict(executables_d):
    executables = {}
    for name, executable in executables_d.items():
        executables[name] = Executable.from_parse_dict(executable)
    return executables
示例#9
0
文件: package.py 项目: pfmoore/Bento
def build_executables_from_dict(executables_d):
    executables = {}
    for name, executable in executables_d.items():
        executables[name] = Executable.from_parse_dict(executable)
    return executables
示例#10
0
 def test_create_win32_script(self):
     executable = Executable("foo", "foo.bar", "fubar")
     r_list = set(["foo-script.py", "foo.exe", "foo.exe.manifest"])
     self._test_create_script(create_win32_script, executable, r_list)
示例#11
0
 def test_create_posix_script(self):
     r_list = ["foo"]
     executable = Executable("foo", "foo.bar", "fubar")
     self._test_create_script(create_posix_script, executable, r_list)
示例#12
0
 def test_create_script_on_posix(self):
     r_list = set(["foo"])
     executable = Executable("foo", "foo.bar", "fubar")
     self._test_create_scripts(executable, r_list)
示例#13
0
 def test_create_script_on_win32(self):
     r_list = set(["foo-script.py", "foo.exe", "foo.exe.manifest"])
     executable = Executable("foo", "foo.bar", "fubar")
     self._test_create_scripts(executable, r_list)