commands.py 文件源码

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

项目:dante 作者: sbg 项目源码 文件源码
def parse_requirement_file(req_file, constraint=False):
    """Returns dependencies parsed from a requirement file
    :param req_file: file to parse
    :param constraint: if file a constraints file
    :return: dictionary of dependencies
    """
    if not os.path.exists(req_file):
        printer.warning('Requirement file "{}" not found'.format(req_file))
        sys.exit()

    with open(req_file, 'r') as requirements_file:
        with tempfile.NamedTemporaryFile('r+', delete=False) as temp_file:

            requirements_lines = requirements_file.readlines()

            # Ignore links
            data = [
                line for line in requirements_lines
                if not line.startswith('-r') and not line.startswith('-c')
            ]

            data = "".join(data)
            temp_file.write(data)
            processed_file_path = temp_file.name

    requirements = {
        item.name: item.req.specifier or None
        for item in pip.req.parse_requirements(
            filename=processed_file_path,
            session='session',
            constraint=constraint
        )
        if isinstance(item, pip.req.InstallRequirement)
    }

    # Delete temporary file
    with contextlib.suppress(FileNotFoundError):
        os.remove(processed_file_path)

    return requirements
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号