{ "info": { "author": "edX", "author_email": "oscm@edx.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 1.11", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "Part of `edX code`__.\n\n__ http://code.edx.org/\n\ndjango-config-models |Travis|_ |Codecov|_\n===================================================\n.. |Travis| image:: https://travis-ci.org/edx/config_models.svg?branch=master\n.. _Travis: https://travis-ci.org/edx/config_models\n\n.. |Codecov| image:: http://codecov.io/github/edx/config_models/coverage.svg?branch=master\n.. _Codecov: http://codecov.io/github/edx/config_models?branch=master\n\nOverview\n--------\n\nThis app allows other apps to easily define a configuration model\nthat can be hooked into the admin site to allow configuration management\nwith auditing.\n\nInstallation\n------------\n\nAdd ``config_models`` to your ``INSTALLED_APPS`` list.\n\nUsage\n-----\n\nCreate a subclass of ``ConfigurationModel``, with fields for each\nvalue that needs to be configured::\n\n class MyConfiguration(ConfigurationModel):\n frobble_timeout = IntField(default=10)\n frazzle_target = TextField(defalut=\"debug\")\n\nThis is a normal django model, so it must be synced and migrated as usual.\n\nThe default values for the fields in the ``ConfigurationModel`` will be\nused if no configuration has yet been created.\n\nRegister that class with the Admin site, using the ``ConfigurationAdminModel``::\n\n from django.contrib import admin\n\n from config_models.admin import ConfigurationModelAdmin\n\n admin.site.register(MyConfiguration, ConfigurationModelAdmin)\n\nUse the configuration in your code::\n\n def my_view(self, request):\n config = MyConfiguration.current()\n fire_the_missiles(config.frazzle_target, timeout=config.frobble_timeout)\n\nUse the admin site to add new configuration entries. The most recently created\nentry is considered to be ``current``.\n\nConfiguration\n-------------\n\nThe current ``ConfigurationModel`` will be cached in the ``configuration`` django cache,\nor in the ``default`` cache if ``configuration`` doesn't exist. The ``configuration`` and ``default`` caches\nare specified in the django ``CACHES`` setting. The caching can be per-process, per-machine, per-cluster, or\nsome other strategy, depending on the cache configuration.\n\nYou can specify the cache timeout in each ``ConfigurationModel`` by setting the ``cache_timeout`` property.\n\nYou can change the name of the cache key used by the ``ConfigurationModel`` by overriding\nthe ``cache_key_name`` function.\n\nExtension\n---------\n\n``ConfigurationModels`` are just django models, so they can be extended with new fields\nand migrated as usual. Newly added fields must have default values and should be nullable,\nso that rollbacks to old versions of configuration work correctly.\n\nDocumentation\n-------------\n\nThe full documentation is at https://config_models.readthedocs.org.\n\nLicense\n-------\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute `_ for details.\n\nEven though they were written with ``edx-platform`` in mind, the guidelines\nshould be followed for Open edX code in general.\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@edx.org.\n\nMailing List and IRC Channel\n----------------------------\n\nYou can discuss this code in the `edx-code Google Group`__ or in the ``#edx-code`` IRC channel on Freenode.\n\n__ https://groups.google.com/forum/#!forum/edx-code\n\n\nChange Log\n----------\n\n..\n All enhancements and patches to cookiecutter-django-app will be documented\n in this file. It adheres to the structure of http://keepachangelog.com/ ,\n but in reStructuredText instead of Markdown (for ease of incorporation into\n Sphinx documentation and the PyPI description).\n\n This project adheres to Semantic Versioning (http://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n~~~~~~~~~~\n[1.0.1] - 2019-04-23\n~~~~~~~~~~~~~~~~~~~~\n* Fix auto publishing to PyPI\n\n[1.0.0] - 2019-04-23\n~~~~~~~~~~~~~~~~~~~~\nChanged\n-------\n* Unpin django-rest-framework requirements. This is a potentially **breaking change** if people were\n relying on this package to ensure the correct version of djangorestframework was being installed.\n\n\n[0.2.0] - 2018-07-13\n~~~~~~~~~~~~~~~~~~~~\n\nAdded\n-----\n* Support for Python 3.6\n\nRemoved\n-------\n* Testing against Django 1.8 - 1.10\n\nChanged\n-------\n* Updated dependency management to follow OEP-18\n\n[0.1.10] - 2018-05-21\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nChanged\n-------\n* Don't assume the user model is Django's default auth.User\n\n\n[0.1.9] - 2017-08-07\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nChanged\n-------\n* Updated Django REST Framework dependency to 3.6 as we were not actually compatible with 3.2.\n\n\n[0.1.8] - 2017-06-19\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdded\n-----\n* Support for Django 1.11.\n\n\n[0.1.7] - 2017-06-19\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n* Unreleased version number\n\n\n[0.1.6] - 2017-06-01\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdded\n-----\n* Support for Django 1.10.\n\n[0.1.1] - [0.1.5] - 2017-06-01\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdded\n_____\n\n* Add quality testing to travis run.\n* Add encrypted password for package PyPI.\n\nRemoved\n-------\n\n* Remove the quality condition on deployment.\n* Remove the version combos known to fail.\n\nChanged\n-------\n\n* Allow for lower versions of djangorestframework, to be compatible with edx-platform.\n* Constrict DRF to version that works.\n* Update versions of requirements via pip-compile.\n* Use different test target - test-all instead of validate.\n\nFixed\n-----\n\n* Fix name and supported versions.\n\n[0.1.0] - 2016-10-06\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAdded\n_____\n\n* First release on PyPI.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/edx/django-config-models", "keywords": "Django edx", "license": "AGPL 3.0", "maintainer": "", "maintainer_email": "", "name": "django-config-models", "package_url": "https://pypi.org/project/django-config-models/", "platform": "", "project_url": "https://pypi.org/project/django-config-models/", "project_urls": { "Homepage": "https://github.com/edx/django-config-models" }, "release_url": "https://pypi.org/project/django-config-models/1.0.1/", "requires_dist": [ "Django (<2,>=1.8)", "djangorestframework (>=3.6)" ], "requires_python": "", "summary": "Configuration models for Django allowing config management with auditing.", "version": "1.0.1" }, "last_serial": 5178842, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "e4d7c6c581bc3dbd5729640ccdfa835b", "sha256": "403059c63c34bb38d60e780482d4f373b75a18170a6964f1341ba2a37d839adf" }, "downloads": -1, "filename": "django_config_models-0.1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e4d7c6c581bc3dbd5729640ccdfa835b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24919, "upload_time": "2018-05-29T14:57:26", "url": "https://files.pythonhosted.org/packages/e4/61/91c12ca65b44e63d366d5223090bc80aba9cf95504fd15a5168d9ff6f0b8/django_config_models-0.1.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3244c74c21ab059151ff95433f0ab82c", "sha256": "3bf0d50855ee251c04d031af3176b9dd482efe519e8c9315acc2f03b85e5d5e6" }, "downloads": -1, "filename": "django-config-models-0.1.10.tar.gz", "has_sig": false, "md5_digest": "3244c74c21ab059151ff95433f0ab82c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34178, "upload_time": "2018-05-29T14:57:27", "url": "https://files.pythonhosted.org/packages/37/50/8fd1ed1fadeb08a9b95785315754bea7f6ff9633719a40b102557a6a3f24/django-config-models-0.1.10.tar.gz" } ], "0.1.2": [], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d5d3b1c62836865cdd7f2d3b8b5f1f9f", "sha256": "1b4b1b2c8307a06945fdd565ab7f5dd942e1e0cfc14fb08e6d7027d6bb49a1e5" }, "downloads": -1, "filename": "django_config_models-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d5d3b1c62836865cdd7f2d3b8b5f1f9f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26165, "upload_time": "2016-10-11T20:24:21", "url": "https://files.pythonhosted.org/packages/a1/8c/f9f0b8d6143820b979402da10f673de5e08fbff95076df775aaca2f08e87/django_config_models-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c7f7da95d0a8cd8427a66433ddfb414", "sha256": "da5074b233ce08bc71e597d78bd02db5327d1f4651f08508468c81fe5e65e51b" }, "downloads": -1, "filename": "django-config-models-0.1.3.tar.gz", "has_sig": false, "md5_digest": "3c7f7da95d0a8cd8427a66433ddfb414", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32428, "upload_time": "2016-10-11T20:24:24", "url": "https://files.pythonhosted.org/packages/d1/27/0d4377b3c2c2fd21323df006a117ae0ea8e178dbaf9989ed3fbfa6181bf8/django-config-models-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "ba1b7bfd2c03ae66f24878300084b2cb", "sha256": "8e2a52616b4d6f924a7a6b27d16028a8084ddd779921331d1351d8379586e249" }, "downloads": -1, "filename": "django_config_models-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba1b7bfd2c03ae66f24878300084b2cb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26166, "upload_time": "2017-02-16T13:59:03", "url": "https://files.pythonhosted.org/packages/e2/67/0e02323292f6f3de04eb1e789fc4fd437732ba9556ddcf93de3f80adbb7c/django_config_models-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1f34fe7a99d4f1815333a4fe8d2ebe1", "sha256": "429b9085b58232d88135f50e530ca4cbe5a89cee3a87a57e63c0083eae57a320" }, "downloads": -1, "filename": "django-config-models-0.1.5.tar.gz", "has_sig": false, "md5_digest": "f1f34fe7a99d4f1815333a4fe8d2ebe1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32434, "upload_time": "2017-02-16T13:59:04", "url": "https://files.pythonhosted.org/packages/4d/91/0e77fec2920dc7897c72c8f455374de928547fc89f1f31556b393fc10b1a/django-config-models-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "157e6aa1548db5110280e38148e56137", "sha256": "4dcee7a6208f8d3e5f82e4225bbe817e7f42ef4440506648939737a6619c6d3b" }, "downloads": -1, "filename": "django_config_models-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "157e6aa1548db5110280e38148e56137", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26729, "upload_time": "2017-06-09T15:32:14", "url": "https://files.pythonhosted.org/packages/07/65/1613a8029af66ad08ed9070472e8e8bc5b0f9fe02636175ef5553333481e/django_config_models-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87f64870374e9e3041b5abbcf6f00578", "sha256": "4f70e23da57e69c2bfc94f44d5fd396bb081aee0f11033d48f30cd7a0cda342f" }, "downloads": -1, "filename": "django-config-models-0.1.6.tar.gz", "has_sig": false, "md5_digest": "87f64870374e9e3041b5abbcf6f00578", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33047, "upload_time": "2017-06-09T15:32:16", "url": "https://files.pythonhosted.org/packages/21/08/89cf3fd4c5553ed30abef7fe2fe4b5b1df2f4a79c767983ed6abceb72423/django-config-models-0.1.6.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "a6db6120e6c474d852e98d952a9324a4", "sha256": "4ceb02beb3e54f07cf71d77a7cb8afd7e26182122e553300ab53de86fb7e0a57" }, "downloads": -1, "filename": "django_config_models-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6db6120e6c474d852e98d952a9324a4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27859, "upload_time": "2017-06-20T17:43:13", "url": "https://files.pythonhosted.org/packages/7d/94/7dd51f876e6f3e1ebc5e240f26266a7d19ee405f4238bbae90625fcbcafb/django_config_models-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08d692f727f16b3bc1df25770ebc9e5b", "sha256": "dc83e2d2486e0e301720bc42ab5816d87949d80750ea4d3a5538a2e8da3f1103" }, "downloads": -1, "filename": "django-config-models-0.1.8.tar.gz", "has_sig": false, "md5_digest": "08d692f727f16b3bc1df25770ebc9e5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33959, "upload_time": "2017-06-20T17:43:15", "url": "https://files.pythonhosted.org/packages/f7/80/b9a6e3a70f4a1cccc4e95063fca448ab1dc941bcf7e7bd759d03e24719a4/django-config-models-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "58472d80b847d94f7233c352080182ad", "sha256": "7c048fc27333d58542a8ac2d501afafe2f4cf7acdd11f5243cf6976624098d90" }, "downloads": -1, "filename": "django_config_models-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "58472d80b847d94f7233c352080182ad", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27977, "upload_time": "2017-08-07T21:25:34", "url": "https://files.pythonhosted.org/packages/41/e0/13d6e7f81f4cdd3be297f3bf62d8f05ecd6884a9ac3546a4cfe4d25cd121/django_config_models-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a40d9b05a478897e0e36c6806c0b08d", "sha256": "2791e76696b6b1c8aa2bfb4de84bda3b820c13f4ddb89422042c92cc37ddb4cd" }, "downloads": -1, "filename": "django-config-models-0.1.9.tar.gz", "has_sig": false, "md5_digest": "0a40d9b05a478897e0e36c6806c0b08d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34071, "upload_time": "2017-08-07T21:25:35", "url": "https://files.pythonhosted.org/packages/b7/38/d89aa96b44121fced30576fa7bb7eb7762665eab46dc5ef3b1873bf19904/django-config-models-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "260f68c98ec20aada6e8d9417727eb46", "sha256": "f585875245fab9028007fb40170fffdf44fd8d48b323809e6dfc7446a3db6b16" }, "downloads": -1, "filename": "django_config_models-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "260f68c98ec20aada6e8d9417727eb46", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25129, "upload_time": "2018-07-13T19:57:37", "url": "https://files.pythonhosted.org/packages/2c/7d/2794e3a787b33d676c07e133e96dc851cd38c5bc97a7a8ed1afa2cd6a4ce/django_config_models-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9abe5209cc76feed38c4f14f2d954c04", "sha256": "d71b6a6199a6ddee7add5bbf76af8489dfa026a2191ac12fadecdccc2c2e5c8e" }, "downloads": -1, "filename": "django-config-models-0.2.0.tar.gz", "has_sig": false, "md5_digest": "9abe5209cc76feed38c4f14f2d954c04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34741, "upload_time": "2018-07-13T19:57:38", "url": "https://files.pythonhosted.org/packages/8d/c2/529822e8ddf47c7ef82f020fb8ca512d522a7e5b9b7b9af57c553fb71616/django-config-models-0.2.0.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "3461ed0f7f979d2c5276b4ea9869bb3f", "sha256": "eb022265af80ad5c408e375281bdd274b3faa524035dc789f28cfd55c765babc" }, "downloads": -1, "filename": "django_config_models-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3461ed0f7f979d2c5276b4ea9869bb3f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37692, "upload_time": "2018-10-12T20:08:02", "url": "https://files.pythonhosted.org/packages/db/48/18e40ec96e9187bf1fc26c3b6289660e0564f1a9252dfb318ac8e39fc8d8/django_config_models-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09d95a469cc0c5cf7159bbd41a98e599", "sha256": "1a45e8cc15bf94d5ebc9e0f47a777d06ca76a6fb76a9357082189581dae1ce3b" }, "downloads": -1, "filename": "django-config-models-0.2.2.tar.gz", "has_sig": false, "md5_digest": "09d95a469cc0c5cf7159bbd41a98e599", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32424, "upload_time": "2018-10-12T20:08:03", "url": "https://files.pythonhosted.org/packages/91/08/6985c95e6fa83d2955cfce6619bdfd4494a3c6a45c7bac5c9e3aafa958d5/django-config-models-0.2.2.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "24b8978839f1854803e38555e8ca7f74", "sha256": "592b0c129cfeeb1ec95c5a1426ab2511c79d11d6e40102673f485b029a828d4f" }, "downloads": -1, "filename": "django_config_models-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "24b8978839f1854803e38555e8ca7f74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37814, "upload_time": "2019-04-23T18:59:19", "url": "https://files.pythonhosted.org/packages/3e/2b/ca199bf2d7e0761f9045c891155f571213f253da13ed64ae98b0d03e61d7/django_config_models-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f7fc4c35a863fcbbd126d65b31cff10", "sha256": "7ed152df341d7dcf8a5c28d3f92df523d3803b1675ef141651475779b4b870fc" }, "downloads": -1, "filename": "django-config-models-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7f7fc4c35a863fcbbd126d65b31cff10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32584, "upload_time": "2019-04-23T18:59:20", "url": "https://files.pythonhosted.org/packages/30/cd/c50577bce3611bbb30869bffe43e91aed4161a443307577a3c5af4fed85c/django-config-models-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "24b8978839f1854803e38555e8ca7f74", "sha256": "592b0c129cfeeb1ec95c5a1426ab2511c79d11d6e40102673f485b029a828d4f" }, "downloads": -1, "filename": "django_config_models-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "24b8978839f1854803e38555e8ca7f74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 37814, "upload_time": "2019-04-23T18:59:19", "url": "https://files.pythonhosted.org/packages/3e/2b/ca199bf2d7e0761f9045c891155f571213f253da13ed64ae98b0d03e61d7/django_config_models-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f7fc4c35a863fcbbd126d65b31cff10", "sha256": "7ed152df341d7dcf8a5c28d3f92df523d3803b1675ef141651475779b4b870fc" }, "downloads": -1, "filename": "django-config-models-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7f7fc4c35a863fcbbd126d65b31cff10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32584, "upload_time": "2019-04-23T18:59:20", "url": "https://files.pythonhosted.org/packages/30/cd/c50577bce3611bbb30869bffe43e91aed4161a443307577a3c5af4fed85c/django-config-models-1.0.1.tar.gz" } ] }