{ "info": { "author": "Nathan R. Yergler", "author_email": "nathan@yergler.net", "bugtrack_url": null, "classifiers": [], "description": "==========\nwsgi_cache\n==========\n\n:Date: 2010-01-05\n:Authors: Nathan R. Yergler \n:Copyright: 2010, Nathan R. Yergler, Creative Commons; \n\t licensed to the public under the MIT License.\n\n``wsgi_cache`` is a piece of WSGI middleware that provides disk\ncaching for WSGI applications. It is somewhat coarse and rather\ninflexible, sort of like your grandpa.\n\n``wsgi_cache`` is designed to cache requests to a WSGI site to disk in\na cache directory on disk. The cache directory will have the same\ndirectory layout as the requests (ie, if ``/foo/bar`` is requested, the\n``foo`` directory will be made in the cache and ``bar`` will be stored\nthere). There is *no* cache expiration beyond deleting cached files\nfrom the disk. This is a feature.\n\nInstallation\n============\n\n``wsgi_cache`` can be installed as a Python egg, using easy_install::\n\n $ easy_install wsgi_cache\n\nConfiguration\n=============\n\nConfiguration of wsgi_cache will often be done using Paste Deploy. In\nthis situation, it can be configured as a filter::\n\n [app:main]\n use = egg:my_wsgi_app#app\n filter-with = cache\n\n [filter:cache]\n use = egg:wsgi_cache#middleware\n cache_dir = ./cache\n\nThe ``cache_dir`` is the only required configuration parameter, and\nwill be interpreted as relative to ``global_conf['here']``.\n\n``wsgi_cache`` also supports three additional configuration parameters:\n\n* content_type\n Specifies the content type used when serving cached resources; see\n Limitations_ below for details on this. By default this is set to\n ``text/html``.\n* cache_paths\n A comma separated list of paths, starting with a ``/``, that\n specifies the paths to cache. If specified, only requests to\n paths starting with one of these strings will be cached.\n* directory_index\n When accessing a path that ends in a ``/`` (like ``/monkeys/``),\n wsgi_cache needs to create a special filename. By default this is\n ``__index.html``. So by default, caching the page ``/monkeys/``\n saves to the file ``${path_to_cache}/monkeys/__index.html``; if we\n set directory_index to ``dir_x`` it would save to\n ``${path_to_cache}/monkeys/dirx``.\n\nBehavior\n========\n\nWhen a request comes in, ``wsgi_cache`` examines the path to determine\nif it should be cached. Requests with a querystring are **not**\ncached, regardless of the use of ``cache_paths``. If the request is\nsupposed to be cached, ``wsgi_cache`` looks for the page in the cache\nand serves that copy, if available. If unavailable, the request is\npassed to the application and the result is saved and returned.\n\nNote that in many situations, you'll want to exploit ``wsgi_cache``'s\non disk cache layout to serve the cached version directly using your\nfront end web server (ie, Apache with mod_rewrite).\n\nDevelopment\n===========\n\n``wsgi_cache`` may be developed using `buildout`_ ::\n\n $ python bootstrap.py\n $ ./bin/buildout\n\nThis will install any dependencies, as well as create a wrapper\n``python`` script that can be used to run a shell with ``wsgi_cache``\non the Python path.\n\nRunning Tests\n-------------\n\n``wsgi_cache`` uses nose_ for running tests. You can run the test\nsuite by running::\n\n $ python setup.py nosetests\n\nIf you're using buildout for development, nose will be installed in\nthe buildout for you::\n\n $ ./bin/python setup.py nosetests\n\nLimitations\n===========\n\n* ``wsgi_cache`` only stores the response body in order to allow\n serving of the cached files by a faster, static webserver. As such,\n it can only return a single content-type at this point.\n\n.. _nose: http://somethingaboutorange.com/mrl/projects/nose/0.11.1/\n.. _buildout: http://buildout.org/\n\nDownload\n========", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "wsgi_cache", "package_url": "https://pypi.org/project/wsgi_cache/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/wsgi_cache/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/wsgi_cache/0.2.3/", "requires_dist": null, "requires_python": null, "summary": "WSGI middleware for caching responses to disk.", "version": "0.2.3" }, "last_serial": 704982, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7136d349c4feef753e38223d28c9db16", "sha256": "01bc9a756cb260342cbb369e610f56912127553d37acd2364cd73e01465d7664" }, "downloads": -1, "filename": "wsgi_cache-0.1-py2.6.egg", "has_sig": false, "md5_digest": "7136d349c4feef753e38223d28c9db16", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 5710, "upload_time": "2010-01-05T19:43:26", "url": "https://files.pythonhosted.org/packages/15/03/cfd88d6bf012a2ed29f856def1d5acecf19bc649214019f1f3c7995e7d0f/wsgi_cache-0.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "c8882d9765552abb623c09b76d757c40", "sha256": "9b42328582dc7a35890281ce3cf4dbeadc9cdfc0280527b3f550e2837d40bb57" }, "downloads": -1, "filename": "wsgi_cache-0.1.tar.gz", "has_sig": false, "md5_digest": "c8882d9765552abb623c09b76d757c40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3510, "upload_time": "2010-01-05T19:39:30", "url": "https://files.pythonhosted.org/packages/3a/04/6596639ec074634347128b0709aa3e9d5a2241a1746a5a4cf8dfc70c9f9f/wsgi_cache-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "5ff8fe4ad5e02f94ee6339ba6bdba4e9", "sha256": "56351b7d2856ea1e48379c78a896e35991c4c90666be4f45d3e4048485c754bc" }, "downloads": -1, "filename": "wsgi_cache-0.1.1-py2.5.egg", "has_sig": false, "md5_digest": "5ff8fe4ad5e02f94ee6339ba6bdba4e9", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 5996, "upload_time": "2010-02-22T21:58:54", "url": "https://files.pythonhosted.org/packages/c4/42/70e8b0be63d2d6e7ae342f3b4ccc35c9882defee58f51f674d054b11525d/wsgi_cache-0.1.1-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "a0d7f5cb5b6c0513d12e3ba83ad780ea", "sha256": "5719e2189a05cc8a245b2061af963d5d31a123e5c339050703d45d1fee45386e" }, "downloads": -1, "filename": "wsgi_cache-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a0d7f5cb5b6c0513d12e3ba83ad780ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4126, "upload_time": "2010-02-22T21:58:53", "url": "https://files.pythonhosted.org/packages/3b/ef/4af1f8cdb319a2e3906e6a75beb17940146f09d0502df4db99aec73c1249/wsgi_cache-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "3615d46f111589354e9eeb3b59673e21", "sha256": "d1c2950a6bbdea22dfe49a58af23a7e3ff9afa75d4f29908c9b04112470f4776" }, "downloads": -1, "filename": "wsgi_cache-0.1.2-py2.6.egg", "has_sig": false, "md5_digest": "3615d46f111589354e9eeb3b59673e21", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 6052, "upload_time": "2010-04-30T22:38:34", "url": "https://files.pythonhosted.org/packages/61/f3/d4d414651f4b863658c283f0f1ad87395b69bbc4ec3223510e22b7a28351/wsgi_cache-0.1.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "f40ab55032c188b4b137e142f8d17d54", "sha256": "a43342b95d90c8b81054af4d76e2903b85a9e41d8c4c6013129bfdcd8f1e2bf0" }, "downloads": -1, "filename": "wsgi_cache-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f40ab55032c188b4b137e142f8d17d54", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4191, "upload_time": "2010-04-30T22:38:34", "url": "https://files.pythonhosted.org/packages/1c/9f/70d1a058fea1051ffe1fdff608e01cb22214912d561eb90bf1c598e78dcf/wsgi_cache-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6375d92e50e64aa854691d604d157ef6", "sha256": "74de4a44886651587b8e12971e58540233ea6725534b2405b1c9d297114f5840" }, "downloads": -1, "filename": "wsgi_cache-0.1.3.tar.gz", "has_sig": false, "md5_digest": "6375d92e50e64aa854691d604d157ef6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4183, "upload_time": "2010-08-02T23:14:17", "url": "https://files.pythonhosted.org/packages/f0/59/45753b33954f741ac426e61393faa14f206a7043ee2a6ccb3ec00d474b5b/wsgi_cache-0.1.3.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1b8d0e9782fb3c52c4ee44fcb040a282", "sha256": "801d79f7d8d88cdb9a0dd0034847fdce07001dff3f0f2db8640c90e2b0858c9c" }, "downloads": -1, "filename": "wsgi_cache-0.2-py2.6.egg", "has_sig": false, "md5_digest": "1b8d0e9782fb3c52c4ee44fcb040a282", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 6193, "upload_time": "2010-11-04T19:05:26", "url": "https://files.pythonhosted.org/packages/01/0b/59ae98fc9e7983f317ca17615b561487888fd0b44f744e9285e1da9a9941/wsgi_cache-0.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "24599bb5b9afe7faf2df1345d2223376", "sha256": "28e895de80dda531509fc58af948132744d37b42d0bc2fcb01faa8e7aeaae98f" }, "downloads": -1, "filename": "wsgi_cache-0.2.tar.gz", "has_sig": false, "md5_digest": "24599bb5b9afe7faf2df1345d2223376", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4320, "upload_time": "2010-11-04T19:05:25", "url": "https://files.pythonhosted.org/packages/24/c3/fe28c433f0a3d1939efbbe33fe8c193d0f0108f0d00f5cbd22ed04f7e198/wsgi_cache-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "bc3992acd9e131ae72c339cce70fbabc", "sha256": "088f4358c727158bf6e19312ff2a2d82c4db9fb2c92117ef1fdb43090c71e194" }, "downloads": -1, "filename": "wsgi_cache-0.2.1-py2.6.egg", "has_sig": false, "md5_digest": "bc3992acd9e131ae72c339cce70fbabc", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 6403, "upload_time": "2010-11-11T17:19:49", "url": "https://files.pythonhosted.org/packages/83/1e/88f86a33d1238a70f10a59db0778fc1d9ce7ea2390ddbc15f7cc3bf16e2d/wsgi_cache-0.2.1-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "0da36d6a719f931e4ba9f577b15bd722", "sha256": "f4e068e6188b82b4042d91edc41eded2bc1d15eef72402398a8081efffc045de" }, "downloads": -1, "filename": "wsgi_cache-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0da36d6a719f931e4ba9f577b15bd722", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4442, "upload_time": "2010-11-11T17:19:47", "url": "https://files.pythonhosted.org/packages/80/63/c9ca1f0a67ada6c6c54b94126e10b21f346f40eed0ff154f3c32188d6aab/wsgi_cache-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "f47188d6ed9446db398100a9e91c6ac1", "sha256": "050651f5ff4bb9468a8ff5b9a165f29b6aedc28cc66e34afada1d1f0c45f566f" }, "downloads": -1, "filename": "wsgi_cache-0.2.2-py2.6.egg", "has_sig": false, "md5_digest": "f47188d6ed9446db398100a9e91c6ac1", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 6417, "upload_time": "2010-12-07T18:34:52", "url": "https://files.pythonhosted.org/packages/1d/bd/0d5ac014002f686efc70ccdf869e4e271b7285fbcf2826e325596196c912/wsgi_cache-0.2.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "a8a508403f72cde0323acb0c5031c8b5", "sha256": "5b2fd5fd810c1a054a4be074feaacff3f717ce3e7dd4317143520975057cadab" }, "downloads": -1, "filename": "wsgi_cache-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a8a508403f72cde0323acb0c5031c8b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4449, "upload_time": "2010-12-07T18:34:52", "url": "https://files.pythonhosted.org/packages/5d/b4/63bb0c801d6e453b2700df68ec1d7eb19ac2758c24cb2d2ea63bef8a854f/wsgi_cache-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "c993cc42bd458646fbe6e4f7c7bdd6dd", "sha256": "9ac665618227691ff9158c36c5481716dc7aa552672b27264af6f35b13a22e24" }, "downloads": -1, "filename": "wsgi_cache-0.2.3-py2.6.egg", "has_sig": false, "md5_digest": "c993cc42bd458646fbe6e4f7c7bdd6dd", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 6493, "upload_time": "2011-07-27T17:43:14", "url": "https://files.pythonhosted.org/packages/48/92/541a7d9fc87cf47df77a3c9769f2ed2bfdc496092cab1eb8f9e78207d3e6/wsgi_cache-0.2.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "68bbbead54ec296401765e933581e343", "sha256": "c9de69e4267bf89cf3448e3e63cd0fd3389d787bc806dfe6453faf8ed773f83e" }, "downloads": -1, "filename": "wsgi_cache-0.2.3.tar.gz", "has_sig": false, "md5_digest": "68bbbead54ec296401765e933581e343", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7729, "upload_time": "2011-07-27T17:43:13", "url": "https://files.pythonhosted.org/packages/26/d2/6820e8f3e21fe44500ee511ca5020a19e7d0d78ca8578d144173aed18df5/wsgi_cache-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c993cc42bd458646fbe6e4f7c7bdd6dd", "sha256": "9ac665618227691ff9158c36c5481716dc7aa552672b27264af6f35b13a22e24" }, "downloads": -1, "filename": "wsgi_cache-0.2.3-py2.6.egg", "has_sig": false, "md5_digest": "c993cc42bd458646fbe6e4f7c7bdd6dd", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 6493, "upload_time": "2011-07-27T17:43:14", "url": "https://files.pythonhosted.org/packages/48/92/541a7d9fc87cf47df77a3c9769f2ed2bfdc496092cab1eb8f9e78207d3e6/wsgi_cache-0.2.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "68bbbead54ec296401765e933581e343", "sha256": "c9de69e4267bf89cf3448e3e63cd0fd3389d787bc806dfe6453faf8ed773f83e" }, "downloads": -1, "filename": "wsgi_cache-0.2.3.tar.gz", "has_sig": false, "md5_digest": "68bbbead54ec296401765e933581e343", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7729, "upload_time": "2011-07-27T17:43:13", "url": "https://files.pythonhosted.org/packages/26/d2/6820e8f3e21fe44500ee511ca5020a19e7d0d78ca8578d144173aed18df5/wsgi_cache-0.2.3.tar.gz" } ] }