{ "info": { "author": "Oliver Berger", "author_email": "oliver@digitalarchitekt.de", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "pypare\n======\n\nA very simple pypi cache.\n\nfeatures\n^^^^^^^^\n\n- uses `aiohttp`_, `aiofiles`_, `inotipy`_\n\n- queries metadata via pypi JSON API\n\n- filesystem is the database\n\n- serve releases while downloading\n\n\n.. _`aiohttp`: http://aiohttp.readthedocs.io/\n.. _`aiofiles`: https://pypi.org/project/aiofiles/\n.. _`inotipy`: https://github.com/ldo/inotipy\n\ntodo\n^^^^\n\n- private channels with user, groups and permissions\n\n- use `python-libaio`_ for file stuff\n\n- nice ui\n\n.. _`python-libaio`: https://github.com/vpelletier/python-libaio\n\n\nrunning the cache\n^^^^^^^^^^^^^^^^^\n\n.. code-block::\n\n # pypare --help\n Usage: pypare [OPTIONS] COMMAND [ARGS]...\n\n Options:\n --log-level [NOTSET|DEBUG|INFO|WARNING|ERROR|CRITICAL]\n The logging level. [default: INFO]\n --loop [asyncio|uvloop] Use a different loop policy. [default:\n asyncio]\n --version Show the version and exit.\n --help Show this message and exit.\n\n Commands:\n pypi Run a simple pypi caching proxy.\n\n\n.. code-block::\n\n\n # pypare pypi --help\n Usage: pypare pypi [OPTIONS]\n\n Run a simple pypi caching proxy.\n\n Options:\n -p, --port INTEGER The port to run the server [default: 3141]\n -h, --host TEXT The server host IP. [default: 0.0.0.0]\n -b, --base-path PATH The base path for this application.\n [default: /pypi]\n -c, --cache-root DIRECTORY The cache directory, where files are stored.\n [default: ~/.cache/pypare]\n -u, --upstream-channel TEXT The name of the upstream channel.\n --upstream-channel-url TEXT The base API URL of the upstream channel.\n --upstream-channel-timeout INTEGER\n The timeout upstream is asked for new\n metadata.\n --plugin LIST A plugin in pkg_resources notation to load.\n --help Show this message and exit.\n\n\nRun from virtual environment:\n\n.. code-block:: bash\n\n pip install pypare\n\n pypare pypi --cache-root /tmp/pypi-data\n\n\nRun in docker:\n\n.. code-block:: bash\n\n docker run -it diefans/pypare:latest pypi\n\n\nRun as zipapp:\n\n.. code-block:: bash\n\n shiv pypare -c pypare -o ~/.local/bin/pypare -p ~/.pyenv/versions/3.7.0/bin/python\n\n pypare pypi --cache-root /tmp/pypi-data\n\n\nUsing the cache\n^^^^^^^^^^^^^^^\n\n.. code-block:: bash\n\n PIP_INDEX_URL=http://localhost:3141/pypi/pypi pip install tensorflow\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/diefans/pypare", "keywords": "pypi,cache,asyncio", "license": "Apache-2.0", "maintainer": "", "maintainer_email": "", "name": "pypare", "package_url": "https://pypi.org/project/pypare/", "platform": "", "project_url": "https://pypi.org/project/pypare/", "project_urls": { "Homepage": "https://github.com/diefans/pypare", "Repository": "https://github.com/diefans/pypare" }, "release_url": "https://pypi.org/project/pypare/0.3.3/", "requires_dist": [ "aiofile (>=1.4,<2.0)", "aiofiles (>=0.4.0,<0.5.0)", "aiohttp (>=3.4,<4.0)", "aiohttp-jinja2 (>=1.1,<2.0)", "aiotask_context (>=0.6.0,<0.7.0)", "click (>=7.0,<8.0)", "colorama (>=0.3.9,<0.4.0)", "inotipy (>=0.1.1,<0.2.0)", "packaging (>=18.0,<19.0)", "structlog (>=18.2,<19.0)" ], "requires_python": ">=3.6,<4.0", "summary": "A very simple pypi cache", "version": "0.3.3" }, "last_serial": 4390130, "releases": { "0.2.3": [ { "comment_text": "", "digests": { "md5": "aa4be60b81cbd47b5d1d29dfd4b2b0ee", "sha256": "b4e6ba5c32cefbb26b5502e48c3978d990235960353dd5c20c8b50d7fd913193" }, "downloads": -1, "filename": "pypare-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "aa4be60b81cbd47b5d1d29dfd4b2b0ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 53266, "upload_time": "2018-10-05T19:40:52", "url": "https://files.pythonhosted.org/packages/c9/81/49c14c0294b7d279efc1577808d9b14547dfa8d8c2e2e3f97734a63773a3/pypare-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "28855fccba2009d2b4309cadbcfbca4b", "sha256": "544a06f179fc6803493f79cc72efe5fbe594f7af8c71c9046191ac9336b81643" }, "downloads": -1, "filename": "pypare-0.2.3.tar.gz", "has_sig": false, "md5_digest": "28855fccba2009d2b4309cadbcfbca4b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 16766, "upload_time": "2018-10-05T19:40:54", "url": "https://files.pythonhosted.org/packages/fa/b1/7b3696d09c1dc31706c40e5b062f4285fdd14eee2f1287beef07abc54c69/pypare-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6691e62b8bcc91197e03db5c555748f3", "sha256": "0d8f0be207a300d3ad24587bda9cdddb9c4b2519afa09a2dd37f4f7c72a615c7" }, "downloads": -1, "filename": "pypare-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6691e62b8bcc91197e03db5c555748f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 67516, "upload_time": "2018-10-17T09:10:15", "url": "https://files.pythonhosted.org/packages/07/f3/decac6a283186ff29eee07cd12df99daa020c02fb0ea77580d7e1cc2d2de/pypare-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fb1692454db92f6373a83c4765817f7", "sha256": "14e21f14b20455c47a57dfeb524728b25497220a8283dce0440681a5ab58fdbe" }, "downloads": -1, "filename": "pypare-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2fb1692454db92f6373a83c4765817f7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 20539, "upload_time": "2018-10-17T09:10:16", "url": "https://files.pythonhosted.org/packages/b4/8a/1cfcadd4f9a3be22c39b648020712166c15e986f56a093450ffcb6eeb3e6/pypare-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a8895af61717f938f01d0531dfe36060", "sha256": "c977951f893f5cb5802adc61e5f71d84edd8ced8ad48d95665b3dd556aa79cdd" }, "downloads": -1, "filename": "pypare-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a8895af61717f938f01d0531dfe36060", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 68137, "upload_time": "2018-10-17T09:25:37", "url": "https://files.pythonhosted.org/packages/c5/04/a9d71f35f5476e198aba24557398311932a93f8ae7b7c5c94b5b3d582f9c/pypare-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "919fb947f6abd9e37ce0c15bf5d3ce0a", "sha256": "84172bffa4318201d33c112485d50c81652d01b414f0cb78a8e2dc8e7cb8552c" }, "downloads": -1, "filename": "pypare-0.3.1.tar.gz", "has_sig": false, "md5_digest": "919fb947f6abd9e37ce0c15bf5d3ce0a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 20597, "upload_time": "2018-10-17T09:25:38", "url": "https://files.pythonhosted.org/packages/2b/0e/ebf6338074844610d314b586749862cd5206c63a850c2406df9b8ca710ca/pypare-0.3.1.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "8bb785fa7a74406c71d3010fd140e4bc", "sha256": "d020d2a6ee490df2d1153bf70f9e68d85fe6b811d1b7dd5f278695970c416fc4" }, "downloads": -1, "filename": "pypare-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8bb785fa7a74406c71d3010fd140e4bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 68446, "upload_time": "2018-10-18T12:46:19", "url": "https://files.pythonhosted.org/packages/a9/40/d8c54594cdd1c64ef95d6cb19a2c8c5daea886ca5b42438f8143b3a5d725/pypare-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22ad0e8e0140a81832654191345be72c", "sha256": "e328fd15a021e8c75a82740e798450bcf55d275c8af1d6f028087a0234dbc02d" }, "downloads": -1, "filename": "pypare-0.3.3.tar.gz", "has_sig": false, "md5_digest": "22ad0e8e0140a81832654191345be72c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 20775, "upload_time": "2018-10-18T12:46:20", "url": "https://files.pythonhosted.org/packages/04/2e/d06fa307b7f7312fda491888cdef0c44b88273487f6dfc8ac217b1a33250/pypare-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8bb785fa7a74406c71d3010fd140e4bc", "sha256": "d020d2a6ee490df2d1153bf70f9e68d85fe6b811d1b7dd5f278695970c416fc4" }, "downloads": -1, "filename": "pypare-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "8bb785fa7a74406c71d3010fd140e4bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 68446, "upload_time": "2018-10-18T12:46:19", "url": "https://files.pythonhosted.org/packages/a9/40/d8c54594cdd1c64ef95d6cb19a2c8c5daea886ca5b42438f8143b3a5d725/pypare-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "22ad0e8e0140a81832654191345be72c", "sha256": "e328fd15a021e8c75a82740e798450bcf55d275c8af1d6f028087a0234dbc02d" }, "downloads": -1, "filename": "pypare-0.3.3.tar.gz", "has_sig": false, "md5_digest": "22ad0e8e0140a81832654191345be72c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 20775, "upload_time": "2018-10-18T12:46:20", "url": "https://files.pythonhosted.org/packages/04/2e/d06fa307b7f7312fda491888cdef0c44b88273487f6dfc8ac217b1a33250/pypare-0.3.3.tar.gz" } ] }