{ "info": { "author": "Robert Burns", "author_email": "rburns629@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# KeyMapper\n\n**KeyMapper is a subclass of the dictionary class, which allows you to:**\n- Assign keys and values dynamically \n- Choose what delimiter you want (default is dot-notation: .)\n- Access all keys and values in a single key declaration regardless of type (list, tuple, set)\n- Is treated as a dict type by default\n- Initializes an empty dictionary, or accepts an existing dict upon class declaration\n- Great for key iteration and loops\n- KeyMapper functionality is not forced on you\n\n## Installation\n- You can install either via pypi:\n\n pip install keymapper\n\n- Or, install it locally after the package has been unarchived:\n\n pip install -e /destination\n\n\n## Examples\n\n**Standard Dict:**\n\n```python\nfrom keymapper import KeyMapper\n\nkm_dict = KeyMapper()\nprint(km_dict)\n# Prints: {} \n\nkm_dict['key1'] = 'All the keys!'\nprint(km_dict)\n# Prints: {'key1': 'All the keys!'}\n```\n\n**Nested Dict:**\n\n```python\nfrom keymapper import KeyMapper\n\nmy_dict = {'messages': {'message_1': 'Hey there!'}}\nkm_dict = KeyMapper(my_dict)\n\n# Standard\nprint(km_dict['messages']['message_1']) # Prints: 'Hey there!'\n\n# KeyMapper\nprint(km_dict['messages.message_1']) # Prints: 'Hey there!'\n```\n\n**Dict with iterables:**\n\n```python\nfrom keymapper import KeyMapper\n\nmy_dict = {'messages': {'message_1': 'Hey there!'}, 'objects': [{'obj1': 'Hi!'}, {'obj2': 'There!'}, {'obj3': 'Peoples!'}]}\nkm_dict = KeyMapper(my_dict)\n\n# Standard\nprint(km_dict['objects'][1]['obj2']) # Prints: 'There!'\n\n# KeyMapper - does not care what type of iterable\nprint(km_dict['objects.1.obj2']) # Prints: 'There!'\nprint(km_dict['objects.1.obj2']) # Prints: 'There!'\nprint(km_dict['objects.1.obj2']) # Prints: 'There!'\n\n# Or don't even declare the data type\nprint(km_dict['objects.1.obj2']) # Prints: 'There!'\n```\n\n**Dict with different delimieter:**\n\n```python\nfrom keymapper import KeyMapper\n\nmy_dict = {'messages': {'message_1': 'Hey there!'}, 'objects': [{'obj1': 'Hi!'}, {'obj2': 'There!'}, {'obj3': 'Peoples!'}]}\n\nkm_dict = KeyMapper(my_dict, delimiter=',')\n\n# Standard\nprint(km_dict['messages']['message_1']) # Prints: 'Hey there!'\n\n# KeyMapper with new delimeter\nprint(km_dict['messages,message_1']) # Prints: 'Hey there!'\n```\n\n**Example**\n\n```python\nfrom keymapper import KeyMapper\n\nquestions = ['What is your name: ', 'What is your email: ', 'What is your password: ', 'How many servers do you want to add: ', 'What is the ip: ', 'What is the port: ']\nkeys = ['user.name', 'user.email', 'user.password', 'servers']\nconfig = {'user': {'name': '', 'email': '', 'password': ''}, 'servers': []}\n\nkm_dict = KeyMapper(config)\n\nfor i in range(len(questions)):\n if i < 3:\n km_dict[keys[i]] = input(questions[i])\n else:\n for r in range(int(input(questions[i]))):\n server_info = {'ip': '', 'port': ''}\n for i, k in enumerate(questions[4:]):\n if i < 1:\n server_info['ip'] = input(k)\n else:\n server_info['port'] = input(k)\n km_dict[keys[len(keys) - 1]].append(server_info)\n break\nprint(km_dict) # Prints: ... Well, whatever you entered as your input values! Try it if you don't believe me ;)\nfor i in range(len(km_dict['servers'])):\n print(km_dict['servers.{}.ip'.format(i)]) # Prints the IP for each index iterated through\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/rburns629/KeyMapper", "keywords": "dict dot delimiter key map dynamic dictionary object notation", "license": "", "maintainer": "", "maintainer_email": "", "name": "keymapper", "package_url": "https://pypi.org/project/keymapper/", "platform": "", "project_url": "https://pypi.org/project/keymapper/", "project_urls": { "Bug Reports": "https://gitlab.com/rburns629/KeyMapper/issues", "Homepage": "https://gitlab.com/rburns629/KeyMapper", "Source": "https://gitlab.com/rburns629/KeyMapper" }, "release_url": "https://pypi.org/project/keymapper/1.0.1/", "requires_dist": null, "requires_python": "", "summary": "Dynamic dictionary iteration tool that allows you to set and retrieve values with single key declaration", "version": "1.0.1" }, "last_serial": 4965587, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "083a51855bdee29b4c8b1d6a240fe4b7", "sha256": "4338172659642da65e20becdba708fb060ac86d6db9796f45d6c31f52cba46f6" }, "downloads": -1, "filename": "keymapper-1.0.0.tar.gz", "has_sig": false, "md5_digest": "083a51855bdee29b4c8b1d6a240fe4b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3529, "upload_time": "2018-05-12T23:18:44", "url": "https://files.pythonhosted.org/packages/d3/f6/c0defb15d54f34e9a27fffcc5ab0535b8f55c5fab94b2af44ae7a2559980/keymapper-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b7d623eeb72c01e9353eee73f25c89f1", "sha256": "d032187bbb640ef4f0349afab0bfb5a0ed9364250153150ef9f011074d874c1f" }, "downloads": -1, "filename": "keymapper-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b7d623eeb72c01e9353eee73f25c89f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3547, "upload_time": "2019-03-20T21:09:36", "url": "https://files.pythonhosted.org/packages/46/7f/ea118194744bd851f606609618c46fc85b4785044e21689dd89d070d39ae/keymapper-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b7d623eeb72c01e9353eee73f25c89f1", "sha256": "d032187bbb640ef4f0349afab0bfb5a0ed9364250153150ef9f011074d874c1f" }, "downloads": -1, "filename": "keymapper-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b7d623eeb72c01e9353eee73f25c89f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3547, "upload_time": "2019-03-20T21:09:36", "url": "https://files.pythonhosted.org/packages/46/7f/ea118194744bd851f606609618c46fc85b4785044e21689dd89d070d39ae/keymapper-1.0.1.tar.gz" } ] }