Modules¶
pypi2nix.logger¶
-
class
pypi2nix.logger.Logger¶ -
debug(text: str) → None¶
-
error(text: str) → None¶
-
info(text: str) → None¶
-
set_verbosity(level: pypi2nix.logger.Verbosity) → None¶
-
warning(text: str) → None¶
-
-
exception
pypi2nix.logger.LoggerNotConnected¶
-
class
pypi2nix.logger.ProxyLogger¶ -
debug(text: str) → None¶
-
error(text: str) → None¶
-
get_target_logger() → Optional[pypi2nix.logger.Logger]¶
-
info(text: str) → None¶
-
set_target_logger(target: pypi2nix.logger.Logger) → None¶
-
set_verbosity(level: pypi2nix.logger.Verbosity) → None¶
-
warning(text: str) → None¶
-
-
class
pypi2nix.logger.StreamLogger(output: TextIO)¶ -
debug(text: str) → None¶
-
error(text: str) → None¶
-
info(text: str) → None¶
-
set_verbosity(level: pypi2nix.logger.Verbosity) → None¶
-
classmethod
stdout_logger() → pypi2nix.logger.StreamLogger¶
-
warning(text: str) → None¶
-
-
pypi2nix.logger.verbosity_from_int(n: int) → pypi2nix.logger.Verbosity¶
pypi2nix.dependency_graph¶
-
exception
pypi2nix.dependency_graph.CyclicDependencyOccured¶
-
class
pypi2nix.dependency_graph.DependencyGraph¶ -
classmethod
deserialize(data: str) → pypi2nix.dependency_graph.DependencyGraph¶
-
get_all_build_dependency_names(package: pypi2nix.requirements.Requirement) → Set[str]¶
-
get_all_external_dependencies(package: pypi2nix.requirements.Requirement) → Set[pypi2nix.external_dependencies.external_dependency.ExternalDependency]¶
-
get_all_runtime_dependency_names(package: pypi2nix.requirements.Requirement) → Set[str]¶
-
import_wheel(wheel: pypi2nix.wheel.Wheel, requirement_parser: pypi2nix.requirement_parser.RequirementParser) → None¶
-
is_buildtime_dependency(dependent: pypi2nix.requirements.Requirement, dependency: pypi2nix.requirements.Requirement) → bool¶
-
is_runtime_dependency(dependent: pypi2nix.requirements.Requirement, dependency: pypi2nix.requirements.Requirement) → bool¶
-
serialize() → str¶
-
set_buildtime_dependency(dependent: pypi2nix.requirements.Requirement, dependency: pypi2nix.requirements.Requirement) → None¶
-
set_external_dependency(dependent: pypi2nix.requirements.Requirement, dependency: pypi2nix.external_dependencies.external_dependency.ExternalDependency) → None¶
-
set_runtime_dependency(dependent: pypi2nix.requirements.Requirement, dependency: pypi2nix.requirements.Requirement) → None¶
-
classmethod
pypi2nix.external_dependencies¶
pypi2nix.wheels¶
-
class
pypi2nix.wheels.Index(logger: pypi2nix.logger.Logger, path: str = '/home/docs/checkouts/readthedocs.org/user_builds/pypi2nix/checkouts/latest/src/pypi2nix/wheels/index.json')¶ -
Entry= typing.Union[pypi2nix.wheels.UrlEntry, pypi2nix.wheels.GitEntry]¶
-
class
GitEntry(url, sha256, rev)¶ -
rev¶ Alias for field number 2
-
sha256¶ Alias for field number 1
-
url¶ Alias for field number 0
-
-
is_valid() → bool¶
-
pypi2nix.wheel_builder¶
-
class
pypi2nix.wheel_builder.WheelBuilder(pip: pypi2nix.pip.interface.Pip, project_directory: str, logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser, target_platform: pypi2nix.target_platform.TargetPlatform, base_dependency_graph: pypi2nix.dependency_graph.DependencyGraph)¶ -
build(requirements: pypi2nix.requirement_set.RequirementSet, setup_requirements: Optional[pypi2nix.requirement_set.RequirementSet] = None) → List[str]¶
-
dependency_graph¶
-
detect_additional_build_dependencies(requirements: pypi2nix.requirement_set.RequirementSet, constraints: Optional[pypi2nix.requirement_set.RequirementSet] = None) → pypi2nix.requirement_set.RequirementSet¶
-
ensure_download_directory_exists() → None¶
-
ensure_extracted_wheels_directory_exists() → None¶
-
extract_wheels() → List[str]¶
-
get_frozen_requirements() → str¶
-
get_uninspected_source_distributions() → List[pypi2nix.source_distribution.SourceDistribution]¶
-
register_all_source_distributions() → None¶
-
-
pypi2nix.wheel_builder.list_files(path: str) → List[str]¶
pypi2nix.wheel¶
-
class
pypi2nix.wheel.Builder(target_platform: pypi2nix.target_platform.TargetPlatform, wheel_directory_path: str, logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser)¶ -
build() → pypi2nix.wheel.Wheel¶
-
-
class
pypi2nix.wheel.Wheel(name: str, version: str, deps: pypi2nix.requirement_set.RequirementSet, homepage: str, license: str, description: str, build_dependencies: pypi2nix.requirement_set.RequirementSet, target_platform: pypi2nix.target_platform.TargetPlatform)¶ -
add_build_dependencies(dependencies: pypi2nix.requirement_set.RequirementSet) → None¶
-
build_dependencies(target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirement_set.RequirementSet¶
-
dependencies(extras: List[str] = []) → pypi2nix.requirement_set.RequirementSet¶
-
classmethod
from_wheel_directory_path(wheel_directory_path: str, target_platform: pypi2nix.target_platform.TargetPlatform, logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser) → pypi2nix.wheel.Wheel¶
-
runtime_dependencies(target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirement_set.RequirementSet¶
-
target_platform() → pypi2nix.target_platform.TargetPlatform¶
-
to_dict() → Dict[str, Any]¶
-
-
pypi2nix.wheel.list_from_message(metadata: email.message.Message, key: str) → Optional[List[str]]¶
-
pypi2nix.wheel.str_from_message(metadata: email.message.Message, key: str) → Optional[str]¶
pypi2nix.version¶
pypi2nix.utils¶
-
pypi2nix.utils.args_as_list(inputs: List[str]) → List[str]¶
-
pypi2nix.utils.cmd(command: Union[str, List[str]], logger: pypi2nix.logger.Logger, stderr: Optional[int] = None, cwd: Optional[str] = None) → Tuple[int, str]¶
-
pypi2nix.utils.create_command_options(options: Dict[str, Union[str, List[str], bool]]) → List[str]¶
-
pypi2nix.utils.escape_double_quotes(text: str) → str¶
-
pypi2nix.utils.prefetch_git(url: str, rev: Optional[str] = None) → Dict[str, str]¶
-
pypi2nix.utils.prefetch_github(owner: str, repo: str, rev: Optional[str] = None) → Dict[str, str]¶
-
pypi2nix.utils.prefetch_hg(url: str, logger: pypi2nix.logger.Logger, rev: Optional[str] = None) → Dict[str, str]¶
-
pypi2nix.utils.prefetch_url(url: str, logger: pypi2nix.logger.Logger, name: Optional[str] = None) → str¶
-
pypi2nix.utils.pretty_option(option: Optional[str]) → str¶
pypi2nix.target_platform¶
-
class
pypi2nix.target_platform.PlatformGenerator(nix: pypi2nix.nix.Nix, logger: pypi2nix.logger.Logger)¶ -
current_platform() → Optional[pypi2nix.target_platform.TargetPlatform]¶
-
from_python_version(version: pypi2nix.python_version.PythonVersion) → pypi2nix.target_platform.TargetPlatform¶
-
-
class
pypi2nix.target_platform.TargetPlatform(python_version: str, nixpkgs_python_version: pypi2nix.python_version.PythonVersion, python_full_version: str, implementation_version: str, os_name: str, sys_platform: str, implementation_name: str, platform_machine: str, platform_python_implementation: str, platform_release: str, platform_system: str, platform_version: str)¶ -
environment_dictionary() → Dict[str, Any]¶
-
pypi2nix.sources¶
pypi2nix.source_distribution¶
-
class
pypi2nix.source_distribution.SourceDistribution(name: str, logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser, pyproject_toml: Optional[pypi2nix.package.pyproject.PyprojectToml] = None, setup_cfg: Optional[pypi2nix.package.setupcfg.SetupCfg] = None)¶ -
build_dependencies(target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirement_set.RequirementSet¶
-
classmethod
from_archive(archive: pypi2nix.archive.Archive, logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser) → pypi2nix.source_distribution.SourceDistribution¶
-
classmethod
get_pyproject_toml(name: str, extracted_files: Iterable[str], logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser) → Optional[pypi2nix.package.pyproject.PyprojectToml]¶
-
classmethod
get_setup_cfg(extracted_files: Iterable[str], logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser) → Optional[pypi2nix.package.setupcfg.SetupCfg]¶
-
package_format¶
-
to_loose_requirement() → pypi2nix.requirements.Requirement¶
-
pypi2nix.requirements_file¶
-
class
pypi2nix.requirements_file.RequirementsFile(path: str, project_dir: str, requirement_parser: pypi2nix.requirement_parser.RequirementParser, logger: pypi2nix.logger.Logger)¶ -
classmethod
from_lines(lines: List[str], project_dir: str, requirement_parser: pypi2nix.requirement_parser.RequirementParser, logger: pypi2nix.logger.Logger) → pypi2nix.requirements_file.RequirementsFile¶
-
is_editable_line(line: str) → bool¶
-
is_include_line(line: str) → bool¶
-
is_vcs_line(line: str) → bool¶
-
process() → None¶
-
processed_requirements_file_path() → str¶
-
read() → str¶
-
sources() → pypi2nix.sources.Sources¶
-
classmethod
pypi2nix.requirements_collector¶
This module implements a class to collect requirements from command line arguments given to pypi2nix
-
class
pypi2nix.requirements_collector.RequirementsCollector(platform: pypi2nix.target_platform.TargetPlatform, requirement_parser: pypi2nix.requirement_parser.RequirementParser, logger: pypi2nix.logger.Logger, project_directory: str, base_dependency_graph: pypi2nix.dependency_graph.DependencyGraph)¶ -
add_file(file_path: str) → None¶
-
add_line(line: str) → None¶
-
requirements() → pypi2nix.requirement_set.RequirementSet¶
-
sources() → pypi2nix.sources.Sources¶
-
pypi2nix.requirements¶
-
exception
pypi2nix.requirements.IncompatibleRequirements¶
-
class
pypi2nix.requirements.PathRequirement(name: str, path: str, extras: Set[str], environment_markers: Optional[pypi2nix.environment_marker.EnvironmentMarker], logger: pypi2nix.logger.Logger)¶ -
add(other: pypi2nix.requirements.Requirement, target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirements.Requirement¶
-
change_path(mapping: Callable[[str], str]) → pypi2nix.requirements.PathRequirement¶
-
environment_markers() → Optional[pypi2nix.environment_marker.EnvironmentMarker]¶
-
extras() → Set[str]¶
-
logger() → pypi2nix.logger.Logger¶
-
name() → str¶
-
path() → str¶
-
source() → pypi2nix.package_source.PathSource¶
-
to_line() → str¶
-
-
class
pypi2nix.requirements.Requirement¶ -
add(other: pypi2nix.requirements.Requirement, target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirements.Requirement¶
-
applies_to_target(target_platform: pypi2nix.target_platform.TargetPlatform, extras: List[str] = []) → bool¶
-
environment_markers() → Optional[pypi2nix.environment_marker.EnvironmentMarker]¶
-
extras() → Set[str]¶
-
logger() → pypi2nix.logger.Logger¶
-
name() → str¶
-
source() → Union[pypi2nix.package_source.GitSource, pypi2nix.package_source.HgSource, pypi2nix.package_source.PathSource, pypi2nix.package_source.UrlSource, None]¶
-
to_line() → str¶
-
-
class
pypi2nix.requirements.UrlRequirement(name: str, url: str, extras: Set[str], environment_markers: Optional[pypi2nix.environment_marker.EnvironmentMarker], logger: pypi2nix.logger.Logger)¶ -
add(other: pypi2nix.requirements.Requirement, target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirements.Requirement¶
-
environment_markers() → Optional[pypi2nix.environment_marker.EnvironmentMarker]¶
-
extras() → Set[str]¶
-
logger() → pypi2nix.logger.Logger¶
-
name() → str¶
-
source() → Union[pypi2nix.package_source.GitSource, pypi2nix.package_source.HgSource, pypi2nix.package_source.PathSource, pypi2nix.package_source.UrlSource]¶
-
to_line() → str¶
-
url() → str¶
-
url_path() → str¶
-
url_scheme() → str¶
-
-
class
pypi2nix.requirements.VersionRequirement(name: str, versions: List[Tuple[str, str]], extras: Set[str], environment_markers: Optional[pypi2nix.environment_marker.EnvironmentMarker], logger: pypi2nix.logger.Logger)¶ -
add(other: pypi2nix.requirements.Requirement, target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirements.Requirement¶
-
environment_markers() → Optional[pypi2nix.environment_marker.EnvironmentMarker]¶
-
extras() → Set[str]¶
-
logger() → pypi2nix.logger.Logger¶
-
name() → str¶
-
source() → None¶
-
to_line() → str¶
-
version() → List[Tuple[str, str]]¶
-
pypi2nix.requirement_set¶
-
class
pypi2nix.requirement_set.RequirementSet(target_platform: pypi2nix.target_platform.TargetPlatform)¶ -
add(requirement: pypi2nix.requirements.Requirement) → None¶
-
add_constraint(requirement: pypi2nix.requirements.Requirement) → None¶
-
filter(filter_function: Callable[[pypi2nix.requirements.Requirement], bool]) → pypi2nix.requirement_set.RequirementSet¶
-
classmethod
from_file(requirements_file: pypi2nix.requirements_file.RequirementsFile, target_platform: pypi2nix.target_platform.TargetPlatform, requirement_parser: pypi2nix.requirement_parser.RequirementParser, logger: pypi2nix.logger.Logger) → pypi2nix.requirement_set.RequirementSet¶
-
get(key: str, default: Optional[T] = None) → Union[pypi2nix.requirements.Requirement, None, T]¶
-
sources() → pypi2nix.sources.Sources¶
-
to_constraints_only() → pypi2nix.requirement_set.RequirementSet¶
-
to_file(project_dir: str, target_platform: pypi2nix.target_platform.TargetPlatform, requirement_parser: pypi2nix.requirement_parser.RequirementParser, logger: pypi2nix.logger.Logger) → pypi2nix.requirements_file.RequirementsFile¶
-
pypi2nix.python_version¶
-
class
pypi2nix.python_version.PythonVersion¶ An enumeration.
-
derivation_name() → str¶
-
major_version() → str¶
-
nixpkgs_attribute() → str¶
-
python3= 'python3'¶
-
python35= 'python35'¶
-
python36= 'python36'¶
-
python37= 'python37'¶
-
python38= 'python38'¶
-
-
pypi2nix.python_version.python_version_from_version_string(version_string: str) → Optional[pypi2nix.python_version.PythonVersion]¶
pypi2nix.pypi_release¶
-
class
pypi2nix.pypi_release.PypiRelease(url: str, sha256_digest: str, version: str, type: pypi2nix.pypi_release.ReleaseType, filename: str)¶
-
class
pypi2nix.pypi_release.ReleaseType¶ An enumeration.
-
EGG= 3¶
-
MSI= 6¶
-
RPM= 5¶
-
SOURCE= 1¶
-
UNKNOWN= 0¶
-
WHEEL= 2¶
-
WIN_INSTALLER= 4¶
-
-
pypi2nix.pypi_release.get_release_type_by_packagetype(packagetype: str) → Optional[pypi2nix.pypi_release.ReleaseType]¶
pypi2nix.pypi_package¶
-
class
pypi2nix.pypi_package.PypiPackage(name: str, releases: Set[pypi2nix.pypi_release.PypiRelease], version: str)¶
pypi2nix.pypi¶
-
class
pypi2nix.pypi.Pypi(logger: pypi2nix.logger.Logger, index: str = 'https://pypi.org/pypi')¶ -
get_package¶
-
get_source_release(name: str, version: str) → Optional[pypi2nix.pypi_release.PypiRelease]¶
-
-
exception
pypi2nix.pypi.PypiFailed¶
pypi2nix.project_directory¶
-
class
pypi2nix.project_directory.PersistentProjectDirectory(path: str)¶
-
class
pypi2nix.project_directory.ProjectDirectory¶
-
class
pypi2nix.project_directory.TemporaryProjectDirectory¶
pypi2nix.pip¶
pypi2nix.package_source¶
-
class
pypi2nix.package_source.GitSource(url: str, revision: Optional[str] = None)¶ -
hash_value() → str¶
-
nix_expression() → str¶
-
prefetch_data() → Dict[str, str]¶
-
revision() → str¶
-
pypi2nix.package¶
-
exception
pypi2nix.package.DistributionNotDetected¶
-
class
pypi2nix.package.HasBuildDependencies¶ -
build_dependencies(target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirement_set.RequirementSet¶
-
-
class
pypi2nix.package.HasRuntimeDependencies¶ -
runtime_dependencies(target_platform: pypi2nix.target_platform.TargetPlatform) → pypi2nix.requirement_set.RequirementSet¶
-
-
class
pypi2nix.package.PackageMetadata(name: str)¶ -
classmethod
from_package_directory(path: str) → pypi2nix.package.metadata.PackageMetadata¶
-
classmethod
pypi2nix.overrides¶
-
class
pypi2nix.overrides.NetworkFileParameter¶ -
convert(value, param, ctx)¶ Converts the value. This is not invoked for values that are None (the missing value).
-
name= 'url'¶
-
-
class
pypi2nix.overrides.OverridesGithub(owner: str, repo: str, path: str, rev: Optional[str] = None)¶ -
nix_expression(logger: pypi2nix.logger.Logger) → str¶
-
-
class
pypi2nix.overrides.OverridesNetworkFile(network_file: pypi2nix.network_file.NetworkFile)¶ -
nix_expression(logger: pypi2nix.logger.Logger) → str¶
-
-
exception
pypi2nix.overrides.UnsupportedUrlError¶
pypi2nix.nix¶
-
exception
pypi2nix.nix.EvaluationFailed(*args, output: Optional[str] = None, **kwargs)¶
-
exception
pypi2nix.nix.ExecutableNotFound¶
-
class
pypi2nix.nix.Nix(logger: pypi2nix.logger.Logger, nix_path: List[str] = [], executable_directory: Optional[str] = None)¶ -
build(source_file: str, attribute: Optional[str] = None, out_link: Optional[str] = None, arguments: Dict[str, Union[str, List[str], bool]] = {}) → None¶
-
build_expression(expression: str, out_link: Optional[str] = None, arguments: Dict[str, Union[str, List[str], bool]] = {}) → None¶
-
evaluate_expression(expression: str) → str¶
-
evaluate_file(source_file: str, attribute: Optional[str] = None) → None¶
-
executable_path(program_name: str) → str¶
-
nix_path_arguments() → List[str]¶
-
run_nix_command(binary_name: str, command: List[str]) → str¶
-
shell(command: str, derivation_path: str, nix_arguments: Dict[str, Union[str, List[str], bool]] = {}, pure: bool = True) → str¶
-
pypi2nix.metadata_fetcher¶
Parse metadata from .dist-info directories in a wheelhouse.
-
class
pypi2nix.metadata_fetcher.MetadataFetcher(sources: pypi2nix.sources.Sources, logger: pypi2nix.logger.Logger, requirement_parser: pypi2nix.requirement_parser.RequirementParser, pypi: pypi2nix.pypi.Pypi)¶ -
main(wheel_paths: Iterable[str], target_platform: pypi2nix.target_platform.TargetPlatform, source_distributions: Dict[str, pypi2nix.source_distribution.SourceDistribution]) → List[pypi2nix.wheel.Wheel]¶ Extract packages metadata from wheels dist-info folders.
-
process_wheel(wheel: pypi2nix.wheel.Wheel) → None¶
-
-
exception
pypi2nix.metadata_fetcher.MetadataFetchingFailed¶
pypi2nix.main¶
-
class
pypi2nix.main.Pypi2nix(configuration: pypi2nix.configuration.ApplicationConfiguration)¶ -
base_dependency_graph() → pypi2nix.dependency_graph.DependencyGraph¶
-
logger() → pypi2nix.logger.Logger¶
-
nix() → pypi2nix.nix.Nix¶
-
print_user_information() → None¶
-
requirement_parser() → pypi2nix.requirement_parser.RequirementParser¶
-
requirements_collector() → pypi2nix.requirements_collector.RequirementsCollector¶
-
run() → None¶
-
setup_requirements_collector() → pypi2nix.requirements_collector.RequirementsCollector¶
-
target_platform() → pypi2nix.target_platform.TargetPlatform¶
-
pypi2nix.license¶
-
pypi2nix.license.escape_regex(text: str) → str¶
-
pypi2nix.license.find_license(classifiers: List[str], license_string: str) → Optional[str]¶
-
pypi2nix.license.first_license_classifier_from_list(classifiers: List[str]) → Optional[str]¶
-
pypi2nix.license.license_from_string(license_string: str) → Optional[str]¶
-
pypi2nix.license.recognized_nix_license_from_classifiers(classifiers: List[str]) → Optional[str]¶
pypi2nix.environment_marker¶
-
class
pypi2nix.environment_marker.EnvironmentMarker(marker_string: str)¶ -
applies_to_platform(target_platform: pypi2nix.target_platform.TargetPlatform, extras: List[str] = []) → bool¶
-
-
exception
pypi2nix.environment_marker.MarkerEvaluationFailed¶
pypi2nix.configuration¶
-
class
pypi2nix.configuration.ApplicationConfiguration(verbosity: pypi2nix.logger.Verbosity, nix_executable_directory: Optional[str], nix_path: List[str], extra_build_inputs: List[str], emit_extra_build_inputs: bool, extra_environment: str, enable_tests: bool, python_version: pypi2nix.python_version.PythonVersion, requirement_files: List[str], requirements: List[str], setup_requirements: List[str], overrides: List[pypi2nix.overrides.Overrides], wheels_caches: List[str], output_basename: str, project_directory: str, target_directory: str, dependency_graph_output_location: Optional[pathlib.Path], dependency_graph_input: pypi2nix.dependency_graph.DependencyGraph)¶