Last updated:
0 purchases
pipsplitrequirements 0.7.0
pip-split-requirements
Split a pip requirement files according to regular expression patterns rules.
Table of Contents
pip-split-requirements
Installation
Quick start
CLI Usage
Configuration in pyproject.toml
Usage as a pre-commit hook
License
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.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.