{ "info": { "author": "Sebastian Bank", "author_email": "sebastian.bank@uni-leipzig.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Scientific/Engineering :: Visualization" ], "description": "Features\r\n========\r\n\r\n|PyPI version| |License| |Supported Python| |Format| |Docs|\r\n\r\n|Travis| |Codecov|\r\n\r\nFeatures is a simple implementation of **feature set algebra** in Python.\r\n\r\nLinguistic analyses commonly use sets of **binary or privative features** to\r\nrefer to different groups of linguistic objects: for example a group of\r\n*phonemes* that share some phonological features like ``[-consonantal, +high]``\r\nor a set of *morphemes* that occur in context of a specific person/number\r\ncombination like ``[-participant, GROUP]``. Usually, the features are applied in\r\na way such that only **some of their combinations are valid**, while others are\r\nimpossible (i.e. refer to no object) |--| for example ``[+high, +low]``, or\r\n``[-participant, +speaker]``.\r\n\r\nWith this package, such feature systems can be defined with a simple contingency\r\n**table definition** (feature matrix) and stored under a section name in a\r\nsimple clear-text **configuration file**. Each feature system can then be\r\n**loaded** by its name and provides its own ``FeatureSet`` subclass that\r\nimplements all **comparisons and operations** between its feature sets according\r\nto the given definition (compatibility, entailment, intersection, unification,\r\netc.).\r\n\r\nFeatures creates the **complete lattice** structure between the possible feature\r\nsets of each feature system and lets you navigate and **visualize their\r\nrelations** using the `Graphviz graph layout software`_.\r\n\r\n\r\nLinks\r\n-----\r\n\r\n- GitHub: https://github.com/xflr6/features\r\n- PyPI: https://pypi.org/project/features/\r\n- Documentation: https://features.readthedocs.io\r\n- Changelog: https://features.readthedocs.io/en/latest/changelog.html\r\n- Issue Tracker: https://github.com/xflr6/features/issues\r\n- Download: https://pypi.org/project/features/#files\r\n\r\n\r\nInstallation\r\n------------\r\n\r\nThis package runs under Python 2.7 and 3.5+, use pip_ to install:\r\n\r\n.. code:: bash\r\n\r\n $ pip install features\r\n\r\nThis will also install the concepts_ package from PyPI providing the `Formal\r\nConcept Analysis`_ (FCA) algorithms on which this package is based.\r\n\r\n\r\nQuickstart\r\n----------\r\n\r\nLoad a **predefined feature system** by name (in this case features for a\r\nsix-way person/number distinction, cf. the definitions in the bundled\r\n``config.ini`` in the `source repository`_). \r\n\r\n.. code:: python\r\n\r\n >>> import features\r\n\r\n >>> fs = features.FeatureSystem('plural')\r\n\r\n >>> print(fs.context) # doctest: +ELLIPSIS\r\n \r\n |+1|-1|+2|-2|+3|-3|+sg|+pl|-sg|-pl|\r\n 1s|X | | |X | |X |X | | |X |\r\n 1p|X | | |X | |X | |X |X | |\r\n 2s| |X |X | | |X |X | | |X |\r\n 2p| |X |X | | |X | |X |X | |\r\n 3s| |X | |X |X | |X | | |X |\r\n 3p| |X | |X |X | | |X |X | |\r\n\r\n\r\nCreate **feature sets** from strings or string sequences. Use **feature string\r\nparsing**, get back string sequences and feature or extent strings in\r\ntheir canonical order (definition order):\r\n\r\n.. code:: python\r\n\r\n >>> fs('+1 +sg'), fs(['+2', '+2', '+sg']), fs(['+sg', '+3'])\r\n (FeatureSet('+1 +sg'), FeatureSet('+2 +sg'), FeatureSet('+3 +sg'))\r\n\r\n >>> fs('SG1').concept.intent\r\n ('+1', '-2', '-3', '+sg', '-pl')\r\n\r\n >>> fs('1').string, fs('1').string_maximal, fs('1').string_extent\r\n ('+1', '+1 -2 -3', '1s 1p')\r\n\r\n\r\nUse **feature algebra**: intersection (`join`) , union/unification (`meet`),\r\nset inclusion (`extension/subsumption`). Do feature set comparisons\r\n(`logical connectives`_).\r\n\r\n.. code:: python\r\n\r\n >>> fs('+1 +sg') % fs('+2 +sg')\r\n FeatureSet('-3 +sg')\r\n\r\n >>> fs('-3') ^ fs('+1') ^ fs('-pl')\r\n FeatureSet('+1 +sg')\r\n\r\n >>> fs('+3') > fs('-1') and fs('+pl') < fs('+2 -sg')\r\n True\r\n\r\n >>> fs('+1').incompatible_with(fs('+3')) and fs('+sg').complement_of(fs('+pl'))\r\n True\r\n\r\n\r\nNavigate the created subsumption lattice_ (`Hasse graph`_) of **all valid\r\nfeature sets**:\r\n\r\n.. code:: python\r\n\r\n >>> fs('+1').upper_neighbors, fs('+1').lower_neighbors\r\n ([FeatureSet('-3'), FeatureSet('-2')], [FeatureSet('+1 +sg'), FeatureSet('+1 +pl')])\r\n\r\n >>> fs('+1').upset()\r\n [FeatureSet('+1'), FeatureSet('-3'), FeatureSet('-2'), FeatureSet('')]\r\n\r\n >>> for f in fs: # doctest: +ELLIPSIS\r\n ... print('[%s] <-> {%s}' % (f.string_maximal, f.string_extent))\r\n [+1 -1 +2 -2 +3 -3 +sg +pl -sg -pl] <-> {}\r\n [+1 -2 -3 +sg -pl] <-> {1s}\r\n ...\r\n [-1] <-> {2s 2p 3s 3p}\r\n [] <-> {1s 1p 2s 2p 3s 3p}\r\n\r\n\r\nSee `the docs`_ on how to define, load, and use **your own feature systems**.\r\n\r\n\r\nFurther reading\r\n---------------\r\n\r\n- https://en.wikipedia.org/wiki/Join_and_meet\r\n- https://en.wikipedia.org/wiki/Formal_concept_analysis\r\n- http://www.upriss.org.uk/fca/\r\n\r\n\r\nSee also\r\n--------\r\n\r\n- concepts_ |--| Formal Concept Analysis with Python\r\n- fileconfig_ |--| Config file sections as objects\r\n- graphviz_ |--| Simple Python interface for Graphviz\r\n\r\n\r\nLicense\r\n-------\r\n\r\nFeatures is distributed under the `MIT license`_.\r\n\r\n\r\n.. _pip: https://pip.readthedocs.io\r\n\r\n.. _Graphviz graph layout software: http://www.graphviz.org\r\n.. _Formal Concept Analysis: https://en.wikipedia.org/wiki/Formal_concept_analysis\r\n.. _source repository: https://github.com/xflr6/features/blob/master/features/config.ini\r\n.. _logical connectives: https://en.wikipedia.org/wiki/Template:Logical_connectives_table_and_Hasse_diagram\r\n.. _lattice: https://en.wikipedia.org/wiki/Lattice_(order)\r\n.. _Hasse graph: https://en.wikipedia.org/wiki/Hasse_diagram\r\n.. _the docs: https://features.readthedocs.io/en/stable/manual.html\r\n\r\n.. _concepts: https://pypi.org/project/concepts/\r\n.. _fileconfig: https://pypi.org/project/fileconfig/\r\n.. _graphviz: https://pypi.org/project/graphviz/\r\n\r\n.. _MIT license: https://opensource.org/licenses/MIT\r\n\r\n\r\n.. |--| unicode:: U+2013\r\n\r\n\r\n.. |PyPI version| image:: https://img.shields.io/pypi/v/features.svg\r\n :target: https://pypi.org/project/features/\r\n :alt: Latest PyPI Version\r\n.. |License| image:: https://img.shields.io/pypi/l/features.svg\r\n :target: https://pypi.org/project/features/\r\n :alt: License\r\n.. |Supported Python| image:: https://img.shields.io/pypi/pyversions/features.svg\r\n :target: https://pypi.org/project/features/\r\n :alt: Supported Python Versions\r\n.. |Format| image:: https://img.shields.io/pypi/format/features.svg\r\n :target: https://pypi.org/project/features/\r\n :alt: Format\r\n.. |Docs| image:: https://readthedocs.org/projects/features/badge/?version=stable\r\n :target: https://features.readthedocs.io/en/stable/\r\n :alt: Readthedocs\r\n.. |Travis| image:: https://img.shields.io/travis/xflr6/features.svg\r\n :target: https://travis-ci.org/xflr6/features\r\n :alt: Travis\r\n.. |Codecov| image:: https://codecov.io/gh/xflr6/features/branch/master/graph/badge.svg\r\n :target: https://codecov.io/gh/xflr6/features\r\n :alt: Codecov\r\n\r\n\r\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xflr6/features", "keywords": "lattice morphology phonology learning fca", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "features", "package_url": "https://pypi.org/project/features/", "platform": "any", "project_url": "https://pypi.org/project/features/", "project_urls": { "Homepage": "https://github.com/xflr6/features" }, "release_url": "https://pypi.org/project/features/0.5.11/", "requires_dist": [ "concepts (~=0.7)", "fileconfig (~=0.5)", "graphviz (~=0.7)", "flake8 ; extra == 'dev'", "pep8-naming ; extra == 'dev'", "wheel ; extra == 'dev'", "twine ; extra == 'dev'", "sphinx (>=1.7) ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'", "pytest (!=3.10.0,>=3.4) ; extra == 'test'", "pytest-cov ; extra == 'test'" ], "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "summary": "Feature set algebra for linguistics", "version": "0.5.11" }, "last_serial": 5370477, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3e8424f585baf1f738ba30a58896ccdd", "sha256": "994dda464e29d72dfa25296e058cea6e9da476bde52d0816bf9c7534d851db42" }, "downloads": -1, "filename": "features-0.1.zip", "has_sig": false, "md5_digest": "3e8424f585baf1f738ba30a58896ccdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107584, "upload_time": "2014-01-19T17:58:07", "url": "https://files.pythonhosted.org/packages/a3/54/10f9532eb321539e2f748067d1bb73e15f05347111164c47c1452082cd73/features-0.1.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "4623864dfed42838360ad11c7c348c39", "sha256": "ecac00c8ea4e039768f2c472cd8b261b201682266afa8fb98f9b76863f653829" }, "downloads": -1, "filename": "features-0.1.1.zip", "has_sig": false, "md5_digest": "4623864dfed42838360ad11c7c348c39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107768, "upload_time": "2014-01-19T18:28:51", "url": "https://files.pythonhosted.org/packages/3d/d7/47fa9dcd2d737fd409f2afff7bb5c01afa9c6de01728558dcbf9d403df70/features-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e3edb4c71bd38480761f9f546ec7a928", "sha256": "1b6a3750e612044ea25ffc9635dc9077734e1dcc92165b5d733ba80bbb093ba6" }, "downloads": -1, "filename": "features-0.1.2.zip", "has_sig": false, "md5_digest": "e3edb4c71bd38480761f9f546ec7a928", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108137, "upload_time": "2014-01-20T12:25:02", "url": "https://files.pythonhosted.org/packages/ec/0f/9ff21d111a7210641e7878464abc28904b97e24dfd5d7218a29e467b62c5/features-0.1.2.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6573a45a556ea188956a1f4eba99b1d9", "sha256": "409565e0c449d895286663290c92a45c18f6c5d8a4815cc4f1616175a0ea9acc" }, "downloads": -1, "filename": "features-0.1.3.zip", "has_sig": false, "md5_digest": "6573a45a556ea188956a1f4eba99b1d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108216, "upload_time": "2014-01-21T22:56:44", "url": "https://files.pythonhosted.org/packages/ad/50/3dd30bc306cc51cbca44a45d53479b7d6e3926edf0c535603710381c5597/features-0.1.3.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "0e0f08f89cde4e1a878dff075d8bb652", "sha256": "903cbfa58c0878f4ff4b43be48ef62d87b9d6dceeb46113dd9c9ae6441ddad50" }, "downloads": -1, "filename": "features-0.2.zip", "has_sig": false, "md5_digest": "0e0f08f89cde4e1a878dff075d8bb652", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108401, "upload_time": "2014-01-26T16:40:53", "url": "https://files.pythonhosted.org/packages/cc/f2/f0a4b2883bf6af343349c0a581016bd79f9b95b98041494c4cd57fd04465/features-0.2.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "f3baf4d120b782ebbada964c0bdc988a", "sha256": "5c3333fda6ffd40bf3590c1e81cb36e836159d94e7f11663fc089153960adec9" }, "downloads": -1, "filename": "features-0.3.zip", "has_sig": false, "md5_digest": "f3baf4d120b782ebbada964c0bdc988a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108918, "upload_time": "2014-02-10T22:35:29", "url": "https://files.pythonhosted.org/packages/ad/40/066312bfc188069088af2cc061de1fcafeb21d915cec8be51d3ed352075c/features-0.3.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "0e88cb852065cea830fd6bc9a3ee46d1", "sha256": "268cf45d3560a8f5a64436c76193b5917955f0bf486490e7f7b51fb63613b0e6" }, "downloads": -1, "filename": "features-0.4.zip", "has_sig": false, "md5_digest": "0e88cb852065cea830fd6bc9a3ee46d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109346, "upload_time": "2014-02-11T10:49:41", "url": "https://files.pythonhosted.org/packages/5d/ae/e2c768ea51cf549705913024fa749d7d9da799ece7d7bb7e6be302ca1769/features-0.4.zip" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "0a1f17ec40fe260f3f9e7a73253d5929", "sha256": "b95e4e922fe0f5d5309945a2b7849c3c439a83920b33091f0b01110f009fa59f" }, "downloads": -1, "filename": "features-0.4.1.zip", "has_sig": false, "md5_digest": "0a1f17ec40fe260f3f9e7a73253d5929", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111974, "upload_time": "2014-02-14T12:53:39", "url": "https://files.pythonhosted.org/packages/0b/54/480022d3ee0fee7399cc9bbc03bb010616bd06ad4f6ebd8d0e08ec00dafe/features-0.4.1.zip" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "add0188d60fe0b71c6198699494504bc", "sha256": "0fdde3052abe00636cc46e38fe604cf4a95f337a7e3519d182bd7a065be4e009" }, "downloads": -1, "filename": "features-0.4.2.zip", "has_sig": false, "md5_digest": "add0188d60fe0b71c6198699494504bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 112413, "upload_time": "2014-03-03T13:42:55", "url": "https://files.pythonhosted.org/packages/d9/b7/c6cb3cb8084386b10d0f2415338bee38f0cefcfef76960f220957dd44a13/features-0.4.2.zip" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "2b8602f0f274dd724c8d3e7d3e7c4a3f", "sha256": "ace1c36897b5860bd1d4268f5983c2ae5cb6330a56c038d35004a420965070ce" }, "downloads": -1, "filename": "features-0.5.zip", "has_sig": false, "md5_digest": "2b8602f0f274dd724c8d3e7d3e7c4a3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119477, "upload_time": "2014-05-02T09:17:15", "url": "https://files.pythonhosted.org/packages/d0/7b/830ee5f5ab02775530684dee689ce9f0e457a7888abfaf667e3cb0482a39/features-0.5.zip" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "5567b47319cdcf39aa31226bc29daffb", "sha256": "aa57e6a05c85426c71a422b41348a246cf283531e54d5e3c2964135e94eeefd1" }, "downloads": -1, "filename": "features-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5567b47319cdcf39aa31226bc29daffb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 21879, "upload_time": "2014-05-20T14:05:46", "url": "https://files.pythonhosted.org/packages/f5/21/814bf9949e1c0ffb203312f77276e372ae96742f702935fab4d435cbe15b/features-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a87c0f33748baa88e135c3a9e8ec5e9", "sha256": "4d8d723be4e04878ed57051f3063940c86f08cf4d3ec3e07caad333de2daf654" }, "downloads": -1, "filename": "features-0.5.1.zip", "has_sig": false, "md5_digest": "0a87c0f33748baa88e135c3a9e8ec5e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 119361, "upload_time": "2014-05-20T14:05:44", "url": "https://files.pythonhosted.org/packages/53/73/0be2f6291d7cd14260905358ffecb159f59eff744aad4fc2ea9819ba5461/features-0.5.1.zip" } ], "0.5.10": [ { "comment_text": "", "digests": { "md5": "966eddecff959f48651ceddf2ee3a2bb", "sha256": "9b6d1a380de2be088de6be4759017f53da097aeb66abc766850904382a848ccb" }, "downloads": -1, "filename": "features-0.5.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "966eddecff959f48651ceddf2ee3a2bb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 15655, "upload_time": "2018-10-31T19:22:05", "url": "https://files.pythonhosted.org/packages/fa/81/16b4fed373bdc76d5c0429bb82fa3c25ee08dade8da7ae588c2770adb5c4/features-0.5.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e74c52b521827aedf2b91848d40c1c19", "sha256": "1919fbaa080213316c8f8e1ed8d3c0fd365a5f625e6376a95330e5771324732b" }, "downloads": -1, "filename": "features-0.5.10.zip", "has_sig": false, "md5_digest": "e74c52b521827aedf2b91848d40c1c19", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 125266, "upload_time": "2018-10-31T19:22:08", "url": "https://files.pythonhosted.org/packages/af/c2/d047aa7b459f8054a66aebe27723772968ca7fe28ae46e853f6181149486/features-0.5.10.zip" } ], "0.5.11": [ { "comment_text": "", "digests": { "md5": "da215f468e52c07a664b747913ec76b2", "sha256": "f27f8a0d91fb37ff0da07b48494860e1ef04e17e7215c71314a0d1c7c9a1be62" }, "downloads": -1, "filename": "features-0.5.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da215f468e52c07a664b747913ec76b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 15806, "upload_time": "2019-06-07T08:06:23", "url": "https://files.pythonhosted.org/packages/7c/a1/263892cd8cd8c15d9132994d334b1e4294850071351bbea702749d631073/features-0.5.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7122191ae94e64ead6466c4773e2ec0d", "sha256": "f5b5b507ad0e3384686ebe9f811c685bbb3686f5c58acf6ca61f66cf67e01959" }, "downloads": -1, "filename": "features-0.5.11.zip", "has_sig": false, "md5_digest": "7122191ae94e64ead6466c4773e2ec0d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 126393, "upload_time": "2019-06-07T08:06:25", "url": "https://files.pythonhosted.org/packages/3f/29/b7c73372f3196c67e34b3f4d7992053d89fbcd92b9eee2086add25fccfbe/features-0.5.11.zip" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "1738ddda9df0aa4741ad1e36ab16a96a", "sha256": "189c868f8d98825d8e96283998a4a71876271615374bc80ec17ba051918df3e7" }, "downloads": -1, "filename": "features-0.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1738ddda9df0aa4741ad1e36ab16a96a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 23686, "upload_time": "2014-08-31T16:44:27", "url": "https://files.pythonhosted.org/packages/88/64/d4c3456b1c6fd197a4aeab036ee0829e49448b2fccaadeee4fa06c8f2b0f/features-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9979acb13c35814cab7faa1670dd36c", "sha256": "f94fe2c90046ff0613dfe7eee915b236757738b39a94e38ea037c50ac0c7d507" }, "downloads": -1, "filename": "features-0.5.2.zip", "has_sig": false, "md5_digest": "c9979acb13c35814cab7faa1670dd36c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122132, "upload_time": "2014-08-31T16:44:21", "url": "https://files.pythonhosted.org/packages/9a/f6/1638c99513888727e45693a9f8a5aae7b9f6567d5458e210f1a3666dc8fd/features-0.5.2.zip" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "23446238186b6eb5d955e97a8fce2857", "sha256": "77cde2decd7bc6eb70041417b75dd1306102db7eaa56e553940d70565f6a3fa7" }, "downloads": -1, "filename": "features-0.5.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23446238186b6eb5d955e97a8fce2857", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 23922, "upload_time": "2015-05-22T17:27:40", "url": "https://files.pythonhosted.org/packages/d3/19/ba6e6d23709bb5276fc44d65746cb4a132c7c714a05a3b11b35ae3a4bcc2/features-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "222087a93ab40f810cb7afbb361b8356", "sha256": "71929568396a360b9ba9472fb6d3687703e1fb17cd8b743b10291267a6310681" }, "downloads": -1, "filename": "features-0.5.3.zip", "has_sig": false, "md5_digest": "222087a93ab40f810cb7afbb361b8356", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122717, "upload_time": "2015-05-22T17:27:36", "url": "https://files.pythonhosted.org/packages/84/52/242f06cc8ff4cff4927a2f1ff3df43d484c5de87100d410b345fbbdef5ba/features-0.5.3.zip" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "71bfc233cc1c6ae57ba121cac051fb05", "sha256": "1be7d6ce3751665965dd869f7bf20903d2b0f3fd7083a5a5ef3452082cb0ed1f" }, "downloads": -1, "filename": "features-0.5.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "71bfc233cc1c6ae57ba121cac051fb05", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17822, "upload_time": "2015-11-05T09:46:29", "url": "https://files.pythonhosted.org/packages/f1/ef/51d6a7ce57407abc338790a0b3bc04280f04dea839146f63b075fe38273f/features-0.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c0c4a567c84b7143adb4678dac9f7e6", "sha256": "3cbf404a8db32d482732ef397922d909d8cc8b42d8acc122e00fb8f9be2292d5" }, "downloads": -1, "filename": "features-0.5.4.zip", "has_sig": false, "md5_digest": "7c0c4a567c84b7143adb4678dac9f7e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 208044, "upload_time": "2015-11-05T09:46:06", "url": "https://files.pythonhosted.org/packages/85/67/cd97a5292a3545ee49e726e35be65b19440f9106986931ca086fa2d8f36c/features-0.5.4.zip" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "cdff6b9ec14cc7537410bdb48fb36e76", "sha256": "747927ca2a70495dbcd2d23fed96855e1ede50cd9ade640375fa92a252ef8b35" }, "downloads": -1, "filename": "features-0.5.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cdff6b9ec14cc7537410bdb48fb36e76", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17755, "upload_time": "2016-02-12T13:52:30", "url": "https://files.pythonhosted.org/packages/1d/f8/280b112c036f77b80bae8c1a6b420b14389ee68433108b7b2f72f3fbf82c/features-0.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "187446d3177e82825f921a2c6a40a64b", "sha256": "733c8a0211c5d6775679c3c00a4a2835d0729b4b032cfa55b1e440ee3562b287" }, "downloads": -1, "filename": "features-0.5.5.zip", "has_sig": false, "md5_digest": "187446d3177e82825f921a2c6a40a64b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 124630, "upload_time": "2016-02-12T13:52:24", "url": "https://files.pythonhosted.org/packages/b9/dc/c0bcccaf916d7d079d6c74d732efb8f156454caa43de3d72489f2af6db60/features-0.5.5.zip" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "50e44bbe82b0058df7d3b4a9077f96e1", "sha256": "222f7076978be747045186b807f566b82684df29c05dfbf57238467af5a4ba36" }, "downloads": -1, "filename": "features-0.5.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "50e44bbe82b0058df7d3b4a9077f96e1", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17900, "upload_time": "2017-05-17T16:04:47", "url": "https://files.pythonhosted.org/packages/5f/bf/e03b8973ac6b684e18a179bee95be2dd16fb3afb7b9fea664111062e1b79/features-0.5.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6afa0daa645ea16ae89d4780a3a48c9", "sha256": "fc9bdc3e408adedf5551067bd0075fea25c27c089f8ce03204ba712cdb3827f1" }, "downloads": -1, "filename": "features-0.5.6.zip", "has_sig": false, "md5_digest": "e6afa0daa645ea16ae89d4780a3a48c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125149, "upload_time": "2017-05-17T16:04:45", "url": "https://files.pythonhosted.org/packages/e2/86/36a11afdb04dee40d1532c3a83b7c38c83bba97d30c813db01036564af4f/features-0.5.6.zip" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "37100e26ff109cf7c415fe304c9d133c", "sha256": "7a61f459d1000bb7c770dae06e70153d5617e52384b80bbc95c4c7d31754bc14" }, "downloads": -1, "filename": "features-0.5.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "37100e26ff109cf7c415fe304c9d133c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 17921, "upload_time": "2017-05-28T06:25:50", "url": "https://files.pythonhosted.org/packages/f7/46/ee805ea52f2aaa4da8894a7a3231c055c972266cdefa4bbb92ef4a6cea22/features-0.5.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3ad7370254b99db55769e06bef59d4b", "sha256": "a529233a94bad8a307b22efa52b3d6a83ccf1589cbbc0778dd74f9fb94080533" }, "downloads": -1, "filename": "features-0.5.7.zip", "has_sig": false, "md5_digest": "d3ad7370254b99db55769e06bef59d4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125227, "upload_time": "2017-05-28T06:25:48", "url": "https://files.pythonhosted.org/packages/4e/ef/b60a35b5611b2eb937132e76c3e4c6b638aafab5035b055c8691722e5bf9/features-0.5.7.zip" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "c90d0fe24dbc3bfc0c6bf28080001518", "sha256": "db52249a49322a16aed3b9b87133828301c40af23cf3798af644b0d374ce19be" }, "downloads": -1, "filename": "features-0.5.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c90d0fe24dbc3bfc0c6bf28080001518", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18815, "upload_time": "2017-10-14T11:52:01", "url": "https://files.pythonhosted.org/packages/6d/83/6a69bf5f7ef9ee10b56f24f2a8d2ba88aae1a2f094c8af3544213e68eb1e/features-0.5.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c669f25d3967d2b16807d9032d3f11ce", "sha256": "985ed75021eb3680ff6a4ddb4bb617bfd4213f353b7911cd864163f7ee06fccd" }, "downloads": -1, "filename": "features-0.5.8.zip", "has_sig": false, "md5_digest": "c669f25d3967d2b16807d9032d3f11ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 125301, "upload_time": "2017-10-14T11:52:02", "url": "https://files.pythonhosted.org/packages/2a/fe/357c08dd7b8cfcb01735662ecf4baa7e6b9283b73e63cf299e02f4073062/features-0.5.8.zip" } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "dc1c8b91e1a0b8493d3a3cdfe04c7ccf", "sha256": "24db8e63e37cd3801fbfd41755025f2414439280f61ac607d44055a453c07920" }, "downloads": -1, "filename": "features-0.5.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dc1c8b91e1a0b8493d3a3cdfe04c7ccf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 15644, "upload_time": "2018-05-25T17:13:51", "url": "https://files.pythonhosted.org/packages/db/29/91b92a5c7593781622522fffdf5f7a9cc1fd2829a107b62aa7e698b6ea70/features-0.5.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f57586a35c63b84492d40c0d3a3dcb25", "sha256": "758b20f17e4e9ba90d3f6591f39db1817cbf94d413e7f0d0b7c6406aa062a9da" }, "downloads": -1, "filename": "features-0.5.9.zip", "has_sig": false, "md5_digest": "f57586a35c63b84492d40c0d3a3dcb25", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*", "size": 124758, "upload_time": "2018-05-25T17:13:57", "url": "https://files.pythonhosted.org/packages/3d/bb/aec10f222b569b57732618df7d922d89003b072e41a502c37d7bf9e418b2/features-0.5.9.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "da215f468e52c07a664b747913ec76b2", "sha256": "f27f8a0d91fb37ff0da07b48494860e1ef04e17e7215c71314a0d1c7c9a1be62" }, "downloads": -1, "filename": "features-0.5.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da215f468e52c07a664b747913ec76b2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 15806, "upload_time": "2019-06-07T08:06:23", "url": "https://files.pythonhosted.org/packages/7c/a1/263892cd8cd8c15d9132994d334b1e4294850071351bbea702749d631073/features-0.5.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7122191ae94e64ead6466c4773e2ec0d", "sha256": "f5b5b507ad0e3384686ebe9f811c685bbb3686f5c58acf6ca61f66cf67e01959" }, "downloads": -1, "filename": "features-0.5.11.zip", "has_sig": false, "md5_digest": "7122191ae94e64ead6466c4773e2ec0d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*", "size": 126393, "upload_time": "2019-06-07T08:06:25", "url": "https://files.pythonhosted.org/packages/3f/29/b7c73372f3196c67e34b3f4d7992053d89fbcd92b9eee2086add25fccfbe/features-0.5.11.zip" } ] }