{ "info": { "author": "Manu Phatak", "author_email": "bionikspoon@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Database", "Topic :: Database :: Database Engines/Servers", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Session", "Topic :: Internet :: WWW/HTTP :: Site Management", "Topic :: Software Development", "Topic :: Utilities" ], "description": ".. START Source defined in docs/github_docs.py\n\n\n.. This document was procedurally generated by docs/github_docs.py on Friday, December 25, 2015\n\n\n.. END Source defined in docs/github_docs.py\n.. START Source defined in docs/github_docs.py\n\n\n.. role:: mod(literal)\n.. role:: func(literal)\n.. role:: data(literal)\n.. role:: const(literal)\n.. role:: class(literal)\n.. role:: meth(literal)\n.. role:: attr(literal)\n.. role:: exc(literal)\n.. role:: obj(literal)\n.. role:: envvar(literal)\n\n\n.. END Source defined in docs/github_docs.py\n.. START Source defined in docs/source/_partial/readme_title.rst\n\n==============\ncache_requests\n==============\n\n.. image:: https://badge.fury.io/py/cache_requests.svg\n :target: https://pypi.python.org/pypi/cache_requests/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/status/cache_requests.svg\n :target: https://pypi.python.org/pypi/cache_requests/\n :alt: Development Status\n\n.. image:: https://travis-ci.org/bionikspoon/cache_requests.svg?branch=develop\n :target: https://travis-ci.org/bionikspoon/cache_requests?branch=develop\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/bionikspoon/cache_requests/badge.svg?branch=develop\n :target: https://coveralls.io/github/bionikspoon/cache_requests?branch=develop&service=github\n :alt: Coverage Status\n\n.. image:: https://readthedocs.org/projects/cache_requests/badge/?version=develop\n :target: https://cache_requests.readthedocs.org/en/develop/?badge=develop\n :alt: Documentation Status\n\n------------\n\n.. image:: https://img.shields.io/badge/Python-2.7,_3.3,_3.4,_3.5,_pypy-brightgreen.svg\n :target: https://pypi.python.org/pypi/cache_requests/\n :alt: Supported Python versions\n\n\n.. image:: https://img.shields.io/pypi/l/cache_requests.svg\n :target: https://pypi.python.org/pypi/cache_requests/\n :alt: License\n\n**Simple. Powerful. Persistent LRU caching for the requests library.**\n\n\n.. END Source defined in docs/source/_partial/readme_title.rst\n.. START Source defined in docs/source/_partial/readme_features.rst\n\nFeatures\n--------\n\n- Documentation: https://cache_requests.readthedocs.org\n- Open Source: https://github.com/bionikspoon/cache_requests\n- Python version agnostic: tested against Python 2.7, 3.3, 3.4, 3.5 and Pypy\n- MIT license\n\n..\n\n- Drop in decorator for the requests library.\n- Automatic timer based expiration on stored items (optional).\n- Backed by yahoo's powerful ``redislite``.\n- Scalable with redis. Optionally accepts a ``redis`` connection.\n- Exposes the powerful underlying ``Memoize`` decorator to decorate any function.\n- Tested with high coverage.\n- Lightweight. Simple logic.\n- Lightning fast.\n\n..\n\n- Jump start your development cycle.\n- Collect and reuse entire response objects.\n\n\n.. END Source defined in docs/source/_partial/readme_features.rst\n.. START Source defined in docs/source/installation.rst\n\n\n============\nInstallation\n============\n\nAt the command line either via easy_install or pip\n\n.. code-block:: shell\n\n $ pip install cache_requests\n\n\n\n.. code-block:: shell\n\n $ easy_install cache_requests\n\nOr, if you have virtualenvwrapper installed\n\n.. code-block:: shell\n\n $ mkvirtualenv cache_requests\n $ pip install cache_requests\n\n**Uninstall**\n\n.. code-block:: shell\n\n $ pip uninstall cache_requests\n\n\n.. END Source defined in docs/source/installation.rst\n.. START Source defined in docs/source/usage.rst\n\n=====\nUsage\n=====\n\nTo use cache_requests in a project\n\n.. code-block:: python\n\n import cache_requests\n\nQuick Start\n-----------\n\nTo use ``cache_requests`` in a project\n\n.. code-block:: python\n\n >>> from cache_requests import Session()\n\n requests = Session()\n\n # from python-requests.org\n >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))\n >>> r.status_code\n 200\n >>> r.headers['content-type']\n 'application/json; charset=utf8'\n >>> r.encoding\n 'utf-8'\n >>> r.text\n u'{\"type\":\"User\"...'\n >>> r.json()\n {u'private_gists': 419, u'total_private_repos': 77, ...}\n\n\nConfig Options\n--------------\n\nDecorated Methods\n~~~~~~~~~~~~~~~~~\n\n``method.ex``\n sets the default expiration (seconds) for new cache entries.\n\n``method.redis``\n creates the connection to the ``redis`` or ``redislite`` database. By default this is a ``redislite`` connection. However, a redis connection can be dropped in for easy scalability.\n\n\n:mod:`cache_requests.Session`\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- ``ex`` is shared between request methods. They can be accessed by ``Session.cache.ex`` or ``Session.get.ex``, where ``get`` is the ``requests.get`` method\n\n- By default requests that return and error will not be cached. This can be overridden by overriding the ``Session.cache.set_cache_cb`` to return ``False``. The callback takes the response object as an argument\n\n.. code-block:: python\n\n from cache_requests import Session\n\n requests = Session()\n\n requests.cache.set_cache_db = lambda _:False\n\n- By default only autonomous methods are cached (``get``, ``head``, ``options``). Each method can be setup to be cached using the ``Session.cache`` config option.\n\n\n\nThese methods are accessed through the Session objects ``Session.cache.[method name]``.\nThey can be overridden with the ``Session.cache.all`` setting.\n\nFor example\n\n.. code-block:: python\n\n from cache_requests import Session\n\n requests = Session()\n\n requests.cache.delete = True\n\n # cached, only called once.\n requests.delete('http://google.com')\n requests.delete('http://google.com')\n\n requests.cache.delete = True\n\n # not cached, called twice.\n requests.delete('http://google.com')\n requests.delete('http://google.com')\n\n # cache ALL methods\n requests.cache.all = True\n\n # don't cache any methods\n requests.cache.all = False\n\n # Use individual method cache options.\n requests.cache.all = None\n\nDefault settings\n****************\n=========== ========\nMethod Cached\n=========== ========\n``get`` ``True``\n``head`` ``True``\n``options`` ``True``\n``post`` ``False``\n``put`` ``False``\n``patch`` ``False``\n``delete`` ``False``\n``all`` ``None``\n=========== ========\n\nFunction Level Config\n~~~~~~~~~~~~~~~~~~~~~\n\nCache Busting\n Use keyword ``bust_cache=True`` in a memoized function to force reevaluation.\n\nConditionally Set Cache\n Use keyword ``set_cache`` to provide a callback. The callback takes the results of function as an argument and must return a ``bool``. Alternatively, ``True`` and ``False`` can be used.\n\nUse Case Scenarios\n------------------\n\n\nDevelopment: 3rd Party APIs\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nScenario:\n Working on a project that uses a 3rd party API or service.\n\nThings you want:\n * A cache that persists between sessions and is lightning fast.\n * Ability to rapidly explore the API and it's parameters.\n * Ability to inspect and debug response content.\n * Ability to focus on progress.\n * Perfect transition to a production environment.\n\n\n\nThings you don't want:\n * Dependency on network and server stability for development.\n * Spamming the API. Especially APIs with limits.\n * Responses that change in non-meaningful ways.\n * Burning energy with copypasta or fake data to run piece of your program.\n * Slow. Responses.\n\nMake a request one time. Cache the results for the rest of your work session.\n\n.. code-block:: python\n\n import os\n\n if os.environ.get('ENV') == 'DEVELOP':\n from cache_requests import Session\n\n request = Session(ex=60 * 60 ) # Set expiration, 60 min\n else:\n import requests\n\n # strange, complicated request you might make\n headers = {\"accept-encoding\": \"gzip, deflate, sdch\", \"accept-language\": \"en-US,en;q=0.8\"}\n payload = dict(sourceid=\"chrome-instant\", ion=\"1\", espv=\"2\", ie=\"UTF-8\", client=\"ubuntu\",\n q=\"hash%20a%20dictionary%20python\")\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n\n # spam to prove a point\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n\n # tweak your query, we're exploring here\n payload = dict(sourceid=\"chrome-instant\", ion=\"1\", espv=\"2\", ie=\"UTF-8\", client=\"ubuntu\",\n q=\"hash%20a%20dictionary%20python2\")\n # do you see what changed? the caching tool did.\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n response = requests.get('http://google.com/search', headers=headers, params=payload)\n\n\n\nProduction: Web Scraping\n~~~~~~~~~~~~~~~~~~~~~~~~\n\nAutomatically expire old content.\n\n * How often? After a day? A week? A Month? etc. 100% of this logic is built in with the ``Session.cache.ex`` setting.\n * Effectively it can manage all of the time-based rotation.\n * Perfect if you theres more data then what your API caps allow.\n\nOne line of code to use a ``redis`` full database.\n\n * Try ``redislite``; it can handle quite a bit. The ``redislite`` api used by this module is 1:1 with the redis package. Just replace the connection parameter/config value.\n * ``redis`` is a drop in:\n\n.. code-block:: python\n\n connection = redis.StrictRedis(host='localhost', port=6379, db=0)\n requests = Session(connection=connection)\n\n * Everything else just works. There's no magic required.\n\n.. code-block:: python\n\n from cache_requests import Session\n\n connection = redis.StrictRedis(host='localhost', port=6379, db=0)\n ex = 7 * 24 * 60 * 60 # 1 week\n\n requests = Session(ex=ex, connection=connection)\n\n for i in range(1000)\n payload = dict(q=i)\n response = requests.get('http://google.com/search', params=payload)\n print(response.text)\n\n\n\n\nUsage: memoize\n~~~~~~~~~~~~~~\n\n\n\n.. code-block:: python\n\n from cache_requests import Memoize\n\n @Memoize(ex=15 * 60) # 15 min, default, 60 min\n def amazing_but_expensive_function(*args, **kwargs)\n print(\"You're going to like this\")\n\n\n.. END Source defined in docs/source/usage.rst\n.. START Source defined in docs/source/_partial/readme_credits.rst\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `bionikspoon/cookiecutter-pypackage`_ forked from `audreyr/cookiecutter-pypackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`bionikspoon/cookiecutter-pypackage`: https://github.com/bionikspoon/cookiecutter-pypackage\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n\n\n.. END Source defined in docs/source/_partial/readme_credits.rst\n\n\n=======\nHistory\n=======\n\nNext Release\n------------\n\n- Stay tuned.\n\n\n4.0.0 (2015-12-25)\n------------------\n\n- Fix: Use MD5 for hash to avoid PYTHONHASHSEED issue.\n- Fix: Give default dbfilename a more unique name, based on caller.\n- BREAKING:Move ``Session.ex`` and ``Session.connection`` to ``Session.cache`` config object.\n- Updated examples. New example demonstrates Memoize decorator.\n- Updated requirements.\n\n3.0.0 (2015-12-22)\n------------------\n\n- Feature: Cache busting! Use keyword argument ``bust_cache=True`` to force reevaluation.\n- Feature: Session automatically skips caching error responses.\n- Feature: Callback argument to decide if results should be cached.\n- Feature: Decorated Session methods share a centralized configuration per session.\n- BREAKING: Remove global config, in favor component level config. Reasoning: Global config adds way too much complexity and adds too little value. (Everything needs to lazy load the config at the last moment)\n- Fix: Unique cache per function in shared db.\n- Fix: Tweaks to keep the classes sub classable.\n- Fix: Cleaned up tests.\n- Updated requirements.\n\n2.0.0 (2015-12-12)\n------------------\n\n- API completely rewritten\n- New API extends ``requests`` internals as opposed to monkeypatching.\n- Entire package is redesigned to be more maintainable, more modular, and more usable.\n- Dependencies are pinned.\n- Tests are expanded.\n- PY26 and PY32 support is dropped, because of dependency constraints.\n- PY35 support is added.\n- Docs are rewritten.\n- Move towards idiomatic code.\n- 2.0.6 Fix broken coverage, broken rst render.\n\n1.0.0 (2015-04-23)\n------------------\n\n- First real release.\n- Feature/ Unit test suite, very high coverage.\n- Feature/ ``redislite`` integration.\n- Feature/ Documentation. https://cache-requests.readthedocs.org.\n- Feature/ Exposed the beefed up ``Memoize`` decorator.\n- Feature/ Upgraded compatibility to:\n - PY26\n - PY27\n - PY33\n - PY34\n - PYPY\n- Added examples and case studies.\n\n\n0.1.0 (2015-04-19)\n------------------\n\n- First release on PyPI.", "description_content_type": null, "docs_url": "https://pythonhosted.org/cache_requests/", "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bionikspoon/cache_requests", "keywords": "cache_requests Manu Phatak", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "cache_requests", "package_url": "https://pypi.org/project/cache_requests/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cache_requests/", "project_urls": { "Homepage": "https://github.com/bionikspoon/cache_requests" }, "release_url": "https://pypi.org/project/cache_requests/4.0.0/", "requires_dist": [ "redislite", "requests", "six" ], "requires_python": "", "summary": "Simple. Powerful. Persistent LRU caching for the requests library.", "version": "4.0.0" }, "last_serial": 1879602, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "82a6b0f33a98013b369f06604db56965", "sha256": "a844afd30b130db9a351be1daf8a3a6669b54853ac7bc72bbc23bd9b2e122cf6" }, "downloads": -1, "filename": "cache_requests-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "82a6b0f33a98013b369f06604db56965", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11052, "upload_time": "2015-04-22T22:26:47", "url": "https://files.pythonhosted.org/packages/c0/21/087a97a6e409a47d23173df9c90602d2ffe6086297608e61a13df57440bc/cache_requests-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34198207eaf07565a08b30cfbd86fff9", "sha256": "cb6173f5b033458c229d604ef066db3ca4bfb5e88c3c51d322f20c200d017e85" }, "downloads": -1, "filename": "cache_requests-0.1.0.tar.gz", "has_sig": false, "md5_digest": "34198207eaf07565a08b30cfbd86fff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16848, "upload_time": "2015-04-22T22:26:43", "url": "https://files.pythonhosted.org/packages/43/07/4914e79e861e1eb73bf192b1d1d827b211584247bfbbc19b3a77314d60bc/cache_requests-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "048fc489f05148691ce62d5bbe59d18c", "sha256": "47c6d9c728da5a4fc675535cdcc84303ba58558ea3fd4fd2a52d6963733b3a1e" }, "downloads": -1, "filename": "cache_requests-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "048fc489f05148691ce62d5bbe59d18c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12563, "upload_time": "2015-04-23T05:50:08", "url": "https://files.pythonhosted.org/packages/16/8a/2d6ffcfa9c54701f323fad3d6144332651397cd219d033444554b5463838/cache_requests-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10e04a51ee1a6a83759d3d61857fe20f", "sha256": "bbba2a8f881cd5fea3cbda60e6551fefa82f1bbb6fcb84621a606cc8348006d9" }, "downloads": -1, "filename": "cache_requests-1.0.0.tar.gz", "has_sig": false, "md5_digest": "10e04a51ee1a6a83759d3d61857fe20f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18136, "upload_time": "2015-04-23T05:50:05", "url": "https://files.pythonhosted.org/packages/ec/37/c36ecfd4f4b5af3bc7c8b25e7082a35aee59fbc323c9ff10ac7fb703be76/cache_requests-1.0.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "581cec7c29fd1ca8108a6964cb6335b8", "sha256": "f5f7d8d22eb88ce3e8653e94556b1fddd980d286d56aa5567537dc3dd51e2daf" }, "downloads": -1, "filename": "cache_requests-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "581cec7c29fd1ca8108a6964cb6335b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15361, "upload_time": "2015-12-13T04:30:37", "url": "https://files.pythonhosted.org/packages/95/97/6a344723ba97bfecfb6d7f182535e6268297997c88bbe32e81fa08dbd63a/cache_requests-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55d5dbb0e6ee6edc7f9940bf1193f18e", "sha256": "f8d5b17deebcc4964be4f676734d30946645761087f06a5753f8983d31004770" }, "downloads": -1, "filename": "cache_requests-2.0.0.tar.gz", "has_sig": false, "md5_digest": "55d5dbb0e6ee6edc7f9940bf1193f18e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25529, "upload_time": "2015-12-13T04:30:43", "url": "https://files.pythonhosted.org/packages/be/c8/c0dc417766ff352ca355f847a63eeb431021ec1e3a82069e6c16524acefe/cache_requests-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "5c6054ec4b6688a80e5f9a4d1127e889", "sha256": "de845c0bc44261ca757a89b29d1fc5d7a67e7db84ad742be0fa04946fdf64c6b" }, "downloads": -1, "filename": "cache_requests-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5c6054ec4b6688a80e5f9a4d1127e889", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 15351, "upload_time": "2015-12-13T04:40:23", "url": "https://files.pythonhosted.org/packages/b5/5e/61486bdee59ef62b5b56c0a1a8ef5bc7efd551839666eb4b049165ead554/cache_requests-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b83ceca2379c168e1dd25a259fee5120", "sha256": "0c49bec83c75796ef1bfee66f907e5e7159468e63f262a7e0d66fdf0ee1ef91d" }, "downloads": -1, "filename": "cache_requests-2.0.1.tar.gz", "has_sig": false, "md5_digest": "b83ceca2379c168e1dd25a259fee5120", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21273, "upload_time": "2015-12-13T04:40:15", "url": "https://files.pythonhosted.org/packages/12/cf/fd28be16aad1558b8db65c97656d2e7b6de73205d481fb9c8a3dd533203f/cache_requests-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "c43f3300d8fdecb02f14be12732d09f0", "sha256": "461f4ab54fe86460a58cb88a66ae19de9e983e1661b0962454878d128e1b6095" }, "downloads": -1, "filename": "cache_requests-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c43f3300d8fdecb02f14be12732d09f0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15242, "upload_time": "2015-12-13T05:10:55", "url": "https://files.pythonhosted.org/packages/1f/5e/f8ac64e92d522c77d71871a1f5e73476ffc1dfe6f23c278551acf5baf617/cache_requests-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a8e2fdeb118392ff6ef621e6048ca5b", "sha256": "fe44d7748805c04bccabb76f75e9973c7dd74ed835f1ba2aa24591897754af72" }, "downloads": -1, "filename": "cache_requests-2.0.2.tar.gz", "has_sig": false, "md5_digest": "3a8e2fdeb118392ff6ef621e6048ca5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25477, "upload_time": "2015-12-13T05:10:58", "url": "https://files.pythonhosted.org/packages/31/ed/de178dc3c91b2b368b3e6539d2093626d37d2cc5d5cce4039dd6f44e51f4/cache_requests-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "1a454b1847c566cc4e75bf484eac79dd", "sha256": "8141f02dfa8bf4fbaeb3a1ac34c423302cd35a101a2f57ea35b14941df60835e" }, "downloads": -1, "filename": "cache_requests-2.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1a454b1847c566cc4e75bf484eac79dd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15239, "upload_time": "2015-12-13T06:11:48", "url": "https://files.pythonhosted.org/packages/91/58/f7c21a41912c05577f5a17ea12c763749f3408bf83062b934427a4742782/cache_requests-2.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de33d31c43f285ec0f5e1494490cd781", "sha256": "b3cdc8104110af1f02721fcdac18ba47bcd219adfdfaef5219302d586fb306bf" }, "downloads": -1, "filename": "cache_requests-2.0.3.tar.gz", "has_sig": false, "md5_digest": "de33d31c43f285ec0f5e1494490cd781", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25440, "upload_time": "2015-12-13T06:11:55", "url": "https://files.pythonhosted.org/packages/d9/66/fb96ef080486c8cb84e76edfc2ad9621c9d9a2375e268cbfb597a0e1ca58/cache_requests-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "b6b0e1bdf86a1768b0c9b588e1dbf551", "sha256": "b7bd402ee0b71b19979018c2298e5b7d353e74cc55ee7ebfd502529a3d2e55c7" }, "downloads": -1, "filename": "cache_requests-2.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b6b0e1bdf86a1768b0c9b588e1dbf551", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15253, "upload_time": "2015-12-13T06:20:10", "url": "https://files.pythonhosted.org/packages/11/49/f37b9aa31ee08ea6a15ce4bb6e422ef9b74c24cf97a4c2624dcf139894aa/cache_requests-2.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f70a599cd463a84f756a0bc0093953e8", "sha256": "512e8ad544e92688a59b43e238626885918912945570306304a95cd406df34e9" }, "downloads": -1, "filename": "cache_requests-2.0.4.tar.gz", "has_sig": false, "md5_digest": "f70a599cd463a84f756a0bc0093953e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25447, "upload_time": "2015-12-13T06:20:19", "url": "https://files.pythonhosted.org/packages/c1/5f/5a83ccde1d5ed9e49d1943eab46c831f09acdb7b6a87e8bef9b9196747d9/cache_requests-2.0.4.tar.gz" } ], "2.0.5": [ { "comment_text": "", "digests": { "md5": "eb6c8ecb8a29712d8e4817461f543d5e", "sha256": "8f904dc5e190491a6e01fb137a8911fd1b308ffdda05c86275fd8091b7f1dddd" }, "downloads": -1, "filename": "cache_requests-2.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eb6c8ecb8a29712d8e4817461f543d5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15396, "upload_time": "2015-12-18T05:12:19", "url": "https://files.pythonhosted.org/packages/8c/90/2907af5603b9ef0a92d74de8500163d73eecee1ef2da4014a98577cf5134/cache_requests-2.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f63904be1cf53252086d1831509e5fe6", "sha256": "65295ab9be18f4eb9ad3e692a6c69e39109d463d9f3a6c7998169ba96f42d590" }, "downloads": -1, "filename": "cache_requests-2.0.5.tar.gz", "has_sig": false, "md5_digest": "f63904be1cf53252086d1831509e5fe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26944, "upload_time": "2015-12-18T05:12:26", "url": "https://files.pythonhosted.org/packages/dd/ec/292d659c00a1068e00f4061bea313c0bc92b8cea1d4cd93fb19e5221c117/cache_requests-2.0.5.tar.gz" } ], "2.0.6": [ { "comment_text": "", "digests": { "md5": "78c0a6422dcdd4454140c58db5dce857", "sha256": "0462d3881a465fe09171976959d2d25d21f42417d7c03f72c2a43d3384d61c28" }, "downloads": -1, "filename": "cache_requests-2.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "78c0a6422dcdd4454140c58db5dce857", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15350, "upload_time": "2015-12-19T03:01:54", "url": "https://files.pythonhosted.org/packages/1d/52/63b19479f0ba765947669c00d722590e2892fd93dbf214fd38ae52610797/cache_requests-2.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2e0c0253dc6766a9776c5129fa16b751", "sha256": "83c23a2f2a3f64429cc559c16235faac3812de28280ad93d6ca1f7337d551fae" }, "downloads": -1, "filename": "cache_requests-2.0.6.tar.gz", "has_sig": false, "md5_digest": "2e0c0253dc6766a9776c5129fa16b751", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26967, "upload_time": "2015-12-19T03:02:01", "url": "https://files.pythonhosted.org/packages/01/bb/b7b76850de212f1d79b914e4012d54501b894b4f0eded5fce2e49b743083/cache_requests-2.0.6.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "024484aab525caca2e45fb412b371571", "sha256": "45089d83fadf5404edbdf1d115150bcda35cd13776d5ba416280e10a9bf5db30" }, "downloads": -1, "filename": "cache_requests-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "024484aab525caca2e45fb412b371571", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15942, "upload_time": "2015-12-23T03:15:09", "url": "https://files.pythonhosted.org/packages/bb/77/3331031dd18f211818b18c158ffe4d3c5a674a2e1eb4e86f4fab26827859/cache_requests-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6aeb838a4aba166047fdd8bad733cce4", "sha256": "065ff932e6a49ec5cc2b4844fd3013b5100ad69676f6a9890f7b6a5fb3ed5d01" }, "downloads": -1, "filename": "cache_requests-3.0.0.tar.gz", "has_sig": false, "md5_digest": "6aeb838a4aba166047fdd8bad733cce4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29904, "upload_time": "2015-12-23T03:15:15", "url": "https://files.pythonhosted.org/packages/b2/04/6f4744af1c605ab5a994f1e7e6c969c055fd0ecfe6f33b299031047c20b8/cache_requests-3.0.0.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "d8e1ea027cbc3dcecc8cdd0786b2b4f6", "sha256": "39849d65a7b332998c25ae275e636e3b9c6556328cc628c71e1786f73e86a154" }, "downloads": -1, "filename": "cache_requests-4.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8e1ea027cbc3dcecc8cdd0786b2b4f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16631, "upload_time": "2015-12-26T04:06:15", "url": "https://files.pythonhosted.org/packages/c8/7c/6ff0976e2bc80fe815377303a7a9cfc5880871532cccb2e7f6c6e398af74/cache_requests-4.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88a6691e19d9982b3ba4ed679c088afd", "sha256": "2cc29b9b0ade89e9ea6a5cb985dca3617b0da1117ae3eaf870a8f1d94272aeb9" }, "downloads": -1, "filename": "cache_requests-4.0.0.tar.gz", "has_sig": false, "md5_digest": "88a6691e19d9982b3ba4ed679c088afd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30452, "upload_time": "2015-12-26T04:06:19", "url": "https://files.pythonhosted.org/packages/c1/4b/25f2cde2bd908d9bd1357e06170c4070735838cdadb664859e06d47f9a28/cache_requests-4.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d8e1ea027cbc3dcecc8cdd0786b2b4f6", "sha256": "39849d65a7b332998c25ae275e636e3b9c6556328cc628c71e1786f73e86a154" }, "downloads": -1, "filename": "cache_requests-4.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d8e1ea027cbc3dcecc8cdd0786b2b4f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16631, "upload_time": "2015-12-26T04:06:15", "url": "https://files.pythonhosted.org/packages/c8/7c/6ff0976e2bc80fe815377303a7a9cfc5880871532cccb2e7f6c6e398af74/cache_requests-4.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88a6691e19d9982b3ba4ed679c088afd", "sha256": "2cc29b9b0ade89e9ea6a5cb985dca3617b0da1117ae3eaf870a8f1d94272aeb9" }, "downloads": -1, "filename": "cache_requests-4.0.0.tar.gz", "has_sig": false, "md5_digest": "88a6691e19d9982b3ba4ed679c088afd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30452, "upload_time": "2015-12-26T04:06:19", "url": "https://files.pythonhosted.org/packages/c1/4b/25f2cde2bd908d9bd1357e06170c4070735838cdadb664859e06d47f9a28/cache_requests-4.0.0.tar.gz" } ] }