{ "info": { "author": "Jerd Flanagan", "author_email": "gmflanagan@outlook.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Utilities" ], "description": "Waterboy - Dynamic Application settings\n=======================================\n\nStore \"live\" application settings in a choice of key/value data stores.\n\nThis was originally a fork of `django-constance`_, but is now independent of\nDjango and is essentially the key/value abstraction part of the original library.\n\nBackends currently supported: Redis and MongoDB.\n\nTested with Python 2.7 and Python 3.4.\n\nThe source is on `github`_.\n\nInstallation\n------------\n\n::\n\n $ pip install waterboy\n\nUsage\n-----\n\nIn your application, define the settings that you want to be editable::\n\n CONFIG = {\n '': ,\n ...\n }\n\nFor example::\n\n CONFIG = {\n 'INT_VALUE': 1,\n 'LONG_VALUE': 100000000,\n 'BOOL_VALUE': True,\n 'STRING_VALUE': 'Hello world',\n 'UNICODE_VALUE': six.u('Rivi\u00e8re-Bonjour'),\n 'DECIMAL_VALUE': Decimal('0.1'),\n 'DATETIME_VALUE': datetime(2010, 8, 23, 11, 29, 24),\n 'FLOAT_VALUE': 3.1415926536,\n 'DATE_VALUE': date(2010, 12, 24),\n 'TIME_VALUE': time(23, 59, 59),\n }\n\nThen create a Config object based on these initial settings. For example, using Redis::\n\n >>> from waterboy import RedisConfig\n >>> cfg = RedisConfig(initial=CONFIG)\n\nYou then retrieve settings from the backend via attribute-style access::\n\n >>> cfg.INT_VALUE\n 1\n\nIf the backend returns None then the default value is returned.\n\nSimilarly, setting an attribute on the Config object will transparently \"upsert\"\n(update or insert) that value in the backend.\n\nAttempts to get or set values on the Config object will fail with an AttributeError\nif the key does not exist in the initial defaults dictionary::\n\n >>> cfg.ABCD = 'abcd'\n Traceback (most recent call last):\n ...\n AttributeError: 'RedisConfig' object has no attribute 'ABCD'\n\nBut this behaviour may be modified by passing **strict=False** to the Config constructor::\n\n >>> cfg = RedisConfig(initial=CONFIG, strict=False)\n\nwhich will cause the existence check to be bypassed::\n\n >>> cfg.ABCD = 'abcd'\n\nDevelopment\n-----------\n\nClone and run tests::\n\n $ git clone git@github.com:gmflanagan/waterboy.git\n $ cd waterboy\n $ make test\n\nTests are run via tox and pytest.\n\nIf redis and mongo are not running on the declared ports then the tests associated\nwith those backends will be skipped. See the makefile for the default ports.\n\nTo install redis and mongo locally, run buildout::\n\n $ make buildout\n\nThen run redis in the foreground with::\n\n $ make redis\n\nand mongodb with::\n\n $ make mongod\n\nNow run all tests::\n\n $ make test\n\n.. _django-constance: http://django-constance.readthedocs.org/\n.. _waterboy: https://github.com/gmflanagan/waterboy\n.. _github: https://github.com/gmflanagan/waterboy", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/gmflanagan/waterboy", "keywords": "libraries,settings,redis,mongodb", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "waterboy", "package_url": "https://pypi.org/project/waterboy/", "platform": "any", "project_url": "https://pypi.org/project/waterboy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/gmflanagan/waterboy" }, "release_url": "https://pypi.org/project/waterboy/0.1.0/", "requires_dist": null, "requires_python": null, "summary": "Live application settings with pluggable backends, including Redis and MongoDB.", "version": "0.1.0" }, "last_serial": 1669880, "releases": { "0.0.0": [], "0.1.0": [ { "comment_text": "", "digests": { "md5": "34bd88dde9bfcae8a45aa4928538fca0", "sha256": "97e89b501b2645481c698788e9bbb401108894b2a196b8aa1c7eb8d2e0f86b42" }, "downloads": -1, "filename": "waterboy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "34bd88dde9bfcae8a45aa4928538fca0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15356, "upload_time": "2015-08-08T21:07:54", "url": "https://files.pythonhosted.org/packages/c6/8a/5a59fccf2c32369d21228d58a5331f868c3c6d68e8d8a9b8688e4afd1327/waterboy-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "34bd88dde9bfcae8a45aa4928538fca0", "sha256": "97e89b501b2645481c698788e9bbb401108894b2a196b8aa1c7eb8d2e0f86b42" }, "downloads": -1, "filename": "waterboy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "34bd88dde9bfcae8a45aa4928538fca0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15356, "upload_time": "2015-08-08T21:07:54", "url": "https://files.pythonhosted.org/packages/c6/8a/5a59fccf2c32369d21228d58a5331f868c3c6d68e8d8a9b8688e4afd1327/waterboy-0.1.0.tar.gz" } ] }