cli tool to verify and update requirements files
Project description
|Build Status| |Latest Version| |Python Support|
cireqs
======
Tool to expand and pin requirements files and verify that they are
complete.
Installation
------------
Install from `pypi <https://pypi.python.org/pypi/cireqs>`__.
``pip install cireqs``
Cireqs needs a working install of docker locally.
Usage
-----
Use cireqs to expand and pin down your dependencies.
You can then check in the resulting requirements file and stop worrying
about floating versions.
.. code:: bash
cireqs --dirpath /tmp expand input_requirements_filename output_requirements_filename
Use cireqs to verify that a requirements file is pinned down and
includes all requirements of requirements.
.. code:: bash
cireqs verify input_requirements
Defaults
^^^^^^^^
Cireqs uses overridable defaults:
- **dirpath:** set to current working directory (``PWD``)
- **pythonversion:** set to ``3.6.1``
- **output\_requirements\_filename:** set to ``requirements.txt``
- **input\_requirements\_filename:** set to:
-
- ``requirements.txt`` in *verify*
-
- ``requirements_to_expand.txt`` in *expand*
private packages
----------------
To install private packages like with Gemfury you have to inject your
private access token as an env var to cireqs, use the **--envar**
(``-e``) option to pass in env-vars to the pip install process. you can
specify them in the following ways:
::
cireqs --envar foo=bar
Will set the envvar foo to the value bar
::
cireqs --envvar foo
will set the envvar foo to the value of the hosts ``foo`` env var.
Gemfury example
~~~~~~~~~~~~~~~
create a requirements\_to\_expand.txt file with the following contents:
::
--index-url https://${GEM_FURY_TOKEN}@pypi.fury.io/trustpilot/
--extra-index-url https://pypi.org/simple/
secret_private_package
to expand run
::
cireqs --envvar GEM_FURY_TOKEN expand
And cireqs will inject the hosts value of ``GEM_FURY_TOKEN`` into the
``expand`` process.
Continuous Integration
----------------------
Use it in your **CI** of choice!!!
**travis**
.. code:: yaml
services:
- docker
before_script:
- pip install cireqs
script:
- cireqs verify
CLI
---
Cireqs includes the ``cireqs`` command:
::
Usage: cireqs [OPTIONS] COMMAND [ARGS]...
Options:
--pythonversion TEXT python version to use for calculating dependencies,
defaults to 3.6.1
--dirpath TEXT path to directory containing requirement files,
defaults to PWD
--timeout INTEGER how long to wait for docker commands, defaults to 120s
-e, --envvar TEXT environment var ENV_VAR=VALUE (or ENV_VAR to copy
env_var), multiple allowed, defaults to None
-V, --version show version and exit
--dry print out docker command line without running it
-v, --verbosity LVL Either CRITICAL, ERROR, WARNING, INFO or DEBUG
--help Show this message and exit.
Commands:
expand Expand given requirements file by extending...
expand_requirements
verify Verifying that given requirements file is not...
verify_requirements
.. |Build Status| image:: https://travis-ci.org/trustpilot/python-cireqs.svg?branch=master
:target: https://travis-ci.org/trustpilot/python-cireqs
.. |Latest Version| image:: https://img.shields.io/pypi/v/cireqs.svg
:target: https://pypi.python.org/pypi/cireqs
.. |Python Support| image:: https://img.shields.io/pypi/pyversions/cireqs.svg
:target: https://pypi.python.org/pypi/cireqs
History
=======
0.0.1 (2017-08-09)
------------------
* git init
0.0.2 (2017-08-09)
------------------
* missing manifest file
0.0.3 (2017-08-10)
------------------
* readme changes
* cli splash changes
* make cireqs functions pass python version to docker_execute
* pass timeout param from cli to cireqs
0.0.4 (2017-08-10)
------------------
* tox testing for py27, py33, py34, py35, py36
* more thorough diffing of requirements files
* more tests
* use prospector for linting
0.1.3 (2017-08-11)
------------------
* single source version in setup.py and cli
0.2.2 (2017-08-14)
------------------
* default timeout value for docker operations increased to 120 seconds (from 10)
1.0.0 (2017-11-01)
------------------
* introduce verify and expand and deprecate verify_requirements and expand_requirements by showing warnings
* message when commands are successful
1.0.3 (2018-03-26)
------------------
* Handle pip giving an upgrade warning
1.0.4 (2018-07-24)
------------------
* Upgrade pip before installing requirements to avoid upgrade error.
2.0.0 (2018-12-14)
------------------
* added --dry option for running dry (printing docker cmd line)
* added -V for printing version
* added --envvar (-e) for injecting env vars into the docker container running pip install, useful for private repos like in Gemfury.io
cireqs
======
Tool to expand and pin requirements files and verify that they are
complete.
Installation
------------
Install from `pypi <https://pypi.python.org/pypi/cireqs>`__.
``pip install cireqs``
Cireqs needs a working install of docker locally.
Usage
-----
Use cireqs to expand and pin down your dependencies.
You can then check in the resulting requirements file and stop worrying
about floating versions.
.. code:: bash
cireqs --dirpath /tmp expand input_requirements_filename output_requirements_filename
Use cireqs to verify that a requirements file is pinned down and
includes all requirements of requirements.
.. code:: bash
cireqs verify input_requirements
Defaults
^^^^^^^^
Cireqs uses overridable defaults:
- **dirpath:** set to current working directory (``PWD``)
- **pythonversion:** set to ``3.6.1``
- **output\_requirements\_filename:** set to ``requirements.txt``
- **input\_requirements\_filename:** set to:
-
- ``requirements.txt`` in *verify*
-
- ``requirements_to_expand.txt`` in *expand*
private packages
----------------
To install private packages like with Gemfury you have to inject your
private access token as an env var to cireqs, use the **--envar**
(``-e``) option to pass in env-vars to the pip install process. you can
specify them in the following ways:
::
cireqs --envar foo=bar
Will set the envvar foo to the value bar
::
cireqs --envvar foo
will set the envvar foo to the value of the hosts ``foo`` env var.
Gemfury example
~~~~~~~~~~~~~~~
create a requirements\_to\_expand.txt file with the following contents:
::
--index-url https://${GEM_FURY_TOKEN}@pypi.fury.io/trustpilot/
--extra-index-url https://pypi.org/simple/
secret_private_package
to expand run
::
cireqs --envvar GEM_FURY_TOKEN expand
And cireqs will inject the hosts value of ``GEM_FURY_TOKEN`` into the
``expand`` process.
Continuous Integration
----------------------
Use it in your **CI** of choice!!!
**travis**
.. code:: yaml
services:
- docker
before_script:
- pip install cireqs
script:
- cireqs verify
CLI
---
Cireqs includes the ``cireqs`` command:
::
Usage: cireqs [OPTIONS] COMMAND [ARGS]...
Options:
--pythonversion TEXT python version to use for calculating dependencies,
defaults to 3.6.1
--dirpath TEXT path to directory containing requirement files,
defaults to PWD
--timeout INTEGER how long to wait for docker commands, defaults to 120s
-e, --envvar TEXT environment var ENV_VAR=VALUE (or ENV_VAR to copy
env_var), multiple allowed, defaults to None
-V, --version show version and exit
--dry print out docker command line without running it
-v, --verbosity LVL Either CRITICAL, ERROR, WARNING, INFO or DEBUG
--help Show this message and exit.
Commands:
expand Expand given requirements file by extending...
expand_requirements
verify Verifying that given requirements file is not...
verify_requirements
.. |Build Status| image:: https://travis-ci.org/trustpilot/python-cireqs.svg?branch=master
:target: https://travis-ci.org/trustpilot/python-cireqs
.. |Latest Version| image:: https://img.shields.io/pypi/v/cireqs.svg
:target: https://pypi.python.org/pypi/cireqs
.. |Python Support| image:: https://img.shields.io/pypi/pyversions/cireqs.svg
:target: https://pypi.python.org/pypi/cireqs
History
=======
0.0.1 (2017-08-09)
------------------
* git init
0.0.2 (2017-08-09)
------------------
* missing manifest file
0.0.3 (2017-08-10)
------------------
* readme changes
* cli splash changes
* make cireqs functions pass python version to docker_execute
* pass timeout param from cli to cireqs
0.0.4 (2017-08-10)
------------------
* tox testing for py27, py33, py34, py35, py36
* more thorough diffing of requirements files
* more tests
* use prospector for linting
0.1.3 (2017-08-11)
------------------
* single source version in setup.py and cli
0.2.2 (2017-08-14)
------------------
* default timeout value for docker operations increased to 120 seconds (from 10)
1.0.0 (2017-11-01)
------------------
* introduce verify and expand and deprecate verify_requirements and expand_requirements by showing warnings
* message when commands are successful
1.0.3 (2018-03-26)
------------------
* Handle pip giving an upgrade warning
1.0.4 (2018-07-24)
------------------
* Upgrade pip before installing requirements to avoid upgrade error.
2.0.0 (2018-12-14)
------------------
* added --dry option for running dry (printing docker cmd line)
* added -V for printing version
* added --envvar (-e) for injecting env vars into the docker container running pip install, useful for private repos like in Gemfury.io
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
cireqs-2.0.0.tar.gz
(7.9 kB
view details)
File details
Details for the file cireqs-2.0.0.tar.gz
.
File metadata
- Download URL: cireqs-2.0.0.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1926e3eebf566d69af7b01f402a05da339482d2a3d4488a809412f2b8bf584ea |
|
MD5 | b0b9ea54a06b7bcd5faf09b6593bedfa |
|
BLAKE2b-256 | 9722994c55f550cb2e1db589ac017b84ea6756e218cb7004d2f37e3feca48c24 |