dist.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:subzero 作者: xoviat 项目源码 文件源码
def _compile_requirements(self):
        packages = set()
        for requirement in self.distribution.install_requires:
            requirement = Requirement.parse(requirement)
            packages.add(requirement.key)

        # Create the dependency map
        entries = json.loads(
            decode(subprocess.check_output(['pipdeptree', '--json'])))
        entry_map = { entry['package']['key'] : 
                        set([ dependency['key'] for dependency in entry['dependencies'] ]) for entry in entries }

        while True:
            for package in packages:
                if package in entry_map and not entry_map[package] < packages:
                    packages.update(entry_map[package])
                    break
            else:
                break

        module_files = set()
        binary_files = set()

        for package in packages:
            in_header = True
            root = None

            for info in search_packages_info(package):
                files = info['files']
                root = info['location']
                for file in files:
                    full_path = os.path.abspath(
                        os.path.join(root, file))
                    if full_path.endswith('.py') or full_path.endswith('.pyc'):
                        module_files.add(full_path)
                    if is_binary(full_path):
                        binary_files.add(full_path)

        return module_files, binary_files
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号