def parse_packages(packages, pre, clear, system, requirements_dir=None): from pipenv.vendor.requirementslib.models.requirements import Requirement from pipenv.vendor.vistir.contextmanagers import cd, temp_path from pipenv.utils import parse_indexes parsed_packages = [] for package in packages: indexes, trusted_hosts, line = parse_indexes(package) line = " ".join(line) pf = dict() req = Requirement.from_line(line) if not req.name: with temp_path(), cd(req.req.setup_info.base_dir): sys.path.insert(0, req.req.setup_info.base_dir) req.req._setup_info.get_info() req.update_name_from_path(req.req.setup_info.base_dir) try: name, entry = req.pipfile_entry except Exception: continue else: if name is not None and entry is not None: pf[name] = entry parsed_packages.append(pf) print("RESULTS:") if parsed_packages: print(json.dumps(parsed_packages)) else: print(json.dumps([]))
def test_install(): from pipenv.vendor.vistir.contextmanagers import cd from pipenv.vendor.click.testing import CliRunner runner = CliRunner() with cd("/tmp/test"): from pipenv.core import do_lock locked = do_lock(system=False, clear=False, pre=False, keep_outdated=False, write=True, pypi_mirror=None) # result = runner.invoke(cli, ["lock", "--verbose"]) # print(result.output) # print(result.exit_code) print(locked)