{ "info": { "author": "Daniel Gon\u00e7alves", "author_email": "daniel@base4.com.br", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Other Environment", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===========\nConfigViper\n===========\n\nConfigViper is a set of `Python`_ classes for handling configuration files\nsaved in `JSON`_ format. For example::\n\n from configviper import ConfigViper\n\n ConfigViper.configure()\n \n conf = ConfigViper()\n conf.set('spam.ham.eggs', 'sausage')\n\nAnd the JSON file will looks like::\n\n {\n \"spam\": {\n \"ham\": {\n \"eggs\": \"sausage\"\n }\n }\n }\n\n\nGoals\n-----\n\n#. Simple to define default values (avoiding \"defaults\" everywhere);\n#. Simple to write converters between Python and JSON types (even for complex \n Python types);\n#. Human editable format (JSON is readable enough);\n#. Portable configuration format (JSON is portable enough);\n#. Easy to add configuration options without destroying existing ones;\n#. Accessible anywhere in the app code (avoiding singleton's boring discussions);\n#. Small and really simple.\n\n\nInstallation\n------------\n\nInstall ConfigViper using ``pip install ConfigViper`` command. If you downloaded\nthe sources from `PyPI`_ go to ``ConfigViper-`` directory and type\n``python setup.py install`` command. You can also get the sources from\n`BitBucket`_ repository (you will need `Mercurial SCM`_ installed on your\nsystem)::\n\n hg clone https://bitbucket.org/danielgoncalves/configviper\n\n\nMore Documentation\n------------------\n\nFor usage example and more information, please refer to the \n`documentation `_ available on-line.\n\n\nLicensing\n---------\n\nConfigViper is licensed under GNU's `LGPL`_.\n\n\nChange History\n--------------\n\n\nVersion 0.1\n^^^^^^^^^^^\n\n* Released 12 march 2012.\n\n\nVersion 0.2\n^^^^^^^^^^^\n\n* Released 18 march 2012;\n* Documentation hosted on PyPI.\n\n\nVersion 0.3\n^^^^^^^^^^^\n\n* Released 14 april 2012;\n* Default config-path separator changed from ``/`` to ``.``;\n* Configuration values can be accessed like object attributes::\n\n # using the get() method\n conf.get('spam.ham.eggs')\n\n # or like object attributes\n conf.spam.ham.eggs\n\n\nVersion 0.3.1\n^^^^^^^^^^^^^\n\n* Released 18 april 2012;\n* [FIXED] No conversion was happening when config-paths are \n accessed like object attributes;\n* Only one proxy instance is created when accessing config-paths\n like object attributes;\n* Some more unit tests added.\n\n\nVersion 0.4\n^^^^^^^^^^^\n\n* Released 25 april 2012;\n* [ADDED] Stop saving (or bulk set) feature;\n* [ADDED] Backup before save with automatic restore on failure (optional).\n\n\nVersion 0.5\n^^^^^^^^^^^\n\n* Released 24 august 2013;\n* [ADDED] Sub-package to support cross-platform file locking based on fcntl\n on POSIX systems or using ctypes on Windows (no support for 95/98/ME);\n* [ADDED] File lock on write operations;\n* [ADDED] Support for logging;\n* [ADDED] Support for file encodings (or no explicit encoding);\n* [ADDED] Use UTF-8 as default file encoding;\n* [CHANGED] Re-implementation of save operation attempting to minimize\n concurrent-access issues;\n* [REMOVED] Backup options;\n\n\n.. _`Python`: http://www.python.org/\n.. _`JSON`: http://www.json.org/\n.. _`LGPL`: http://www.gnu.org/licenses/lgpl.html\n.. _`PyPI`: http://pypi.python.org/pypi/ConfigViper\n.. _`BitBucket`: http://www.bitbucket.org/\n.. _`Mercurial SCM`: http://mercurial.selenic.com/", "description_content_type": null, "docs_url": "https://pythonhosted.org/ConfigViper/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/danielgoncalves/configviper", "keywords": null, "license": "LGPL", "maintainer": null, "maintainer_email": null, "name": "ConfigViper", "package_url": "https://pypi.org/project/ConfigViper/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ConfigViper/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/danielgoncalves/configviper" }, "release_url": "https://pypi.org/project/ConfigViper/0.5/", "requires_dist": null, "requires_python": null, "summary": "Handles configuration saved as JSON files.", "version": "0.5" }, "last_serial": 847976, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "1b18c14ca9e5a261839f103e58365135", "sha256": "114788c605a7eb402b1c68f80001edf5973a9f2427f8e432c53a28cd4a99d927" }, "downloads": -1, "filename": "ConfigViper-0.1.tar.gz", "has_sig": false, "md5_digest": "1b18c14ca9e5a261839f103e58365135", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29922, "upload_time": "2012-03-13T15:21:51", "url": "https://files.pythonhosted.org/packages/04/b1/98e6e33892e6837f893aee4a004feedba9e41018c4c9423770625ded24ca/ConfigViper-0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "bb713b288f577c8b112404a4611299f5", "sha256": "ff4e37709b10c1ca1d1432db488dfa9ff4daa4d391cab91b52b499b3c5df792b" }, "downloads": -1, "filename": "ConfigViper-0.1.win32-py2.6.exe", "has_sig": false, "md5_digest": "bb713b288f577c8b112404a4611299f5", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 208096, "upload_time": "2012-03-13T15:35:01", "url": "https://files.pythonhosted.org/packages/55/80/13bb5b58072b7d4898a752f7959cf3f8dcccaf1d930b51e41a8d3acf1ef9/ConfigViper-0.1.win32-py2.6.exe" }, { "comment_text": "", "digests": { "md5": "f60766cdf9f01bdac4682c1f079acc7f", "sha256": "48698313629a7ed2574fa4b744d474b718cfa4aaa877675a9dce9626f4533d0f" }, "downloads": -1, "filename": "ConfigViper-0.1.win32-py2.7.exe", "has_sig": false, "md5_digest": "f60766cdf9f01bdac4682c1f079acc7f", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 208096, "upload_time": "2012-03-13T15:39:42", "url": "https://files.pythonhosted.org/packages/2b/8c/4eca76fcd783ad0b388e6a06ac0bd8d3a007446e19c68dcf9c6f86db9d2b/ConfigViper-0.1.win32-py2.7.exe" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "92f0a85f7c6f51cf2b793f9dc4f4007d", "sha256": "81a39365a783f3a71813335a6486c03178cacc4dfcbd9e0b889d58a79762f27b" }, "downloads": -1, "filename": "ConfigViper-0.2.tar.gz", "has_sig": false, "md5_digest": "92f0a85f7c6f51cf2b793f9dc4f4007d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29772, "upload_time": "2012-03-18T04:44:40", "url": "https://files.pythonhosted.org/packages/6f/34/6ae059cfadb25e6e2055ecd3157badc5fb8ede9ee8801ec35f44fce851d2/ConfigViper-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "854b0b32abaebfca6462b1fc04df427e", "sha256": "0445c6182a1857a0c266586cf778d7545dfeda072028e43a190bcd47d660c2e2" }, "downloads": -1, "filename": "ConfigViper-0.3.tar.gz", "has_sig": false, "md5_digest": "854b0b32abaebfca6462b1fc04df427e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30672, "upload_time": "2012-04-15T03:19:02", "url": "https://files.pythonhosted.org/packages/76/85/17c7b3048502e487521837ea370d62c4fd6669d366a66f78b0a412aef60a/ConfigViper-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "1025c7333560b67488d166c57dab4b76", "sha256": "b7268ac6679d859b5b5749257e92a4eb44765d40c62f9e001067fd78c989c01a" }, "downloads": -1, "filename": "ConfigViper-0.3.1.tar.gz", "has_sig": false, "md5_digest": "1025c7333560b67488d166c57dab4b76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31655, "upload_time": "2012-04-18T20:26:10", "url": "https://files.pythonhosted.org/packages/95/78/cfbfd16c89e278e8b4766851246b208a831c1f3fc348aab7cfc1914d5b73/ConfigViper-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "1a29b5e6f8d9cbcc69add6b05d3b2930", "sha256": "9f755a538869f691cade0fb79a5cab7c886069f0f7500e3ab64ad031020db889" }, "downloads": -1, "filename": "ConfigViper-0.4.tar.gz", "has_sig": false, "md5_digest": "1a29b5e6f8d9cbcc69add6b05d3b2930", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33569, "upload_time": "2012-04-25T21:34:04", "url": "https://files.pythonhosted.org/packages/9b/54/d3d185292c091014cda76532d73a39e91f144575fb528e498a48f4336d3b/ConfigViper-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "5aba6c1ad4f2d86098645860afc1c64b", "sha256": "db3e20a57c5c1cc4eec243c29ffc3803444ef21e9ae25e0bdf8bc9df50f644ca" }, "downloads": -1, "filename": "ConfigViper-0.5.tar.gz", "has_sig": false, "md5_digest": "5aba6c1ad4f2d86098645860afc1c64b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39078, "upload_time": "2013-08-24T19:24:28", "url": "https://files.pythonhosted.org/packages/0e/e3/43b5b66fb01fe8693c924f835883e2755ac2b5d824d39658a9d1f9aa9c6c/ConfigViper-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5aba6c1ad4f2d86098645860afc1c64b", "sha256": "db3e20a57c5c1cc4eec243c29ffc3803444ef21e9ae25e0bdf8bc9df50f644ca" }, "downloads": -1, "filename": "ConfigViper-0.5.tar.gz", "has_sig": false, "md5_digest": "5aba6c1ad4f2d86098645860afc1c64b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39078, "upload_time": "2013-08-24T19:24:28", "url": "https://files.pythonhosted.org/packages/0e/e3/43b5b66fb01fe8693c924f835883e2755ac2b5d824d39658a9d1f9aa9c6c/ConfigViper-0.5.tar.gz" } ] }