A pip `requirements.txt` parser
MIT License
pip-parse
is a JavaScript library for parsing and interpreting text content typically found in Python package management files, such as requirements.txt
. It provides utilities for handling command-line flags and package requirements, supporting both strict and lenient parsing modes.
To use pip-parse
, you can include it in your project via require
or import
statement if you’re working in a Node.js environment.
npm install pip-parse
parseFile(content, loose = false)
Parses the provided content into an array of parsed data.
content
(string): The content of text to parse.loose
(boolean, optional): Whether to allow lenient parsing. Defaults to false
. If false
, the function will throw errors for unsupported flags, invalid URLs, or malformed requirements.ParsedData
objects representing the parsed content.const { parseFile } = require('pip-parse');
const content = `
-i https://example.com/simple
mypackage==1.0.0
`;
const parsedData = parseFile(content);
console.log(parsedData);
parseLine(line, loose = false)
Parses a single line of text to determine if it represents a command-line flag or a requirement.
line
(string): The line of text to parse.loose
(boolean, optional): Whether to allow lenient parsing. Defaults to false
.undefined
if the line is a comment.const { parseLine } = require('pip-parse');
const line = '-i https://example.com/simple';
const parsedLine = parseLine(line);
console.log(parsedLine);
CommandLineFlag
type
(string): Always "CommandLineFlag"flag
(string): The flag that was specified.args
(string[]): Arguments associated with the flag.Requirement
type
(string): Always "Requirement"markers
(string|undefined): Optional markers for the requirement.subtype
(string): The type of requirement (e.g., "PackageURL", "URL", "Path", "Package").package
(string|undefined): The package name, if applicable.extras
(string|undefined): Optional extras associated with the package.url
(string|undefined): The URL, if applicable.path
(string|undefined): The path, if applicable.versions
(string[]|undefined): List of version constraints, if applicable.The following command-line options are supported:
-i
, --index-url
--extra-index-url
--no-index
-c
, --constraint
-r
, --requirement
-e
, --editable
-f
, --find-links
--no-binary
--only-binary
--prefer-binary
--require-hashes
--pre
--trusted-host
--use-feature
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
This project is licensed under the MIT License. See the LICENSE file for details.