No project description provided
Project description
pip-split-requirements
Split a pip requirement files according to regular expression patterns rules.
Table of Contents
Installation
pipx install pip-split-requirements
Quick start
Assume the following requirements.txt:
--find-links wheelhouse
pkga
git+https://github.com/some/project
pkgb
Running
pip-split-requirements -g slow:git requirements.txt
Will create requirementsgroup-slow.txt:
--find-links wheelhouse
git+https://github.com/some/project
and requirementsgroup-other.txt:
--find-links wheelhouse
pkga
pkgb
CLI Usage
Usage: pip-split-requirements [OPTIONS] REQUIREMENTS_FILE...
Split a pip requirements file into multiple files according to patterns.
Patterns are regular expressions against which requirement lines are
searched to determine if they belong to a group. Group specs are evaluated
in order, and the first match determines in which group the line goes.
Comment lines are ignored.
Option lines are emitted in all groups.
Arguments:
REQUIREMENTS_FILE... The requirements files to split. If not specified,
they are read from pyproject.toml.
Options:
-g, --group-spec TEXT Group specifications in form name:pattern.
-p, --prefix TEXT Each requirements group file will be named
{prefix}-{group_name}.txt. The prefix can
contain path separators, to generate files
into a chosen directory. [default:
requirementsgroup]
--default-group / --no-default-group
Automatically append a group named 'other',
matching all lines not matched by other
groups. [default: default-group]
--remove-empty / --no-remove-empty
Remove empty requirements group files.
[default: no-remove-empty]
-r, --project-root DIRECTORY The project root directory. The generated
requirements files will be relative to this
directory. Default options and arguments are
read from pyproject.toml in this directory.
[default: .]
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
Configuration in pyproject.toml
pip-split-requirements can be configured using pyproject.toml. The following values are read from the tool.pip-split_requirements section:
- group_specs: list of strings
- prefix: string
- default_group: boolean
- remove_empty: boolean
- requirements_files: list of strings
Command line options and argument have precedence over pyproject.toml values.
The following example configuration split requirements.txt and requirements-test.txt
into a group named vcs with requirements containing the word git+https or git+ssh
and another group with everything else, as build/reqgroup-*.txt.
[tool.pip-split-requirements]
prefix = "build/reqgroup"
group_specs = ["vcs:git.(https|ssh)"]
requirements_files = ["requirements.txt", "requirements-test.txt"]
Usage as a pre-commit hook
The following section of .pre-commit-config.yaml will run pip-split-requirements
according using the configuration in pyproject.toml. This pre-commit hook runs when
either pyproject.toml, .pre-commit-config.yaml, or any file matching the pattern
.*requirement.*\.txt change.
- repo: https://github.com/sbidoul/pip-split-requirements
rev: v0.7.0
hooks:
- id: pip-split-requirements
License
pip-split-requirements is distributed under the terms of the
MIT license.
Project details
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pip_split_requirements-0.7.0.tar.gz.
File metadata
- Download URL: pip_split_requirements-0.7.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c3b2cfbbf4f918f03bd042d01863a7bd9b661b2a7c2a52cdccfbb9b32546ed6b
|
|
| MD5 |
1679ba644d9f12ba7686c928c95fa8fd
|
|
| BLAKE2b-256 |
a782edb25dbab8c688533def9a636db3939d1f3f143747d5e8100b426d46ff7f
|
File details
Details for the file pip_split_requirements-0.7.0-py3-none-any.whl.
File metadata
- Download URL: pip_split_requirements-0.7.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddcea386300a7adafe09cf302cdb083fa3bb4648db8b66cad266d7c7c20cf7aa
|
|
| MD5 |
3fae8655e389132648ed29f5937093dd
|
|
| BLAKE2b-256 |
f438c3099b88df50a277e1644f117d540f59f3a17d01d98eb8bcf31358e87b97
|