piptools.build module#
- class piptools.build.ProjectMetadata(extras: 'tuple[str, ...]', requirements: 'tuple[InstallRequirement, ...]', build_requirements: 'tuple[InstallRequirement, ...]')#
Bases:
object
- class piptools.build.StaticProjectMetadata(extras: 'tuple[str, ...]', requirements: 'tuple[InstallRequirement, ...]')#
Bases:
object
- piptools.build._build_project_wheel_metadata(builder: ProjectBuilder) PackageMetadata #
- piptools.build._create_project_builder(src_dir: Path, *, upgrade_packages: tuple[str, ...] | None = None, isolated: bool, quiet: bool) Iterator[ProjectBuilder] #
- piptools.build._prepare_build_requirements(builder: ProjectBuilder, src_file: Path, build_targets: tuple[str, ...], package_name: str) Iterator[InstallRequirement] #
- piptools.build._prepare_requirements(metadata: PackageMetadata, src_file: Path) Iterator[InstallRequirement] #
- piptools.build._temporary_constraints_file_set_for_pip(upgrade_packages: tuple[str, ...]) Iterator[None] #
- piptools.build.build_project_metadata(src_file: Path, build_targets: tuple[str, ...], *, upgrade_packages: tuple[str, ...] | None = None, attempt_static_parse: bool, isolated: bool, quiet: bool) ProjectMetadata | StaticProjectMetadata #
Return the metadata for a project.
First, optionally attempt to determine the metadata statically from the
pyproject.toml
file. This will not work if build_targets are specified, since we cannot determine build requirements statically.Uses the
prepare_metadata_for_build_wheel
hook for the wheel metadata if available, otherwisebuild_wheel
.Uses the
prepare_metadata_for_build_{target}
hook for eachbuild_targets
if available.- Parameters:
src_file – Project source file
build_targets – A tuple of build targets to get the dependencies of (
sdist
orwheel
oreditable
).attempt_static_parse – Whether to attempt to statically parse the project metadata from
pyproject.toml
. Cannot be used withbuild_targets
.isolated – Whether to run invoke the backend in the current environment or to create an isolated one and invoke it there.
quiet – Whether to suppress the output of subprocesses.
- piptools.build.maybe_statically_parse_project_metadata(src_file: Path) StaticProjectMetadata | None #
Return the metadata for a project, if it can be statically parsed from
pyproject.toml
.This function is typically significantly faster than invoking a build backend. Returns None if the project metadata cannot be statically parsed.