Create a lock file for the given resolve configurations.
(
lock_configuration, # type: LockConfiguration
requirement_configuration, # type: RequirementConfiguration
targets, # type: Targets
pip_configuration, # type: PipConfiguration
dependency_configuration=DependencyConfiguration(), # type: DependencyConfiguration
avoid_downloads=False, # type: bool
)
| 606 | |
| 607 | |
| 608 | def create( |
| 609 | lock_configuration, # type: LockConfiguration |
| 610 | requirement_configuration, # type: RequirementConfiguration |
| 611 | targets, # type: Targets |
| 612 | pip_configuration, # type: PipConfiguration |
| 613 | dependency_configuration=DependencyConfiguration(), # type: DependencyConfiguration |
| 614 | avoid_downloads=False, # type: bool |
| 615 | ): |
| 616 | # type: (...) -> Union[Lockfile, Error] |
| 617 | """Create a lock file for the given resolve configurations.""" |
| 618 | |
| 619 | network_configuration = pip_configuration.network_configuration |
| 620 | parsed_requirements = tuple(requirement_configuration.parse_requirements(network_configuration)) |
| 621 | constraints = tuple( |
| 622 | parsed_constraint.requirement.as_constraint() |
| 623 | for parsed_constraint in requirement_configuration.parse_constraints(network_configuration) |
| 624 | ) |
| 625 | |
| 626 | password_database = PasswordDatabase.from_netrc().append( |
| 627 | pip_configuration.repos_configuration.password_entries |
| 628 | ) |
| 629 | package_index_configuration = PackageIndexConfiguration.create( |
| 630 | pip_version=pip_configuration.version, |
| 631 | resolver_version=pip_configuration.resolver_version, |
| 632 | network_configuration=network_configuration, |
| 633 | repos_configuration=attr.evolve( |
| 634 | pip_configuration.repos_configuration, password_entries=password_database.entries |
| 635 | ), |
| 636 | use_pip_config=pip_configuration.use_pip_config, |
| 637 | extra_pip_requirements=pip_configuration.extra_requirements, |
| 638 | keyring_provider=pip_configuration.keyring_provider, |
| 639 | uploaded_prior_to=pip_configuration.uploaded_prior_to, |
| 640 | ) |
| 641 | |
| 642 | configured_resolver = ConfiguredResolver(pip_configuration=pip_configuration) |
| 643 | lock_is_via_pip_download = ( |
| 644 | pip_configuration.version is PipVersion.VENDORED or not avoid_downloads |
| 645 | ) |
| 646 | lock_observer = LockObserver( |
| 647 | root_requirements=parsed_requirements, |
| 648 | lock_style=lock_configuration.style, |
| 649 | resolver=configured_resolver, |
| 650 | wheel_builder=WheelBuilder( |
| 651 | package_index_configuration=package_index_configuration, |
| 652 | build_configuration=pip_configuration.build_configuration, |
| 653 | pip_version=pip_configuration.version, |
| 654 | resolver=configured_resolver, |
| 655 | ), |
| 656 | package_index_configuration=package_index_configuration, |
| 657 | max_parallel_jobs=pip_configuration.max_jobs, |
| 658 | lock_is_via_pip_download=lock_is_via_pip_download, |
| 659 | ) |
| 660 | |
| 661 | download_dir = safe_mkdtemp() |
| 662 | with TRACER.timed("Calculating lock targets"): |
| 663 | download_input = calculate_download_input( |
| 664 | targets=targets, |
| 665 | requirement_configuration=requirement_configuration, |
no test coverage detected