{ "info": { "author": "Rotem Yaari", "author_email": "vmalloc@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7" ], "description": "Overview\n--------\ninfi.conf is a generic mechanism for storing, loading and manipulating configuration.\n\nUsage\n-----\n\nBasics\n======\n\nGiven a file like this::\n\n >>> f = open(\"/tmp/my_file.cfg\", \"w\")\n >>> _ = f.write(\"\"\"\n ... CONFIG = {\n ... \"a\" : {\n ... \"b\" : 2,\n ... }\n ... }\"\"\")\n >>> f.close()\n\nObtaining a configuration object is done via::\n\n >>> from infi.conf import Config\n >>> c = Config.from_filename(\"/tmp/my_file.cfg\")\n >>> c.root.a.b\n 2\n\nLoading From Other Sources\n==========================\n\nYou can also load from string::\n\n >>> c = Config.from_string(\"CONFIG = {'a' : 2}\")\n >>> c.root.a\n 2\n\nUpdating Paths\n==============\n\nSetting paths is done by settings items::\n\n >>> c['a'] = 3\n >>> c.root.a\n 3\n\nSetting paths that didn't exist before is not allowed, unless you assign a config object::\n\n >>> c['b'] = 3 #doctest: +IGNORE_EXCEPTION_DETAIL\n Traceback (most recent call last):\n ...\n CannotSetValue: Cannot set key 'b'\n\n >>> c['b'] = Config(2)\n >>> c.root.b\n 2\n\nAssigning can also be done via the *root* proxy::\n\n >>> c.root.a = 3\n >>> c.root.a\n 3\n\nBacking Up/Restoring\n====================\n\nWhenever you want to preserve the configuration prior to a change and restore it later, you can do it with *backup()* and *restore()*. They work like a stack, so they push and pop states::\n\n >>> c = Config({\"value\":2})\n >>> c['value']\n 2\n >>> c.backup()\n >>> c['value'] = 3\n >>> c['value']\n 3\n >>> c.backup()\n >>> c['value'] = 4\n >>> c['value']\n 4\n >>> c.restore()\n >>> c['value']\n 3\n >>> c.restore()\n >>> c['value']\n 2\n\nUtilities\n=========\n\nPath Assignment\n+++++++++++++++\n\nIt is possible to assign to a config via path assignment, e.g::\n\n >>> c = Config(dict(a=dict(b=dict(c=3))))\n >>> from infi.conf.utils import assign_path\n >>> assign_path(c, \"a.b.c\", 4)\n >>> c.root.a.b.c\n 4\n\nExpression Path Assignment\n++++++++++++++++++++++++++\n\nIn some cases you would like to receive strings like this::\n\n a.b.c=2\n\nAnd make sense of them in the context of the configuration. This might be because they originate from command line, overlay files, or whatever other source comes to mind. *infi.conf*'s utilities provide a function for this::\n\n >>> from infi.conf.utils import assign_path_expression\n >>> assign_path_expression(c, \"a.b.c=2\")\n >>> c.root.a.b.c\n '2'\n\nNote that in this method, types are always strings. If your leaf already has a value, the *deduce_type* flag can be used to deduce the type from the current value::\n\n >>> c['a']['b']['c'] = 3\n >>> assign_path_expression(c, 'a.b.c=666', deduce_type=True)\n >>> c.root.a.b.c\n 666\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Infinidat/infi.conf", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "infi.conf", "package_url": "https://pypi.org/project/infi.conf/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/infi.conf/", "project_urls": { "Homepage": "https://github.com/Infinidat/infi.conf" }, "release_url": "https://pypi.org/project/infi.conf/0.0.16/", "requires_dist": null, "requires_python": "", "summary": "Generic configuration mechanism", "version": "0.0.16" }, "last_serial": 5662192, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "ab9dc341902ae52bc781986c647e0260", "sha256": "c6a5a41a49078a0bce941e76fcdff7097bb6ae47360da055de8ed93c0b1b21fd" }, "downloads": -1, "filename": "infi.conf-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "ab9dc341902ae52bc781986c647e0260", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7461, "upload_time": "2011-07-19T08:55:04", "url": "https://files.pythonhosted.org/packages/82/84/10208b61f6a4b56ecf822335812a5cebc1c780aa9fd1b63b1938ae662fc6/infi.conf-0.0.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "0bca05ae1fc527afa619e75ac59f0696", "sha256": "a0d302b0fb6bfa2a3242fecdfd78c6fa7a40099750759c7e244ec532baee74b9" }, "downloads": -1, "filename": "infi.conf-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0bca05ae1fc527afa619e75ac59f0696", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2493, "upload_time": "2011-08-07T15:59:45", "url": "https://files.pythonhosted.org/packages/73/49/8643a7b0f0927e792e10ea0777b5fed3dee571cbd286899f79894012aa84/infi.conf-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "2b7c5bed058b3b28637feb9798886666", "sha256": "97ead6882b421271f44358e97b0b949133cafffd1f78dbf2f9a4c20db1ff9945" }, "downloads": -1, "filename": "infi.conf-0.0.10.tar.gz", "has_sig": false, "md5_digest": "2b7c5bed058b3b28637feb9798886666", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3067, "upload_time": "2012-04-02T13:53:15", "url": "https://files.pythonhosted.org/packages/03/79/970197ec200fb0af18b2fc493087ef7bae4e866e98b02c0bccac37f33aaf/infi.conf-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "dee67a220f4f07dcb10af8392a0d132b", "sha256": "db6e5bdb67f8795c178dda973dd2b8de24f02ea78381b2c989a4eb89ea131b12" }, "downloads": -1, "filename": "infi.conf-0.0.11.tar.gz", "has_sig": false, "md5_digest": "dee67a220f4f07dcb10af8392a0d132b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3085, "upload_time": "2012-07-24T09:01:27", "url": "https://files.pythonhosted.org/packages/ba/b0/73fd514f63fa0532b86030123e4e487f1a6659051a4cac729ee620272c62/infi.conf-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "9358417b04a8a8bab5a0bb5f9cb3d87f", "sha256": "af1c50b5b48dfe3cafb73b809a2ceee963f3cc80e9ac3dd97f2ee1783fe78e0f" }, "downloads": -1, "filename": "infi.conf-0.0.12.tar.gz", "has_sig": false, "md5_digest": "9358417b04a8a8bab5a0bb5f9cb3d87f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3140, "upload_time": "2012-08-30T06:41:46", "url": "https://files.pythonhosted.org/packages/b3/73/4a62c5877af214cab3020725f06120c8df1729286e7105ccb15c686e8981/infi.conf-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "a1b0e8de72e61a873802397250cfc704", "sha256": "8ca37f2a4d12d6d034b851f117132ed04452994abb27d1ca91198f76845bb5cf" }, "downloads": -1, "filename": "infi.conf-0.0.13.tar.gz", "has_sig": false, "md5_digest": "a1b0e8de72e61a873802397250cfc704", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4214, "upload_time": "2013-05-01T12:16:48", "url": "https://files.pythonhosted.org/packages/a2/f3/eaf043d456c686cfbad6a836e8c6c2cf24ed00e0a8f179843e0249d74d5e/infi.conf-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "b187d569ae1d121ef2419563e3060083", "sha256": "10b070c9e8c2c569988decb898038068a479c7ea87fa9713f8ff6c789e04183c" }, "downloads": -1, "filename": "infi.conf-0.0.14.tar.gz", "has_sig": false, "md5_digest": "b187d569ae1d121ef2419563e3060083", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4313, "upload_time": "2013-05-06T07:12:14", "url": "https://files.pythonhosted.org/packages/3a/8e/a153b95c7e746263aab02b35d16126b22de1613b3993e6afe6d081ff51bc/infi.conf-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "e9d4eff36e1128ff377cfd19964d5475", "sha256": "14a9465131125b0689b9325aa981b45c5b7e9e110c2961bdaf6cb54f781111a7" }, "downloads": -1, "filename": "infi.conf-0.0.15.tar.gz", "has_sig": false, "md5_digest": "e9d4eff36e1128ff377cfd19964d5475", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4292, "upload_time": "2014-06-01T13:45:15", "url": "https://files.pythonhosted.org/packages/79/97/6e0eec07c43e3da89089b32a0d9a0258725d1dc15010f180c16aff5346bd/infi.conf-0.0.15.tar.gz" } ], "0.0.16": [ { "comment_text": "", "digests": { "md5": "bf10155af69e92f1912e824f050ef8e3", "sha256": "9a727193b22256f4f75efccb312fe833889f70efb77e781402a02ce65576e1aa" }, "downloads": -1, "filename": "infi.conf-0.0.16.tar.gz", "has_sig": false, "md5_digest": "bf10155af69e92f1912e824f050ef8e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4281, "upload_time": "2016-08-16T19:43:44", "url": "https://files.pythonhosted.org/packages/1b/94/1e27ea9b7796cfa9947c97aa46f9286bfeb54818475342e89691b9ac6c2a/infi.conf-0.0.16.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "58ae54cc0a716f454fb1054141bd375d", "sha256": "c4f5918ea06939a01328366fa0ec6080c98528d6f0ea4e0752a28820f7357728" }, "downloads": -1, "filename": "infi.conf-0.0.2-py2.6.egg", "has_sig": false, "md5_digest": "58ae54cc0a716f454fb1054141bd375d", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 7742, "upload_time": "2011-08-15T10:16:18", "url": "https://files.pythonhosted.org/packages/aa/67/be507e7df7bd3b6c84512af90fed37f4e6be243851c73a99d4ce4df91f81/infi.conf-0.0.2-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "cca2c28cd9baf5fa8475331e9b3a0c78", "sha256": "c387c7ca2dee8770497d4acb5bc92ed78f5bb48f2b3b6ad862ad1ab92db52916" }, "downloads": -1, "filename": "infi.conf-0.0.2-py2.7.egg", "has_sig": false, "md5_digest": "cca2c28cd9baf5fa8475331e9b3a0c78", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7688, "upload_time": "2011-08-15T10:16:14", "url": "https://files.pythonhosted.org/packages/4b/65/86cbbf4eec2a51ea9aadb6faf79193d77cea208c8e49290463adcb1b77a0/infi.conf-0.0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "8cfe5729a6245cbf2c764fc0bf68f38b", "sha256": "914fb13a8120725c939d59f00f3f562ffef52f9dea153031afda891688c790af" }, "downloads": -1, "filename": "infi.conf-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8cfe5729a6245cbf2c764fc0bf68f38b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2580, "upload_time": "2011-08-15T10:16:19", "url": "https://files.pythonhosted.org/packages/26/af/22646e3d520eb894f629c5cdaf362af33679d095819b0cdfb88f8ed107e1/infi.conf-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "2fb80cad78e33bf75616107aaa374f47", "sha256": "4e70d41e1502c2499848bcbf0c3cc86a5d1ffea9dd818ab980e936e8e8613f3a" }, "downloads": -1, "filename": "infi.conf-0.0.3-py2.6.egg", "has_sig": false, "md5_digest": "2fb80cad78e33bf75616107aaa374f47", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 7780, "upload_time": "2011-08-15T13:55:31", "url": "https://files.pythonhosted.org/packages/bf/c6/f29bb400c3a014cc78c9015216092ca3fac8e77b0ccfd8734312dc90c298/infi.conf-0.0.3-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "61a0ab2a8d733087da7e5b974a7c318c", "sha256": "1a27b9888b74d3fb13fab863555a849268a731bfda221394bd9ec5c6b18933c2" }, "downloads": -1, "filename": "infi.conf-0.0.3-py2.7.egg", "has_sig": false, "md5_digest": "61a0ab2a8d733087da7e5b974a7c318c", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7721, "upload_time": "2011-08-15T13:55:27", "url": "https://files.pythonhosted.org/packages/a4/a7/f7ada2c3169a46ac041ea0f0f99477910f10da6bcfa578552d625a4eefce/infi.conf-0.0.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "e5225dd5dcf76b221145231094354193", "sha256": "cded4765d723e576c872d5cfb0d6839a7f41a1b5a33330f4ac17b8c2e0f18b05" }, "downloads": -1, "filename": "infi.conf-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e5225dd5dcf76b221145231094354193", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2599, "upload_time": "2011-08-15T13:55:32", "url": "https://files.pythonhosted.org/packages/4a/6d/65a57eac0260ece13ce9a659e26ade016a496ff4de1b62ebcc69bcd37f96/infi.conf-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "be87064c95f966e713b5cfac4981db65", "sha256": "3ec801a96fe101c966cabf94eb7608ef99bbeaa3cda872ce499ae154c9a65318" }, "downloads": -1, "filename": "infi.conf-0.0.4.tar.gz", "has_sig": false, "md5_digest": "be87064c95f966e713b5cfac4981db65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2817, "upload_time": "2011-10-02T10:17:31", "url": "https://files.pythonhosted.org/packages/8f/fa/a94642884dbea918b49073cc104268ea766348debbdfef61ec68c1bdbe0c/infi.conf-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a8b8271e686bdf498b7bfcceab01ceeb", "sha256": "34c08e0ddb4dd8ebfbd690d0904b99621527803a780b85495412ce7451c8bdb4" }, "downloads": -1, "filename": "infi.conf-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a8b8271e686bdf498b7bfcceab01ceeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2842, "upload_time": "2011-11-06T16:39:08", "url": "https://files.pythonhosted.org/packages/33/4f/9fa2a394d77a13fbc47fb48955414775e88ba5ab157408e92e23f327d89d/infi.conf-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "5518ebbc8e2fcfbb15de382e85312260", "sha256": "686587e7147de86ec9316bfd49e29d82ad7941512dc2ea54253ed3ab4be28125" }, "downloads": -1, "filename": "infi.conf-0.0.6.tar.gz", "has_sig": false, "md5_digest": "5518ebbc8e2fcfbb15de382e85312260", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2829, "upload_time": "2012-02-09T15:44:33", "url": "https://files.pythonhosted.org/packages/fb/fc/b5cb3288181f8bf897cdd76b0c56db41764951540529f6e673aaec07617d/infi.conf-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "395f8bfc0d269e60610bbd1af57a7959", "sha256": "27d8c5d43f6bc863b362baf0312fecbe4c9bea06df7b0e1c4010162309693618" }, "downloads": -1, "filename": "infi.conf-0.0.7.tar.gz", "has_sig": false, "md5_digest": "395f8bfc0d269e60610bbd1af57a7959", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2992, "upload_time": "2012-02-15T14:19:57", "url": "https://files.pythonhosted.org/packages/9d/15/e4eece8cb5dcbf48c24f52de7ac06359a0c9fb963639fa15f8db90b62325/infi.conf-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "4a3ae50e855198110f83c0752bbffb60", "sha256": "ba78c8689a89764c62a4c2c8a585d70ae5a488efa2ca54956f057bc8a93a7035" }, "downloads": -1, "filename": "infi.conf-0.0.8.tar.gz", "has_sig": false, "md5_digest": "4a3ae50e855198110f83c0752bbffb60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3024, "upload_time": "2012-02-22T09:34:07", "url": "https://files.pythonhosted.org/packages/b7/bf/22840bbcb5561b2ef3fd5b51af3e901fea75d31e207b793f3af153a50900/infi.conf-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "ac149c5405a96076eac817834e2831b1", "sha256": "bbabf73856cc6dc0d7012e1e74c65f60770ef9f7fda4014614d802b320913718" }, "downloads": -1, "filename": "infi.conf-0.0.9.tar.gz", "has_sig": false, "md5_digest": "ac149c5405a96076eac817834e2831b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3046, "upload_time": "2012-03-26T13:16:27", "url": "https://files.pythonhosted.org/packages/ad/e3/74e9d1587f136a7b3b13a642333fc1055987b2d1ce564fbd18f2cef455ec/infi.conf-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf10155af69e92f1912e824f050ef8e3", "sha256": "9a727193b22256f4f75efccb312fe833889f70efb77e781402a02ce65576e1aa" }, "downloads": -1, "filename": "infi.conf-0.0.16.tar.gz", "has_sig": false, "md5_digest": "bf10155af69e92f1912e824f050ef8e3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4281, "upload_time": "2016-08-16T19:43:44", "url": "https://files.pythonhosted.org/packages/1b/94/1e27ea9b7796cfa9947c97aa46f9286bfeb54818475342e89691b9ac6c2a/infi.conf-0.0.16.tar.gz" } ] }