{ "info": { "author": "Zope Foundation and Contributors", "author_email": "zope-dev@zope.org", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Zope3", "Intended Audience :: Developers", "License :: OSI Approved :: Zope Public License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "Zope integration for fanstatic\n******************************\n\nThis package provides Zope integration for fanstatic. This means it's\ntaking care of three things:\n\n* provide access to the needed resources throughout the request/response cycle.\n\n* provide the base URL for the resources to be rendered.\n\n* clear the needed resources when an exception view is rendered.\n\nThis library fulfills these conditions for a Zope Toolkit/Grok setup.\n\nWe'll run through a few tests to demonstrate it. Note that the real\ncode being tested is not in this document itself, but in the views\ndescribed in ``ftesting.zcml``.\n\nWe need to be in a request to make this work, so let's up a request to\na page we have set up in ``ftesting.zcml`` that should cause the\ninclusion of a single resource in its header::\n\n >>> from zope.testbrowser.wsgi import Browser\n >>> browser = Browser()\n >>> browser.open('http://localhost/zope.fanstatic.test_single')\n >>> print(browser.contents)\n \n \n \n \n

the widget HTML itself

\n \n \n\nIf a resource happens to need another resource, this resource is also\nautomatically included::\n\n >>> browser.open('http://localhost/zope.fanstatic.test_multiple')\n >>> print(browser.contents)\n \n \n \n \n \n

the widget HTML itself

\n \n \n\nBottom rendering of resources, just before the ```` tag::\n\n >>> browser.open('http://localhost/zope.fanstatic.test_bottom')\n >>> print(browser.contents)\n \n \n \n \n

the widget HTML itself

\n \n \n \n\nIn-template resources\n---------------------\n\nzope.fanstatic provides support for rendering resource publisher\naware URLs to in-template resources::\n\n >>> browser.open('http://localhost/zope.fanstatic.test_inline_resource')\n >>> print(browser.contents)\n \n \n \n \n \n \n \n \n\nException views\n---------------\n\nWhen an exception occurs in the rendering of a view, we don't want to have any\nneeded resources intended for a view being also injected in the error view.\nThe needed resources are cleared and if the exception view chooses to do so,\nit can need resources itself.\n\n >>> browser.raiseHttpErrors = False\n >>> browser.open('http://localhost/zope.fanstatic.test_error')\n >>> import fanstatic\n >>> fanstatic.get_needed().has_resources()\n False\n\nCHANGES\n*******\n\n3.0.0 (2018-01-16)\n------------------\n\n- Python 3 and Fanstatic 1.0.0 compatibility.\n\n0.12 (2011-08-31)\n-----------------\n\n- Similar to the fix in 0.11, make sure calling for the URL of a resource\n will not failed for a `DummyNeededResources` object which would badly hurt\n testability of function or \"browser\" tests of applications that depend\n on fanstatic/zope.fanstatic.\n\n0.11 (2011-08-17)\n-----------------\n\n- Fix bug where calling `ensure_base_url()` failed for `DummyNeededResources`\n objects. This was problematic when writing functional or \"browser\" tests\n of applications that depend on fanstatic/zope.fanstatic.\n\n0.10 (2011-04-11)\n-----------------\n\n- Update to fanstatic 0.11 API.\n\n0.9.1 (2011-01-20)\n------------------\n\n- Do not clear resources on DummyNeededResources objects.\n\n0.9 (2011-01-20)\n----------------\n\n- Integrate zope.errorview, subscribing to the HandleExceptionEvent. This will\n clear the needed resources thusfar required, to have a clean slate for the\n error view to be rendered.\n\n0.9b (2011-01-06)\n-----------------\n\nZope.fanstatic version 0.9 is a fundamental rewrite of `hurry.zoperesource`_,\nas a result of the rewrite of `hurry.resource`_ into `fanstatic`_.\n\nHere's a list of essential changes since version 0.7 of hurry.zoperesource:\n\n- Compliance with the Fanstatic API.\n\n- ``++resource++foo/bar/baz.jpg`` expressions in Page Templates are\n still supported by way registering a traversable component for all\n available resource libraries. There are no zope.browserresource\n components involved anymore in zope.fanstatic.\n\n.. _`hurry.zoperesource`: http://pypi.python.org/pypi/hurry.zoperesource\n.. _`hurry.resource`: http://pypi.python.org/pypi/hurry.resource\n.. _`fanstatic`: http://fanstatic.org\n\nDownload\n********", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/zope.fanstatic", "keywords": "", "license": "ZPL 2.1", "maintainer": "", "maintainer_email": "", "name": "zope.fanstatic", "package_url": "https://pypi.org/project/zope.fanstatic/", "platform": "", "project_url": "https://pypi.org/project/zope.fanstatic/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/zope.fanstatic" }, "release_url": "https://pypi.org/project/zope.fanstatic/3.0.0/", "requires_dist": null, "requires_python": "", "summary": "Fanstatic integration for Zope.", "version": "3.0.0" }, "last_serial": 3493951, "releases": { "0.10": [ { "comment_text": "", "digests": { "md5": "d3735d5514763345dc095c62266c2565", "sha256": "cc0766fe7ec70d5c732116aeb25e3f53857311d4904fc45b3d4f3104dc1dc7f0" }, "downloads": -1, "filename": "zope.fanstatic-0.10.tar.gz", "has_sig": false, "md5_digest": "d3735d5514763345dc095c62266c2565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26680, "upload_time": "2011-04-11T23:39:26", "url": "https://files.pythonhosted.org/packages/b4/80/053a3168e0e49dc57e00b6f615754f6360d1caa2eb9fb76bcf67a7a8b28e/zope.fanstatic-0.10.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "13c814232b1ddf36b240bbf530d0402f", "sha256": "f8c99a7ea398930e932d403864d419db4a89811ef2ff888f42875b12cf488008" }, "downloads": -1, "filename": "zope.fanstatic-0.11.tar.gz", "has_sig": false, "md5_digest": "13c814232b1ddf36b240bbf530d0402f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28066, "upload_time": "2011-08-17T12:12:49", "url": "https://files.pythonhosted.org/packages/66/ab/f9f2e6e3953fd007863755c5f6e1df9e44202a84449db8b21855bff2e9b9/zope.fanstatic-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "3aec6802e85e3ed5bf210d3d58eef131", "sha256": "26a81c2633f7949aa8b302dd1a0289b05b97e4a4721bd38375a3ecf781af9ee8" }, "downloads": -1, "filename": "zope.fanstatic-0.12.tar.gz", "has_sig": false, "md5_digest": "3aec6802e85e3ed5bf210d3d58eef131", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29587, "upload_time": "2011-08-31T15:00:57", "url": "https://files.pythonhosted.org/packages/0b/a6/56ef11b53b88c29d095c489355f828866c9ba515cefb7c9a39c0e4f6fa0c/zope.fanstatic-0.12.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "c124d233d48f9fac4becb1c0cb461551", "sha256": "fde6726d7ef4d068a05eeffbd128202e2431ef6d34fa2a5ecb0dfc5b0de3a82b" }, "downloads": -1, "filename": "zope.fanstatic-0.9.tar.gz", "has_sig": false, "md5_digest": "c124d233d48f9fac4becb1c0cb461551", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27465, "upload_time": "2011-01-20T12:57:41", "url": "https://files.pythonhosted.org/packages/19/d2/5c650c1c50f0266ee734d86991b28b5963ef03f6cffc745cdd157e67c76a/zope.fanstatic-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "b03a061d056e1eaee1f968b2306d2b95", "sha256": "313c29855f4878e3298c07434da0d211fbb7d740463a456eacc071aad9dcbcf7" }, "downloads": -1, "filename": "zope.fanstatic-0.9.1.tar.gz", "has_sig": false, "md5_digest": "b03a061d056e1eaee1f968b2306d2b95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26983, "upload_time": "2011-01-20T13:59:52", "url": "https://files.pythonhosted.org/packages/35/6a/4fe5070606216e037bf0ef41b5726f2a3d94dadf9ab0b3f4ff08db27266b/zope.fanstatic-0.9.1.tar.gz" } ], "0.9b": [ { "comment_text": "", "digests": { "md5": "55593afe50c04a0f5be7b5056afc78f6", "sha256": "c5505d9e6b89f70ce5ecc0a8afa494a6e7e3537ed4ec8d4383954a737b3efd16" }, "downloads": -1, "filename": "zope.fanstatic-0.9b.tar.gz", "has_sig": false, "md5_digest": "55593afe50c04a0f5be7b5056afc78f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25802, "upload_time": "2011-01-06T16:34:13", "url": "https://files.pythonhosted.org/packages/02/3b/ef7171c2ed3d0bbc88a77c95ab73aa901a81d74a75d557724b1c9a48f895/zope.fanstatic-0.9b.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "feb8af6e6444ccc6767cf25a42933e23", "sha256": "302a659dd48dca9e2e8a4d4e2c8b3b89bb1b8488be050fff6e15459b54282b63" }, "downloads": -1, "filename": "zope.fanstatic-3.0.0.tar.gz", "has_sig": false, "md5_digest": "feb8af6e6444ccc6767cf25a42933e23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29164, "upload_time": "2018-01-16T13:13:53", "url": "https://files.pythonhosted.org/packages/e1/91/5ad3a69e18c3c594b38f352ea08ca51641ef5ac999922ba2cf05a08a9d8b/zope.fanstatic-3.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "feb8af6e6444ccc6767cf25a42933e23", "sha256": "302a659dd48dca9e2e8a4d4e2c8b3b89bb1b8488be050fff6e15459b54282b63" }, "downloads": -1, "filename": "zope.fanstatic-3.0.0.tar.gz", "has_sig": false, "md5_digest": "feb8af6e6444ccc6767cf25a42933e23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29164, "upload_time": "2018-01-16T13:13:53", "url": "https://files.pythonhosted.org/packages/e1/91/5ad3a69e18c3c594b38f352ea08ca51641ef5ac999922ba2cf05a08a9d8b/zope.fanstatic-3.0.0.tar.gz" } ] }