{ "info": { "author": "\u00c1lvaro Ferreira Pires de Paiva", "author_email": "alvarofepipa@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# adt-extension\n\n \"latest\n\n\nPython abstract data structure (ADT) extension.\n\n**Install**:\n```bash\npip install adt-extension\n```\n\n**Import**:\n```python\nfrom adt_extension import Set, SwitchDict\n```\n\n## Extensions\nCurrently the package have the ADT extensions:\n\n| Class | Extension of | Description |\n| ----- | ------------ | ----------- |\n| `Set` | [`set`](https://docs.python.org/3.7/tutorial/datastructures.html#sets) | Set with element type and validation rule. |\n| `SwitchDict` | [`dict`](https://docs.python.org/3.7/tutorial/datastructures.html#dictionaries) | Dictionary with the possibility of behavior of a `switch case`. |\n\n### Set\nSet with element type and validation rule for the elements that will be inserted into the set.\n\n**Example**:\n```python\nfrom adt_extension import Set\n\n# A set with only even integers\nset_int_even = Set(element_type=int, rule=lambda x: (x % 2 == 0))\n\n# Elements that satisfies the element type and validation rule\nset_int_even.update({4, 6})\n# Elements that satisfies the element type, but not validation rule\nset_int_even.update({5})\n# Elements that not satisfies the element type\nset_int_even.update({\"qwe\", True})\n\nprint(set_int_even)\n# Output:\n# Set({4, 6})\n\n# Remove element type\nset_int_even.element_type = None\n# Remove validation rule\nset_int_even.rule = None\n```\n\n### SwitchDict\nDictionary with the possibility to perform a function or return a value when trying to access a nonexistent index in the dictionary class.\n\n**Example**:\n```python\nfrom adt_extension import SwitchDict\n\n# Same behavior of a normal dictionary\nswitch_dict = SwitchDict({\n 'Apartament': 125,\n 'House': 250,\n 'Condominium': 300,\n})\n\n# Add default case\nswitch_dict.default_case = 999\n\n# List example\nproperties_list = [\n 'Apartament',\n 'House',\n 'Condominium',\n 'Treehouse',\n 'Hotel',\n]\n\n# Get values\nproperties_values = [ switch_dict[ x ] for x in properties_list ]\nprint(properties_values)\n# Output:\n# [ 125, 250, 300, 999, 999 ]\n\n# Remove default case, becomes a normal dictionary\nswitch_dict.default_case = None\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alvarofpp/python-adt-extension", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "adt-extension", "package_url": "https://pypi.org/project/adt-extension/", "platform": "", "project_url": "https://pypi.org/project/adt-extension/", "project_urls": { "Homepage": "https://github.com/alvarofpp/python-adt-extension" }, "release_url": "https://pypi.org/project/adt-extension/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Python abstract data structure (ADT) extension", "version": "0.2.0" }, "last_serial": 5781855, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "d59dfa36bf721ecaf90a5b395650b947", "sha256": "0633a7b3d1316ea4081c004aabbb2bb3eaa6e02e35dd9a5d41fb577670619222" }, "downloads": -1, "filename": "adt_extension-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d59dfa36bf721ecaf90a5b395650b947", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1899, "upload_time": "2019-09-03T13:24:17", "url": "https://files.pythonhosted.org/packages/da/d9/105b341b46941135f3d2072487b121437606b16a308565678a53fc7b4430/adt_extension-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "59deb8ccbc52ac0c77604cd6f206fdc8", "sha256": "29dbc5296faec0799b9e2d6805d8ff0b5a123eeacb86e904f0b6613c6f304139" }, "downloads": -1, "filename": "adt_extension-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "59deb8ccbc52ac0c77604cd6f206fdc8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2482, "upload_time": "2019-09-03T17:10:11", "url": "https://files.pythonhosted.org/packages/e3/07/0e4539d2f4dab158c1cdadcbb39cfdd646a83d6898bfb85369d01b36b4da/adt_extension-0.1.1-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "793030ad88a3866b43a54ef340160657", "sha256": "d7434dc27223a4450f82092048a13d36d6e8a08102a04cd675b58bd5c48e96d1" }, "downloads": -1, "filename": "adt_extension-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "793030ad88a3866b43a54ef340160657", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3533, "upload_time": "2019-09-04T15:12:44", "url": "https://files.pythonhosted.org/packages/71/93/9660444043d6824949902b14574295b66c4a8737a2c7b6e7f24c63630fb7/adt_extension-0.2.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "793030ad88a3866b43a54ef340160657", "sha256": "d7434dc27223a4450f82092048a13d36d6e8a08102a04cd675b58bd5c48e96d1" }, "downloads": -1, "filename": "adt_extension-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "793030ad88a3866b43a54ef340160657", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3533, "upload_time": "2019-09-04T15:12:44", "url": "https://files.pythonhosted.org/packages/71/93/9660444043d6824949902b14574295b66c4a8737a2c7b6e7f24c63630fb7/adt_extension-0.2.0-py3-none-any.whl" } ] }