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
Built Distribution
File details
Details for the file requirementslib-1.0.8.tar.gz
.
File metadata
- Download URL: requirementslib-1.0.8.tar.gz
- Upload date:
- Size: 33.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de42e92007dd171ea300a755d7ac62683e702c08e210f31e06ceb3372d2a8a86 |
|
MD5 | c1f320fbd7e898536a8066782bea338c |
|
BLAKE2b-256 | 66b469152a644ba64d2798fc67f480b7e7514d9707bcede9a9a8a1e31d07d768 |
Provenance
File details
Details for the file requirementslib-1.0.8-py2.py3-none-any.whl
.
File metadata
- Download URL: requirementslib-1.0.8-py2.py3-none-any.whl
- Upload date:
- Size: 24.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ba3cc897d39660eab7b8c9a0b093379509065ed301616016db67fabdce01661 |
|
MD5 | 631d79749847e03c830e26c95b2af608 |
|
BLAKE2b-256 | d3ccb86a4fe46d219e938734cfecf01368cf18c920c80bff7c61cc5cd47ab6db |