{ "info": { "author": "Sergey Parshin", "author_email": "parshinsp@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "# ConfigORM\n[![Build Status](https://travis-ci.com/YADRO-KNS/ConfigORM.svg?branch=master)](https://github.com/YADRO-KNS/ConfigORM)\n![PyPI - Status](https://img.shields.io/pypi/status/ConfigORM.svg)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/ConfigORM.svg)\n![PyPI](https://img.shields.io/pypi/v/ConfigORM.svg)\n![PyPI - License](https://img.shields.io/pypi/l/ConfigORM.svg)\n----\n\nHeavily inspired by Charles Leifer [peewee](https://github.com/coleifer/peewee) ORM.\nThis package provides ORM-like interface to interact with *.ini configs. \nAnd map their data onto object models.\n\nExamples\n--------\nLets say we have config like this:\n```ini\n#config.ini\n\n[Database]\nserver = 10.10.10.10\npassword = my_password\nuser = admin\nbase = test_base\n\n[General]\ndebug = True\nconnection port = 5000\n```\n\nDefining models is similar to ORM's:\n```python\n#Config.py\n\nimport os\nfrom configorm import *\n\ncurrent_dir = os.path.abspath(os.path.dirname(__file__))\nconnection_string = os.path.join(current_dir, 'config.ini')\n\nconnector = IniConnector(connection_string=connection_string)\n\nclass BaseSection(Section):\n class Meta:\n connector = connector\n\nclass Database(BaseSection):\n server = StringField()\n password = StringField()\n user = StringField()\n base = StringField()\n\nclass General(BaseSection):\n debug = BooleanField()\n connection_port = IntegerField()\n\n```\n\n```\n>>> from Config import Database\n>>> Database.server\n'10.10.10.10'\n```\n\nSection names must match their counterparts in ini file, but case does not matter at all.\nAll spaces in section or key names of config file will be treated as underlines. \n\nField Types\n--------\n\nDepending on field data will be casted to exact type.\n```\n>>> from Config import General\n>>> General.debug\nTrue\n>>> type(General.debug)\n\n```\n\nAvailable Field Types:\n* **StringField** \n* **IntegerField** \n* **BooleanField** \n* **FloatField** \n* **ListField** \n\nMost of field types are self-explanatory, ListField is a bit tricky. It allows to store and \nextract data as list of homogeneous objects, such as strings, integers, floats and booleans.\nYou must provide exec type of stored objects.\n\n```python\nfrom configorm import *\n\nclass TestSection(Section):\n list_of_int = ListField(var_type=int)\n list_of_str = ListField(var_type=str)\n list_of_float = ListField(var_type=float)\n list_of_bool = ListField(var_type=bool)\n\n```\n\nFallback Values\n--------\n\nYou may provide default fallback values for your fields.\nIf field may return None Type values, null parameter must be set as True\n\n```python\nfrom configorm import *\n\nclass Database(Section):\n server = StringField(default='10.10.10.10')\n password = StringField(default='secret')\n user = StringField(default='admin')\n base = StringField(default='development')\n\n possible_none_value = StringField(null=True)\n\n```\n\nModel First Approach\n--------\n\nBase Section aside from connection to config file also provides tool to create\n configuration from models, allowing model-first approach. It crates config file,\n sections from your models names and option based on provided fields. In case if\n fields have default values, they will be written in config as well. Otherwise\n options will be filled with empty values.\n\n```\n>>> from Config import *\n>>> BaseSection.check_config_integrity()\n```\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/YADRO-KNS/ConfigORM", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "ConfigORM", "package_url": "https://pypi.org/project/ConfigORM/", "platform": "", "project_url": "https://pypi.org/project/ConfigORM/", "project_urls": { "Homepage": "https://github.com/YADRO-KNS/ConfigORM" }, "release_url": "https://pypi.org/project/ConfigORM/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "ORM-like *.ini config parser.", "version": "0.1.0" }, "last_serial": 5465415, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "4162975ea936b5ef5aa6bd9286be908f", "sha256": "653b9547a905673eb803fd684ae70ea8d333355ef8932a851e7b2cc0d07cd4d4" }, "downloads": -1, "filename": "ConfigORM-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4162975ea936b5ef5aa6bd9286be908f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5643, "upload_time": "2019-06-17T12:30:25", "url": "https://files.pythonhosted.org/packages/5c/2e/9faf7223f10c6edcb6a7af66adbe3856d72165ca86e7f9f42818f65fb322/ConfigORM-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09d5864ecbbd3bb83bf1ccf325aa521c", "sha256": "485cd8b65da0e8170438f552daab550103c1f3e83ce5871cf0bb572d349fcc38" }, "downloads": -1, "filename": "ConfigORM-0.0.1.tar.gz", "has_sig": false, "md5_digest": "09d5864ecbbd3bb83bf1ccf325aa521c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4145, "upload_time": "2019-06-17T12:30:27", "url": "https://files.pythonhosted.org/packages/9f/70/2ab9858e0580c598ba6473c6406997429876af338ecc7e2a286964084db0/ConfigORM-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7efafbc1a0939a93e6fd782465efa9c5", "sha256": "b977f3d35e1e39fc4d7137d08f0c8f982f956a4c8a9401c81bdabb72327fcc69" }, "downloads": -1, "filename": "ConfigORM-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "7efafbc1a0939a93e6fd782465efa9c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5730, "upload_time": "2019-06-18T09:21:52", "url": "https://files.pythonhosted.org/packages/0a/c4/58ddfc6c2746f2c6008569416180b5346f3bd630ea9b430c5eb6806fbeaa/ConfigORM-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "983697ce7f548508dea67f56724d53bc", "sha256": "a713ddfe518d0824f3b304270ef3bf46a347d370148671710e7ece00d59ae7b9" }, "downloads": -1, "filename": "ConfigORM-0.0.2.tar.gz", "has_sig": false, "md5_digest": "983697ce7f548508dea67f56724d53bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4262, "upload_time": "2019-06-18T09:21:55", "url": "https://files.pythonhosted.org/packages/1d/62/02657c7fa72b8d94a79f20ad3c936876894002c868bb9dc22db9d0ab2454/ConfigORM-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "f79590fd05b12b892add8f498fd793e7", "sha256": "4f128db1504b503319f71cb6d891fd87b976d154fb389f957f606166d1855c55" }, "downloads": -1, "filename": "ConfigORM-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f79590fd05b12b892add8f498fd793e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6224, "upload_time": "2019-06-29T13:36:48", "url": "https://files.pythonhosted.org/packages/e6/3c/49e3f18ed1a5fa34d7a1f5e60059d51e98212ed68fddc7954a1f0171af71/ConfigORM-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "537e939a0645b6aa1b5f205d5b31630a", "sha256": "6f7a938b248314dc11b4ab9cc21b37d32a858e24e9d37046e2eac335bac4c794" }, "downloads": -1, "filename": "ConfigORM-0.1.0.tar.gz", "has_sig": false, "md5_digest": "537e939a0645b6aa1b5f205d5b31630a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4801, "upload_time": "2019-06-29T13:36:52", "url": "https://files.pythonhosted.org/packages/6a/ce/a68e9140824df3addfaf9634227cf895a8ebd581660517c965fee867a273/ConfigORM-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f79590fd05b12b892add8f498fd793e7", "sha256": "4f128db1504b503319f71cb6d891fd87b976d154fb389f957f606166d1855c55" }, "downloads": -1, "filename": "ConfigORM-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f79590fd05b12b892add8f498fd793e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6224, "upload_time": "2019-06-29T13:36:48", "url": "https://files.pythonhosted.org/packages/e6/3c/49e3f18ed1a5fa34d7a1f5e60059d51e98212ed68fddc7954a1f0171af71/ConfigORM-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "537e939a0645b6aa1b5f205d5b31630a", "sha256": "6f7a938b248314dc11b4ab9cc21b37d32a858e24e9d37046e2eac335bac4c794" }, "downloads": -1, "filename": "ConfigORM-0.1.0.tar.gz", "has_sig": false, "md5_digest": "537e939a0645b6aa1b5f205d5b31630a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4801, "upload_time": "2019-06-29T13:36:52", "url": "https://files.pythonhosted.org/packages/6a/ce/a68e9140824df3addfaf9634227cf895a8ebd581660517c965fee867a273/ConfigORM-0.1.0.tar.gz" } ] }