{ "info": { "author": "Plone Foundation", "author_email": "plone-developers@lists.sourceforge.net", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 5.2", "Framework :: Zope2", "Framework :: Zope :: 4", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Overview\n========\n\nplone.subrequest provides a mechanism for issuing subrequests under Zope2.\n\nInstallation\n============\n\nPlone 4\n-------\n\nAn entry point is provided so no special installation is required past adding\n`plone.subrequest` to your instance's `eggs`.\n\nZope 2.12 without Plone\n-----------------------\n\nLoad this package's ZCML in the usual manner.\n\nZope 2.10\n---------\n\nYou must install ZPublisherEventsBackport_ to use this package with Zope 2.10\nand load both package's ZCML. The tests require Zope 2.12 / Python 2.6 so will\nnot run.\n\n.. _ZPublisherEventsBackport: http://pypi.python.org/pypi/ZPublisherEventsBackport\n\n\nUsage\n=====\n\nBasic usage\n-----------\n\n.. test-case: absolute\n\nCall ``subrequest(url)``, it returns a response object.\n\n >>> from plone.subrequest import subrequest\n >>> response = subrequest('/folder1/@@url')\n >>> response.getBody()\n b'http://nohost/folder1'\n\n.. test-case: response-write\n\n``response.getBody()`` also works for code that calls ``response.write(data)``.\nThis one returns a text/non-byte value.\n\n >>> response = subrequest('/@@response-write')\n >>> response.getBody()\n 'Some data.\\nSome more data.\\n'\n\nBut in this case ``response.getBody()`` may only be called once.\n\n >>> response.getBody()\n Traceback (most recent call last):\n ...\n ValueError: I/O operation on closed file\n\nAccessing the response body as a file\n-------------------------------------\n\n.. test-case: stdout\n\nSome code may call ``response.write(data)``.\n\n >>> response = subrequest('/@@response-write')\n\nIn which case you may access response.stdout as file.\n\n >>> response.stdout.seek(0, 0) or 0 # Py2 returns None, Py3 returns new position\n 0\n >>> list(response.stdout)\n ['Some data.\\n', 'Some more data.\\n']\n\nYou can test whether a file was returned using ``response._wrote``.\n\n >>> response._wrote\n 1\n\nWhen you're done, close the file:\n\n >>> response.stdout.close()\n\n.. test-case: response-outputBody\n\nUse ``response.outputBody()`` to ensure the body may be accessed as a file.\n\n >>> from plone.subrequest import subrequest\n >>> response = subrequest('/folder1/@@url')\n >>> response._wrote\n >>> response.outputBody()\n >>> response._wrote\n 1\n >>> response.stdout.seek(0, 0) or 0 # Py2 returns None, Py3 returns new position\n 0\n >>> list(response.stdout)\n ['http://nohost/folder1']\n\nRelative paths\n--------------\n\n.. test-case: relative\n\nRelative paths are resolved relative to the parent request's location:\n\n >>> from plone.subrequest.tests import traverse\n >>> request = traverse('/folder1/@@test')\n >>> response = subrequest('folder1A/@@url')\n >>> response.getBody()\n b'http://nohost/folder1/folder1A'\n\n.. test-case: relative-default-view\n\nThis takes account of default view's url.\n\n >>> request = traverse('/folder1')\n >>> request['URL'] == 'http://nohost/folder1/@@test'\n True\n >>> response = subrequest('folder1A/@@url')\n >>> response.getBody()\n b'http://nohost/folder1/folder1A'\n\nVirtual hosting\n---------------\n\n.. test-case: virtual-hosting\n\nWhen virtual hosting is used, absolute paths are traversed from the virtual host root.\n\n >>> request = traverse('/VirtualHostBase/http/nohost:80/folder1/VirtualHostRoot/')\n >>> response = subrequest('/folder1A/@@url')\n >>> response.getBody()\n b'http://nohost/folder1A'\n\nSpecifying the root\n-------------------\n\n.. test-case: specify-root\n\nYou may also set the root object explicitly\n\n >>> app = layer['app']\n >>> response = subrequest('/folder1A/@@url', root=app.folder1)\n >>> response.getBody()\n b'http://nohost/folder1/folder1A'\n\nError responses\n---------------\n\n.. test-case: not-found\n\nSubrequests may not be found.\n\n >>> response = subrequest('/not-found')\n >>> response.status\n 404\n\n.. test-case: error-response\n\nOr might raise an error.\n\n >>> response = subrequest('/@@error')\n >>> response.status\n 500\n\nOr might raise an error rendered by a custom error view.\n\n >>> response = subrequest('/@@custom-error')\n >>> response.status\n 500\n >>> response.body\n b'Custom exception occurred: A custom error'\n\n.. test-case: status-ok\n\nSo check for the expected status.\n\n >>> response = subrequest('/')\n >>> response.status == 200\n True\n\nHandling subrequests\n--------------------\n\nThe parent request is set as PARENT_REQUEST onto subrequests.\n\nSubrequests also provide the ``plone.subrequest.interfaces.ISubRequest``\nmarker interface.\n\n\nChangelog\n=========\n\n.. You should *NOT* be adding new change log entries to this file.\n You should create a file in the news directory instead.\n For helpful instructions, please see:\n https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n\n.. towncrier release notes start\n\n1.9.1 (2019-04-29)\n------------------\n\nBug fixes:\n\n\n- fix regression bug which was breaking in Python 2.7 when tiles contain non-ascii characters [MrTango] (#22)\n\n\n1.9.0 (2018-12-11)\n------------------\n\nBreaking changes:\n\n- Remove five.globalrequest dependency.\n It has been deprecated upstream (on Zope 4).\n [gforcada]\n\n\n1.8.6 (2018-09-23)\n------------------\n\nNew features:\n\n- Fix importsi without ZServer\n [pbauer]\n\nBug fixes:\n\n- More Python 3 compatibility.\n [ale-rt, thet]\n\n- Make test dependency on Archetypes optional.\n [davisagli]\n\n\n1.8.5 (2018-01-30)\n------------------\n\nBug fixes:\n\n- Add Python 2 / 3 compatibility\n [pbauer]\n\n\n1.8.4 (2017-09-06)\n------------------\n\nNew features:\n\n- Add support for Zope exception views when explicit exception handler\n is not defined\n [datakurre]\n\nBug fixes:\n\n- Fix issue where the example unauthorized_exception_handler did\n not properly set response status code\n [datakurre]\n\n\n1.8.3 (2017-08-30)\n------------------\n\nBug fixes:\n\n- Reverted \"Remove vurl-parts from path\", which resulted in broken p.a.mosaic pages\n [thet]\n\n\n1.8.2 (2017-07-20)\n------------------\n\nBug fixes:\n\n- Remove vurl-parts from path\n [awello]\n\n\n1.8.1 (2017-06-28)\n------------------\n\nBug fixes:\n\n- Remove unittest2 dependency\n [kakshay21]\n\n\n1.8 (2016-11-01)\n----------------\n\nNew features:\n\n- Provide an exception-handler for rewriting Unauthorized to 401's.\n [jensens]\n\n\n1.7.0 (2016-05-04)\n------------------\n\nNew:\n\n- Allow to pass a custom exception handler for the response.\n [jensens]\n\nFixes:\n\n- When a subrequest modified the DB (or prior to the subrequest the main request),\n the oids annotated to the requests were doubled with each subsequent subrequest.\n This resulted in out-of-memory errors when using lots of subrequests,\n such as it happens on Mosaic based sites with a certain amount of tiles.\n Fixed by only adding new oids, not already known by parent request.\n [jensens]\n\n- Housekeeping: isort imports, autopep8, minor manual cleanup (no zope.app. imports).\n [jensens]\n\n\n1.6.11 (2015-09-07)\n-------------------\n\n- propagate IDisableCSRFProtection interface on subrequest to parent request object\n [vangheem]\n\n\n1.6.10 (2015-08-14)\n-------------------\n\n- propagate registered safe writes from plone.protect to parent request object.\n [vangheem]\n\n\n1.6.9 (2015-03-21)\n------------------\n\n- Workaround for broken test because of missing dependency declaration in\n upstream package, see https://github.com/plone/plone.app.blob/issues/19\n for details.\n [jensens]\n\n- Housekeeping and code cleanup (pep8, et al).\n [jensens]\n\n- Fix issue where new cookies from the main request.response are not passed to\n subrequests.\n [datakurre]\n\n- normalise request path_info so that string indexing works properly.\n [gweiss]\n\n\n1.6.8 (2014-03-04)\n------------------\n- Handle sub-requests which contain a doubled // in the path.\n [gweis]\n\n1.6.7 (2012-10-22)\n------------------\n\n- Ensure correct handling of bare virtual hosting urls.\n [elro]\n\n1.6.6 (2012-06-29)\n------------------\n\n- Log errors that occur handling a subrequest to help debug plone.app.theming\n errors including content from a different url\n [anthonygerrard]\n\n1.6.5 (2012-04-15)\n------------------\n\n- Ensure parent url is a string and not unicode.\n [davisagli]\n\n1.6.4 - 2012-03-22\n------------------\n\n- Fix problems with double encoding some unicode charse by not copying too\n many ``other`` variables.\n [elro]\n\n1.6.3 - 2012-02-12\n------------------\n\n- Copy ``other`` request variables such as ``LANGUAGE`` to subrequest.\n [elro]\n\n1.6.2 - 2011-07-04\n------------------\n\n- Handle spaces in default documents. http://dev.plone.org/plone/ticket/12278\n\n1.6.1 - 2011-07-04\n------------------\n\n- Move tests to package directory to making testing possible when installed\n normally.\n\n1.6 - 2011-06-06\n----------------\n\n- Ensure url is a string and not unicode.\n [elro]\n\n1.6b2 - 2011-05-20\n------------------\n\n- Set PARENT_REQUEST and add ISubRequest interface to subrequests.\n [elro]\n\n1.6b1 - 2011-02-11\n------------------\n\n- Handle IStreamIterator.\n [elro]\n\n- Simplify API so ``response.getBody()`` always works.\n [elro]\n\n1.5 - 2010-11-26\n----------------\n\n- Merge cookies from subrequest response into parent response.\n [awello]\n\n1.4 - 2010-11-10\n----------------\n\n- First processInput, then traverse (fixes #11254)\n [awello]\n\n1.3 - 2010-08-24\n----------------\n\n- Fixed bug with virtual hosting and quoted paths.\n [elro]\n\n1.2 - 2010-08-16\n----------------\n\n- Restore zope.component site after subrequest.\n [elro]\n\n1.1 - 2010-08-14\n----------------\n\n- Virtual hosting, relative url and error response support.\n [elro]\n\n1.0 - 2010-07-28\n----------------\n\n- Initial release.\n [elro]\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/plone.subrequest/", "keywords": "plone", "license": "GPL version 2", "maintainer": "", "maintainer_email": "", "name": "plone.subrequest", "package_url": "https://pypi.org/project/plone.subrequest/", "platform": "Any", "project_url": "https://pypi.org/project/plone.subrequest/", "project_urls": { "Homepage": "https://pypi.org/project/plone.subrequest/" }, "release_url": "https://pypi.org/project/plone.subrequest/1.9.1/", "requires_dist": [ "setuptools", "six", "zope.globalrequest", "plone.app.blob ; extra == 'archetypes'", "Products.MimetypesRegistry ; extra == 'archetypes'", "five.localsitemanager ; extra == 'test'", "manuel ; extra == 'test'", "plone.testing[z2] ; extra == 'test'" ], "requires_python": "", "summary": "Subrequests for Zope2", "version": "1.9.1" }, "last_serial": 5205628, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "7b71a0ac36e9c3e8f6ce6e8d86c0a47a", "sha256": "3e98e21447bada833999c56fd1ae96917f3594c0ebbd6ddeb36053b300f853a0" }, "downloads": -1, "filename": "plone.subrequest-1.0.tar.gz", "has_sig": false, "md5_digest": "7b71a0ac36e9c3e8f6ce6e8d86c0a47a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8977, "upload_time": "2010-07-28T17:49:26", "url": "https://files.pythonhosted.org/packages/cc/ef/c51e18a10e01714f4821e3a1fa86426648bd567695fa1f1a3b28a579671d/plone.subrequest-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "5d90398216bc07b5e918b8ff06058f71", "sha256": "2f09ae3e7a32a4bc6fa3f863da404e6b31262896e4468e17d2acab811f2976e0" }, "downloads": -1, "filename": "plone.subrequest-1.1.tar.gz", "has_sig": false, "md5_digest": "5d90398216bc07b5e918b8ff06058f71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14384, "upload_time": "2010-08-14T19:56:45", "url": "https://files.pythonhosted.org/packages/99/35/5abc2d04715f1806c45ae3d5b170060f235fe34991bb63f226f8a70e6c38/plone.subrequest-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "9b3a8c617035bb43d9b14ef5044ab7fe", "sha256": "932d922d2c01b44f09f5a7ac63831bf42c6473dcd7372b6e19b1d191663942f0" }, "downloads": -1, "filename": "plone.subrequest-1.2.tar.gz", "has_sig": false, "md5_digest": "9b3a8c617035bb43d9b14ef5044ab7fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14652, "upload_time": "2010-08-16T19:16:34", "url": "https://files.pythonhosted.org/packages/20/b5/28e781773923e0b1b0c88e0ae77ec6bba297db193d00fe97f9c9890a7e3b/plone.subrequest-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "f86c50f2afce6aaa627c584aeb8fe3f4", "sha256": "5256711f84d02d15f117ad436b108c48c95fb3855ed99734d9a73821f9e99d5f" }, "downloads": -1, "filename": "plone.subrequest-1.3.tar.gz", "has_sig": false, "md5_digest": "f86c50f2afce6aaa627c584aeb8fe3f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14839, "upload_time": "2010-08-24T17:21:47", "url": "https://files.pythonhosted.org/packages/45/a3/21ee2e9b72b33351c459c434033d032765f1c4a5c3e0942c54e77a06ac70/plone.subrequest-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "4f62a42b795898eb27d92dbd60f4354d", "sha256": "99fedee81211fcd5db3d86137787747793d9ec6a077480b359e3eedec3f444b7" }, "downloads": -1, "filename": "plone.subrequest-1.4.tar.gz", "has_sig": false, "md5_digest": "4f62a42b795898eb27d92dbd60f4354d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14436, "upload_time": "2010-11-10T15:50:09", "url": "https://files.pythonhosted.org/packages/31/b0/dfe7db4f231fe20e7d569cd4718464f0a173164305444a4bb2ae8fcc3bc4/plone.subrequest-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "2644d7e30a0789def1fbdc3d5ddf1e21", "sha256": "4e82666b8735a50f6180f8c06f5039675a5518e8d7576aa31fb524404008cb34" }, "downloads": -1, "filename": "plone.subrequest-1.5.tar.gz", "has_sig": false, "md5_digest": "2644d7e30a0789def1fbdc3d5ddf1e21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14720, "upload_time": "2010-11-26T19:05:31", "url": "https://files.pythonhosted.org/packages/b4/ff/e6909d21ed4e3ca2edc9562feacaf6c51c5f39dca2e0ea1d77998d35ad39/plone.subrequest-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "fc890a61935604987cf53d516c7ee5d2", "sha256": "abe86a1beb205becbd26bc5a82774ddee96f58ce61c83ab59681a79f7a21d992" }, "downloads": -1, "filename": "plone.subrequest-1.6.zip", "has_sig": false, "md5_digest": "fc890a61935604987cf53d516c7ee5d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24859, "upload_time": "2011-06-06T16:52:08", "url": "https://files.pythonhosted.org/packages/d5/e5/1702a1b4a2f728b4ecbbbd9a5a40d765a36eda2d116791651229ee62eed0/plone.subrequest-1.6.zip" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "a550ae66759a4e967bfb70a13c61b5e8", "sha256": "3b60212e042247056b410043efd75e2cf2ee56109e22fa9c9c88bd59780a6ad3" }, "downloads": -1, "filename": "plone.subrequest-1.6.1.zip", "has_sig": false, "md5_digest": "a550ae66759a4e967bfb70a13c61b5e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25427, "upload_time": "2011-07-04T17:13:15", "url": "https://files.pythonhosted.org/packages/a5/a0/5ee76ada2ff3cc956b89ca6dc5b218f6c9299e2ba76b1ee5640a1ffaeefe/plone.subrequest-1.6.1.zip" } ], "1.6.10": [ { "comment_text": "", "digests": { "md5": "5ab503bbbf58fe1bde3f062921835d60", "sha256": "201b83b8cd08d32d534d9fe448ee9da3e98496ac847896c757392fa29f39a730" }, "downloads": -1, "filename": "plone.subrequest-1.6.10.tar.gz", "has_sig": false, "md5_digest": "5ab503bbbf58fe1bde3f062921835d60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20277, "upload_time": "2015-08-14T20:30:18", "url": "https://files.pythonhosted.org/packages/a2/6b/f5644e33620e164a71c1859fc09ea6255664907d18f388e9bd5b21dc01bf/plone.subrequest-1.6.10.tar.gz" } ], "1.6.11": [ { "comment_text": "", "digests": { "md5": "6e654dd266b5abdd62bfd0a86dd9ff8e", "sha256": "861b5797a5a31a374e997b5cf9012dde1355e084acd81004ad445afb8bda3314" }, "downloads": -1, "filename": "plone.subrequest-1.6.11.tar.gz", "has_sig": false, "md5_digest": "6e654dd266b5abdd62bfd0a86dd9ff8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21492, "upload_time": "2015-09-07T15:19:47", "url": "https://files.pythonhosted.org/packages/3f/01/f4d81d446789087223e3b119d76a24eb8ed5b3bcdfb22ed16da2fc804983/plone.subrequest-1.6.11.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "8a421a1075fbb2efb00fd76d11507111", "sha256": "de5cc5e72ad5f0e6707b1e368170dde770ae8c8dbbae333b3157196040723840" }, "downloads": -1, "filename": "plone.subrequest-1.6.2.zip", "has_sig": false, "md5_digest": "8a421a1075fbb2efb00fd76d11507111", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25571, "upload_time": "2011-10-13T19:32:49", "url": "https://files.pythonhosted.org/packages/9d/24/a03e753b5f565eaeef86172307051c1a19d6b064407f63a7a5f20c703371/plone.subrequest-1.6.2.zip" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "fe8dae9ba3c9df5a607043568e088fb0", "sha256": "e5f1acfcdf12c62d31aa0ff43f5894b34ee593c2ef5d81168847ce2dca313809" }, "downloads": -1, "filename": "plone.subrequest-1.6.3.zip", "has_sig": false, "md5_digest": "fe8dae9ba3c9df5a607043568e088fb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26150, "upload_time": "2012-02-12T23:41:56", "url": "https://files.pythonhosted.org/packages/b1/f3/f3da2b7faf97881922d95c10a4babdb4b49d359978a440db4c73505cd6a5/plone.subrequest-1.6.3.zip" } ], "1.6.4": [ { "comment_text": "", "digests": { "md5": "c6af9556ffbfb2ef6bc47be60fc0cb4e", "sha256": "e535eaba218f6731eb0f92a1b935929aa70c873919dc4dcf551d0395916316ed" }, "downloads": -1, "filename": "plone.subrequest-1.6.4.zip", "has_sig": false, "md5_digest": "c6af9556ffbfb2ef6bc47be60fc0cb4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27072, "upload_time": "2012-03-22T01:00:10", "url": "https://files.pythonhosted.org/packages/86/42/5e8b5ff1d498a1cb3d33e2071651cf783d95b7851894e0c531dbbdff12e9/plone.subrequest-1.6.4.zip" } ], "1.6.5": [ { "comment_text": "", "digests": { "md5": "ca6018d0917b03f789ce26899f99f1ee", "sha256": "32710108ba5dbdce94cf949d94b324dc79d536ccd5b770d292fe374eb8084d8d" }, "downloads": -1, "filename": "plone.subrequest-1.6.5.zip", "has_sig": false, "md5_digest": "ca6018d0917b03f789ce26899f99f1ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26695, "upload_time": "2012-04-15T21:36:10", "url": "https://files.pythonhosted.org/packages/7d/15/ddf563dd7dd8925dccb912051c3d32358640734c29a6c5d8aae6c23e963a/plone.subrequest-1.6.5.zip" } ], "1.6.6": [ { "comment_text": "", "digests": { "md5": "af5e20368ac6913002cba0f1db3aae85", "sha256": "9f8f361b60dd6c0d2923556e73b8caf637212f4171362621dffde6c728100af3" }, "downloads": -1, "filename": "plone.subrequest-1.6.6.zip", "has_sig": false, "md5_digest": "af5e20368ac6913002cba0f1db3aae85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27011, "upload_time": "2012-06-30T05:00:36", "url": "https://files.pythonhosted.org/packages/79/bd/023ea5110981ade40ea4001bd93923ca573ee57d5856d59033671c8a3f59/plone.subrequest-1.6.6.zip" } ], "1.6.7": [ { "comment_text": "", "digests": { "md5": "cc12f68a22565415b10dbeef0020baa4", "sha256": "592ff12bc74cd1d37b20db5bdfabac94698629a6f6c0dc597f4cfe24062757f1" }, "downloads": -1, "filename": "plone.subrequest-1.6.7.zip", "has_sig": false, "md5_digest": "cc12f68a22565415b10dbeef0020baa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27137, "upload_time": "2012-10-22T20:51:47", "url": "https://files.pythonhosted.org/packages/ef/44/e9468c75a89c1be7e17af5b239a2d2fa4cd6641e54fc758576609efe8573/plone.subrequest-1.6.7.zip" } ], "1.6.8": [ { "comment_text": "", "digests": { "md5": "6ea93bc17d56612d41a497cdc5f2960b", "sha256": "b7f7e6f44be0572e54f99039fdb9e4838de28dbf894ebd307e3f1fd421e9ef38" }, "downloads": -1, "filename": "plone.subrequest-1.6.8.zip", "has_sig": false, "md5_digest": "6ea93bc17d56612d41a497cdc5f2960b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27310, "upload_time": "2014-03-05T01:12:19", "url": "https://files.pythonhosted.org/packages/4c/61/6fcc0794ab66064d6e5869166101c90a75394bd530e8730a4b38d316728a/plone.subrequest-1.6.8.zip" } ], "1.6.9": [ { "comment_text": "", "digests": { "md5": "08b947dd2dfa7c6f56db044047698fc0", "sha256": "9a857207f633db6725eb8339ff0d96032cfd64a69df18f599015830d8b71c7a9" }, "downloads": -1, "filename": "plone.subrequest-1.6.9.zip", "has_sig": false, "md5_digest": "08b947dd2dfa7c6f56db044047698fc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28332, "upload_time": "2015-03-21T19:53:22", "url": "https://files.pythonhosted.org/packages/22/e6/8bfa2badd7daf9707a91a64f5de88106ed0458100cb37fe4e01b190545c0/plone.subrequest-1.6.9.zip" } ], "1.6b1": [ { "comment_text": "", "digests": { "md5": "ecb020a9cc2cc22cc3ff0a66cd9b0e4d", "sha256": "e963c91dd251c32cba22706b47fbb59e02bb6e3e73ccc8c93f90b90fc9b2550f" }, "downloads": -1, "filename": "plone.subrequest-1.6b1.zip", "has_sig": false, "md5_digest": "ecb020a9cc2cc22cc3ff0a66cd9b0e4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24030, "upload_time": "2011-02-11T21:40:34", "url": "https://files.pythonhosted.org/packages/0f/62/527c9620606c0ad4aa1f362837abb6db0660c45aaf9226589903d4e42321/plone.subrequest-1.6b1.zip" } ], "1.6b2": [ { "comment_text": "", "digests": { "md5": "27ffe86a6dfc62cb2609e6cedf98751f", "sha256": "549dc521bc0148bcddcee84ef66ec598bb2efea2fc38612f518f785dc6ee6b11" }, "downloads": -1, "filename": "plone.subrequest-1.6b2.zip", "has_sig": false, "md5_digest": "27ffe86a6dfc62cb2609e6cedf98751f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24765, "upload_time": "2011-05-20T18:08:59", "url": "https://files.pythonhosted.org/packages/83/42/2d5d0d0aed51d6dbbc286ed8f40da07205b9c4c2b74cec46d70377f1f530/plone.subrequest-1.6b2.zip" } ], "1.7.0": [ { "comment_text": "", "digests": { "md5": "89f5158d67ee0fdf9c8fa202729b26fd", "sha256": "72332f16c90b501acd946d24ef41249a0a3234e22f5adabc47a8f197c4876404" }, "downloads": -1, "filename": "plone.subrequest-1.7.0.tar.gz", "has_sig": false, "md5_digest": "89f5158d67ee0fdf9c8fa202729b26fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21353, "upload_time": "2016-05-04T16:30:11", "url": "https://files.pythonhosted.org/packages/31/9b/f5b4b2ec5c9e793d003faadbf363ee28539d34dbcd8af0e026fc04da28ec/plone.subrequest-1.7.0.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "efc53d25631eca51e401d46c58b75548", "sha256": "010b108b46a068146f698833f3e29ce1d30f233c406b9ad5712a1dab69319a40" }, "downloads": -1, "filename": "plone.subrequest-1.8.tar.gz", "has_sig": false, "md5_digest": "efc53d25631eca51e401d46c58b75548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21581, "upload_time": "2016-11-01T18:39:53", "url": "https://files.pythonhosted.org/packages/61/50/8075ba930263cd670bcaf1c6f559588d1a7003f16933f19c2385a7e02431/plone.subrequest-1.8.tar.gz" } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "d3ac1ba0db9a2c7ee7b012cbf6ccbaf5", "sha256": "b821fbcf0f5d9fda55c5ffbbec7f175f95872c1b2ad2492be156cc91547de138" }, "downloads": -1, "filename": "plone.subrequest-1.8.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d3ac1ba0db9a2c7ee7b012cbf6ccbaf5", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18049, "upload_time": "2017-06-28T16:24:10", "url": "https://files.pythonhosted.org/packages/f0/20/5508049ce2c0855060b8a694d374fa4e8b107848e9e75da01262f1aa6084/plone.subrequest-1.8.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e81aaa2279c4ff769c42b488bf4a0c30", "sha256": "7f986b3a402e345f7139402920759baf8d06a6eb36a2fab090e992d1aae1a33d" }, "downloads": -1, "filename": "plone.subrequest-1.8.1.tar.gz", "has_sig": false, "md5_digest": "e81aaa2279c4ff769c42b488bf4a0c30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21690, "upload_time": "2017-06-28T16:24:12", "url": "https://files.pythonhosted.org/packages/37/e3/fd72a7792a6341a6d6e2f0013161df5cc7740d33c0c812a1e577da374356/plone.subrequest-1.8.1.tar.gz" } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "b3049d0ad491ec59098e697e6ffbcb91", "sha256": "cfd2094833eddb5f00a9450c0ca530bb6cfccb3a71e79ecd6295ebb22a5fd6c4" }, "downloads": -1, "filename": "plone.subrequest-1.8.2-py2-none-any.whl", "has_sig": false, "md5_digest": "b3049d0ad491ec59098e697e6ffbcb91", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18125, "upload_time": "2017-07-20T18:43:24", "url": "https://files.pythonhosted.org/packages/7e/c3/fd17c6381441a2502e4a2cc54a9e4696ed1c3b9ee3086e9264604d9914a5/plone.subrequest-1.8.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83ca44122f4c0909c26f6bd3b5cd080b", "sha256": "7c6a8589afec802c0a2409d3806f2316c946d1e290e1792a4e13588579871c8e" }, "downloads": -1, "filename": "plone.subrequest-1.8.2.tar.gz", "has_sig": false, "md5_digest": "83ca44122f4c0909c26f6bd3b5cd080b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21796, "upload_time": "2017-07-20T18:43:27", "url": "https://files.pythonhosted.org/packages/c4/76/60195fd03030f229ef541fdf523d32ce66cb1b57a64a3a7222ca743589f4/plone.subrequest-1.8.2.tar.gz" } ], "1.8.3": [ { "comment_text": "", "digests": { "md5": "e7dc6217085405ba6594a1de2b6aa1eb", "sha256": "db0515e367ebc5ad9ea5a2d752e57c56c5a2283fc185a753c66bf429de7f90c4" }, "downloads": -1, "filename": "plone.subrequest-1.8.3-py2-none-any.whl", "has_sig": false, "md5_digest": "e7dc6217085405ba6594a1de2b6aa1eb", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18190, "upload_time": "2017-08-31T01:08:24", "url": "https://files.pythonhosted.org/packages/d7/9a/8c5ce37968cf72584993aa2582b64b6744b91ba109fc901f47b6b9674232/plone.subrequest-1.8.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "143e1eb96e6e8bf6bead4a927843b781", "sha256": "5335d3ca67c641a0caf7a155e7bf1d56f77af0518b3599290956fa1017d65200" }, "downloads": -1, "filename": "plone.subrequest-1.8.3.tar.gz", "has_sig": false, "md5_digest": "143e1eb96e6e8bf6bead4a927843b781", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21852, "upload_time": "2017-08-31T01:08:26", "url": "https://files.pythonhosted.org/packages/7b/d2/b5edfe754ee10053c11e3a675ea773ac297ca7903466f562c3be4518d543/plone.subrequest-1.8.3.tar.gz" } ], "1.8.4": [ { "comment_text": "", "digests": { "md5": "0618737c47760c27bd50445dfbd8021c", "sha256": "5fff12b2abc2c2b4205701d4da5421debae55b806d597bd0618a149b06c39e21" }, "downloads": -1, "filename": "plone.subrequest-1.8.4-py2-none-any.whl", "has_sig": false, "md5_digest": "0618737c47760c27bd50445dfbd8021c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18692, "upload_time": "2017-09-07T00:49:41", "url": "https://files.pythonhosted.org/packages/45/50/1ee885f1cc4ad047bb45e54eb7575a430379087aa108d4198fe8c740074c/plone.subrequest-1.8.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cea6ffcd80ac173392ada5d7568f84ee", "sha256": "61c0523aac086d5e9c0390dd2237c06796f35beb41ce94ab67d85a6988b7b3ec" }, "downloads": -1, "filename": "plone.subrequest-1.8.4.tar.gz", "has_sig": false, "md5_digest": "cea6ffcd80ac173392ada5d7568f84ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22412, "upload_time": "2017-09-07T00:49:44", "url": "https://files.pythonhosted.org/packages/67/81/1f3a7488cb340d755f38e660efab37f55acda27f6835afede63d00bf2912/plone.subrequest-1.8.4.tar.gz" } ], "1.8.5": [ { "comment_text": "", "digests": { "md5": "61c0760d6fcc767c15873793aa39ea11", "sha256": "11acd524c0e04e59e9cedb3015dd2fe55393444f18e58b407ae3e0143b54d039" }, "downloads": -1, "filename": "plone.subrequest-1.8.5-py2-none-any.whl", "has_sig": false, "md5_digest": "61c0760d6fcc767c15873793aa39ea11", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 18774, "upload_time": "2018-01-30T09:57:38", "url": "https://files.pythonhosted.org/packages/e6/6f/012c9976d1d3dd59a6a00035f57daab6acbbb9557e677f9bf7c6c87ad434/plone.subrequest-1.8.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ef2a8f487999db47f0677bd5cfb8d006", "sha256": "04cc065f8e938f279262655042d0331d075391802851807a65e443f3f9da63e7" }, "downloads": -1, "filename": "plone.subrequest-1.8.5.tar.gz", "has_sig": false, "md5_digest": "ef2a8f487999db47f0677bd5cfb8d006", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21550, "upload_time": "2018-01-30T09:57:40", "url": "https://files.pythonhosted.org/packages/61/2c/f1b915777bb3e70301a0e6ced55b566d05d0042586568b1b0307f40d7257/plone.subrequest-1.8.5.tar.gz" } ], "1.8.6": [ { "comment_text": "", "digests": { "md5": "e7cca6f15c5440f29ecd2c11d6216ab3", "sha256": "7624dc46b65d0de6212c854631ca6225a6d85a208ac27923886a98d87db668c1" }, "downloads": -1, "filename": "plone.subrequest-1.8.6-py2-none-any.whl", "has_sig": false, "md5_digest": "e7cca6f15c5440f29ecd2c11d6216ab3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 15298, "upload_time": "2018-09-23T15:38:57", "url": "https://files.pythonhosted.org/packages/5b/81/710d09b09fc36e985cf520e2b78d30b7d52dafbe18d348fcc9d74e918343/plone.subrequest-1.8.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f4484429001f99e5bf0718186629ef0", "sha256": "46de391140f7d4a4d830218a243a2528378a2bf17986cb02f1fa0fce98b4b5ad" }, "downloads": -1, "filename": "plone.subrequest-1.8.6.tar.gz", "has_sig": false, "md5_digest": "7f4484429001f99e5bf0718186629ef0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20592, "upload_time": "2018-09-23T15:38:58", "url": "https://files.pythonhosted.org/packages/ae/5b/63760be818d4b5f730fd0c9b92fdbad268a73590d3bf6f2df90c15ec7f6b/plone.subrequest-1.8.6.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "b2ba625d3aa230106e85b01784ba97db", "sha256": "bd9ef3ddf2dea9f55c78597440739079a4b8f3d3f3e2df44ff5684e7f11cbfb2" }, "downloads": -1, "filename": "plone.subrequest-1.9.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b2ba625d3aa230106e85b01784ba97db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15311, "upload_time": "2018-12-11T13:44:04", "url": "https://files.pythonhosted.org/packages/7a/39/faafda437e9ebd418f8d2380d20f547bfc0d8260d445804339bfdf9e3212/plone.subrequest-1.9.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9636542fed11e8d22292970984f52b5", "sha256": "8d7bd5fc87c0ef063d456d6bd511570dfe23c250a8dbf78c5f6d0c314e0ce2fd" }, "downloads": -1, "filename": "plone.subrequest-1.9.0.tar.gz", "has_sig": false, "md5_digest": "f9636542fed11e8d22292970984f52b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20691, "upload_time": "2018-12-11T13:44:06", "url": "https://files.pythonhosted.org/packages/e9/f3/f33505d341e19644ee436ffdca635917fb6629aa14417ffac4640c7315d1/plone.subrequest-1.9.0.tar.gz" } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "9a2836d6010907714cf4d02e7757b2ad", "sha256": "915444c8d5c997d73a3400c9af34ed724a5411b4e83030561342dacb41b3d20f" }, "downloads": -1, "filename": "plone.subrequest-1.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a2836d6010907714cf4d02e7757b2ad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15547, "upload_time": "2019-04-30T00:01:22", "url": "https://files.pythonhosted.org/packages/da/d8/9d3d110a0f074f9df01ec41a587534c08a9f185027d5542a7af484ad639a/plone.subrequest-1.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a050424c05ad9c95782eb1a3c31aaf29", "sha256": "27e1d29a8e2f83fe08c348adc7b3a145294a0486478f1add1eea92dc44fd0b58" }, "downloads": -1, "filename": "plone.subrequest-1.9.1.tar.gz", "has_sig": false, "md5_digest": "a050424c05ad9c95782eb1a3c31aaf29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22657, "upload_time": "2019-04-30T00:01:25", "url": "https://files.pythonhosted.org/packages/08/da/57a4717de3030570bf482b29dd61c63f9165234ef6a72a99fc5ce70126e3/plone.subrequest-1.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a2836d6010907714cf4d02e7757b2ad", "sha256": "915444c8d5c997d73a3400c9af34ed724a5411b4e83030561342dacb41b3d20f" }, "downloads": -1, "filename": "plone.subrequest-1.9.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9a2836d6010907714cf4d02e7757b2ad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15547, "upload_time": "2019-04-30T00:01:22", "url": "https://files.pythonhosted.org/packages/da/d8/9d3d110a0f074f9df01ec41a587534c08a9f185027d5542a7af484ad639a/plone.subrequest-1.9.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a050424c05ad9c95782eb1a3c31aaf29", "sha256": "27e1d29a8e2f83fe08c348adc7b3a145294a0486478f1add1eea92dc44fd0b58" }, "downloads": -1, "filename": "plone.subrequest-1.9.1.tar.gz", "has_sig": false, "md5_digest": "a050424c05ad9c95782eb1a3c31aaf29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22657, "upload_time": "2019-04-30T00:01:25", "url": "https://files.pythonhosted.org/packages/08/da/57a4717de3030570bf482b29dd61c63f9165234ef6a72a99fc5ce70126e3/plone.subrequest-1.9.1.tar.gz" } ] }