{ "info": { "author": "Thierry Jossermoz", "author_email": "thierry.jossermoz@oohlalabs.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. note::\n\n For the latest source, discussions, bug reports, etc., please visit the `GitHub repository `_\n\n\n===========\nDjango Pods\n===========\n\n\n.. image:: https://travis-ci.org/jthi3rry/django-pods.svg?branch=master\n :target: https://travis-ci.org/jthi3rry/django-pods\n\n.. image:: https://coveralls.io/repos/jthi3rry/django-pods/badge.png?branch=master\n :target: https://coveralls.io/r/jthi3rry/django-pods\n\n.. image:: https://landscape.io/github/jthi3rry/django-pods/master/landscape.png\n :target: https://landscape.io/github/jthi3rry/django-pods/master\n\n\nDjango Pods is a minimalist package that lets you configure default settings for your `reusable apps `_, and allows developers using your apps to override these defaults in their own project settings.\n\nThis package is largely inspired by `Django Rest Framework `_ and `Django AllAuth `_ and adapted to work with `Django Applications `_, but also with any classes extending ``pods.apps.AppSettings``.\n\n\nPreview\n-------\n\nDjango Pods allows developers to customise app settings in two ways:\n\n\n1. Dictionary style (as per `Django Rest Framework `_)::\n\n\n YOUR_APP = {\n \"SETTING\": \"VALUE\"\n }\n\n\n2. Prefix style::\n\n\n YOUR_APP_SETTING = \"VALUE\"\n\n\nInstallation\n------------\n::\n\n pip install django-pods\n\n\nUsage in Reusable Apps\n----------------------\n\n1. If you are publishing a packaged application, add ``django-pods`` to the ``install_requires`` of your ``setup.py``::\n\n\n setup(\n name=\"rock_n_roll\",\n install_requires=[\"django-pods\", ...],\n ...\n )\n\n\n2. Add the ``AppSettings`` mixin to your AppConfig implementation in ``rock_n_roll/apps.py``::\n\n\n from django.apps import AppConfig\n from pods.apps import AppSettings\n\n\n class RockNRollConfig(AppSettings, AppConfig):\n name = 'rock_n_roll'\n verbose_name = \"Rock \u2019n\u2019 roll\"\n\n # Path to app settings module\n settings_module = \"rock_n_roll.app_settings\"\n\n # Optional\n settings_imports = (\"CLASS_TO_IMPORT\",)\n\n # Optional\n # defaults to the capitalized class name, e.g. ROCK_N_ROLL_CONFIG\n settings_key = \"ROCK_N_ROLL\"\n\n\n3. Declare your default app settings in ``rock_n_roll/app_settings.py``::\n\n\n QUESTION = \"What is your favourite band?\"\n ANSWER = \"The Rolling Stones\"\n CLASS_TO_IMPORT = \"path.to.ClassToImport\"\n\n\n4. Access your settings anywhere in your package::\n\n\n from django.apps import apps\n\n app = apps.get_app_config('rock_n_roll')\n\n app.QUESTION\n # What is your favourite band?\n\n app.ANSWER\n # The Rolling Stomes\n\n app.CLASS_TO_IMPORT\n # \n\n\nSettings can also be accessed directly via the class::\n\n\n from rock_n_roll.apps import RockNRollConfig\n\n\n RockNRollConfig.QUESTION\n RockNRollConfig.ANSWER\n RockNRollConfig.CLASS_TO_IMPORT\n\n\n.. note:: **AppSettings ``settings`` Property**\n\n ``AppSettings`` implements ``__getattr__`` to proxy to the ``settings`` attributes of the class::\n\n\n app.QUESTION == app.settings.QUESTION\n\n # or\n\n RockNRollConfig.QUESTION == RockNRollConfig.settings.QUESTION\n\n\n.. note:: **Usage with Django < 1.7**\n\n Prior to Django 1.7, there wasn't a logical place to create a class representing an app. However, any class can extend ``AppSettings``. For example, in ``models.py``::\n\n from pods.apps import AppSettings\n\n\n class AnyClass(AppSettings):\n settings_module = \"rock_n_roll.app_settings\"\n\n\n Import your app class directly::\n\n from .models import AnyClass\n\n AnyClass.QUESTION\n\n\n\nUsage in Projects\n-----------------\n\n\n1. Install the app that uses Django Pods::\n\n\n pip install rock_n_roll\n\n\n2. Add the app to the ``INSTALLED_APPS`` of your ``project/settings.py``::\n\n\n INSTALLED_APPS = (\n ...\n \"rock_n_roll\",\n ...\n )\n\n\n3. Override the app's settings as needed::\n\n\n # Dictionary style\n ROCK_N_ROLL = {\n \"ANSWER\": \"The Beatles\",\n }\n\n\n # Prefix style\n ROCK_N_ROLL_ANSWER = \"The Beatles\"\n\n\nRunning Tests\n-------------\n::\n\n tox\n\n\nContributions\n-------------\n\nAll contributions and comments are welcome.\n\n\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/jthi3rry/django-pods", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-pods", "package_url": "https://pypi.org/project/django-pods/", "platform": "", "project_url": "https://pypi.org/project/django-pods/", "project_urls": { "Homepage": "https://github.com/jthi3rry/django-pods" }, "release_url": "https://pypi.org/project/django-pods/1.1.4/", "requires_dist": [ "Django" ], "requires_python": "", "summary": "App Settings for Django", "version": "1.1.4" }, "last_serial": 3492569, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "23dd5da763b5cce5030a5c1d2c61ac19", "sha256": "ae6a889ff6441568d9ebccdaffbdf860145de825c64a22c0018ce9cf82aea756" }, "downloads": -1, "filename": "django_pods-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23dd5da763b5cce5030a5c1d2c61ac19", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8770, "upload_time": "2014-08-12T11:10:22", "url": "https://files.pythonhosted.org/packages/b1/ec/2aed4f50305d735869e2880f121ce3e615674212b81aa762b0b1baf73f18/django_pods-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0245150f22fbc4fa5562948a6ddaed1", "sha256": "67db75eda4c5291bc1f3dd954cd1b9085a360e5157830438c5ed6285fe0e314f" }, "downloads": -1, "filename": "django-pods-0.1.tar.gz", "has_sig": false, "md5_digest": "d0245150f22fbc4fa5562948a6ddaed1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5820, "upload_time": "2014-08-12T11:09:55", "url": "https://files.pythonhosted.org/packages/75/0b/89137980cb50e08030a439bd2cb2ffd98ab9a2059024f2d52812295212c8/django-pods-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "51a51116361cc198966fcc73e1f9f2cb", "sha256": "648edc65a257d45b6dac1c527e02f1b7ab0c1e51b66e3af5968d74068fb1cff2" }, "downloads": -1, "filename": "django_pods-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "51a51116361cc198966fcc73e1f9f2cb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9156, "upload_time": "2014-08-28T07:27:26", "url": "https://files.pythonhosted.org/packages/03/bf/b78a734ed8b45d52a9174a8ae48d421cef7b76974d8b25814e7458748f9a/django_pods-0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "317422aef90947ce556822aba38f56ae", "sha256": "3bbe374963c4ed4c64014a44102694b059116fa3da2c006a2c26f572ea29b946" }, "downloads": -1, "filename": "django-pods-0.2.tar.gz", "has_sig": false, "md5_digest": "317422aef90947ce556822aba38f56ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6050, "upload_time": "2014-08-28T07:27:08", "url": "https://files.pythonhosted.org/packages/6c/b0/a995a1f232005956338ede7b868a50cafa174ccc2c32ddc95a1a5b31d44d/django-pods-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "32fa4463313d53d0db96e0e81e7b1fa0", "sha256": "2cfa53d1ed4704eed822d7272c00b5c4fba676a95fef4469850d92480c3e8cbe" }, "downloads": -1, "filename": "django_pods-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32fa4463313d53d0db96e0e81e7b1fa0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7907, "upload_time": "2014-09-03T00:25:20", "url": "https://files.pythonhosted.org/packages/1a/c4/70e23bc266f492199a7733ef4ce72cecb3183dff4ac329778328152529d0/django_pods-0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "300eb8e013128c6904d22e536f275d99", "sha256": "d7274a8333cb794e8e39f2a3a1fa67285aacc352d35a1a04721e72d78c4c36a7" }, "downloads": -1, "filename": "django-pods-0.3.tar.gz", "has_sig": false, "md5_digest": "300eb8e013128c6904d22e536f275d99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6216, "upload_time": "2014-09-03T00:24:57", "url": "https://files.pythonhosted.org/packages/ce/35/53c07543dc5c8786ef4360a00805f1e9503e748c042422b4d7a7623ba124/django-pods-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "6624d4b571bf35e0aa7b158862722ee7", "sha256": "21c56e80df3dee2ece66a62b1450a2a04525303ac95bdb812592b3733e4bcfef" }, "downloads": -1, "filename": "django_pods-0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6624d4b571bf35e0aa7b158862722ee7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 9222, "upload_time": "2014-09-10T08:34:26", "url": "https://files.pythonhosted.org/packages/8c/67/f2e759a2a7655b4b47f017b04a5774c07e4a8a684203f5580fca281aadb6/django_pods-0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19629245b1d10c073859837230525184", "sha256": "7302e87e349b3840e3ffd85cfb85b33640b5935bf38ebd8516d8b9190fb42623" }, "downloads": -1, "filename": "django-pods-0.4.tar.gz", "has_sig": false, "md5_digest": "19629245b1d10c073859837230525184", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6213, "upload_time": "2014-09-10T08:34:05", "url": "https://files.pythonhosted.org/packages/b7/e5/e39c291f5ba7d8bfbf8de45a5bc506409d302602545297ec3e9fa163a953/django-pods-0.4.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "5ad7aff3c02147097a177c1f8856d256", "sha256": "da694206ad4a67222bf550ffdd850a0165c7a4f4df99124582596c7f1fa56a29" }, "downloads": -1, "filename": "django_pods-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5ad7aff3c02147097a177c1f8856d256", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 10416, "upload_time": "2014-10-18T09:51:56", "url": "https://files.pythonhosted.org/packages/c4/db/e054c27b1b41f2e8377c5292973aa4d3edb280e5b8dbee67c77aa7f428d5/django_pods-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1c4d6c5a1be17b8c85ed8d0f20d79ec8", "sha256": "e2c893ca35d823579a7012c76b92c2ee86842eafa7c29b982d9e9723db9d08b1" }, "downloads": -1, "filename": "django-pods-1.0.tar.gz", "has_sig": false, "md5_digest": "1c4d6c5a1be17b8c85ed8d0f20d79ec8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7070, "upload_time": "2014-10-18T09:51:48", "url": "https://files.pythonhosted.org/packages/26/6d/e312f39841b4b0ef0c7e972ea562dcad74ad332bb7433776aa78f988bb77/django-pods-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "42676d6eefc6d37df3c82b0550418bd9", "sha256": "d2346148c8500227f09f57dac660067661c542b7d33c04cf6bf94bacaeb7ab52" }, "downloads": -1, "filename": "django_pods-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "42676d6eefc6d37df3c82b0550418bd9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7100, "upload_time": "2014-11-06T23:58:42", "url": "https://files.pythonhosted.org/packages/90/aa/664ce7455fc34003a32ef8440cfdcbf8988f97f13166f44f06be33f79359/django_pods-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f07b09e9a36a29c50e00dfaf248b1345", "sha256": "92ae9f8e6171d5eb988cf75e0529a025e3f64002f241347774b8d999bd33a7eb" }, "downloads": -1, "filename": "django-pods-1.1.tar.gz", "has_sig": false, "md5_digest": "f07b09e9a36a29c50e00dfaf248b1345", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6103, "upload_time": "2014-11-06T23:48:20", "url": "https://files.pythonhosted.org/packages/a4/ef/d2c3a7502d66ccd006a51382be775b19229b342296f1e80d9d3f1206a43d/django-pods-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "4a6f551cef5714383f5849fce75315ef", "sha256": "65ea6482eb1bd03ebfbb0f3c79f5a648605e1f56aa03e609614d4784ba846c4f" }, "downloads": -1, "filename": "django_pods-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a6f551cef5714383f5849fce75315ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7288, "upload_time": "2015-01-30T00:16:48", "url": "https://files.pythonhosted.org/packages/e1/20/413da607d5c4472a81feda9e1856bc1468ac21c0485a86da3186d54c1980/django_pods-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c1f089bf7c5fa8da15dc6839d8703f1", "sha256": "e615dde7b32d75f3c83d06daa3b931f03410257506e53abced8ded1f23a9b4fa" }, "downloads": -1, "filename": "django-pods-1.1.1.tar.gz", "has_sig": false, "md5_digest": "6c1f089bf7c5fa8da15dc6839d8703f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6231, "upload_time": "2015-01-30T00:16:27", "url": "https://files.pythonhosted.org/packages/34/0f/22a0d38f3633260515368ea3d08b0c2feda4649d51f756b53098f4827428/django-pods-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "4036ac5e6102a698d038885799311df9", "sha256": "bc70e2b04ea54470dc2beb1dcb593ba347a57873858327066f30db57ee1c6595" }, "downloads": -1, "filename": "django_pods-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4036ac5e6102a698d038885799311df9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7443, "upload_time": "2015-03-06T04:57:11", "url": "https://files.pythonhosted.org/packages/b7/73/6e978a194a95915a2c36ab466a81d9e96f552c2054eda729ef0f6fa05b3a/django_pods-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "59f67c840fecf0260c8a79c71daf8a30", "sha256": "ecadc0ec5bed980a448b8bc25c85c2ac7640d214d000f72b999232c238bf99ab" }, "downloads": -1, "filename": "django-pods-1.1.2.tar.gz", "has_sig": false, "md5_digest": "59f67c840fecf0260c8a79c71daf8a30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6448, "upload_time": "2015-03-06T04:57:08", "url": "https://files.pythonhosted.org/packages/1e/80/580390f0734ebec5936721e630dd4c7a447ca128fefb785c7bc8721032d6/django-pods-1.1.2.tar.gz" } ], "1.1.3.dev0": [ { "comment_text": "", "digests": { "md5": "0642e48bc4ed020e2207f5308a887594", "sha256": "28543920bcf3b6e3262de97a31ff7862d4bf8589a4925f383da495ad72ec647d" }, "downloads": -1, "filename": "django_pods-1.1.3.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0642e48bc4ed020e2207f5308a887594", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7067, "upload_time": "2018-01-12T00:50:37", "url": "https://files.pythonhosted.org/packages/d2/ca/553151dfc8b3ab931ff01585b1f3f01635dbd2dc26f885d22f36fceb2ae8/django_pods-1.1.3.dev0-py2.py3-none-any.whl" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "03aa87628e812b64be3a0d059e3b027c", "sha256": "2360eaa2db04a06c181837afbc933cab5fb3e8a0971553ba70c17b5cb3873410" }, "downloads": -1, "filename": "django_pods-1.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03aa87628e812b64be3a0d059e3b027c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6995, "upload_time": "2018-01-16T01:42:44", "url": "https://files.pythonhosted.org/packages/ba/64/2938a12aeea987d8727f49971de87490eccfe21fab2dcfbdbd5231fcefff/django_pods-1.1.4-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "03aa87628e812b64be3a0d059e3b027c", "sha256": "2360eaa2db04a06c181837afbc933cab5fb3e8a0971553ba70c17b5cb3873410" }, "downloads": -1, "filename": "django_pods-1.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "03aa87628e812b64be3a0d059e3b027c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6995, "upload_time": "2018-01-16T01:42:44", "url": "https://files.pythonhosted.org/packages/ba/64/2938a12aeea987d8727f49971de87490eccfe21fab2dcfbdbd5231fcefff/django_pods-1.1.4-py2.py3-none-any.whl" } ] }