{ "info": { "author": "Zope Foundation and Contributors", "author_email": "zope-dev@zope.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Zope :: 3", "Intended Audience :: Developers", "License :: OSI Approved :: Zope Public License", "Natural Language :: English", "Operating System :: OS Independent", "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 :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet :: WWW/HTTP" ], "description": "The resource library is a Zope 3 extension that is designed to make the\ninclusion of JavaScript, CSS, and other resources easy, cache-friendly,\nand component-friendly.\n\n\n.. contents::\n\n==================\n Resource Library\n==================\n\nThe resource library is designed to make the inclusion of JavaScript, CSS, and\nother resources easy, cache-friendly, and component-friendly. For instance, if\ntwo widgets on a page need the same JavaScript library, the library should be\nonly loaded once, but the widget designers should not have to concern\nthemselves with the presence of other widgets.\n\nImagine that one widget has a copy of a fictional Javascript library. To\nconfigure that library as available use ZCML like this:\n\n >>> zcml(\"\"\"\n ... \n ... \n ... \n ... \n ... \n ...\n ... \n ... \"\"\")\n\nThis is exactly equivalent to a resourceDirectory tag, with no additional\neffect.\n\nLoading Files\n=============\n\nIt is also possible to indicate that one or more Javascript or CSS files should\nbe included (by reference) into the HTML of a page that needs the library.\nThis is the current difference between resourceLibrary and resourceDirectory.\n\n >>> zcml(\"\"\"\n ... \n ... \n ... \n ... \n ... \n ...\n ... \n ... \"\"\")\n\nIf a file is included that the resource library doesn't understand (i.e. it\nisn't Javascript or CSS), an exception will occur.\n\n >>> zcml(\"\"\"\n ... \n ... \n ... \n ... \n ... \n ...\n ... \n ... \"\"\")\n Traceback (most recent call last):\n ...\n ConfigurationError: Resource library doesn't know how to include this file: \"included.bad\".\n File...\n\nUsage\n=====\n\nComponents signal their need for a particular resource library (Javascript or\notherwise) by using a special TAL expression. (The use of replace is not\nmandated, the result may be assigned to a dummy variable, or otherwise\nignored.)\n\n >>> zpt('')\n\nWe'll be using a testbrowser.Browser to simulate a user viewing web pages.\n\n >>> from zope.testbrowser.wsgi import Browser\n >>> browser = Browser()\n >>> browser.addHeader('Authorization', 'Basic mgr:mgrpw')\n >>> browser.handleErrors = False\n\nWhen a page is requested that does not need any resource libraries, the HTML\nwill be untouched.\n\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_1')\n >>> browser.contents\n '......'\n\nWhen a page is requested that uses a component that needs a resource library,\nthe library will be referenced in the rendered page.\n\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_2')\n\nA reference to the JavaScript is inserted into the HTML.\n\n >>> '/@@/my-lib/included.js' in browser.contents\n True\n\nAnd the JavaScript is available from the URL referenced.\n\n >>> browser.open('/@@/my-lib/included.js')\n >>> browser.headers['Content-Type']\n 'application/javascript'\n >>> print(browser.contents.decode('ascii'))\n function be_annoying() {\n alert('Hi there!');\n }\n\nFor inclusion of resources the full base url with namespaces is used.\n\n >>> browser.open('http://localhost/++skin++Basic/zc.resourcelibrary.test_template_2')\n >>> print(browser.contents)\n \n\nA reference to the CSS is also inserted into the HTML.\n\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_2')\n >>> '/@@/my-lib/included.css' in browser.contents\n True\n\nAnd the CSS is available from the URL referenced.\n\n >>> browser.open('/@@/my-lib/included.css')\n >>> browser.headers['Content-Type']\n 'text/css'\n >>> print(browser.contents.decode('ascii'))\n div .border {\n border: 1px silid black;\n }\n\nA reference to an unknown library causes an exception.\n\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_3')\n Traceback (most recent call last):\n ...\n RuntimeError: Unknown resource library: \"does-not-exist\"\n\nLibrary usage may also be signaled programattically. For example, if a page\nwould not otherwise include a resource library...\n\n >>> page = (''\n ... ''\n ... 'This is the body.')\n\n >>> class View(object):\n ... context = getRootFolder()\n ... def doSomething(self):\n ... pass\n\n >>> zpt(page, view=View())\n '......'\n\nIf we then programmatically indicate that a resource library is needed, it will\nbe included.\n\n >>> import zc.resourcelibrary\n >>> class View(object):\n ... context = getRootFolder()\n ... def doSomething(self):\n ... zc.resourcelibrary.need('my-lib')\n\n >>> '/@@/my-lib/included.js' in zpt(page, view=View())\n True\n\nContent-type checking\n=====================\n\nResources should be referenced only from HTML and XML content, other content\ntypes should not be touched by the resource library:\n\n >>> page = (''\n ... ''\n ... '')\n\n >>> '/@@/my-lib/included.js' in zpt(page, content_type='text/html')\n True\n\n >>> '/@@/my-lib/included.js' in zpt(page, content_type='text/xml')\n True\n\n >>> '/@@/my-lib/included.js' in zpt(page, content_type='text/none')\n False\n\nThis also works if the content type contains uppercase characters, as per RfC\n2045 on the syntax of MIME type specifications (we can't test uppercase\ncharacters in the major type yet since the publisher is not completely up to\nthe RfC on that detail yet):\n\n >>> '/@@/my-lib/included.js' in zpt(page, content_type='text/hTMl')\n True\n\n >>> '/@@/my-lib/included.js' in zpt(page, content_type='text/nOne')\n False\n\nParameters to the content type can't fool the check either:\n\n >>> '/@@/my-lib/included.js' in zpt(\n ... page, content_type='text/xml; charset=utf-8')\n True\n\n >>> '/@@/my-lib/included.js' in zpt(\n ... page, content_type='text/none; charset=utf-8')\n False\n\nThe content type is, however, assumed to be a strictly valid MIME type\nspecification, implying that it can't contain any whitespace up to the\nsemicolon signalling the start of parameters, if any (we can't test whitespace\naround the major type as that would already upset the publisher):\n\n >>> '/@@/my-lib/included.js' in zpt(\n ... page, content_type='text/ xml')\n False\n\n >>> '/@@/my-lib/included.js' in zpt(\n ... page, content_type='text/xml ; charset=utf-8')\n False\n\nThe content type may also be None if it was never set, which of course doesn't\ncount as HTML or XML either:\n\n >>> from zc.resourcelibrary import publication\n >>> from io import BytesIO\n >>> request = publication.Request(body_instream=BytesIO(), environ={})\n >>> request.response.setResult(\"This is not HTML text.\")\n >>> b'/@@/my-lib/included.js' in request.response.consumeBody()\n False\n\n\nDependencies\n============\n\nIf a resource library registers a dependency on another library, the dependency\nmust be satisfied or an error will be generated.\n\n >>> zcml(\"\"\"\n ... \n ... \n ...\n ... \n ... \n ... \n ...\n ... \n ... \"\"\")\n Traceback (most recent call last):\n ...\n ConfigurationError:...Resource library \"dependent-but-unsatisfied\" has unsatisfied dependency on \"not-here\"...\n ...\n\nWhen the dependencies are satisfied, the registrations will succeed.\n\n >>> zcml(\"\"\"\n ... \n ... \n ...\n ... \n ... \n ... \n ...\n ... \n ... \n ... \n ...\n ... \n ... \"\"\")\n\nIf one library depends on another and the first library is referenced on a\npage, the second library will also be included in the rendered HTML.\n\n >>> zpt('')\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_4')\n >>> '/@@/dependent/1.js' in browser.contents\n True\n >>> '/@@/dependency/2.css' in browser.contents\n True\n\nOrder matters, espacially for js files, so the dependency should\nappear before the dependent library in the page\n\n >>> print(browser.contents.strip())\n ...dependency/2.css...dependent/1.js...\n\nIt is possible for a resource library to only register a list of dependencies\nand not specify any resources.\n\nWhen such a library is used in a resource_library statement in a template,\nonly its dependencies are referenced in the final rendered page.\n\n >>> zcml(\"\"\"\n ... \n ... \n ...\n ... \n ...\n ... \n ... \"\"\")\n >>> zpt('')\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_7')\n >>> '/@@/my-lib/included.js' in browser.contents\n True\n >>> '/@@/my-lib/included.css' in browser.contents\n True\n >>> '/@@/dependent/1.js' in browser.contents\n True\n >>> '/@@/dependency/2.css' in browser.contents\n True\n >>> '/@@/only_require' in browser.contents\n False\n\n\nError Conditions\n================\n\nErrors are reported if you do something wrong.\n\n >>> zcml(\"\"\"\n ... \n ... \n ...\n ... \n ... \n ... \n ...\n ... \n ... \"\"\")\n Traceback (most recent call last):\n ...\n ConfigurationError: Directory u'...does-not-exist' does not exist\n File...\n\nMultiple Heads\n==============\n\nOn occasion the body of an HTML document may contain the text \"\". In\nthose cases, only the actual head tag should be manipulated. The first\noccurrence of \"\" has the script tag inserted...\n\n >>> browser.open('http://localhost/zc.resourcelibrary.test_template_5')\n >>> print(browser.contents)\n ... \n \n ...\n \n\nFuture Work\n===========\n\n * We want to be able to specify a single file to add to the resource.\n * We may want to be able to override a file in the resource with a different\n file.\n * Currently only one tag is allowed per-library. If multiple tags\n are allowed, should they be merged or have distinct prefixes?\n * Add a test to ensure that files are only included once, and in the proper\n order\n\n\n=========\n CHANGES\n=========\n\n2.1.0 (2018-10-19)\n==================\n\n- Add support for Python 3.7.\n\n\n2.0.0 (2017-05-23)\n==================\n\n\n- Add support for Python 3.4, 3.5, 3.6 and PyPy.\n- Drop test dependency on ``zope.app.testing`` and\n ``zope.app.zcmlfiles``, among others.\n- Make zope.app.publication dependency optional.\n\n\n\n1.3.4 (2012-01-20)\n==================\n\n- Register adapters with getSiteManager rather than getGlobalSiteManager. This\n allows registering resource libraries in non-global sites. For detais see:\n\n - https://mail.zope.org/pipermail/zope-dev/2010-March/039657.html\n - http://docs.pylonsproject.org/projects/pyramid_zcml/en/latest/narr.html#using-broken-zcml-directives\n\n- Raise NotImplementedError if we find that a second ZCML declaration would\n change the global library_info dict in a way that may (depending on ZCML\n ordering) break applications at runtime. These errors were pretty hard to\n debug.\n\n- Remove unneeded test dependencies on ``zope.app.authentication`` and\n ``zope.app.securitypolicy``.\n\n- Remove dependency on ``zope.app.pagetemplate``.\n\n1.3.2 (2010-08-16)\n==================\n\n- Response._addDependencies will only include a ResourceLibrary in the\n list of dependencies if the ResourceLibrary actually has included\n resources.\n\n This makes directives that simply declare dependencies on other\n libraries work again.\n\n- Add missing depedency on ``zope.app.pagetemplate``, clean up unused\n imports and whitespace.\n\n1.3.1 (2010-03-24)\n==================\n\n- Resource libraries that are required during a retried request are now\n correctly registered and injected to the HTML.\n\n- Import hooks functionality from zope.component after it was moved there from\n zope.site. This lifts the dependency on zope.site.\n\n- Removed an unused ISite import and thereby, the undeclared dependency on\n zope.location.\n\n\n1.3.0 (2009-10-08)\n==================\n\n- Use ``zope.browserresource`` instead of ``zope.app.publisher``, removing\n a dependency on latter.\n\n- Look up the \"resources view\" via queryMultiAdapter instead of looking into\n the adapter registry.\n\n- Moved the dependency on zope.site to the test dependencies.\n\n1.2.0 (2009-06-04)\n==================\n\n- Use ``zope.site`` instead of ``zope.app.component``. Removes direct\n dependency on ``zope.app.component``.\n\n1.1.0 (2009-05-05)\n==================\n\nNew features:\n\n- An attempt to generate resource URLs using the \"resources view\" (@@)\n is now made; if unsuccesful, we fall back to the previous method of\n crafting the URL by hand from the site url. This ensures that the\n resource library respects the existing plugging points for resource\n publishing (see ``zope.app.publisher.browser.resources``).\n\n- You can now explicitly specify where resource links should be\n inserted using the special marker comment ''.\n\n1.0.2 (2009-01-27)\n==================\n\n- Remove zope.app.zapi from dependencies, substituting\n its uses with direct imports.\n\n- Use zope-dev at zope.org mailing list address instead of\n zope3-dev at zope.org as the latter one is retired.\n\n- Change \"cheeseshop\" to \"pypi\" in the package homepage.\n\n1.0.1 (2008-03-07)\n==================\n\nBugs fixed:\n\n- added the behavior from the standard Zope 3 response to guess that a body\n that is not HTML without an explicit mimetype should have a\n 'text/plain' mimetype. This means that, for instance, redirects with\n a body of '' and no explicit content type will no longer cause an\n exception in the resourcelibrary response code.\n\n1.0.0 (2008-02-17)\n==================\n\nNew features:\n\n- You can now provide an alternative \"directory-resource\"\n factory. This facilitates implementation of dynamic resources.\n\n\nBugs fixed:\n\n- Updated the functional-testing zcml file to get rid of a deprecation\n warning.\n\n\n0.8.2 (2007-12-07)\n==================\n\n- bug fix: when checking content type, take into account that it may be None\n\n0.8.1 (2007-12-05)\n==================\n\n- changed MIME type handling to be more restrictive about whitespace to\n conform to RfC 2045\n\n0.8 (2007-12-04)\n================\n\n- fixed the check for HTML and XML content to allow content type parameters\n\n0.6.1 (2007-11-03)\n==================\n\n- Update package meta-data.\n\n- Fixed package dependencies.\n\n- Merged functional and unit tests.\n\n0.6.0 (2006-09-22)\n==================\n\n???\n\n0.5.2 (2006-06-15)\n==================\n\n- Add more package meta-data.\n\n0.5.1 (2006-06-06)\n==================\n\n- Update package code to work with newer versions of other packages.\n\n0.5.0 (2006-04-24)\n==================\n\n- Initial release.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/zopefoundation/zc.resourcelibrary", "keywords": "zope3 resource javascript css inclusion", "license": "ZPL 2.1", "maintainer": "", "maintainer_email": "", "name": "zc.resourcelibrary", "package_url": "https://pypi.org/project/zc.resourcelibrary/", "platform": "", "project_url": "https://pypi.org/project/zc.resourcelibrary/", "project_urls": { "Homepage": "http://github.com/zopefoundation/zc.resourcelibrary" }, "release_url": "https://pypi.org/project/zc.resourcelibrary/2.1.0/", "requires_dist": [ "setuptools", "zope.browserpage", "zope.browserresource", "zope.component", "zope.configuration", "zope.interface", "zope.publisher", "zope.security", "zope.site", "zope.tales", "zope.traversing", "webtest; extra == 'test'", "zope.app.appsetup (>=4.0.0); extra == 'test'", "zope.app.basicskin (>=4.0.0); extra == 'test'", "zope.app.http (>=4.0.1); extra == 'test'", "zope.app.publication (>=4.2.1); extra == 'test'", "zope.app.security (>=4.0.0); extra == 'test'", "zope.app.wsgi (>=4.1.0); extra == 'test'", "zope.pagetemplate; extra == 'test'", "zope.principalregistry; extra == 'test'", "zope.securitypolicy; extra == 'test'", "zope.testbrowser; extra == 'test'", "zope.testing; extra == 'test'", "zope.testrunner; extra == 'test'" ], "requires_python": "", "summary": "Post-rendering Resource Inclusion", "version": "2.1.0" }, "last_serial": 4394383, "releases": { "0.6": [ { "comment_text": "", "digests": { "md5": "792d2a052f66c9570996c7a91964dd6c", "sha256": "8e034cba4f6df1a3fbfbb5af8b9729c9ab9ad959870a22937efea8e2bdccad64" }, "downloads": -1, "filename": "zc.resourcelibrary-0.6-py2.4.egg", "has_sig": false, "md5_digest": "792d2a052f66c9570996c7a91964dd6c", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 21955, "upload_time": "2006-09-22T16:54:23", "url": "https://files.pythonhosted.org/packages/ac/15/a33a6bd1044a8a067417325b56b23d048a5cc924113955bf9d5091007e69/zc.resourcelibrary-0.6-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "c19911526ec75fd50b48b06aeb135b16", "sha256": "c23566e35c983a2b680946bb3c779f7bcebebfefbc6cfc4626832d1ec0d7af63" }, "downloads": -1, "filename": "zc.resourcelibrary-0.6.tar.gz", "has_sig": false, "md5_digest": "c19911526ec75fd50b48b06aeb135b16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9454, "upload_time": "2006-09-22T16:54:15", "url": "https://files.pythonhosted.org/packages/6f/ad/884fbef9a0a4121a0809b95ea1be0c6d3b581c2e60795573450af5c53f1f/zc.resourcelibrary-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "357c46f8146d95697e31462501b7c020", "sha256": "d6cc94c7627d70ad9d1ac7b740a45a5c55964e0912f4e07649396c41b8e84c0d" }, "downloads": -1, "filename": "zc.resourcelibrary-0.6.1.tar.gz", "has_sig": false, "md5_digest": "357c46f8146d95697e31462501b7c020", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16144, "upload_time": "2007-11-05T03:19:42", "url": "https://files.pythonhosted.org/packages/a7/4c/1a5768a67330c6e37623fbfd6797e2095315a7ddf44442ab8b4a6b7996c2/zc.resourcelibrary-0.6.1.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "de2b9f7aed53be52ab9e4ceef04b68d0", "sha256": "b91c931487828d6b0a8efb2ea3bc9251c04c58ffc208bbabe3b8a53b704d6700" }, "downloads": -1, "filename": "zc.resourcelibrary-0.8.1.tar.gz", "has_sig": true, "md5_digest": "de2b9f7aed53be52ab9e4ceef04b68d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18205, "upload_time": "2007-12-05T21:52:15", "url": "https://files.pythonhosted.org/packages/31/53/54faf7a630c1a525787dbe7d427445e3c851ea45a9678ca770c347c96d7b/zc.resourcelibrary-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "7259c2ae34e4b2cb49958843c4ebd126", "sha256": "3f890721c6dfb0573adec95f2648d0799232ed702fde060e7eb76af303ee1f73" }, "downloads": -1, "filename": "zc.resourcelibrary-0.8.2.tar.gz", "has_sig": true, "md5_digest": "7259c2ae34e4b2cb49958843c4ebd126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18708, "upload_time": "2007-12-07T10:48:17", "url": "https://files.pythonhosted.org/packages/ba/9d/197d792131e364e7c884445f3895e6f1ac02e5f8809adfc6d1aded9232c5/zc.resourcelibrary-0.8.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "695b8e3285b158aaef56c991cdb904f6", "sha256": "f5ebb372795244fea43fa0f7e707ee9819dbb491e72bc52246b3f2da677325e8" }, "downloads": -1, "filename": "zc.resourcelibrary-1.0.0.tar.gz", "has_sig": false, "md5_digest": "695b8e3285b158aaef56c991cdb904f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18591, "upload_time": "2008-02-17T23:14:21", "url": "https://files.pythonhosted.org/packages/3f/c1/abddcf58047ec651a9d65ac667e3382cf72ecc30b8df307de48a340cae97/zc.resourcelibrary-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a633519a4696b849d856b725d4ce1bca", "sha256": "5f6d1b8a1bf5fb1e7dea6cb19ab3bb8c54dc2f0b4f9dee6ebb44ccafccf40eee" }, "downloads": -1, "filename": "zc.resourcelibrary-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a633519a4696b849d856b725d4ce1bca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21093, "upload_time": "2008-03-07T16:23:54", "url": "https://files.pythonhosted.org/packages/93/47/ab82dc22107b27070c1790b50752cd7f108ef3ee37da03a28d9cba7229fd/zc.resourcelibrary-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9b193184d633c269645575c0207afc45", "sha256": "3b16126bce4950f70a16d69733f36f79c60684303edc784c1c3cbb875de1ae15" }, "downloads": -1, "filename": "zc.resourcelibrary-1.0.2.tar.gz", "has_sig": false, "md5_digest": "9b193184d633c269645575c0207afc45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17876, "upload_time": "2009-01-27T10:04:01", "url": "https://files.pythonhosted.org/packages/21/39/4238d2081112804bacde6f7dad18c68c74d28c868cb391c46f0faafcce0f/zc.resourcelibrary-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "c7f922f0c09bf3ccf925f7371420f1d7", "sha256": "0a489516e9cc3cd6bd8321362309eb751741a84624be909c12bdfbe7087a4138" }, "downloads": -1, "filename": "zc.resourcelibrary-1.1.0.tar.gz", "has_sig": false, "md5_digest": "c7f922f0c09bf3ccf925f7371420f1d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23179, "upload_time": "2009-05-05T15:05:56", "url": "https://files.pythonhosted.org/packages/39/58/3eb2f5e09018607ea3fbf718144cf3bb43a3a97f18d11abe16225a495d5a/zc.resourcelibrary-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "063a00069fd8235f5910c9435357638f", "sha256": "86946f33d380b6bae4e55c97e7195f268ee1213d4ff631ffc01b8a2537c717ae" }, "downloads": -1, "filename": "zc.resourcelibrary-1.2.0.tar.gz", "has_sig": false, "md5_digest": "063a00069fd8235f5910c9435357638f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22381, "upload_time": "2009-06-04T08:34:47", "url": "https://files.pythonhosted.org/packages/a9/4d/cb986e4a92535bb0ade193520289022a41188bcce5a13ddb50c5a3d79cf9/zc.resourcelibrary-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d517a8df6504a3db9e5a4007a8aeacf1", "sha256": "6c8d9262566b6cd995cac950dd6fd6c703fd6cd58f895b9f4457a75ea081563a" }, "downloads": -1, "filename": "zc.resourcelibrary-1.2.1.tar.gz", "has_sig": false, "md5_digest": "d517a8df6504a3db9e5a4007a8aeacf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24085, "upload_time": "2010-08-16T22:28:13", "url": "https://files.pythonhosted.org/packages/cc/fc/c5a130c18a06add53e001ff6af2fc9b638f2794bc72a559a397587b702a8/zc.resourcelibrary-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "c89f7ef8f6499dac2d5a55804df865a5", "sha256": "507860ce112086b0d0f6b2701b305111d5aea461417056e386039ec95f3fa3e3" }, "downloads": -1, "filename": "zc.resourcelibrary-1.3.0.tar.gz", "has_sig": true, "md5_digest": "c89f7ef8f6499dac2d5a55804df865a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18831, "upload_time": "2009-10-08T14:07:22", "url": "https://files.pythonhosted.org/packages/59/0a/57e596e375c6589f947e2253bbee33ab6e4caad09b7f3de2047bbf6d538a/zc.resourcelibrary-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "6f419f8c6cf8c864700f195e734d8f1f", "sha256": "02d16604136db46c55a02553531b04bda8fcd7194076af16ebff081e1bbb6268" }, "downloads": -1, "filename": "zc.resourcelibrary-1.3.1.tar.gz", "has_sig": false, "md5_digest": "6f419f8c6cf8c864700f195e734d8f1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23762, "upload_time": "2010-03-24T10:35:11", "url": "https://files.pythonhosted.org/packages/b1/32/d353a0bc709914d67d3fb6160a727ccc99ad6c379b9d44097ce7e4859598/zc.resourcelibrary-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "1c27e2383c2b7f869d964f7fbb7e6e6f", "sha256": "a6d14aeae46c992a3598559bae955ce1e29e8558f81438d52f88ddf5a6dff885" }, "downloads": -1, "filename": "zc.resourcelibrary-1.3.2.tar.gz", "has_sig": false, "md5_digest": "1c27e2383c2b7f869d964f7fbb7e6e6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25970, "upload_time": "2010-08-16T22:18:23", "url": "https://files.pythonhosted.org/packages/19/70/7e55149274af4b89157db35891c7e2712959b324d3871e0c9fa7d3e98aff/zc.resourcelibrary-1.3.2.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "bebe49f3e930f896a8ea75531bf3fae8", "sha256": "c32ec73ed34e390f540cd3f4392c464811990b36b8b483c21ac3922b37514675" }, "downloads": -1, "filename": "zc.resourcelibrary-1.3.4.tar.gz", "has_sig": false, "md5_digest": "bebe49f3e930f896a8ea75531bf3fae8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26741, "upload_time": "2012-01-20T21:30:23", "url": "https://files.pythonhosted.org/packages/cc/b1/77b27a6903012748b55ec7f033070c36756952c14e1cf68e9425d7ee42cc/zc.resourcelibrary-1.3.4.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "5986b00a9107f6f034ecb37b9abd9e4f", "sha256": "93e8a74ca69c0efbb1476b124fb7be02b6fce883e901ca4d4e29708143241f05" }, "downloads": -1, "filename": "zc.resourcelibrary-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5986b00a9107f6f034ecb37b9abd9e4f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 36434, "upload_time": "2017-05-23T13:04:26", "url": "https://files.pythonhosted.org/packages/e2/a2/525713bd101fff1400bb32828f5c50ca7798943b3ade53da62f651c2b5c2/zc.resourcelibrary-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "006d1e6bfb223dde8b605d24e34f311c", "sha256": "22f76b34058e1aa5b97d03f795434b14e77a617a53798c7c4e0c648720a67f97" }, "downloads": -1, "filename": "zc.resourcelibrary-2.0.0.tar.gz", "has_sig": false, "md5_digest": "006d1e6bfb223dde8b605d24e34f311c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29788, "upload_time": "2017-05-23T13:04:28", "url": "https://files.pythonhosted.org/packages/73/b8/9507e633d0a141c6a2fc65a7f0cb5ed3318dcc36dad909a1dbd4d18addf3/zc.resourcelibrary-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "2f178dd9e2d3fd52d805e507cad49646", "sha256": "eec3cbcd15590d763dcf5a207941251598b8c65bf4a33c2521e18cc16741bec8" }, "downloads": -1, "filename": "zc.resourcelibrary-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f178dd9e2d3fd52d805e507cad49646", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30867, "upload_time": "2018-10-19T14:27:53", "url": "https://files.pythonhosted.org/packages/e2/d5/a18c0250ae1e39a82e97eb69b566acfb5a62d077d61e5f603ba735a02cb7/zc.resourcelibrary-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4228129c7e4439dbe62766ca0c9eccfb", "sha256": "08726465303f6da9adea4e6922435e2a25046524cb2bfae345bd19692a2d9ee6" }, "downloads": -1, "filename": "zc.resourcelibrary-2.1.0.tar.gz", "has_sig": false, "md5_digest": "4228129c7e4439dbe62766ca0c9eccfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29774, "upload_time": "2018-10-19T14:27:55", "url": "https://files.pythonhosted.org/packages/e4/d8/aedc308fde913cd72886ef5511e7d32df58077ee4563251306bf7b112be7/zc.resourcelibrary-2.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2f178dd9e2d3fd52d805e507cad49646", "sha256": "eec3cbcd15590d763dcf5a207941251598b8c65bf4a33c2521e18cc16741bec8" }, "downloads": -1, "filename": "zc.resourcelibrary-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2f178dd9e2d3fd52d805e507cad49646", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30867, "upload_time": "2018-10-19T14:27:53", "url": "https://files.pythonhosted.org/packages/e2/d5/a18c0250ae1e39a82e97eb69b566acfb5a62d077d61e5f603ba735a02cb7/zc.resourcelibrary-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4228129c7e4439dbe62766ca0c9eccfb", "sha256": "08726465303f6da9adea4e6922435e2a25046524cb2bfae345bd19692a2d9ee6" }, "downloads": -1, "filename": "zc.resourcelibrary-2.1.0.tar.gz", "has_sig": false, "md5_digest": "4228129c7e4439dbe62766ca0c9eccfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29774, "upload_time": "2018-10-19T14:27:55", "url": "https://files.pythonhosted.org/packages/e4/d8/aedc308fde913cd72886ef5511e7d32df58077ee4563251306bf7b112be7/zc.resourcelibrary-2.1.0.tar.gz" } ] }