{ "info": { "author": "Plone Foundation", "author_email": "plone-developers@lists.sourceforge.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Plone", "Framework :: Plone :: 5.2", "Framework :: Zope2", "Framework :: Zope :: 4", "Intended Audience :: Developers", "Intended Audience :: Other Audience", "Intended Audience :: System Administrators", "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": "plone.folder\n============\n\nOverview\n--------\n\nThis package provides a base class for folderish content types based on `B-trees`_,\na.k.a. \"large folders\" in Plone_.\nStoring content in such folders provides significant `performance benefits`_ over regular folders.\nHowever, \"large folders\" do not support explicit ordering of their contents out-of-the box.\nThat is, you cannot manually specify the order of items within the folder,\nyou can only sort things according to a given criteria after fetching items from the folder.\n\n .. _`B-tree`: http://en.wikipedia.org/wiki/B-tree\n .. _`B-trees`: http://en.wikipedia.org/wiki/B-tree\n .. _`Plone`: http://plone.org/\n .. _`performance benefits`: http://plone.org/products/plone/roadmap/191\n .. |---| unicode:: U+2014 .. em dash\n\nMany times, though, it is desirable to be able to explicitly order a folder's content,\nfor example for items that are related to site navigation.\nSorting alphabetically often doesn't make sense here.\n\nTo compensate ``plone.folder`` provides ordering support for `B-tree`_ folders via the above mentioned base class,\nwhich can make use of an adapter to store the actual order information.\nIt also comes with two sample adapter implementations:\n\n* A default adapter handling order information for all objects contained in a folder.\n This adapter can be used to build fully backwards-compatible drop-in replacements for folderish content.\n In other words, when using this adapter `B-tree`_-based folders should behave just like the \"regular\" folder implementation,\n but provide some of the performance benefits at the same time.\n\n* An alternative adapter implementation that is targeted towards sites with only a relatively small percentage of content for which (explicit) order matters.\n It'll only manage order information for certain content types (via a marker interface).\n\nThe latter allows to not having to separate such content from \"non-orderable\" content.\nUp to now many large sites ended up storing \"orderable\" items |---|\nfor example everything related to navigation and typically only a few |---|\nin regular folders and the bulk of the content in \"large\" folders,\nmost of the time solely for performance reasons.\nThis adapter will hopefully help avoid having to make this distinction in the future\nand still provide the better performance characteristics of `B-tree`_ folders.\n\nSource Code\n===========\n\nContributors please read the document `Process for Plone core's development `_\n\nSources are at the `Plone code repository hosted at Github `_.\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\n3.0.1 (2019-10-12)\n------------------\n\nBug fixes:\n\n\n- - Fixes slow lookup of ``documentToKeyMap`` in GopipIndex.\n About up to 66x speedup in some cases.\n This may add up to seconds less on large navtree renderings.\n [jensens] (#14)\n\n\n3.0.0 (2018-10-31)\n------------------\n\nBreaking changes:\n\n- move GopipIndex from `plone.app.folder` to `plone.folder`\n [jmevissen, petschki]\n\nBug fixes:\n\n- Fix KeyError when removing object that is not referenced\n in ordering annotation\n [vangheem]\n\n\n2.0.1 (2018-09-23)\n------------------\n\nBug fixes:\n\n- Stabilize order of unordered items in partial ordering.\n [davisagli]\n\n- Fix ordering of content in folder in python 3.\n [pbauer]\n\n- Fix tests in py3.\n [pbauer]\n\n\n2.0.0 (2018-06-20)\n------------------\n\nBreaking changes:\n\n- Drop support for Python 2.6/ Plone 4.3\n [jensens]\n\nBug fixes:\n\n- More Python 2 / 3 compatibility\n [pbauer, ale-rt]\n\n- Fix deprecated LazyMap import\n [jensens]\n\n\n1.0.11 (2018-04-08)\n-------------------\n\nNew features:\n\n- Improve logging in case ordered index is not consistent\n [tomgross]\n\nBug fixes:\n\n- Remove ancient buildout config\n [tomgross]\n\n- Replace deprecated testing assertion calls\n [tomgross]\n\n\n1.0.10 (2018-01-30)\n-------------------\n\nBug fixes:\n\n- Add Python 2 / 3 compatibility\n [vincero]\n\n\n1.0.9 (2016-08-08)\n------------------\n\nBug fixes:\n\n- Use zope.interface decorator.\n [gforcada]\n\n\n1.0.8 (2016-04-26)\n------------------\n\nFixes:\n\n- Update testing layers to use best practices and remove ZopeTestCase dependency,\n which should fix its test isolation problems.\n [gforcada]\n\n\n1.0.7 (2015-07-29)\n------------------\n\n- Depend on ``Products.CMFCore`` and remove fake-cmf, because this confuses\n more than it helps to reduce complexcity.\n [jensens]\n\n- Cleanup: PEP8 and do not use ``id`` built-in as identifier.\n [jensens]\n\n\n1.0.6 (2015-05-11)\n------------------\n\n- Whitespace cleanup, git ignores, cleanup package info.\n [gforcada, rnixx, maurits]\n\n\n1.0.5 (2013-12-07)\n------------------\n\n- Allow reversing the current order, without specifying a key for\n sorting.\n [maurits]\n\n- Allow ordering by a method instead of an attribute.\n [maurits]\n\n\n1.0.4 (2012-08-30)\n------------------\n\n- Update manifest.in to fix packaging error.\n [esteele]\n\n\n1.0.3 (2012-08-29)\n------------------\n\n- In setup.py, name more dependencies explicitly.\n [thet]\n\n\n1.0.2 (2012-07-02)\n------------------\n\n- Update notifyContainerModified import location.\n [hannosch]\n\n- Add MANIFEST.in.\n [WouterVH]\n\n\n1.0.1 - 2010-08-08\n------------------\n\n- Added objectValues and objectItems method to the ordered folder\n implementation, which use objectIds and thus the ordering information. In\n Zope 2.13 BTreeFolder2 was optimized to loop over the internal _tree data\n structure avoiding the objectIds indirection.\n [hannosch]\n\n\n1.0 - 2010-07-18\n----------------\n\n- Avoid dangerous memoization in the DefaultOrdering adapter.\n [hannosch]\n\n- Update license to GPL version 2 only.\n [hannosch]\n\n\n1.0b5 - 2010-03-06\n------------------\n\n- Remove support for setting ``__parent__`` and ``__name__`` for content\n providing ``IContained`` as it can cause severe performance issues when\n used on Zope 2.x.\n [witsch]\n\n\n1.0b4 - 2010-02-17\n------------------\n\n- Register all ordering adapter by default now that they can co-exist.\n [witsch]\n\n- Add `__getitem__` support to the default ordering adapter to help\n previous/next support in `plone.app.folder`.\n [witsch]\n\n\n1.0b3 - 2010-02-09\n------------------\n\n- Make sure order changes are persisted when using the partial ordering\n adapter.\n [hannosch, witsch]\n\n\n1.0b2 - 2010-01-28\n------------------\n\n- Make the dependency on `Products.CMFCore` a soft one.\n [witsch]\n\n- Added an 'unordered' adapter which can be used when no explicit ordering\n is needed.\n [davisagli]\n\n- Allow the use of different named adapters to ``IOrdering``, with the name\n determined by the folder's ``_ordering`` attribute.\n [davisagli]\n\n\n1.0b1 - 2009-10-10\n------------------\n\n- Fix the WebDAV content creation process by properly returning a\n ``NullResource`` when required.\n [optilude]\n\n\n1.0a3 - 2009-05-11\n------------------\n\n- Let ``objectIds`` always return all object ids, even with partial ordering.\n [witsch]\n\n\n1.0a2 - 2009-05-07\n------------------\n\n- Fix a bug in the default ordering that would cause the ``pos`` dict to get\n out of sync when an item is deleted.\n [optilude]\n\n- Declare ``IContainer`` support.\n [optilude]\n\n- Properly set ``__parent__`` and ``__name__`` for ``IContained`` in\n ``_setOb()``.\n [optilude]\n\n- Add ``__getitem__``, needed when not using the CMF mix-in.\n [optilude]\n\n- Added ``__setitem__``, ``__contains__`` and ``__delitem__`` to support a\n dict-like API.\n [optilude]\n\n- Fix issue with removing non-orderable content for partial ordering suppport.\n [witsch]\n\n- Fix ``getObjectPosition`` to return a value representing \"no position\" for\n non-orderable content instead of raising an error.\n [witsch]\n\n- Fix boolean value of the btree-based folder base class.\n [witsch]\n\n- Factor CMF out of the base classes for the new btree-based folder class\n and simplify things a bit afterwards.\n [witsch]\n\n- Add adapter providing explicit ordering only for \"orderable\" content.\n [witsch]\n\n- Clean up tests and their setup.\n [witsch]\n\n\n1.0a1 - 2008-05-27\n------------------\n\n- Initial release\n [optilude, tesdal, witsch]\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.folder", "keywords": "folder btree order", "license": "GPL version 2", "maintainer": "", "maintainer_email": "", "name": "plone.folder", "package_url": "https://pypi.org/project/plone.folder/", "platform": "Any", "project_url": "https://pypi.org/project/plone.folder/", "project_urls": { "Homepage": "https://pypi.org/project/plone.folder" }, "release_url": "https://pypi.org/project/plone.folder/3.0.1/", "requires_dist": [ "plone.memoize", "Products.BTreeFolder2", "Products.CMFCore", "Products.ZCatalog", "setuptools", "six", "zope.annotation", "zope.component", "zope.container", "zope.interface", "Zope2", "profilehooks ; extra == 'test'" ], "requires_python": "", "summary": "BTree-based folder implementation with order support", "version": "3.0.1" }, "last_serial": 5964109, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "1bfd3c61e207240551bf8b92432c1297", "sha256": "ddaae08d17609c321b792bc2f5608c51d35dfa003b0bf8d161e08f465fef6288" }, "downloads": -1, "filename": "plone.folder-1.0.zip", "has_sig": false, "md5_digest": "1bfd3c61e207240551bf8b92432c1297", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36465, "upload_time": "2010-07-18T17:44:27", "url": "https://files.pythonhosted.org/packages/28/0b/baffe30239a4ba9e16a37b4d0960c71689f128ec6a266916aa7df55927e6/plone.folder-1.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "acb3958b623c0da35fdb259c94120396", "sha256": "c4691f6670e48482026d28d1862a908c8e163fca7bda3a02bcca9e840e036de4" }, "downloads": -1, "filename": "plone.folder-1.0.1.zip", "has_sig": false, "md5_digest": "acb3958b623c0da35fdb259c94120396", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37140, "upload_time": "2010-08-08T17:23:02", "url": "https://files.pythonhosted.org/packages/60/79/22948a9ef6ab79f1b0bfae8628356876ae57c2b2bd9dc6cc45afb1f30b69/plone.folder-1.0.1.zip" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "d803a1ce281a5ffb7c06811b8beb5d4c", "sha256": "c03a78264a31a95fc03217ea19edb349699c6760f3ceffaadb603fe77ee446c5" }, "downloads": -1, "filename": "plone.folder-1.0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "d803a1ce281a5ffb7c06811b8beb5d4c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 26217, "upload_time": "2018-01-30T01:17:12", "url": "https://files.pythonhosted.org/packages/a4/09/25a0b30fa1bc666b45cd255b385455d973b49439af7744b7db9724ae931f/plone.folder-1.0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97225391e77b1b7283c6175b5f63e3e0", "sha256": "fe9bb3ffd2714f5bc5879203670a32a0565d861dfd206a436e226a83ce6facc7" }, "downloads": -1, "filename": "plone.folder-1.0.10.tar.gz", "has_sig": false, "md5_digest": "97225391e77b1b7283c6175b5f63e3e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24412, "upload_time": "2018-01-30T01:17:14", "url": "https://files.pythonhosted.org/packages/4b/66/9001ea0b73e61ce0672bf438d6933de3c0b6c2c5ceea4f64b8918f5f5f39/plone.folder-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "83cf717f9f173581ca079db9a3369195", "sha256": "8dffa0d00e082eaa51e3f2eb83cac6adc89d9f3d619f0c9ea540044eac35a27d" }, "downloads": -1, "filename": "plone.folder-1.0.11-py2-none-any.whl", "has_sig": false, "md5_digest": "83cf717f9f173581ca079db9a3369195", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 26554, "upload_time": "2018-04-08T18:40:18", "url": "https://files.pythonhosted.org/packages/2e/b8/677f9c88bbba468086ffbb1a4be74a35addb136fe117dd0c587d5079e603/plone.folder-1.0.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3004dbc952fdec102282ac3901774cd", "sha256": "bef519b72f6eeafd453881791e7084adae0cfa0f9d4a3341745ee4e789fa7719" }, "downloads": -1, "filename": "plone.folder-1.0.11.tar.gz", "has_sig": false, "md5_digest": "d3004dbc952fdec102282ac3901774cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24731, "upload_time": "2018-04-08T18:40:21", "url": "https://files.pythonhosted.org/packages/37/a5/f02bd32c6287b4b74b3f8451d384e456c9fff364a4896bf7c9b19a46603c/plone.folder-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "dc72e052c5c821f43a3953e81f69c5d6", "sha256": "3c71a2eca015846b1e0a2a91656345a81ee15826512903a92b11497ee982e006" }, "downloads": -1, "filename": "plone.folder-1.0.12-py2-none-any.whl", "has_sig": false, "md5_digest": "dc72e052c5c821f43a3953e81f69c5d6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22731, "upload_time": "2018-10-31T14:38:55", "url": "https://files.pythonhosted.org/packages/38/80/34155c7f5c01604e682ee47bf10189ba05e734e79308b0e1b2b086f10e8b/plone.folder-1.0.12-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e0ec5526410b109484ee19fa0205bc6", "sha256": "5de2e4252a730c16370675a17391f0a130dec9be01b6757cfc71ee1218f60335" }, "downloads": -1, "filename": "plone.folder-1.0.12.tar.gz", "has_sig": false, "md5_digest": "0e0ec5526410b109484ee19fa0205bc6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24802, "upload_time": "2018-10-31T14:38:57", "url": "https://files.pythonhosted.org/packages/71/60/7a26623cdee96ac6faf0a10bb91feb10100b58717ea69e17a8a77e21e576/plone.folder-1.0.12.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "34ab4f646d3d1513bc9fe3e970e7ce11", "sha256": "1b2b6e732af584c857d962bf7e8e50cd2a829a1a26c636e80c260739cab29255" }, "downloads": -1, "filename": "plone.folder-1.0.2.zip", "has_sig": false, "md5_digest": "34ab4f646d3d1513bc9fe3e970e7ce11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37492, "upload_time": "2012-07-03T04:25:16", "url": "https://files.pythonhosted.org/packages/8a/e2/b587d7d47ab006cf3e667ac018ef4a9a494e0fb0b17b110e37d937689a44/plone.folder-1.0.2.zip" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "b32d2e5118e30b0ec1168b5babe5e267", "sha256": "6fd60f450d9eaa8b8c034a5710ee9b45bc4e4e1e254af87cba68642bd695f928" }, "downloads": -1, "filename": "plone.folder-1.0.3.zip", "has_sig": false, "md5_digest": "b32d2e5118e30b0ec1168b5babe5e267", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35059, "upload_time": "2012-08-30T01:50:34", "url": "https://files.pythonhosted.org/packages/55/da/983bedfa58312dabe7a33d1d280005c0f3947dd24fcf7fefba42a8e451b3/plone.folder-1.0.3.zip" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "1674ff18b7a9452d0c2063cf11c679b7", "sha256": "50bc3f20c0d2eb18c916e4e0f6601378aaf9354d869003b327cba81796a4ca70" }, "downloads": -1, "filename": "plone.folder-1.0.4.zip", "has_sig": false, "md5_digest": "1674ff18b7a9452d0c2063cf11c679b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35745, "upload_time": "2012-08-30T13:59:32", "url": "https://files.pythonhosted.org/packages/43/2c/d5422996563375c4f55aa4f44e14f316336b11cf4cdcf695f0c115a5972a/plone.folder-1.0.4.zip" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "2722124a411e2d267b08d6f4d81e262c", "sha256": "68a389a88e0215e260a99a9c7e4fd37df853098dc4f93c544dbdcd93d6194a07" }, "downloads": -1, "filename": "plone.folder-1.0.5.zip", "has_sig": false, "md5_digest": "2722124a411e2d267b08d6f4d81e262c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38285, "upload_time": "2013-12-08T02:47:58", "url": "https://files.pythonhosted.org/packages/0e/fd/d3b00f3acd3733b57b861ddfdada4cee8c34e6c8927785db23e8a2dd5a87/plone.folder-1.0.5.zip" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "027846a133636d50bdb9b01ae3a32163", "sha256": "8d4cfc9ad17498c6c079672ec2cd9cf2336216aa487f575d7aca97e0352a8ac8" }, "downloads": -1, "filename": "plone.folder-1.0.6.tar.gz", "has_sig": false, "md5_digest": "027846a133636d50bdb9b01ae3a32163", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23689, "upload_time": "2015-05-11T12:59:26", "url": "https://files.pythonhosted.org/packages/66/9b/10be85bc8983702ad4fdf348b8b14aa4f42f10b040521f98f8bf0532ce5f/plone.folder-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "ed770ff67929c1722b8235a3df144c5a", "sha256": "d2e2a7ae2b62f35ffde9b908a14b6ea3a5bb04edff1b36b0f2ba10b299cae4b1" }, "downloads": -1, "filename": "plone.folder-1.0.7.tar.gz", "has_sig": false, "md5_digest": "ed770ff67929c1722b8235a3df144c5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24074, "upload_time": "2015-07-29T21:30:37", "url": "https://files.pythonhosted.org/packages/60/7f/56731adb2babf3d287dca6c57b881f5f9fd4d1bafc953e68b6de9852682f/plone.folder-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "160cae3de0484d229bd83f0d7178d397", "sha256": "10e709e55753f865b1dcb3f1905b0e2089f2b3f3ba8f25a04b926cf890893713" }, "downloads": -1, "filename": "plone.folder-1.0.8.tar.gz", "has_sig": false, "md5_digest": "160cae3de0484d229bd83f0d7178d397", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24453, "upload_time": "2016-04-26T08:31:13", "url": "https://files.pythonhosted.org/packages/a4/ed/e8dcf6f782423dca5e95e08be312f23589cc63b4de0836d42d1ce56f08ed/plone.folder-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "94b356fa4e8c027877550081713bd385", "sha256": "14025ef5e420f9a43955ed9ee3a2a2d1451166b9e80cb92a47e9d55d20ace7f2" }, "downloads": -1, "filename": "plone.folder-1.0.9.tar.gz", "has_sig": false, "md5_digest": "94b356fa4e8c027877550081713bd385", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24516, "upload_time": "2016-08-08T16:11:02", "url": "https://files.pythonhosted.org/packages/12/7e/aef62fe1746f0715b23d321333e50454e5df661fb6f5e54558a27dfc72e4/plone.folder-1.0.9.tar.gz" } ], "1.0a2": [ { "comment_text": "", "digests": { "md5": "d051d57aa9929155b2d042e9851cd53c", "sha256": "cad0174a00e1d29636ca385422a7e8bdc8f35c80251b5e2828b91187934cb3cb" }, "downloads": -1, "filename": "plone.folder-1.0a2.zip", "has_sig": true, "md5_digest": "d051d57aa9929155b2d042e9851cd53c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32474, "upload_time": "2009-05-07T13:05:13", "url": "https://files.pythonhosted.org/packages/0f/cb/c4156a696a2c3fb002ab5f000ef3c11428ee3eba35e0c54b6162764b5daa/plone.folder-1.0a2.zip" } ], "1.0a3": [ { "comment_text": "", "digests": { "md5": "76ae6fa323613b223a1f6f813f1ec972", "sha256": "1a67f097c908647e0a9a4e2548b96393976b42109429f202caa8826fe4232e66" }, "downloads": -1, "filename": "plone.folder-1.0a3.zip", "has_sig": true, "md5_digest": "76ae6fa323613b223a1f6f813f1ec972", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32654, "upload_time": "2009-05-11T13:09:59", "url": "https://files.pythonhosted.org/packages/6a/27/5820546c2454ef64a99be5a0c043b66a53742e2b68666b9a14e6437138fb/plone.folder-1.0a3.zip" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "379a4bd7a4a64ed308d51a8c020b8f16", "sha256": "493a91fe82444f273c09440286119b2615f998e2a427e3daaf4c8fdf75854e18" }, "downloads": -1, "filename": "plone.folder-1.0b1.zip", "has_sig": true, "md5_digest": "379a4bd7a4a64ed308d51a8c020b8f16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33766, "upload_time": "2009-10-10T17:38:29", "url": "https://files.pythonhosted.org/packages/4b/a4/4808534ac8de4d08116b3ce88ccad204e46c4c692c721530b1fd8af9e063/plone.folder-1.0b1.zip" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "b27b53392c3cfd8f4d7d071a216af71f", "sha256": "8a882e752c210b36b87a87c029693f1d505e7b3739449fcaa010048360d9a6e8" }, "downloads": -1, "filename": "plone.folder-1.0b2.zip", "has_sig": true, "md5_digest": "b27b53392c3cfd8f4d7d071a216af71f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36069, "upload_time": "2010-01-29T00:22:13", "url": "https://files.pythonhosted.org/packages/3a/3f/eb504ecb8fe74741fff77ff3867f67414dfccfd9bcf5bf8c953eef56f8ab/plone.folder-1.0b2.zip" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "538b920cf445b8e8d7bd22e3859b1b9e", "sha256": "63a584089e6308702c7f193d50e48e254967534856cab4d1db32c9f6912e86f9" }, "downloads": -1, "filename": "plone.folder-1.0b3.zip", "has_sig": true, "md5_digest": "538b920cf445b8e8d7bd22e3859b1b9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36263, "upload_time": "2010-02-09T01:55:24", "url": "https://files.pythonhosted.org/packages/9e/0d/054759dc8fbeb37a69f74361a9e858eea42d9f34796a0826fcd6a0ba1a9a/plone.folder-1.0b3.zip" } ], "1.0b4": [ { "comment_text": "", "digests": { "md5": "e12c9db8c1a2ca4f482b382d2f0bfcb4", "sha256": "c79ce9a2891f6fa8267b5514df87200f4fbd188cdff3fe0143027dee719e354e" }, "downloads": -1, "filename": "plone.folder-1.0b4.zip", "has_sig": true, "md5_digest": "e12c9db8c1a2ca4f482b382d2f0bfcb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36921, "upload_time": "2010-02-17T20:21:31", "url": "https://files.pythonhosted.org/packages/73/3b/80a3bec9e48fd0938202f10cf318405ab183449e41282b5c80a00af90be6/plone.folder-1.0b4.zip" } ], "1.0b5": [ { "comment_text": "", "digests": { "md5": "629ccdf05a78b6b7e900b173e443750d", "sha256": "3f4e7fb6c5d9edae4e3ba8b8a2e12aa7b9c5e3c63b9a26471d95efd402cf1c73" }, "downloads": -1, "filename": "plone.folder-1.0b5.zip", "has_sig": true, "md5_digest": "629ccdf05a78b6b7e900b173e443750d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36443, "upload_time": "2010-03-06T00:42:15", "url": "https://files.pythonhosted.org/packages/59/31/c264cad747ba14b98813989b1b05a2148502c15c26d85752d389139f1641/plone.folder-1.0b5.zip" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "09dc51b1656237ce492b44ae2d5ff3c0", "sha256": "f73859a364a76f8db7dada6e9750c82db92c4d02410f4a60bd88f63a9c34c1ab" }, "downloads": -1, "filename": "plone.folder-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "09dc51b1656237ce492b44ae2d5ff3c0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 22794, "upload_time": "2018-06-20T12:27:02", "url": "https://files.pythonhosted.org/packages/4c/c8/c4cd423f115561b5b33a9c90d4e80eed805bb7bdfef257d57eac13e43208/plone.folder-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe9dbd66f95023ec2f83e7d4efe6a657", "sha256": "7f34623ac7e0c565efd080be0d2da106d69c11f27004dd4f71ad617d5be51aa9" }, "downloads": -1, "filename": "plone.folder-2.0.0.tar.gz", "has_sig": false, "md5_digest": "fe9dbd66f95023ec2f83e7d4efe6a657", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25007, "upload_time": "2018-06-20T12:27:04", "url": "https://files.pythonhosted.org/packages/75/d0/9aa5529f9ae23849964f1cbe2fa8ff3b7c2659ca64bfa2f5179a1e4d2fd0/plone.folder-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "78907db3eb739cba1d2e765f6a05013c", "sha256": "74ea0087c1839c49c3ecaab06101099ad7033b7218e2407208bc937b00ba1512" }, "downloads": -1, "filename": "plone.folder-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "78907db3eb739cba1d2e765f6a05013c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23146, "upload_time": "2018-09-23T15:32:31", "url": "https://files.pythonhosted.org/packages/b5/37/4a7a90e410d8ee778ae8dbb40eff0a954b553cb76339dab21bfe3b36899d/plone.folder-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "993cf2bc51bcff6c95ddd5c1766f7182", "sha256": "a209800a01a5837e7f65bd80db9a8896afd3e7a591f5113f6babe26f5be96066" }, "downloads": -1, "filename": "plone.folder-2.0.1.tar.gz", "has_sig": false, "md5_digest": "993cf2bc51bcff6c95ddd5c1766f7182", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25431, "upload_time": "2018-09-23T15:32:33", "url": "https://files.pythonhosted.org/packages/d7/27/c9edf1431d0a4234867a13dc08a2720e7aeb92519e0caff90a0895e2faad/plone.folder-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "7268878c9e84821a182ab28148b900f3", "sha256": "913ad1b31c59683e55728e2c085a43b0d971f02c5935b90880545e32c1e8ee7e" }, "downloads": -1, "filename": "plone.folder-2.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "7268878c9e84821a182ab28148b900f3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 23317, "upload_time": "2018-10-31T15:04:00", "url": "https://files.pythonhosted.org/packages/ee/b7/96923cb2c82d96f94881f3c6c013f71e232e1a07673a076b5c1c39f64c33/plone.folder-2.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3030e55c847eda5337a3210c4e4202f", "sha256": "9b65143fe49a483a3bf9633a8d7286e0ed07b293c9bc7a3764906da7bda2ee79" }, "downloads": -1, "filename": "plone.folder-2.0.2.tar.gz", "has_sig": false, "md5_digest": "b3030e55c847eda5337a3210c4e4202f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25459, "upload_time": "2018-10-31T15:04:01", "url": "https://files.pythonhosted.org/packages/18/2b/310cb194cc7bc9aad3893ebbb2705e6d2d57dcde1230e5196221ccc9533e/plone.folder-2.0.2.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "f9c3dad3cf72d3e88388befaa86e572e", "sha256": "8757b67319bb97cf712f8775909a06d841f26ad1e97655240de1dd7240ee96ae" }, "downloads": -1, "filename": "plone.folder-3.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f9c3dad3cf72d3e88388befaa86e572e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25720, "upload_time": "2018-10-31T15:15:52", "url": "https://files.pythonhosted.org/packages/e1/7c/a8fa5ad0782327d9d79c6b123f05195c2aecf188c5e7ad716d694baa1d6f/plone.folder-3.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af9f506a2bb5e3e4d2de3c9b3da0f88d", "sha256": "3ee326b365a3621d75561e4baea79273687089c23704914fe1942cc9a508958c" }, "downloads": -1, "filename": "plone.folder-3.0.0.tar.gz", "has_sig": false, "md5_digest": "af9f506a2bb5e3e4d2de3c9b3da0f88d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27438, "upload_time": "2018-10-31T15:15:54", "url": "https://files.pythonhosted.org/packages/85/23/56d91d318bfef908a95f0a53fa7a63bc85c85a587849cc76d09b467f8760/plone.folder-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "4c758d0eefb2cf30058b8dea7f1f9991", "sha256": "6cd835e0dfccd8df6d5db08e11bc1b1984f50df8d5b9d6fbf823c48fc6c888bf" }, "downloads": -1, "filename": "plone.folder-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c758d0eefb2cf30058b8dea7f1f9991", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26143, "upload_time": "2019-10-12T12:24:19", "url": "https://files.pythonhosted.org/packages/0f/4a/0c2a25351995d9ea4ce982ff88cd144d826805b2858db4f3f0f1ac94b553/plone.folder-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "714e6bcff24829cd79b7440dccc38084", "sha256": "0c4780dd16564d8d0c5d22eb6ee13a720fdd3e8d96fa6e299762601e8aa98419" }, "downloads": -1, "filename": "plone.folder-3.0.1.tar.gz", "has_sig": false, "md5_digest": "714e6bcff24829cd79b7440dccc38084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28327, "upload_time": "2019-10-12T12:24:21", "url": "https://files.pythonhosted.org/packages/58/ea/c5bdb85335a5f0b79398afe004e6c47e866661a88d79f94b83b5cade2672/plone.folder-3.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4c758d0eefb2cf30058b8dea7f1f9991", "sha256": "6cd835e0dfccd8df6d5db08e11bc1b1984f50df8d5b9d6fbf823c48fc6c888bf" }, "downloads": -1, "filename": "plone.folder-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4c758d0eefb2cf30058b8dea7f1f9991", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26143, "upload_time": "2019-10-12T12:24:19", "url": "https://files.pythonhosted.org/packages/0f/4a/0c2a25351995d9ea4ce982ff88cd144d826805b2858db4f3f0f1ac94b553/plone.folder-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "714e6bcff24829cd79b7440dccc38084", "sha256": "0c4780dd16564d8d0c5d22eb6ee13a720fdd3e8d96fa6e299762601e8aa98419" }, "downloads": -1, "filename": "plone.folder-3.0.1.tar.gz", "has_sig": false, "md5_digest": "714e6bcff24829cd79b7440dccc38084", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28327, "upload_time": "2019-10-12T12:24:21", "url": "https://files.pythonhosted.org/packages/58/ea/c5bdb85335a5f0b79398afe004e6c47e866661a88d79f94b83b5cade2672/plone.folder-3.0.1.tar.gz" } ] }