Sha256: 1802c05993a462030b06ddae1ed43ccff65a7312628a1e0a4ca1c48c9713b053

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

#!/usr/bin/env python
import json
import sys

try:
        from pip._internal.req import parse_requirements
except ImportError:
        from pip.req import parse_requirements

try:
    # since pip 19.3
    from pip._internal.network.session import PipSession
except ImportError:
    try:
        # since pip 10
        from pip._internal.download import PipSession
    except ImportError:
        from pip.download import PipSession

from pip._vendor import pkg_resources
from pip._vendor.six import print_


reqs = []
for req in parse_requirements(sys.argv[1], session=PipSession()):
    try:
        if req.req is not None and (req.markers is None or req.markers.evaluate()):
            reqs.append(pkg_resources.Requirement.parse(str(req.req)))
    except AttributeError:
        # Since pip 20.1 (pip now takes care of markers at the resolve step)
        if req.requirement is not None:
            reqs.append(pkg_resources.Requirement.parse(str(req.requirement)))

transform = lambda dist: {
        'name': dist.project_name,
        'version': dist.version,
        'location': dist.location,
        'dependencies': list(map(lambda dependency: dependency.project_name, dist.requires())),
        }


packages = [transform(dist) for dist in pkg_resources.working_set.resolve(reqs)]
print_(json.dumps(packages))

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
license_finder-7.1.0 bin/license_finder_pip.py
license_finder-7.0.1 bin/license_finder_pip.py
license_finder-7.0.0 bin/license_finder_pip.py
license_finder-6.15.0 bin/license_finder_pip.py
gitlab-license_finder-6.14.2.1 bin/license_finder_pip.py
license_finder-6.14.2 bin/license_finder_pip.py