I am a tool to help your interactions with Python package repositories.
For example I can copy packages between repos, or configure pip
to use
a private repository instead of the default http://pypi.python.org.
I provide a shell-like environment as primary interface - with help and completion for commands and attributes, but I can be used as a command-line tool as well.
There are two types of repos I know about:
- http repos, e.g.
- https://pypi.python.org - the global python public package repo
- project specific PyPI server - defined by you or your company, for deployment
- directory repos, that is
- a directory with package files, for fast/offline development
~/.pip/local
- one such directory
From PyPI:
mkvirtualenv app-pyrene
pip install pyrene
master
branch directly from GitHub:
mkvirtualenv app-pyrene
pip install git+https://github.com/krisztianfekete/pyrene.git
In order to have pyrene
without activating its virtualenv
do the following
(assuming ~/bin
is on your PATH
):
ln -s ~/.virtualenvs/app-pyrene/bin/pyrene ~/bin
State consists of:
- set of repositories
- an active repository (initially None) that is used for the repo parameter when it is not given for most commands (also called implicit repo)
I listen to commands, that
- operate on repos (copy, serve, use)
- show details about the state (list, show)
- change state
- set the active/implicit repo (work_on)
- define or undefine repositories (directory_repo, http_repo, forget)
- change repository parameters (set, unset, setup_for_pip_local, setup_for_pypi_python_org)
Pyrene
is a work in progress, with sharp edges, miswordings...
So
- reporting issues
- improving documentation
- improving on the simplicity and clarity of the code/interface
- adding relevant tests
- providing new badly missing features (preferably with tests)
- showing alternatives
are welcome.
- all code should be extremely simple and clear, including tests
- all features require unit tests
- zero messages from flake8
- usability, simplicity wins over feature completeness
- the smallest the change, the better
The current code might violate these, but it is then considered a bug. Fixing any of these violations - even if it looks trivial is welcome!
- packages are downloaded with pip
- packages are uploaded to http/https repos with twine
- local packages are served with pypiserver