{ "info": { "author": "Bo Simonsen and Malthe Borch", "author_email": "bo@headnet.dk", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Framework :: Plone :: 5.0", "Framework :: Plone :: 5.1", "Framework :: Zope2", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": "Taxonomy Vocabularies\n=====================\n\nThis add-on provides support for hierarchical taxonomies in multiple\nlanguages, letting users easily associate existing content with terms\nfrom one or more taxonomies.\n\n `Taxonomy `_ is the\n \"discipline of defining groups [...] on the basis of shared\n characteristics and giving names to those groups. Each group is\n given a rank and groups of a given rank can be aggregated to form\n a super group of higher rank and thus create a hierarchical\n classification\".\n\nHere's an example of the \"taxonomic kingdoms of life\"::\n\n Living Organisms\n Living Organisms -> Eukaryotic\n Living Organisms -> Eukaryotic -> Simple multicells or unicells\n Living Organisms -> Eukaryotic -> Multicellular\n Living Organisms -> Eukaryotic -> Multicellular -> Autotrophic\n Living Organisms -> Eukaryotic -> Multicellular -> ...\n Living Organisms -> Prokaryotic\n Living Organisms -> Prokaryotic -> Archaebacteria\n Living Organisms -> Prokaryotic -> Eubacteria\n Living Organisms -> Prokaryotic -> Eubacteria -> ...\n\nTaxonomies can be quite large, sometimes in the tens of thousands\n(10,000+). And in sites with multiple languages, each title \u2013 or\n*caption* \u2013 must appear in translation.\n\nNote that the selection of a term in the hierarchy implies the\nselection of all its parents. In the example above this means that if\n\"Eubacteria\" is selected, then also \"Prokaryotic\" and \"Living\nOrganisms\" will be.\n\n\nOverview\n========\n\nThe implementation tries to meet the following requirements:\n\n#. Support many (10,000+) terms.\n\n#. Terms can be organized in a hierarchical classification.\n\n#. Easily import and export in a common format (VDEX).\n\n#. Taxonomies will provide vocabularies that are translateable.\n\n#. Use behaviors to provide a choice field for each taxonomy.\n\n#. Manage taxonomies and assign to content types \"through-the-web\".\n\nIn the description below, we touch on each of these requirements.\n\n\nData structure\n--------------\n\nIn order to limit both the memory and computation requirements, the\nterm data is contained in exactly one persistent index per language, a\nmapping from the *materialized term path* to its *term identifier*.\n\nThe term::\n\n Living Organisms -> Eukaryotic -> Simple multicells or unicells\n\nwill be indexed under this path::\n\n \"Living Organisms/Eukaryotic/Simple multicells or unicells\"\n\nThe index allows us to provide an iterator over the sorted vocabulary\nterms, virtually without cost (as well as containment queries).\n\nAt the same time, while the hierarchy is encoded, we can quickly look\nup terms in a subtree.\n\nNote: As ``collective.taxonomy`` uses slash as separator, you have to monkey patch the ``PATH_SEPARATOR`` constant if you want to use '/' in your terms.\n\n\nData exchange\n-------------\n\nWhile ``collective.taxonomy`` (this package) does make it possible to\ncreate, manage and edit taxonomies from a browser-based interface, the\nprimary focus is to support the exchange of terms in the VDEX format:\n\n The `IMS Vocabulary Definition Exchange\n `_ (VDEX) specification defines a\n grammar for the exchange of value lists of various classes:\n collections often denoted \"vocabulary\".\n\nThis exchange is integrated with `GenericSetup\n`_ which manages\nimports and exports using setup profiles. It is also possible to\nuse the controlpanel for importing and exporting VDEX files.\n\nThe package comes with integration for the `Dexterity\n`_ content type framework: for\neach taxonomy, a *behavior* is available that adds a choice field\nwhich pulls its vocabulary from the taxonomy. The behavior is\nconfigurable in terms of field name, title and whether it allows the\nselection of one or more multiple terms. You should *first* install\ndexterity and then ``collective.taxonomy``, otherwise the behaviors\nfor the existing taxonomies will be missing.\n\n\nHow does it work?\n-----------------\n\nThe main objective during this project has been to get a high rate\nof through-the-Web administration. Therefore the use of the product\nwill not require any Python programming nor configure.zcml directives.\n\nIn the controlpanel (``/@@taxonomy-settings``), the user can:\n\n#. Import taxonomies from VDEX files.\n\n#. Export taxonomies existing to VDEX files.\n\n#. Delete taxonomies\n\n#. Add and delete behaviours for taxonomies\n\nWhen a new behavior is created for a taxonomy, it can easily be added\nto the desired content types using the content type control panel, provided\nby Dexterity. After this is done, the taxonomy is available on add and edit\nforms, and it is also available for collections, if ``plone.app.collection``\nis used on the site. An index is also created, so the taxonomies can easily\nbe used for catalog queries.\n\nSee a short guide on how to use the product `here `_.\n\n\nReact/Redux app to edit taxonomies\n----------------------------------\n\nThe view ``@@taxonomy-edit-data`` that allow users to edit the taxonomy data is a React/Redux app (the source code is in the ``javascripts`` directory.\n\nHere's a preview of this view:\n\n.. image:: https://raw.githubusercontent.com/collective/collective.taxonomy/master/images/edit_taxonomy_data.gif\n :alt: Edit taxonomy data preview\n\nThe languages allowed for the taxonomies are the languages defined in ``portal_languages``.\n\nDevelopment\n===========\n\nRun the app, run ``npm start`` in the ``javascripts`` directory.\nTo make Plone use the development code, you need the ``NODE_ENV`` environment variable to be set to ``development``:\n\n::\n\n NODE_ENV=development bin/instance fg\n\n\ni18n\n----\n\nThe app uses `react-intl `_ to handle i18n. To translate the app, add a new language in the translations directory. For example, create a ``es`` file in the translations directory that contains:\n\n::\n\n const es = {\n submitLabel: 'Enviar',\n }\n\n export default es\n\nThen, edit ``translations/index.js`` to add the language to the translations object:\n\n::\n\n import es from './es'\n\n const translations = {\n es,\n fr\n }\n\nYou'll have to rebuild the js bundle: ``npm run build``\n\nThat's it!\n\nPlone Version Compatibility\n===========================\n\n* Plone 5.1\n* Plone 5.0\n* Plone 4.3\n* or an older version using a recent version of plone.dexterity/plone.app.dexterity\n\nFrequently Asked Questions\n==========================\n\nHow can I import an existing ``ATVocabularyManager`` vocabulary?\n\n Use the script provided in this `gist `_. Just\n remember to edit the vocabIdentifier and vocabName.\n\nTo-Do\n=====\n\n.. image:: https://secure.travis-ci.org/collective/collective.taxonomy.png?branch=master\n :alt: Travis CI badge\n :target: http://travis-ci.org/collective/collective.taxonomy\n\n.. image:: https://coveralls.io/repos/collective/collective.taxonomy/badge.png?branch=master\n :alt: Coveralls badge\n :target: https://coveralls.io/r/collective/collective.taxonomy\n\n- Better documentation.\n\n\nContributors\n============\n\nAuthor\n------\n\n- Bo Simonsen \n\n\nContributors\n------------\n\n- Malthe Borch \n\n- Thomas Clement Mogensen \n\n- Thomas Desvenain \n\n- Maurits van Rees \n\n- C\u00e9dric Messiant \n\n\nExisting work\n=============\n\nIn 2010, Rok Garbas reimplemented and extended prior\nwork by `Seantis `_ and released\n`collective.vdexvocabulary\n`_. This\npackage allows you to configure and populate vocabulary components\nfrom a VDEX-specification. The package supports flat vocabularies\nonly, and support for multiple languages takes a different approach\n(vocabularies are returned in an already translated form). Note that\nvocabularies are loaded in a read-only mode, although it's been\nproposed that vocabularies might be edited through-the-web.\n\nIn 2005, Jens Klein released\n`ATVocabularyManager\n`_. This package makes\nit possible to create taxonomies using Plone's content management\ninterface with terms existing as regular site content. It's integrated\nwith the `Archetypes `_ content\ntype framework (now deprecated).\n\n\n.. [#] Term relationships are currently not supported.\n\nChanges\n=======\n\n1.5.1 (2018-10-25)\n------------------\n\n- Fix bug in cachekey generator\n [petschki]\n\n\n1.5.0 (2018-10-18)\n------------------\n\n- Fix controlpanel to show settings navigation\n [petschki]\n\n- Memoize vocabulary lookup\n [tomgross, petschki]\n\n- Fix #53 when editing taxonomy data the first time\n [petschki]\n\n- Update german translations\n [petschki]\n\n- Add uninstall profile\n [petschki]\n\n- When using \"delete\" option on import, clear any previous ordering.\n [malthe]\n\n- Add support for specifying behavior field prefix.\n [malthe]\n\n- The `getTermByToken` method now accepts an optional argument\n `tail_only` which if set, returns a message object where the title\n translates to the last path segment (the \"tail\" node).\n [malthe]\n\n- Added new method `makeTree` on taxonomy vocabulary class which\n returns a term tree.\n [malthe]\n\n- Support \"slash\" character in term title (issue #34).\n [malthe]\n\n- When uploading a taxonomy there is now an option to purge the\n existing entries prior to processing.\n [malthe]\n\n- Taxonomies are now assigned a persistent order. Taxonomies imported\n from VDEX now preserve the ordering of the input document.\n [malthe]\n\n- Add new method `iterEntries` on taxonomy vocabulary class that\n provides a safe way to iterate over the path to identifier mapping\n (in order).\n [malthe]\n\n- Vocabulary is a IVocabularyTokenized implementer.\n [cedricmessiant]\n\n- updateBehavior method can now modify other attributes (and not only `field_title`).\n [cedricmessiant]\n\n- Add explicit dependency on plone.api >= 1.5 which\n the api.portal.get_current_language api was introduced.\n [vincentfretin]\n\n- Add german translation\n [tomgross]\n\n- Mention Plone 5.0 and 5.1 compatibility\n [tkimnguyen]\n\n- Enable choosing what fieldset to use for the behavior fields. Fallback to categorization,\n keeping backwards compatibility.\n [sunew]\n\n- Change to no longer register example *Test*-taxonomy on install\n [datakurre]\n\n- Fix issue where taxonomy indexer adapter was not properly unregistered from\n the persistent local registry on taxonomy removal\n [datakurre]\n\n- Fix issue where public ++taxonomy++short_name -traverser for returning\n generator of (key, label) tuples for given taxonomy was broken\n [datakurre]\n\n\n1.4.4 (2016-11-29)\n------------------\n\n- Fix taxonomy export that was broken since 1.4.0.\n [vincentfretin]\n\n\n1.4.3 (2016-11-29)\n------------------\n\n- Fix save action to work on Plone 5 (by reading portal url from\n body[data-portal-url] and adding X-CSRF-TOKEN for post requests\n [datakurre]\n\n- Fix BehaviorRegistrationNotFound error with Plone 5.0.6\n [tomgross]\n\n- Use lxml instead of elementtree\n [tomgross]\n\n- Rename fontello font to taxonomy to avoid clash with Plone 5 theme\n [vincentfretin]\n\n\n1.4.2 (2016-11-08)\n------------------\n\n- Fix save action in edit-taxonomy-data. This was a regression in 1.4.0, the\n get parameter should be taxonomy, not form.widgets.taxonomy.\n [cedricmessiant]\n\n\n1.4.1 (2016-11-03)\n------------------\n\n- Remove Save and Cancel buttons in controlpanel introduced 1.4.0.\n [vincentfretin]\n\n- Add missing upgrade step to create records in registry.\n [vincentfretin]\n\n\n1.4.0 (2016-11-03)\n------------------\n\n- Getting language by acquisition, indeed some Dexterity content has no language or empty language.\n [bsuttor]\n\n- Fix empty context.REQUEST.get('form.widgets.taxonomy'). It add it into POST form.\n [bsuttor]\n\n- Plone 5 compatibility\n [tomgross]\n\n- Use context language to find index.\n [bsuttor]\n\n\n1.3.0 (2016-07-07)\n------------------\n\n- Fix index when taxonomy is added as field.\n [bsuttor]\n\n- Now uses a React/Redux app to edit taxonomy data. It is now possible to edit\n the data in multiple languages and to compare between languages.\n [cedricmessiant]\n\n- Fix index when taxonomy is added as field.\n [bsuttor]\n\n- Now uses a React/Redux app to edit taxonomy data. It is now possible to edit\n the data in multiple languages and to compare between languages.\n [cedricmessiant]\n\n- Add PATH_SEPARATOR constant to be able to use '/' character in terms.\n [cedricmessiant]\n\n- Add ++taxonomy++[shortname] -traverser to be usable with PloneFormGen\n dynamic field vocabulary overrides\n [datakurre]\n\n- prevent taxonomy reset on reinstall if you've defined a vdex xml file\n in your profile\n [petschki]\n\n- Plone 5 compatibility\n [tomgross]\n\n1.2.3 (2014-02-07)\n------------------\n\n- ConfigParser supports allow_no_value on Python 2.6, so we cannot allow empty values,\n only on 2.7 or newer.\n [bosim]\n\n1.2.2 (2014-01-03)\n------------------\n\nBugfix release\n\n- Fixed problem with registration of search citeria in collections, the previous\n registration broke export feature of plone.app.registry. Upgrade step has been\n added so please upgrade.\n [bosim]\n\n1.2.1 (2013-11-12)\n------------------\n\nBugfix release, please upgrade\n\n- Using Schema from plone.supermodel. Fixes issue #6\n [bosim]\n\n- Rewrote behavior creation routine. Fixes issue #5\n [bosim]\n\n1.2 (2013-11-12)\n----------------\n\n- Add collective.js.jqueryui as dependency. Install it automatically.\n [maurits]\n\n- i18n fixes,\n messages extraction script,\n french translation.\n [thomasdesvenain]\n\n- Fixed error in vdex import.\n [thomasdesvenain]\n\n- Avoid failure at export when no default language was selected.\n [thomasdesvenain]\n\n- Remove dependency form plone.directives\n [thomasdesvenain]\n\n- Added elementtree in dependencies\n [thomasdesvenain]\n\n1.1 (2013-07-16)\n----------------\n\n- Taxonomies can now be added without uploading a VDEX file.\n [bosim]\n\n- Taxonomies can be exported/imported via GenericSetup again.\n [bosim]\n\n- Single select fields are now possible again.\n [bosim]\n\n1.0 (2013-05-07)\n----------------\n\n- Initial release\n [bosim]\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/collective.taxonomy", "keywords": "plone taxonomy dexterity", "license": "GPLv2+", "maintainer": "", "maintainer_email": "", "name": "collective.taxonomy", "package_url": "https://pypi.org/project/collective.taxonomy/", "platform": "", "project_url": "https://pypi.org/project/collective.taxonomy/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/collective.taxonomy" }, "release_url": "https://pypi.org/project/collective.taxonomy/1.5.1/", "requires_dist": null, "requires_python": "", "summary": "Create, edit and use hierarchical taxonomies in Plone!", "version": "1.5.1" }, "last_serial": 4414579, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "a17c74c7ec5e9f9137ca17fd8ddbd4f5", "sha256": "41f1fb3fb4bb1bdb7705908600be33a6eb927deef54b311b645fb66547af8afe" }, "downloads": -1, "filename": "collective.taxonomy-1.0.tar.gz", "has_sig": false, "md5_digest": "a17c74c7ec5e9f9137ca17fd8ddbd4f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61507, "upload_time": "2013-07-05T11:55:21", "url": "https://files.pythonhosted.org/packages/fa/ad/2ea28c52bc6fd2bede4a396fb7d442077f8554333caae79a9ab3909519ba/collective.taxonomy-1.0.tar.gz" } ], "1.0-dev": [], "1.0-rc1": [], "1.1": [ { "comment_text": "", "digests": { "md5": "ff2fe34455cf3de61b210cd83e524fad", "sha256": "b7db21122cfbbd423c13e368a4096df7f88c454ad05c769cbb98f19be8ab5117" }, "downloads": -1, "filename": "collective.taxonomy-1.1.tar.gz", "has_sig": false, "md5_digest": "ff2fe34455cf3de61b210cd83e524fad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61594, "upload_time": "2013-07-17T07:49:58", "url": "https://files.pythonhosted.org/packages/b5/8f/7a33ba9197094e044b05a7f540334ff476135b0e57d8c688ad912c6cf572/collective.taxonomy-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "81dec48dc95c5123bde6b8f8d452550a", "sha256": "283468fde6c627e549ef49aa92f759e5c3a53da9852171e4e70cca8d7fe8b8da" }, "downloads": -1, "filename": "collective.taxonomy-1.2.tar.gz", "has_sig": false, "md5_digest": "81dec48dc95c5123bde6b8f8d452550a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67451, "upload_time": "2013-11-12T08:47:09", "url": "https://files.pythonhosted.org/packages/f0/83/ac48f9b74457d1170e0725e8e25b7bd5296e32e26b3c69e8300f15b2aec8/collective.taxonomy-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "3e759648bd38e562aa4f8f7bfd6fa520", "sha256": "9b416788c7bce8d4df3707e8dc5966e4be9e0e17ab4552c3321639cbc95c9488" }, "downloads": -1, "filename": "collective.taxonomy-1.2.1.tar.gz", "has_sig": false, "md5_digest": "3e759648bd38e562aa4f8f7bfd6fa520", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67597, "upload_time": "2013-11-12T09:45:57", "url": "https://files.pythonhosted.org/packages/59/fb/0f55bc3c2909b05750ac2e6fc32918e6ecf209a55f963582ddb923172b28/collective.taxonomy-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "9e8ed245c66588c02bddf5567b396c6f", "sha256": "2769d1081b3bfbd0a89d6bb63a46bc3e265aad46e3554d29a67c3f6fb45e8605" }, "downloads": -1, "filename": "collective.taxonomy-1.2.2.tar.gz", "has_sig": false, "md5_digest": "9e8ed245c66588c02bddf5567b396c6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68011, "upload_time": "2014-01-03T10:18:07", "url": "https://files.pythonhosted.org/packages/1e/91/cd334cfd5c48568c289a6e4b304fb52ebe874f2899d21fb7515af2eabd61/collective.taxonomy-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "dbbb1d323994d8e0b7666939ab867516", "sha256": "7e9884b3c30ff89b5be5ac2e6d4aab440cd4abfcf90663d49c545e74aedc88fa" }, "downloads": -1, "filename": "collective.taxonomy-1.2.3.tar.gz", "has_sig": false, "md5_digest": "dbbb1d323994d8e0b7666939ab867516", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68326, "upload_time": "2014-02-07T09:18:32", "url": "https://files.pythonhosted.org/packages/0f/12/63c30758f7cbbe6b41e71b2ed2abd95e28868e3e027694192be8e74a0b4f/collective.taxonomy-1.2.3.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "2d125a051e6e02ac810db6ad312ff596", "sha256": "6668aee0980c3a8e64e3e7607373393e6884b5273bc1e247592c578c272ab484" }, "downloads": -1, "filename": "collective.taxonomy-1.3.0.tar.gz", "has_sig": false, "md5_digest": "2d125a051e6e02ac810db6ad312ff596", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 333745, "upload_time": "2016-07-07T14:17:06", "url": "https://files.pythonhosted.org/packages/28/f8/187ffdd9a972949d7fd6d4fb4201c92f10c8783bcf38409c1a1648d363bb/collective.taxonomy-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "6627bb353909646f084bd6d3cb2538a8", "sha256": "38a6a39f4e6eddfebc793f884a5f8895b4d250309bd788e2643e1450eb85631b" }, "downloads": -1, "filename": "collective.taxonomy-1.4.0.tar.gz", "has_sig": false, "md5_digest": "6627bb353909646f084bd6d3cb2538a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 334616, "upload_time": "2016-11-03T15:00:02", "url": "https://files.pythonhosted.org/packages/4c/5c/4a8a9248ea2c7f4abbc222772f2b246db3aa252323a437c176249b001dc9/collective.taxonomy-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "63d01d393caf50ccb7f4228579fe2076", "sha256": "3c23a2d6c428b678593992fbd146014a73c3a799ef8a3f327f2f4c3da914a1ad" }, "downloads": -1, "filename": "collective.taxonomy-1.4.1.tar.gz", "has_sig": false, "md5_digest": "63d01d393caf50ccb7f4228579fe2076", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 334922, "upload_time": "2016-11-03T15:56:41", "url": "https://files.pythonhosted.org/packages/9f/fd/fd096b8af58b5cff9a75d23d6f09830a8ade35d5c0ad2dbddf39430a5187/collective.taxonomy-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "e07b2f582b67111c5bdb1201b97aa632", "sha256": "a6473a02b78ac3f6606db40ae7e7b1855447598069d30eeb1039d26e9bff49ff" }, "downloads": -1, "filename": "collective.taxonomy-1.4.2.tar.gz", "has_sig": false, "md5_digest": "e07b2f582b67111c5bdb1201b97aa632", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 335100, "upload_time": "2016-11-08T14:32:38", "url": "https://files.pythonhosted.org/packages/40/8f/6e2e95205e6dd24d5801a2665474ca96393333ecc0111aadc3c5677291b6/collective.taxonomy-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "161a4ad5ee8db67f91513c59df56f0a2", "sha256": "cf155ab0f9f25892ca2263ad1589fea847d20ccfaf63e6e2d55b71b381563832" }, "downloads": -1, "filename": "collective.taxonomy-1.4.3.tar.gz", "has_sig": false, "md5_digest": "161a4ad5ee8db67f91513c59df56f0a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 339132, "upload_time": "2016-11-29T12:00:56", "url": "https://files.pythonhosted.org/packages/d5/23/fb64ea1db5b690fee9a31289c25fb6c9aeb39df7c31a5daa578ad0224125/collective.taxonomy-1.4.3.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "ac5963f55e97ac3a4e2f72752f7fe819", "sha256": "e14bc539f703cf74b4fff4a6481c7bdca77315a2e713bba7f3cb9a236464e0c4" }, "downloads": -1, "filename": "collective.taxonomy-1.4.4.tar.gz", "has_sig": false, "md5_digest": "ac5963f55e97ac3a4e2f72752f7fe819", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 339200, "upload_time": "2016-11-29T12:52:55", "url": "https://files.pythonhosted.org/packages/5f/bd/e68466cbc2bb397e9589a9e7639e2df26895b96b1bfcd592bf4478c2d656/collective.taxonomy-1.4.4.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "90461db99d757b9f6ba4ff22bfed2f99", "sha256": "7658964af15b2e7d65930d9da1e40fc114ae5b466b71e4b39b18c255e1d6366e" }, "downloads": -1, "filename": "collective.taxonomy-1.5.0.tar.gz", "has_sig": false, "md5_digest": "90461db99d757b9f6ba4ff22bfed2f99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 355258, "upload_time": "2018-10-18T11:54:08", "url": "https://files.pythonhosted.org/packages/1f/bd/c3bb2822e03a50606fef1a41c1d8d336d672749cda3230624d2df7f2f3ff/collective.taxonomy-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "7f9c6cd0306c6f6eb246c326486b2db8", "sha256": "c60de90f6125749e6a18f80e7adc97fba2fb3b07563d5f86bcb67c1537b623ec" }, "downloads": -1, "filename": "collective.taxonomy-1.5.1.tar.gz", "has_sig": false, "md5_digest": "7f9c6cd0306c6f6eb246c326486b2db8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 355420, "upload_time": "2018-10-25T10:20:16", "url": "https://files.pythonhosted.org/packages/f8/b1/c87fed46640ea3430500eee9daa185880d4fe0fa0cf29832fdee82d53ab0/collective.taxonomy-1.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7f9c6cd0306c6f6eb246c326486b2db8", "sha256": "c60de90f6125749e6a18f80e7adc97fba2fb3b07563d5f86bcb67c1537b623ec" }, "downloads": -1, "filename": "collective.taxonomy-1.5.1.tar.gz", "has_sig": false, "md5_digest": "7f9c6cd0306c6f6eb246c326486b2db8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 355420, "upload_time": "2018-10-25T10:20:16", "url": "https://files.pythonhosted.org/packages/f8/b1/c87fed46640ea3430500eee9daa185880d4fe0fa0cf29832fdee82d53ab0/collective.taxonomy-1.5.1.tar.gz" } ] }