{ "info": { "author": "Giampaolo Rodola'", "author_email": "g.rodola@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.0", "Programming Language :: Python :: 3.1", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Security", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Systems Administration", "Topic :: Utilities" ], "description": ".. image:: https://img.shields.io/pypi/dm/confix.svg\n :target: https://pypi.python.org/pypi/confix#downloads\n :alt: Downloads this month\n\n.. image:: https://api.travis-ci.org/giampaolo/confix.png?branch=master\n :target: https://travis-ci.org/giampaolo/confix\n :alt: Linux tests (Travis)\n\n.. image:: https://ci.appveyor.com/api/projects/status/kmkc7f7muvrcr8oq?svg=true\n :target: https://ci.appveyor.com/project/giampaolo/confix\n :alt: Windows tests (Appveyor)\n\n.. image:: https://coveralls.io/repos/giampaolo/confix/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/giampaolo/confix?branch=master\n :alt: Test coverage (coverall.io)\n\n.. image:: https://img.shields.io/pypi/v/confix.svg\n :target: https://pypi.python.org/pypi/confix/\n :alt: Latest version\n\n.. image:: https://img.shields.io/pypi/l/confix.svg\n :target: https://pypi.python.org/pypi/confix/\n :alt: License\n\nConfix\n======\n\nQuick links\n-----------\n\n* `Home page `__\n* `Documentation `__\n* `Blog `__\n* `Forum `__\n* `Download `__\n\nAbout\n-----\n\nConfix is a language-agnostic configuration parser for Python.\nIt lets you define the default configuration of an app as a standard Python\nclass, then overwrite its attributes from a static configuration file (be it\nYAML, JSON, INI or TOML) and / or via\n`environment variables `_.\nIn doing so it validates the overridden settings by:\n\n- making sure they are of the same type\n- (optional) marking them as mandatory (useful for passwords)\n- (optional) validating them via a callable\n\nExample:\n\npython file:\n\n.. code-block:: python\n\n # main.py\n from confix import register, parse\n\n @register()\n class config:\n username = 'ftp'\n password = None\n\n parse('config.yaml')\n print(config.username)\n print(config.password)\n\nconfig file:\n\n.. code-block:: yaml\n\n # config.yml\n password: secret\n\nshell:\n\n.. code-block:: bash\n\n $ python main.py\n ftp\n secret\n\nFor more examples see `docs `_.\n\nMain features\n-------------\n\n- supports **YAML, **JSON**, **INI** and **TOML** serialization formats.\n- can be easily extended to support other formats.\n- support for Python 3\n- small code base\n- 100% test coverage\n- allows you to define 'schemas' in order to **validate** fields and mark them\n as **required**:\n\n .. code-block:: python\n\n # ftp.py\n from confix import register, schema\n\n @register()\n class config:\n port = schema(default=21, validator=lambda x: isinstance(x, int))\n password = schema(required=True)\n\nStatus\n------\n\nCode is solid and fully tested (100% coverage). Its API may change (break)\nbetween major versions though.", "description_content_type": null, "docs_url": "https://pythonhosted.org/confix/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.python.org/pypi/confix", "keywords": "config,yaml,toml,json,ini,sensitive,password", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "confix", "package_url": "https://pypi.org/project/confix/", "platform": "Platform Independent", "project_url": "https://pypi.org/project/confix/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://pypi.python.org/pypi/confix" }, "release_url": "https://pypi.org/project/confix/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Language agnostic configuration parser", "version": "0.2.1" }, "last_serial": 1653314, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9bfa5a79ec69d4afe09e443c5d74d718", "sha256": "bfa397f0a66a601a457f1e936652fea03cd1108260337ea3ca07768b803847f7" }, "downloads": -1, "filename": "confix-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9bfa5a79ec69d4afe09e443c5d74d718", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7627, "upload_time": "2014-05-16T16:46:35", "url": "https://files.pythonhosted.org/packages/cd/23/5d33512d0f86c79c3df20c2b4174d5bf07886649212ebc99d650ac3f6ca9/confix-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "7cf56d3837414cc2540ed8ec195688f0", "sha256": "30c5c8138f0b613b0b0114d631cdc5fcf11db38eb4fe508c10c8270c78971b1e" }, "downloads": -1, "filename": "confix-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7cf56d3837414cc2540ed8ec195688f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42307, "upload_time": "2015-07-28T11:43:13", "url": "https://files.pythonhosted.org/packages/f3/be/09b5febe24aeac074b1d98d5904eb177a49bd2f5df65a02069fa31623bed/confix-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "381f9421f43249ab5e54769e98ef1b1c", "sha256": "8c8cefebecf3f9b5ce33d60723b9261d24a8bb9de4e19ecaca9032b7eb32f690" }, "downloads": -1, "filename": "confix-0.2.1.tar.gz", "has_sig": false, "md5_digest": "381f9421f43249ab5e54769e98ef1b1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42377, "upload_time": "2015-07-28T13:56:25", "url": "https://files.pythonhosted.org/packages/6c/5d/4b40dd76cd3e13017e0260d0a95b5e7a09d6775390fcd90cfd805bfde3c9/confix-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "381f9421f43249ab5e54769e98ef1b1c", "sha256": "8c8cefebecf3f9b5ce33d60723b9261d24a8bb9de4e19ecaca9032b7eb32f690" }, "downloads": -1, "filename": "confix-0.2.1.tar.gz", "has_sig": false, "md5_digest": "381f9421f43249ab5e54769e98ef1b1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42377, "upload_time": "2015-07-28T13:56:25", "url": "https://files.pythonhosted.org/packages/6c/5d/4b40dd76cd3e13017e0260d0a95b5e7a09d6775390fcd90cfd805bfde3c9/confix-0.2.1.tar.gz" } ] }