Skip to main content

A very simple pypi cache

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypare-0.3.1.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

pypare-0.3.1-py3-none-any.whl (68.1 kB view details)

Uploaded Python 3

File details

Details for the file pypare-0.3.1.tar.gz.

File metadata

  • Download URL: pypare-0.3.1.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for pypare-0.3.1.tar.gz
Algorithm Hash digest
SHA256 84172bffa4318201d33c112485d50c81652d01b414f0cb78a8e2dc8e7cb8552c
MD5 919fb947f6abd9e37ce0c15bf5d3ce0a
BLAKE2b-256 2b0eebf6338074844610d314b586749862cd5206c63a850c2406df9b8ca710ca

See more details on using hashes here.

File details

Details for the file pypare-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: pypare-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 68.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.7.0

File hashes

Hashes for pypare-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c977951f893f5cb5802adc61e5f71d84edd8ced8ad48d95665b3dd556aa79cdd
MD5 a8895af61717f938f01d0531dfe36060
BLAKE2b-256 c504a9d71f35f5476e198aba24557398311932a93f8ae7b7c5c94b5b3d582f9c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page