All Projects → sesh → Piprot

sesh / Piprot

Licence: mit
How rotten are your requirements?

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Piprot

pystyle
The source of my Python library, pystyle.
Stars: ✭ 158 (-61.37%)
Mutual labels:  pypi, pip
poetry-setup
Generate setup.py (setuptools) from pyproject.toml (poetry)
Stars: ✭ 44 (-89.24%)
Mutual labels:  pypi, pip
pipx
Install and Run Python Applications in Isolated Environments
Stars: ✭ 5,698 (+1293.15%)
Mutual labels:  pypi, pip
pmm
PyPi Mirror Manager
Stars: ✭ 29 (-92.91%)
Mutual labels:  pypi, pip
Pipx
Install and Run Python Applications in Isolated Environments
Stars: ✭ 4,398 (+975.31%)
Mutual labels:  pypi, pip
ios2androidres
Copy iOS image resources to their appropriate Android directory
Stars: ✭ 20 (-95.11%)
Mutual labels:  pypi, pip
pipyuan
pipyuan 内置了国内常用的 pip 源, 你可以快速设置想要的源
Stars: ✭ 30 (-92.67%)
Mutual labels:  pypi, pip
Fades
fades is a system that automatically handles the virtualenvs in the cases normally found when writing scripts and simple programs, and even helps to administer big projects.
Stars: ✭ 182 (-55.5%)
Mutual labels:  pypi, pip
Pip Upgrader
An interactive pip requirements upgrader. It also updates the version in your requirements.txt file.
Stars: ✭ 340 (-16.87%)
Mutual labels:  pypi, pip
pipsalabim
An assistant to guess your pip dependencies from your code, without using a requirements file.
Stars: ✭ 15 (-96.33%)
Mutual labels:  pypi, pip
PyGLM
Fast OpenGL Mathematics (GLM) for Python
Stars: ✭ 167 (-59.17%)
Mutual labels:  pypi, pip
Py webauthn
A WebAuthn Python module.
Stars: ✭ 270 (-33.99%)
Mutual labels:  pypi, pip
yavdb
Yet Another Vulnerability Database
Stars: ✭ 14 (-96.58%)
Mutual labels:  pypi, pip
pypi-simple
PyPI Simple Repository API client library
Stars: ✭ 21 (-94.87%)
Mutual labels:  pypi, pip
Rules python
Experimental Bazel Python Rules
Stars: ✭ 233 (-43.03%)
Mutual labels:  pypi, pip
pip-download
A wrapper for pip download in offline scenario.
Stars: ✭ 22 (-94.62%)
Mutual labels:  pypi, pip
Dephell
📦 🔥 Python project management. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage venvs, build package, bump version.
Stars: ✭ 1,730 (+322.98%)
Mutual labels:  pypi, pip
Audioowl
Fast and simple music and audio analysis using RNN in Python 🕵️‍♀️ 🥁
Stars: ✭ 151 (-63.08%)
Mutual labels:  pypi, pip
rfc-bibtex
A command line tool that creates bibtex entries for IETF RFCs and Internet Drafts.
Stars: ✭ 43 (-89.49%)
Mutual labels:  pypi, pip
allalgorithms-python
The All ▲lgorithms Python Library.
Stars: ✭ 31 (-92.42%)
Mutual labels:  pypi, pip

NOTE: this package is no longer maintained. You can use pip list --outdated or pipenv update --outdated to show outdated packages (with a little less whimsy).

piprot

How rotten are your requirements?

tl;dr: piprot allows you to check the requirements defined in your requirements files for freshness.

.. image:: https://asciinema.org/a/2rW7dFFCKuv6g5taaUdZ70jyF.png :target: https://asciinema.org/a/2rW7dFFCKuv6g5taaUdZ70jyF

Installation


The latest release of piprot can be installed via PyPI:

::

    pip install -U piprot

Basic Usage
~~~~~~~~~~~

Run piprot and provide a requirements file (if it's not called
requirements.txt) and it will tell you the current status of your
packages.

::

    > piprot base_requirements.txt
    requests (2.3.0) is up to date
    six (1.6.1) is 107 days out of date. Latest is 1.7.3
    piprot (0.6.0) is up to date
    doge (3.4.0) is 129 days out of date. Latest is 3.5.0
    Your requirements are 236 days out of date

If your requirements file is named "requirements.txt", you don't need to
provide it. piprot will automatically traverse included requirements
files.

The ``--verbatim`` argument will output your complete requirements file,
with some comments about the out of date nature of your packages.

::

    > piprot --verbatim
    # Requirements for Piprot
    # This actually doubles as a test file

    requests==2.3.0
    six==1.6.1 # Latest 1.7.3

    piprot==0.6.0
    # notarequirement==0.1.1

    doge==3.4.0 # Latest 3.5.0
    # Generated with piprot 0.7.0
    # Your requirements are 236 days out of date

Using ``--outdated`` will show only the out of date requirements, pretty
much the same as running ``pip list -o``, except on a requirements file.

::

    > piprot --outdated
    six (1.6.1) is 107 days out of date. Latest is 1.7.3
    doge (3.4.0) is 129 days out of date. Latest is 3.5.0
    Your requirements are 236 days out of date

The ``--latest`` argument will output the requirements lines with the
current version replaced with the latest version.

::

    > piprot --latest
    ipython (1.1.0) is 331 days out of date. Latest is 2.2.0
    ipython==2.2.0 # Updated from 1.1.0
    Django (1.5.4) is 241 days out of date. Latest is 1.6.5
    Django==1.6.5 # Updated from 1.5.4
    requests (1.2.3) is 356 days out of date. Latest is 2.3.0
    requests==2.3.0 # Updated from 1.2.3
    Your requirements are 928 days out of date

Personally, I like to use ``--latest`` and ``--verbatim`` together,
creating a sort-of ''perfect'' requirements file for me,

::

    > piprot --latest --verbatim
    # Development Requirements
    ipython==2.2.0 # Updated from 1.1.0

    Django==1.6.5 # Updated from 1.5.4
    requests==2.3.0 # Updated from 1.2.3
    # Generated with piprot 0.8.0
    # Your requirements are 928 days out of date

Yep, you can use stdin as well if you really want to, but there are
better tools for working with packages installed in your environment.

::

    pip freeze | piprot


(New in 0.9) You can also lookup requirements from a Github repo with the ``--github``,
``--branch`` and ``--path`` options. Additionally you can use ``--token`` to
supply a `Personal Access Token` to remotely test private repositories.

::

    > piprot -g sesh/piprot
    requests (2.4.2) is out of date. Latest is 2.4.3
    requests-futures (0.9.5) is up to date
    six (1.8.0) is up to date
    piprot (0.8.2) is up to date
    Looks like you've been keeping up to date, time for a delicious beverage!

You can also ignore packages using a norot comment in your requirements file.

::

   # Inside requirements.txt
   # Note: two spaces before # norot
   Django==1.6.5  # norot

You can set up a delay before piprot throws an error.
This is useful when you set up piprot in CI but cannot always upgrade the dependencies.

::

    > piprot --delay 7
    ipython (1.1.0) is 5 days out of date. Latest is 1.1.1
    All of your dependencies are at most 7 days out of date.
    # Displays a warning but does not throw an error


Working with your environment

piprot is designed around working with requirements defined in a requirements file. Check out pip-tools <https://github.com/nvie/pip-tools>__ if you're looking for something similar that's designed for use against the packages that you actually have installed.

Tests


To run the test suite, execute ``python -m unittest discover``, within
the project directory.

Please ensure that the (limited) tests are all passing before making a
pull request. Feel free to add more.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].