{ "info": { "author": "Polyconseil", "author_email": "opensource+metaset@polyconseil.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "metaset\n=======\n\nThis package provides a collection that is basically a \"dict of sets\", named MetaSet.\n\n.. image:: https://travis-ci.org/Polyconseil/metaset.svg?branch=master\n :alt: Build status\n\n.. image:: https://img.shields.io/pypi/pyversions/metaset.svg\n :alt: Supported Python versions\n\n.. image:: https://img.shields.io/pypi/wheel/metaset.svg\n :alt: Wheel status\n\n.. image:: https://img.shields.io/pypi/l/metaset.svg\n :alt: License\n\nLinks\n-----\n\n- Package on `PyPI`_: http://pypi.python.org/pypi/metaset/\n- Source on `GitHub `_: http://github.com/Polyconseil/metaset/\n- Build on `Travis CI `_: http://travis-ci.org/lionel-panhaleux/metaset/\n\nQuickstart\n----------\n\nInstall the package from PyPI_, using pip:\n\n.. _PyPI: http://pypi.python.org/pypi/metaset/\n\n.. code-block:: sh\n\n pip install metaset\n\n\nOr from GitHub:\n\n.. code-block:: sh\n\n git clone git://github.com/Polyconseil/metaset.git\n\nImport it in your code:\n\n.. code-block:: python\n\n >>> from metaset import MetaSet\n\nUsage is quite straight forward,\nbasic set operations are supported via the binary operators ``+`` ``-`` ``|`` ``^``.\n\n.. code-block:: python\n\n >>> from pprint import pprint\n >>> pprint(MetaSet(a={1, 2}, b={3}) | MetaSet(b={4}, c={5}))\n {'a': {1, 2}, 'b': {3, 4}, 'c': {5}}\n\nDjango Postgres\n---------------\n\nA custom Django field is available.\nIt is quite straightforward:\n\n.. code-block:: python\n\n >>> from metaset.django_field import MetaSetField\n >>> from django.db import models # doctest: +SKIP\n\n >>> class MyModel(models.Model): # doctest: +SKIP\n mset = MetaSetField() # doctest: +SKIP\n\nIt is compatible with the following versions:\n\n- Django 1.11, Python 2.7\n- Django 2.1, Python 3.6\n\nDetailed considerations\n-----------------------\n\nThey are two ways to consider the \"dict of sets\" notion,\ndiffering on how you handle the empty values for keys.\n\nThe easiest idea is to consider that a key with no content is non-existent.\nThis is how the dictset_ package is implemented.\n\nIn this alternative implementation,\nwe chose to keep the empty keys as meaningful elements,\nallowing for smart unions and intersections.\n\n.. code-block:: python\n\n >>> pprint(MetaSet(a={1}) | MetaSet(a={2}, b=set()))\n {'a': {1, 2}, 'b': set()}\n\n >>> MetaSet(a={1}) & MetaSet(a={2}, b={3})\n {'a': set()}\n\nSo, beware of how empty-keys are handled,\nand consider using dictset_ if it is a better match for your use case.\nThe behavior for subtraction and symmetric difference,\nalthough sound on a mathematical point of view, may not be what you want.\n\n.. code-block:: python\n\n >>> MetaSet(a={1}) - MetaSet(a={1})\n {'a': set()}\n\n >>> MetaSet(a={1}) ^ MetaSet(a={1})\n {'a': set()}\n\n.. _dictset: https://code.google.com/archive/p/dictset/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "http://pypi.python.org/pypi/metaset/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Polyconseil/metaset", "keywords": "metaset,dictset,set,container", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "metaset", "package_url": "https://pypi.org/project/metaset/", "platform": "", "project_url": "https://pypi.org/project/metaset/", "project_urls": { "Download": "http://pypi.python.org/pypi/metaset/", "Homepage": "https://github.com/Polyconseil/metaset" }, "release_url": "https://pypi.org/project/metaset/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "A container for dicts of sets - alternative to dictset", "version": "1.2.0" }, "last_serial": 4257246, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "6fe8727804e6df9b77e50c1083a258bf", "sha256": "eb953eabcb32ff1eeec0e273456028d04082706c2015c2bec2cbcfdc9f8ace12" }, "downloads": -1, "filename": "metaset-1.0.0.tar.gz", "has_sig": false, "md5_digest": "6fe8727804e6df9b77e50c1083a258bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3241, "upload_time": "2016-09-28T18:29:57", "url": "https://files.pythonhosted.org/packages/78/a3/da5c2dd99ac683bb4d752a34cfaf65f702a5a1a7c662b1b94720dfdfaf9e/metaset-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "cc4f8d815a8c946e3a91977dcc91a9ce", "sha256": "b2a79b5cf9bda369720ac0106d5e42b156038f474c110a74796993c5a18635b9" }, "downloads": -1, "filename": "metaset-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cc4f8d815a8c946e3a91977dcc91a9ce", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 4101, "upload_time": "2016-09-28T18:59:54", "url": "https://files.pythonhosted.org/packages/d6/0e/a0cf442cd44f58a55ba42595ced68d9b41bb5742832546f70365980e1f19/metaset-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e883b49c52f44418996f74500a372f6c", "sha256": "74ca817e8ff1492794097f1ef241c17b3f9988e510cef541cb34d55e1ad7276f" }, "downloads": -1, "filename": "metaset-1.0.1.tar.gz", "has_sig": false, "md5_digest": "e883b49c52f44418996f74500a372f6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3379, "upload_time": "2016-09-28T18:59:50", "url": "https://files.pythonhosted.org/packages/ac/06/0e9454431e5f51a13004a3f67eb6038e43b9e4862e5adf8a4209996976fb/metaset-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "f6513a8d80f284a9ece940939eab645f", "sha256": "75cdc0906708e155d6c360cb5a61367d88b484a1248fd84202a5e9b8d79cac7e" }, "downloads": -1, "filename": "metaset-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f6513a8d80f284a9ece940939eab645f", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5083, "upload_time": "2016-09-28T19:26:53", "url": "https://files.pythonhosted.org/packages/f2/46/593f08cb826b6c00a5477a2f70955b429dfec5254d452783f5a05f65a57e/metaset-1.0.2-py2.py3-none-any.whl" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "7443ce4d12d6689498ac4cbdcaca3e89", "sha256": "7c7a9c5b8eb75de3a0b2503f649c8dad0fe19fec9a27c21b2c99a9076164daaf" }, "downloads": -1, "filename": "metaset-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7443ce4d12d6689498ac4cbdcaca3e89", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5086, "upload_time": "2016-09-28T19:40:54", "url": "https://files.pythonhosted.org/packages/3f/e4/195080425c78cc8021c7097e7df7520808c5f932020764f3058e1c3d5ebd/metaset-1.0.3-py2.py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "310d3f74495a53f1693ef765f0428d98", "sha256": "fb1b9152addfb3ad6e56bd6f4a72befe5a13828f4fd8ee8bb3327d2ab5fe36c9" }, "downloads": -1, "filename": "metaset-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "310d3f74495a53f1693ef765f0428d98", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9254, "upload_time": "2016-09-29T12:51:27", "url": "https://files.pythonhosted.org/packages/38/95/2c65298fb6835d18a2e07aeee78e53384689e2e8816b5d06ad75b9a380d8/metaset-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "723744ae8c31f391e9a77cb1243edc96", "sha256": "a1fb92bb046e6e7c1fcd5c618dc077aa7d0eba9fcb318d71599276735709b184" }, "downloads": -1, "filename": "metaset-1.1.0.tar.gz", "has_sig": false, "md5_digest": "723744ae8c31f391e9a77cb1243edc96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6527, "upload_time": "2016-09-29T12:51:25", "url": "https://files.pythonhosted.org/packages/34/5f/bcf82dd0d0f5893dab1bb7c63b5000094a1e77f244c82a0e112c55fe1283/metaset-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "fc7d5653a8e5ee3e86a73ba561625bcd", "sha256": "c2c1711a293ed9c03a4c05265fbee0aa6ce8861a1c152099b52d7cc415f337da" }, "downloads": -1, "filename": "metaset-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fc7d5653a8e5ee3e86a73ba561625bcd", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 9325, "upload_time": "2016-10-21T13:10:08", "url": "https://files.pythonhosted.org/packages/c9/16/1eca2f0c268fbacce39090c3c12325eb33d6e833300cbd19d68d1b1e7717/metaset-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70131c29840963ef6f3bbb3b903c294d", "sha256": "a4bee13ba06df896a6d0111b54e842c1db9dbe506b9718f8d9cb300f8c20a0e5" }, "downloads": -1, "filename": "metaset-1.1.1.tar.gz", "has_sig": false, "md5_digest": "70131c29840963ef6f3bbb3b903c294d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6613, "upload_time": "2016-10-21T13:10:05", "url": "https://files.pythonhosted.org/packages/79/6b/b646907ae0f582e9b73485674fc69645ed9ea40b59eaabe27b84946d5887/metaset-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "506ddaf81a2585bd763f9567193b4c73", "sha256": "e5d71752b996e7626838b60dc0bc36079ccc8b9ccc638ca1e005d87f4da71eae" }, "downloads": -1, "filename": "metaset-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "506ddaf81a2585bd763f9567193b4c73", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7207, "upload_time": "2017-04-07T12:30:53", "url": "https://files.pythonhosted.org/packages/88/30/b4e93dadaefaea12ddceb900aed2367e93bc46e79f0325a4586e3f13fa0f/metaset-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "98b12c934c2b50b86198233e382a814a", "sha256": "cdee47e5e1885315171de2012a5d7a83fa023e3eaf7c772793176621db325e0b" }, "downloads": -1, "filename": "metaset-1.1.2.tar.gz", "has_sig": false, "md5_digest": "98b12c934c2b50b86198233e382a814a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5516, "upload_time": "2017-04-07T12:30:55", "url": "https://files.pythonhosted.org/packages/b7/f3/4e1553e3927cc63ca55713e5c06a6ccaa7c779adf66e7bf77241e4386253/metaset-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0fd20ced2fcfabd8a6e6dcdcbf3ed8c9", "sha256": "ae5e8fce55d50615d9dbd1af4249fb9beac7b3c8993afc928929cb33ee38b33e" }, "downloads": -1, "filename": "metaset-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0fd20ced2fcfabd8a6e6dcdcbf3ed8c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6722, "upload_time": "2018-09-10T11:16:44", "url": "https://files.pythonhosted.org/packages/6e/5b/0563a2ca96065313894f017bfd8ed9d314c6ed5defa2ab1832a33226b2e9/metaset-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c982da3d8b6aa3a4b74d916f875adba0", "sha256": "22cad0f41d6473237fe8803c773b64c0cd3502f6d5d2518304fde3de6dbbb542" }, "downloads": -1, "filename": "metaset-1.2.0.tar.gz", "has_sig": false, "md5_digest": "c982da3d8b6aa3a4b74d916f875adba0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5329, "upload_time": "2018-09-10T11:16:45", "url": "https://files.pythonhosted.org/packages/4e/b2/d455a0749b9c54e48151cc275018b576e649df696b3c435be4721a194d1a/metaset-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0fd20ced2fcfabd8a6e6dcdcbf3ed8c9", "sha256": "ae5e8fce55d50615d9dbd1af4249fb9beac7b3c8993afc928929cb33ee38b33e" }, "downloads": -1, "filename": "metaset-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0fd20ced2fcfabd8a6e6dcdcbf3ed8c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6722, "upload_time": "2018-09-10T11:16:44", "url": "https://files.pythonhosted.org/packages/6e/5b/0563a2ca96065313894f017bfd8ed9d314c6ed5defa2ab1832a33226b2e9/metaset-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c982da3d8b6aa3a4b74d916f875adba0", "sha256": "22cad0f41d6473237fe8803c773b64c0cd3502f6d5d2518304fde3de6dbbb542" }, "downloads": -1, "filename": "metaset-1.2.0.tar.gz", "has_sig": false, "md5_digest": "c982da3d8b6aa3a4b74d916f875adba0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5329, "upload_time": "2018-09-10T11:16:45", "url": "https://files.pythonhosted.org/packages/4e/b2/d455a0749b9c54e48151cc275018b576e649df696b3c435be4721a194d1a/metaset-1.2.0.tar.gz" } ] }