UNPKG

pip-requirements-js

Version:

A robust parser for requirements.txt files

98 lines (97 loc) 4.42 kB
export type Requirement = ProjectNameRequirement | ProjectURLRequirement | RequirementsFileRequirement | ConstraintsFileRequirement; /** @example pip == 22.0.2 */ export interface ProjectNameRequirement extends ProjectRequirementBase { type: 'ProjectName'; versionSpec?: VersionSpec[]; } /** @example pip @ https://github.com/pypa/pip/archive/22.0.2.zip */ export interface ProjectURLRequirement extends ProjectRequirementBase { type: 'ProjectURL'; url: string; } interface ProjectRequirementBase { name: string; extras?: string[]; environmentMarkerTree?: EnvironmentMarker; } /** @example -r {path} */ export interface RequirementsFileRequirement extends FileRequirementBase { type: 'RequirementsFile'; } /** @example -c {path} */ export interface ConstraintsFileRequirement extends FileRequirementBase { type: 'ConstraintsFile'; } interface FileRequirementBase { path: string; } export type EnvironmentMarker = EnvironmentMarkerNode | EnvironmentMarkerLeaf; export interface EnvironmentMarkerNode { operator: 'and' | 'or'; left: EnvironmentMarker; right: EnvironmentMarker; } export interface EnvironmentMarkerLeaf { left: EnvironmentMarkerVariable | PythonString; operator: EnvironmentMarkerVersionOperator; right: PythonString | EnvironmentMarkerVariable; } /** {@link https://peps.python.org/pep-0508/#environment-markers See reference.} */ export declare enum EnvironmentMarkerVariable { /** Python equivalent: `'.'.join(platform.python_version_tuple()[:2])` @example 3.11 */ PythonVersion = "python_version", /** Python equivalent: `platform.python_version()` @example 3.11.2 */ PythonFullVersion = "python_full_version", /** Python equivalent: `os.name` @example posix */ OsName = "os_name", /** Python equivalent: `sys.platform` @example linux */ SysPlatform = "sys_platform", /** Python equivalent: `platform.release()` @example 3.14.1-x86_64-linode39 */ PlatformRelease = "platform_release", /** Python equivalent: `platform.system()` @example Windows */ PlatformSystem = "platform_system", /** Python equivalent: `platform.version()` @example #1 SMP Debian 4.19 */ PlatformVersion = "platform_version", /** Python equivalent: `platform.machine()` @example x86_64 */ PlatformMachine = "platform_machine", /** Python equivalent: `platform.python_implementation()` @example CPython */ PlatformPythonImplementation = "platform_python_implementation", /** Python equivalent: `sys.implementation.name` @example cpython */ ImplementationName = "implementation_name", /** Python equivalent: processed `sys.implementation.version` @example 3.11.2 */ ImplementationVersion = "implementation_version", /** An error except when defined by the context interpreting the specification @example test */ Extra = "extra" } export type PythonString = `"${string}"` | `'${string}'`; export type EnvironmentMarkerVersionOperator = VersionOperator | 'in' | 'not in'; /** {@link https://peps.python.org/pep-0440/#arbitrary-equality See reference.} */ export interface VersionSpec { operator: VersionOperator; version: string; } /** {@link https://peps.python.org/pep-0440/#version-specifiers See reference.} */ export declare enum VersionOperator { /** {@link https://peps.python.org/pep-0440/#compatible-release See reference.} */ CompatibleRelease = "~=", /** {@link https://peps.python.org/pep-0440/#version-matching See reference.} */ VersionMatching = "==", /** {@link https://peps.python.org/pep-0440/#version-exclusion See reference.} */ VersionExclusion = "!=", /** {@link https://peps.python.org/pep-0440/#inclusive-ordered-comparison See reference.} */ LessThanOrMatching = "<=", /** {@link https://peps.python.org/pep-0440/#inclusive-ordered-comparison See reference.} */ GreaterThanOrMatching = ">=", /** {@link https://peps.python.org/pep-0440/#exclusive-ordered-comparison See reference.} */ LessThan = "<", /** {@link https://peps.python.org/pep-0440/#exclusive-ordered-comparison See reference.} */ GreaterThan = ">", /** {@link https://peps.python.org/pep-0440/#arbitrary-equality See reference.} */ ArbitrarilyEqual = "===" } /** Barebones name requirement parsed in loose mode. */ export interface LooseProjectNameRequirement { type: 'ProjectName'; name: string; } export {};