A tool for converting between pip-style and pipfile requirements.
Project description
Installation
Install from PyPI:
$ pipenv install --pre requirementslib
Install from Github:
$ pipenv install -e git+https://github.com/techalchemy/requirementslib.git#egg=requirementslib
Summary
RequirementsLib provides a simple layer for building and interacting with requirements in both the Pipfile format and the requirements.txt format. This library was originally built for converting between these formats in Pipenv.
Usage
Importing a lockfile into your setup.py file
You can use RequirementsLib to import your lockfile into your setup file for including your install_requires dependencies:
from requirementslib import Lockfile lockfile = Lockfile.create('/path/to/project/dir') install_requires = lockfile.as_requirements(dev=False)
Interacting with a Pipfile directly
You can also interact directly with a Pipfile:
>>> from requirementslib import Pipfile >>> pf = Pipfile.load('/home/hawk/git/pypa-pipenv') >>> pf.sections [Section(name='packages', requirements=[]), Section(name='dev-packages', requirements=[Requirement(name='pipenv', vcs=None, req=FileRequirement(setup_path=None, path='.', editable=True, uri='file:///home/hawk/git/pypa-pipenv', link=<Link file:///home/hawk/git/pypa-pipenv>, name='pipenv', req=<Requirement: "-e file:///home/hawk/git/pypa-pipenv">), markers='', specifiers=None, index=None, editable=True, hashes=[], extras=None),...]
And you can even write it back out into Pipfile’s native format:
>>> print(pf.dump(to_dict=False)) [packages] [dev-packages] pipenv = {path = ".", editable = true} flake8 = ">=3.3.0,<4" pytest = "*" mock = "*" [scripts] tests = "bash ./run-tests.sh" [pipenv] allow_prereleases = true
Create a requirement object from requirements.txt format
>>> from requirementslib import Requirement >>> r = Requirement.from_line('-e git+https://github.com/pypa/pipenv.git@master#egg=pipenv') >>> print(r) Requirement(name='pipenv', vcs='git', req=VCSRequirement(editable=True, uri='git+https://github.com/pypa/pipenv.git', path=None, vcs='git', ref='master', subdirectory=None, name='pipenv', link=<Link git+https://github.com/pypa/pipenv.git@master#egg=pipenv>, req=<Requirement: "-e git+https://github.com/pypa/pipenv.git@master#egg=pipenv">), markers=None, specifiers=None, index=None, editable=True, hashes=[], extras=[]) >>> r.as_pipfile() {'pipenv': {'editable': True, 'ref': 'master', 'git': 'https://github.com/pypa/pipenv.git'}}
Or move from Pipfile format to requirements.txt:
>>> r = Requirement.from_pipfile(name='pythonfinder', indexes=[], pipfile={'path': '../pythonfinder', 'editable': True}) >>> r.as_line() '-e ../pythonfinder'
Integrations
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
requirementslib-1.2.5.tar.gz
(53.2 kB
view hashes)
Built Distribution
Close
Hashes for requirementslib-1.2.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a64dd665cae1435544783013a86fff3d1b6982751aa16e77ca4a0e26b85bba9 |
|
MD5 | 99a6e3f73fc490fc5d9698ab2092b770 |
|
BLAKE2b-256 | 79654135bb63aae79c1fe6218c7ae03a14a6cdc0690fedf798507d4a74c95865 |