{ "info": { "author": "Ravi Sharma", "author_email": "ravi.sharma.cs11@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "yaml2object is a python library that allows dot notation access for YAML file.\n\n### Status\n[![PyPI pyversions](https://img.shields.io/pypi/pyversions/yaml2object.svg)](https://pypi.python.org/pypi/yaml2object/)\n[![PyPI](https://img.shields.io/pypi/v/yaml2object.svg)](https://pypi.python.org/pypi/yaml2object)\n[![Build Status](https://travis-ci.org/imravishar/yaml2object.svg?branch=master)](https://travis-ci.org/imravishar/yaml2object)\n[![Coverage Status](https://coveralls.io/repos/github/imravishar/yaml2object/badge.svg)](https://coveralls.io/github/imravishar/yaml2object)\n[![last commit](https://img.shields.io/github/last-commit/imravishar/yaml2object.svg?label=last%20commit)](https://github.com/imravishar/yaml2object/commits/master)\n[![License](https://img.shields.io/hexpm/l/plug.svg)](https://tldrlegal.com/license/apache-license-2.0-(apache-2.0))\n[![PyPI Package monthly downloads](https://img.shields.io/pypi/dm/yaml2object.svg?style=flat)](https://pypi.python.org/pypi/yaml2object)\n[![PyPI download week](https://img.shields.io/pypi/dw/yaml2object.svg)](https://pypi.python.org/pypi/yaml2object)\n\nInstall\n-------\n```\npip install yaml2object\n```\n\nUsage\n------\n**1. Create your YAML settings**\n```\n# config.yml\ndefaults: &defaults\n database:\n adapter: postgresql\n database: development\n port: 8000\n nested_param:\n param1:\n sub_param1: 'sub_param1 value'\n sub_param2: 'sub_param2 value'\n\ndevelopment:\n <<: *defaults\n\ntest:\n <<: *defaults\n port: 8001\n\n```\n**2. Define your class**\n\n
    \n
  1. Set yaml2object.YAMLObject as meta-class of your config class.
  2. \n
  3. Provide source, namespace as class fields.\n \n
  4. \n
\n\n###### When source is a YAML file\n\n```python\nfrom yaml2object import YAMLObject\n\nclass Config(metaclass=YAMLObject):\n source = 'config.yml'\n\n> WarningLog: Missing namespace attribute. Converting 'config.yml' to object.\n```\n```python\nfrom yaml2object import YAMLObject\n\nclass Config(metaclass=YAMLObject):\n source = 'config.yml'\n namespace = 'invalid'\n\n> WarningLog: Missing 'invalid' param in 'config.yml'. Converting 'config.yml' to object.\n```\n```python\nfrom yaml2object import YAMLObject\n\nclass DevelopmentConfig(metaclass=YAMLObject):\n source = 'config.yml'\n namespace = 'development'\n\nclass TestConfig(metaclass=YAMLObject):\n source = 'config.yml'\n namespace = 'test'\n\nDefaultConfig = YAMLObject('DefaultConfig', (object,), {'source': 'config.yml', 'namespace': 'defaults'})\n```\n\n###### Source can also be a python dictionary\n```python\nfrom yaml2object import YAMLObject\n\nconfig = {'defaults': {'database':\n {'adapter': 'postgresql', 'database': 'development'},\n 'port': 8000,\n 'nested_param':\n {'param1': {'sub_param1': 'sub_param1 value', 'sub_param2': 'sub_param2 value'}}}}\n\nDefaultConfig = YAMLObject('DefaultConfig', (object,), {'source': config, 'namespace': 'defaults'})\n```\n\n**3. Access your YAML as python object**\n```python\n>>> Config.to_dict()\n>>> Config.development.to_dict()\n>>> Config.development.database.to_dict()\n>>> Config.development.database.adapter\n>>> Config.development.nested_param.param1.sub_param1\n\n>>> DevelopmentConfig.to_dict()\n>>> DevelopmentConfig.database.to_dict()\n>>> DevelopmentConfig.database.adapter\n>>> DevelopmentConfig.database.database\n\n>>> TestConfig.to_dict()\n>>> TestConfig.port\n>>> TestConfig.database.to_dict()\n>>> TestConfig.database.adapter\n>>> TestConfig.database.database\n\n>>> DefaultConfig.to_dict()\n>>> DefaultConfig.database.to_dict()\n>>> DefaultConfig.database.adapter\n>>> DefaultConfig.nested_param.param1.sub_param1\n```\n### NOTE\nAn underscore is added before any key matching python keyword lists\nhttps://docs.python.org/3/library/keyword.html#keyword.kwlist\n\nExample:\n```python\nfrom yaml2object import YAMLObject\n\nconfig_dict = {'from': 'value1', 'None': 'value2'}\nConfig = YAMLObject('Config', (object,), {'source': config_dict})\n Missing namespace attribute. Converting source to object.\n Param from is a python keyword. Adding _ (underscore) before the param and can be accessed as _from\n Param None is a python keyword. Adding _ (underscore) before the param and can be accessed as _None\n>>> Config._from\nvalue1\n>>> Config._None\nvalue2\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/imravishar/yaml2object", "keywords": "YAML,pyyaml,Python YAML,python yaml", "license": "Apache2", "maintainer": "", "maintainer_email": "", "name": "yaml2object", "package_url": "https://pypi.org/project/yaml2object/", "platform": "", "project_url": "https://pypi.org/project/yaml2object/", "project_urls": { "Homepage": "https://github.com/imravishar/yaml2object" }, "release_url": "https://pypi.org/project/yaml2object/1.0.13/", "requires_dist": [ "pyyaml" ], "requires_python": "", "summary": "A simple solution that allows dot notation for YAML file.", "version": "1.0.13" }, "last_serial": 4667390, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "a2fcf1c1a03afb79dd06634836d25af7", "sha256": "ac117fa588290cd58129295183372cd7db5aff10a422d53d3703acb316dbe213" }, "downloads": -1, "filename": "yaml2object-1.0.0.zip", "has_sig": false, "md5_digest": "a2fcf1c1a03afb79dd06634836d25af7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6229, "upload_time": "2018-11-05T13:25:30", "url": "https://files.pythonhosted.org/packages/b9/7f/b34655d893a2d13b295836aaceb258505cfbbf2fb472165f599987b7c722/yaml2object-1.0.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "5f6e5ab8411b69a940310e02bc7ff304", "sha256": "aa74ac1919790caaea952adf1a59a9798b338c849577e81264826203d49b6369" }, "downloads": -1, "filename": "yaml2object-1.0.1.zip", "has_sig": false, "md5_digest": "5f6e5ab8411b69a940310e02bc7ff304", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6855, "upload_time": "2018-11-05T17:50:18", "url": "https://files.pythonhosted.org/packages/83/2f/5243edd1a80f14a19d81c8fd62ba1f9814bc5f385e38311becd4f0435948/yaml2object-1.0.1.zip" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "72173b7988678c62a0208127a8644255", "sha256": "9229cf8bfeb8a6f1cacf1fbb101ca54cdaa0396c7117bb1142b94edf6ec90201" }, "downloads": -1, "filename": "yaml2object-1.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "72173b7988678c62a0208127a8644255", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9622, "upload_time": "2018-11-30T17:28:27", "url": "https://files.pythonhosted.org/packages/e9/c8/4c4356cc9cebf94072670e7e75daba906687018c9bf333b3abc237adbe5a/yaml2object-1.0.10-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ff0fedd5e790f3b035a56dfe9a756e6", "sha256": "68614b5863e2acf3524046eea68418c8757766f64c163e30b562b6271692a630" }, "downloads": -1, "filename": "yaml2object-1.0.10.zip", "has_sig": false, "md5_digest": "4ff0fedd5e790f3b035a56dfe9a756e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13975, "upload_time": "2018-11-30T17:28:24", "url": "https://files.pythonhosted.org/packages/7b/a0/ab89f78be5d39807d9854b779a801b9ab11ec9b70ce8fde7a794416d3bb9/yaml2object-1.0.10.zip" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "bbbde250a8a3c124ee096a7e0654d2a7", "sha256": "acced64bd8017208d15dc6780d660d34fbea771a5571e79f8e08014062fa056f" }, "downloads": -1, "filename": "yaml2object-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "bbbde250a8a3c124ee096a7e0654d2a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9624, "upload_time": "2018-12-29T17:54:55", "url": "https://files.pythonhosted.org/packages/e0/ad/88cc20d28e3699436b67fea4de53752a84b3cb911ea7fce5d1ca694de173/yaml2object-1.0.11-py3-none-any.whl" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "53188b0bbcc1256d4c18198010658624", "sha256": "04ce9d3325cb0ce7886275af44556b3202881940ec5d5c89c1c7d90a36ce17b7" }, "downloads": -1, "filename": "yaml2object-1.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "53188b0bbcc1256d4c18198010658624", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9776, "upload_time": "2018-12-30T16:21:16", "url": "https://files.pythonhosted.org/packages/9b/f1/f62036bbb6e675208f697548a8c827df4a311c587df06bd27cc790169037/yaml2object-1.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a809ce6c8713c49816672422ff8ded21", "sha256": "3c93ebeb5b9e314bfd9135223704eb106f0aa7c0e68ba49152b9ed6254d61497" }, "downloads": -1, "filename": "yaml2object-1.0.12.zip", "has_sig": false, "md5_digest": "a809ce6c8713c49816672422ff8ded21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14506, "upload_time": "2018-12-30T16:21:18", "url": "https://files.pythonhosted.org/packages/4c/78/ee49dbaa314608f9a23273bfa8f0e19c015a9477343e6aa162b594c1462a/yaml2object-1.0.12.zip" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "ddfc8f8d9fcee627258c7255fc4c95da", "sha256": "c5d7c8dc8ee3b27cfd598b68bac8a63801ddb7d9970b46893abbf4f273cb8832" }, "downloads": -1, "filename": "yaml2object-1.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "ddfc8f8d9fcee627258c7255fc4c95da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9777, "upload_time": "2019-01-07T05:14:34", "url": "https://files.pythonhosted.org/packages/c1/a8/f7005721dc079cde1f527ad665c6a57b41157a4272739af3a00bac5d95ed/yaml2object-1.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7b1af0b70a00d4b28475b846dbd9bf9", "sha256": "663ec364cc953caef9b9634131e7a0b53ff097a6bfe77f88da19cc767e6d19da" }, "downloads": -1, "filename": "yaml2object-1.0.13.zip", "has_sig": false, "md5_digest": "d7b1af0b70a00d4b28475b846dbd9bf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14507, "upload_time": "2019-01-07T05:14:36", "url": "https://files.pythonhosted.org/packages/cf/65/1012c6d466f726c30f8783f4cf5659827ba462cf0a42d906b7fedd07e6dc/yaml2object-1.0.13.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "cb29c9002d925e16056e975d90988e7b", "sha256": "4ccee2b2314a0792c4a728a777dccc891f2b572a170634b385b4edd477b59b35" }, "downloads": -1, "filename": "yaml2object-1.0.2.zip", "has_sig": false, "md5_digest": "cb29c9002d925e16056e975d90988e7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6944, "upload_time": "2018-11-05T17:59:04", "url": "https://files.pythonhosted.org/packages/cf/85/e72f1281bb2e7b5c467fcbe51f8c440d6244be804bdf62d5713d9b5aa43a/yaml2object-1.0.2.zip" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "a6da14f14fd33bb9a2a85090cdec62b4", "sha256": "466c960f29a0297159fd72f62958b21df455f79a35c5dad7fb1675d0c4b98437" }, "downloads": -1, "filename": "yaml2object-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6da14f14fd33bb9a2a85090cdec62b4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9254, "upload_time": "2018-11-05T18:11:27", "url": "https://files.pythonhosted.org/packages/a8/73/d08013e9061cb50bf45934263d662f46a89ef5f698430db1378d85de6e4b/yaml2object-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9ce1b908006f7f74ddbf388d3d5b1ad", "sha256": "b86b57ee7a59a86feaa71ed7993f762229345136be73e2c10ba89a02c91c52b2" }, "downloads": -1, "filename": "yaml2object-1.0.3.zip", "has_sig": false, "md5_digest": "b9ce1b908006f7f74ddbf388d3d5b1ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8834, "upload_time": "2018-11-05T18:05:54", "url": "https://files.pythonhosted.org/packages/22/ec/72b3d641e2f1b4bb9190579813ebca5936135e96338b864c747d200e49e8/yaml2object-1.0.3.zip" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "b8473c86020175e0cd2643425ffaa317", "sha256": "9767e965e6f3708578de7914d40b409a4724960a800869498e1f835c334335f6" }, "downloads": -1, "filename": "yaml2object-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b8473c86020175e0cd2643425ffaa317", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9257, "upload_time": "2018-11-05T18:31:07", "url": "https://files.pythonhosted.org/packages/0c/7e/ae4b86d6c21aefa6861b56332b97c6d6880736fd03cfbec10aa0adba1508/yaml2object-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a1dd8716d8ff22554851a2878d141b37", "sha256": "234fff959ceefdea1bcce4d476d8a2af5acf4f81fcd2e7ba8adb4e76ce6cf9d5" }, "downloads": -1, "filename": "yaml2object-1.0.4.zip", "has_sig": false, "md5_digest": "a1dd8716d8ff22554851a2878d141b37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8946, "upload_time": "2018-11-05T18:31:09", "url": "https://files.pythonhosted.org/packages/a9/02/9550b149ec1d0f053b32f82531bb3d9dcf8d22fbfe63cb761db43e509056/yaml2object-1.0.4.zip" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "4214b45a76f4eb91457fdefff8bcca2e", "sha256": "ed3a82b39f67e826f193c7c280db83145dcac715be22a131c205e30a89871688" }, "downloads": -1, "filename": "yaml2object-1.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4214b45a76f4eb91457fdefff8bcca2e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9450, "upload_time": "2018-11-06T07:53:51", "url": "https://files.pythonhosted.org/packages/d8/e8/8c8b15f437ad27fa23df70b50bbf436b5ea0d064ca6fa5f21be9e8934b4a/yaml2object-1.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "07aef73da49ba25987d669e1cca2d205", "sha256": "4d4ac70866ca4f9a962b04e65d2e989f8bce09094080daed621577afe826a830" }, "downloads": -1, "filename": "yaml2object-1.0.5.zip", "has_sig": false, "md5_digest": "07aef73da49ba25987d669e1cca2d205", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9487, "upload_time": "2018-11-06T07:53:48", "url": "https://files.pythonhosted.org/packages/1c/a8/9122381ecc48f49867de60b800edd438d7636599f47310b7d80daab8902e/yaml2object-1.0.5.zip" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "71789a590ea8942924b1f254f964a4b4", "sha256": "94a8637770f1c0474dba212b11d031ee42679c386030fcaa33e8c27cd6207964" }, "downloads": -1, "filename": "yaml2object-1.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "71789a590ea8942924b1f254f964a4b4", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9459, "upload_time": "2018-11-06T07:57:09", "url": "https://files.pythonhosted.org/packages/87/f3/715f9858c34d552f98f47ad4fe6733455e826a780ff9cd2adaa4fa9008a3/yaml2object-1.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9b0dfc3ccc97a147ab47112ab88f4119", "sha256": "e78ecfdf8b335e8b683a1aa8f659182588137267c23d07aefc9a6c3cfcd22dee" }, "downloads": -1, "filename": "yaml2object-1.0.6.zip", "has_sig": false, "md5_digest": "9b0dfc3ccc97a147ab47112ab88f4119", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9516, "upload_time": "2018-11-06T07:57:06", "url": "https://files.pythonhosted.org/packages/39/2d/51002e6ef26eb7955a633eede1d44c268231b63d3f404f518945cf4e4d7f/yaml2object-1.0.6.zip" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "38564d9494f9f473065b5a643c998022", "sha256": "89e3726583609b4d72248a9671bd14db537046a7dbc25905167ec8b4e41c17d9" }, "downloads": -1, "filename": "yaml2object-1.0.7.zip", "has_sig": false, "md5_digest": "38564d9494f9f473065b5a643c998022", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9662, "upload_time": "2018-11-28T04:55:37", "url": "https://files.pythonhosted.org/packages/b1/59/daabeb1bc8980880cac0b322d36efd4f1dfd4304c4d227e46af648b038f9/yaml2object-1.0.7.zip" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "3f8a57037a73236510d65a1794ec21b0", "sha256": "e969ab5f1c3fd2950d3ab2ef996ee761e79a50ccdb1bb91c55c78318d4d4fc90" }, "downloads": -1, "filename": "yaml2object-1.0.8.zip", "has_sig": false, "md5_digest": "3f8a57037a73236510d65a1794ec21b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13926, "upload_time": "2018-11-30T17:07:46", "url": "https://files.pythonhosted.org/packages/c4/9a/209156f0ee3f7e8d7be8f05ae5e94bccb44cf29fbac0b310253c110ab5f9/yaml2object-1.0.8.zip" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "0b3960e47d6304b4b9f242b392f3acfb", "sha256": "e89337fc27dd9aa40fe4cb02c6742b11128736a3c637f49facbbb84a1cadd72d" }, "downloads": -1, "filename": "yaml2object-1.0.9.zip", "has_sig": false, "md5_digest": "0b3960e47d6304b4b9f242b392f3acfb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13929, "upload_time": "2018-11-30T17:18:58", "url": "https://files.pythonhosted.org/packages/f9/c7/e3897607a871170f00211220d1c8edf94359017f2fb56e92e284035e00cd/yaml2object-1.0.9.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ddfc8f8d9fcee627258c7255fc4c95da", "sha256": "c5d7c8dc8ee3b27cfd598b68bac8a63801ddb7d9970b46893abbf4f273cb8832" }, "downloads": -1, "filename": "yaml2object-1.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "ddfc8f8d9fcee627258c7255fc4c95da", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9777, "upload_time": "2019-01-07T05:14:34", "url": "https://files.pythonhosted.org/packages/c1/a8/f7005721dc079cde1f527ad665c6a57b41157a4272739af3a00bac5d95ed/yaml2object-1.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7b1af0b70a00d4b28475b846dbd9bf9", "sha256": "663ec364cc953caef9b9634131e7a0b53ff097a6bfe77f88da19cc767e6d19da" }, "downloads": -1, "filename": "yaml2object-1.0.13.zip", "has_sig": false, "md5_digest": "d7b1af0b70a00d4b28475b846dbd9bf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14507, "upload_time": "2019-01-07T05:14:36", "url": "https://files.pythonhosted.org/packages/cf/65/1012c6d466f726c30f8783f4cf5659827ba462cf0a42d906b7fedd07e6dc/yaml2object-1.0.13.zip" } ] }