pypare

A very simple pypi cache


Keywords
pypi, cache, asyncio, aiohttp
License
Apache-2.0
Install
pip install pypare==0.3.3

Documentation

pypare

A very simple pypi cache.

features

  • uses aiohttp, aiofiles, inotipy
  • queries metadata via pypi JSON API
  • filesystem is the database
  • serve releases while downloading

todo

  • private channels with user, groups and permissions
  • use python-libaio for file stuff
  • nice ui

running the cache

# pypare --help
Usage: pypare [OPTIONS] COMMAND [ARGS]...

Options:
  --log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]
                                  The logging level.  [default: INFO]
  --loop [asyncio|uvloop]         Use a different loop policy.  [default:
                                  asyncio]
  --version                       Show the version and exit.
  --help                          Show this message and exit.

Commands:
  pypi  Run a simple pypi caching proxy.
# pypare pypi --help
Usage: pypare pypi [OPTIONS]

  Run a simple pypi caching proxy.

Options:
  -p, --port INTEGER              The port to run the server  [default: 3141]
  -h, --host TEXT                 The server host IP.  [default: 0.0.0.0]
  -b, --base-path PATH            The base path for this application.
                                  [default: /pypi]
  -c, --cache-root DIRECTORY      The cache directory, where files are stored.
                                  [default: ~/.cache/pypare]
  -u, --upstream-channel TEXT     The name of the upstream channel.
  --upstream-channel-url TEXT     The base API URL of the upstream channel.
  --upstream-channel-timeout INTEGER
                                  The timeout upstream is asked for new
                                  metadata.
  --plugin LIST                   A plugin in pkg_resources notation to load.
  --help                          Show this message and exit.

Run from virtual environment:

pip install pypare

pypare pypi --cache-root /tmp/pypi-data

Run in docker:

docker run -it diefans/pypare:latest pypi

Run as zipapp:

shiv pypare -c pypare -o ~/.local/bin/pypare -p ~/.pyenv/versions/3.7.0/bin/python

pypare pypi --cache-root /tmp/pypi-data

Using the cache

PIP_INDEX_URL=http://localhost:3141/pypi/pypi pip install tensorflow