{ "info": { "author": "Malthe Borch and Stefan Eletzhofer", "author_email": "repoze-dev@lists.repoze.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application" ], "description": "repoze.squeeze\n==============\n\nThis package provides a WSGI middleware component which \"squeezes\"\nHTML documents by merging browser resources (javascript\nand stylesheets).\n\nIt uses statistical analysis to determine the optimal bundles based on\nthe HTML documents that pass through it. Vary-headers are observed, as\nare resource expiration dates.\n\nDocuments that are not squeezed are given the 'no-cache' pragma in an\nexpectation that we will be able to squeeze it after sufficient\nburn-in. Squeezed documents are served with expiration dates no later\nthan the expiration dates of the squeezed resources which it\nreferences.\n\nUsage\n-----\n\nConfigure the middleware with the following two options (required):\n\n @cache_dir: Relative path to a directory where we store squeezed\n resources\n\n @url_prefix: Path segment or full base URL that will be used to\n serve the cache directory as static files.\n\nThe following option is optional:\n \n @threshold: Floating-point parameter that controls the merge to\n apperances threshold. This parameter can normally be left at the\n default (0.5).\n\nIn addition, you must configure the WSGI application to serve the file\ncache directory from the ``url_prefix`` (e.g. \"cache\").\n\nInvalidation\n------------\n\nTo invalidate the file cache, upstream applications can set the\n\"X-Squeeze-Invalidate\" header to a true value; note that before the\napplication is called, the middleware adds this key to the environment\nsuch that applications which can't modify the environment can still\nflag for invalidation:\n\n >>> invalidate = environ[\"X-Squeeze-Invalidate\"]\n >>> invalidate()\n\nThis will reset the file cache registry; note that no cache files are\never deleted (to preserve web server integrity). You can manually\npurge the file cache at any time be deleting the files (this is\nallowed at run-time).\n\n\nChangelog\n---------\n\n0.4.4 (released 2009-06-22)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Fixed edge-case where a response would not have a character set\n defined and hence couldn't be expressed as unicode. [malthe]\n\n- Fixed edge-case with self-closing style elements. [malthe]\n\n- Fixed edge-case issue with missing ttl-value. [malthe]\n\n0.4.3 (released 2009-05-11)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Added environment variable control of file cache\n invalidation. [malthe]\n\n0.4.2 (released 2009-05-11)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Add semicolon after javascripts to make sure any function-block is\n properly terminated (necessary due to concatenation). [malthe]\n\n0.4.1 (released 2009-04-20)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Parse unicode body to ensure correct character decoding. [malthe]\n\n0.4 (released 2009-04-15)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- If a response has status '304 Not Modified', update the ``ttl`` but\n not the content. [malthe]\n\n- If a script- or style-tag does not have a source or link, ignore\n it. [malthe]\n\n- Unquote request URL when querying cache. [malthe]\n\n- Added support for ``repoze.xmliter`` which allows reusing an\n ``lxml`` document tree between middlewares. [malthe]\n\n- Media types for stylesheets are now taken into account when merging\n the resources. Squeze uses CSS2 `@media ` syntax. [jvloothuis]\n\n0.3 (released 2008-10-08)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Relative URLs appearing in stylesheets are now made absolute before\n merging. [malthe]\n\n0.2 (released 2008-10-03)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Add setuptools as a dependency. [malthe]\n\n0.1 (released 2008-10-02)\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Initial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.repoze.org", "keywords": "web middleware wsgi css js squeeze merging statistics cache", "license": "BSD-derived (http://www.repoze.org/LICENSE.txt)", "maintainer": null, "maintainer_email": null, "name": "repoze.squeeze", "package_url": "https://pypi.org/project/repoze.squeeze/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/repoze.squeeze/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.repoze.org" }, "release_url": "https://pypi.org/project/repoze.squeeze/0.4.4/", "requires_dist": null, "requires_python": null, "summary": "WSGI middleware for statistical HTML browser resource squeezing.", "version": "0.4.4" }, "last_serial": 798827, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c5079ce1d1307c61bc88985e00b7ccc1", "sha256": "0bfc9cc8d78ce40c51fc1b8e78443aeade05560478402b315ac8638485477b8e" }, "downloads": -1, "filename": "repoze.squeeze-0.1.tar.gz", "has_sig": false, "md5_digest": "c5079ce1d1307c61bc88985e00b7ccc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11800, "upload_time": "2008-10-02T16:57:00", "url": "https://files.pythonhosted.org/packages/2e/92/9cff4480abf381f550ac9c02f8a97d0d4bf979f62cda0bcd34bc65d88fda/repoze.squeeze-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "c96aba17b41e7f5916d5cbdb212331f0", "sha256": "cea4d984709ca130615c294f43b8196f3d5bb8c7a14fcd39a3c9538fb6d67c76" }, "downloads": -1, "filename": "repoze.squeeze-0.2.tar.gz", "has_sig": false, "md5_digest": "c96aba17b41e7f5916d5cbdb212331f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11860, "upload_time": "2008-10-03T15:40:10", "url": "https://files.pythonhosted.org/packages/a5/60/a7d1f1b71c49203210e491b8fef547dde56d53e806e59733b12e339b7814/repoze.squeeze-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "916ca51d6daeae77899f646485cff97e", "sha256": "b0b67cf5c352d451dd258fd9fcf20405d3fb0c8abee0f0b38c0feca74dbe70ff" }, "downloads": -1, "filename": "repoze.squeeze-0.3.tar.gz", "has_sig": false, "md5_digest": "916ca51d6daeae77899f646485cff97e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12773, "upload_time": "2008-10-08T18:21:24", "url": "https://files.pythonhosted.org/packages/6f/ec/c38b770d0de0a81053caeec32bece8cac4d6608c56a85354c2aec4309afc/repoze.squeeze-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "aca380ae5c16a3a1a0725eb62d85b479", "sha256": "a163a6c877ea07dee81d78bfe6e80d906f3ca511f007161cf86b7b5b30a7350a" }, "downloads": -1, "filename": "repoze.squeeze-0.4.tar.gz", "has_sig": false, "md5_digest": "aca380ae5c16a3a1a0725eb62d85b479", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15263, "upload_time": "2009-04-15T13:05:00", "url": "https://files.pythonhosted.org/packages/4a/7e/7a4d725c51968e507ca1c95c228830a20e7ee01b4f4af4e1dc1fc68b6234/repoze.squeeze-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "1acadf712dee1a1c268a8d9d443c8c46", "sha256": "64322fe67644aa5a915f54d8e05e4624ebed984aae0c261d580dbca3830b6780" }, "downloads": -1, "filename": "repoze.squeeze-0.4.1.tar.gz", "has_sig": false, "md5_digest": "1acadf712dee1a1c268a8d9d443c8c46", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15397, "upload_time": "2009-04-20T17:37:24", "url": "https://files.pythonhosted.org/packages/dd/12/732f8b13895a51599cb6ace8db0255f601645c7cf1d20ea550df215d5a85/repoze.squeeze-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "7a6c1790010ff58dbac02cb597276aa8", "sha256": "f142627ebb68d5e30f354ef6371f53042e8037ac96f94ea181110d73070e193e" }, "downloads": -1, "filename": "repoze.squeeze-0.4.2.tar.gz", "has_sig": false, "md5_digest": "7a6c1790010ff58dbac02cb597276aa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15573, "upload_time": "2009-05-11T08:40:51", "url": "https://files.pythonhosted.org/packages/3c/a3/7e87695d3e641f9177e27c1655d41c565914797fcfc37abd33be96ed5d2a/repoze.squeeze-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "6d0bd75c78c2ceb32ead3fb6a43bb8b8", "sha256": "42da97486f1550bc62785410d598e0c9e8f58b2203659e4e82dc0d230791a364" }, "downloads": -1, "filename": "repoze.squeeze-0.4.3.tar.gz", "has_sig": false, "md5_digest": "6d0bd75c78c2ceb32ead3fb6a43bb8b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16680, "upload_time": "2009-05-11T14:04:54", "url": "https://files.pythonhosted.org/packages/1f/26/b112895217384f7ff8dae343afcc4dc7f187c4baa2b31239ceb0e2ded425/repoze.squeeze-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "076aaa6d7acd4b7a2702b3f2eae1f7ed", "sha256": "48ebbf9e7bd959cc6d6f50e6448ff59e8339a279d906e0f8dced90d7d2ec066b" }, "downloads": -1, "filename": "repoze.squeeze-0.4.4.tar.gz", "has_sig": false, "md5_digest": "076aaa6d7acd4b7a2702b3f2eae1f7ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16908, "upload_time": "2009-06-22T11:04:06", "url": "https://files.pythonhosted.org/packages/f2/75/6e186fb9c79c3ea2bac811708123511d8b38cbde2225372c9d468753c237/repoze.squeeze-0.4.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "076aaa6d7acd4b7a2702b3f2eae1f7ed", "sha256": "48ebbf9e7bd959cc6d6f50e6448ff59e8339a279d906e0f8dced90d7d2ec066b" }, "downloads": -1, "filename": "repoze.squeeze-0.4.4.tar.gz", "has_sig": false, "md5_digest": "076aaa6d7acd4b7a2702b3f2eae1f7ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16908, "upload_time": "2009-06-22T11:04:06", "url": "https://files.pythonhosted.org/packages/f2/75/6e186fb9c79c3ea2bac811708123511d8b38cbde2225372c9d468753c237/repoze.squeeze-0.4.4.tar.gz" } ] }