{ "info": { "author": "Jacek Tomaszewski", "author_email": "jacek.tomek@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Utilities" ], "description": "|\n\n================================\nStoring settings in the database\n================================\n\nNot all settings belong in ``settings.py``, as it has some particular\nlimitations:\n\n * Settings are project-wide. This not only requires apps to clutter up\n ``settings.py``, but also increases the chances of naming conflicts.\n\n * Settings are constant throughout an instance of Django. They cannot be\n changed without restarting the application.\n\n * Settings require a programmer in order to be changed. This is true even\n if the setting has no functional impact on anything else.\n\nMany applications find need to overcome these limitations, and ``dbsettings``\nprovides a convenient way to do so.\n\nThe main goal in using this application is to define a set of placeholders that\nwill be used to represent the settings that are stored in the database. Then,\nthe settings may be edited at run-time using the provided editor, and all Python\ncode in your application that uses the setting will receive the updated value.\n\nRequirements\n============\n\n+------------------+------------+--------------+\n| Dbsettings | Python | Django |\n+==================+============+==============+\n| ==0.11 | 3.5 - 3.7 | 1.10 - 2.2 |\n| +------------+--------------+\n| | 2.7 | 1.10 - 1.11 |\n+------------------+------------+--------------+\n| ==0.10 | 3.4 - 3.5 | 1.7 - 1.10 |\n| +------------+--------------+\n| | 3.2 - 3.3 | 1.7 - 1.8 |\n| +------------+--------------+\n| | 2.7 | 1.7 - 1.10 |\n+------------------+------------+--------------+\n| ==0.9 | 3.4 - 3.5 | 1.7 - 1.9 |\n| +------------+--------------+\n| | 3.2 - 3.3 | 1.7 - 1.8 |\n| +------------+--------------+\n| | 2.7 | 1.7 - 1.9 |\n+------------------+------------+--------------+\n| ==0.8 | 3.2 | 1.5 - 1.8 |\n| +------------+--------------+\n| | 2.7 | 1.4 - 1.8 |\n| +------------+--------------+\n| | 2.6 | 1.4 - 1.6 |\n+------------------+------------+--------------+\n| ==0.7 | 3.2 | 1.5 - 1.7 |\n| +------------+--------------+\n| | 2.7 | 1.3 - 1.7 |\n| +------------+--------------+\n| | 2.6 | 1.3 - 1.6 |\n+------------------+------------+--------------+\n| ==0.6 | 3.2 | 1.5 |\n| +------------+--------------+\n| | 2.6 - 2.7 | 1.3 - 1.5 |\n+------------------+------------+--------------+\n| <=0.5 | 2.6 - 2.7 | 1.2\\* - 1.4 |\n+------------------+------------+--------------+\n\n\\* Possibly version below 1.2 will work too, but not tested.\n\nInstallation\n============\n\nTo install the ``dbsettings`` package, simply place it anywhere on your\n``PYTHONPATH``.\n\nProject settings\n----------------\n\nIn order to setup database storage, and to let Django know about your use of\n``dbsettings``, simply add it to your ``INSTALLED_APPS`` setting, like so::\n\n INSTALLED_APPS = (\n ...\n 'dbsettings',\n ...\n )\n\nIf your Django project utilizes ``sites`` framework, all setting would be related\nto some site. If ``sites`` are not present, settings won't be connected to any site\n(and ``sites`` framework is no longer required since 0.8.1).\n\nYou can force to do (not) use ``sites`` via ``DBSETTINGS_USE_SITES = True / False``\nconfiguration variable (put it in project's ``settings.py``).\n\nBy default, values stored in database are limited to 255 characters per setting.\nYou can change this limit with ``DBSETTINGS_VALUE_LENGTH`` configuration variable.\nIf you change this value after migrations were run, you need to manually alter\nthe ``dbsettings_setting`` table schema.\n\nURL Configuration\n-----------------\n\nIn order to edit your settings at run-time, you'll need to configure a URL to\naccess the provided editors. You'll just need to add a single line, defining\nthe base URL for the editors, as ``dbsettings`` has its own URLconf to handle\nthe rest. You may choose any location you like::\n\n urlpatterns = patterns('',\n ...\n (r'^settings/', include('dbsettings.urls')),\n ...\n )\n\nor (django 2)::\n\n from django.urls import path, include\n\n urlpatterns = [\n ...\n path('settings/', include('dbsettings.urls')),\n ...\n ]\n\nA note about caching\n--------------------\n\nThis framework utilizes Django's built-in `cache framework`_, which is used to\nminimize how often the database needs to be accessed. During development,\nDjango's built-in server runs in a single process, so all cache backends will\nwork just fine.\n\nMost productions environments, including mod_python, FastCGI or WSGI, run multiple\nprocesses, which some backends don't fully support. When using the ``simple``\nor ``locmem`` backends, updates to your settings won't be reflected immediately\nin all workers, causing your application to ignore the new changes.\n\nNo other backends exhibit this behavior, but since ``simple`` is the default,\nmake sure to specify a proper backend when moving to a production environment.\n\n.. _`cache framework`: http://docs.djangoproject.com/en/dev/topics/cache/\n\nAlternatively you can disable caching of settings by setting\n``DBSETTINGS_USE_CACHE = False`` in ``settings.py``. Beware though: every\naccess of any setting will result in database hit.\n\nUsage\n=====\n\nThese database-backed settings can be applied to any model in any app, or even\nin the app itself. All the tools necessary to do so are available within the\n``dbsettings`` module. A single import provides everything you'll need::\n\n import dbsettings\n\nDefining a group of settings\n----------------------------\n\nSettings are be defined in groups that allow them to be referenced together\nunder a single attribute. Defining a group uses a declarative syntax similar\nto that of models, by declaring a new subclass of the ``Group`` class and\npopulating it with values.\n\n::\n\n class ImageLimits(dbsettings.Group):\n maximum_width = dbsettings.PositiveIntegerValue()\n maximum_height = dbsettings.PositiveIntegerValue()\n\nYou may name your groups anything you like, and they may be defined in any\nmodule. This allows them to be imported from common applications if applicable.\n\nDefining individual settings\n----------------------------\n\nWithin your groups, you may define any number of individual settings by simply\nassigning the value types to appropriate names. The names you assign them to\nwill be the attribute names you'll use to reference the setting later, so be\nsure to choose names accordingly.\n\nFor the editor, the default description of each setting will be retrieved from\nthe attribute name, similar to how the ``verbose_name`` of model fields is\nretrieved. Also like model fields, however, an optional argument may be provided\nto define a more fitting description. It's recommended to leave the first letter\nlower-case, as it will be capitalized as necessary, automatically.\n\n::\n\n class EmailOptions(dbsettings.Group):\n enabled = dbsettings.BooleanValue('whether to send emails or not')\n sender = dbsettings.StringValue('address to send emails from')\n subject = dbsettings.StringValue(default='SiteMail')\n\nFor more descriptive explanation, the ``help_text`` argument can be used. It\nwill be shown in the editor.\n\nThe ``default`` argument is very useful - it specify an initial value of the\nsetting.\n\nIn addition, settings may be supplied with a list of available options, through\nthe use of of the ``choices`` argument. This works exactly like the ``choices``\nargument for model fields, and that of the newforms ``ChoiceField``.\n\nThe widget used for a value can be overriden using the ``widget`` keyword. For example:\n\n::\n\n payment_instructions = dbsettings.StringValue(\n help_text=\"Printed on every invoice.\",\n default=\"Payment to Example XYZ\\nBank name here\\nAccount: 0123456\\nSort: 01-02-03\",\n widget=forms.Textarea\n )\n\nA full list of value types is available later in this document, but the process\nand arguments are the same for each.\n\nAssigning settings\n------------------\n\nOnce your settings are defined and grouped properly, they must be assigned to a\nlocation where they will be referenced later. This is as simple as instantiating\nthe settings group in the appropriate location. This may be at the module level\nor within any standard Django model.\n\nGroup instance may receive one optional argument: verbose name of the group.\nThis name will be displayed in the editor.\n\n::\n\n email = EmailOptions()\n\n class Image(models.Model):\n image = models.ImageField(upload_to='/upload/path')\n caption = models.TextField()\n\n limits = ImageLimits('Dimension settings')\n\nMultiple groups may be assigned to the same module or model, and they can even\nbe combined into a single group by using standard addition syntax::\n\n options = EmailOptions() + ImageLimits()\n\nTo separate and tag settings nicely in the editor, use verbose names::\n\n options = EmailOptions('Email') + ImageLimits('Dimesions')\n\nDatabase setup\n--------------\n\nA single model is provided for database storage, and this model must be\ninstalled in your database before you can use the included editors or the\npermissions that will be automatically created. This is a simple matter of\nrunning ``manage.py syncdb`` or ``manage.py migrate`` now that your settings\nare configured.\n\nThis step need only be repeate when settings are added to a new application,\nas it will create the appropriate permissions. Once those are in place, new\nsettings may be added to existing applications with no impact on the database.\n\nUsing your settings\n===================\n\nOnce the above steps are completed, you're ready to make use of database-backed\nsettings.\n\nEditing settings\n----------------\n\nWhen first defined, your settings will default to ``None`` (or ``False`` in\nthe case of ``BooleanValue``), so their values must be set using one of the\nsupplied editors before they can be considered useful (however, if the setting\nhad the ``default`` argument passed in the constructor, its value is already\nuseful - equal to the defined default).\n\nThe editor will be available at the URL configured earlier.\nFor example, if you used the prefix of ``'settings/'``, the URL ``/settings/``\nwill provide an editor of all available settings, while ``/settings/myapp/``\nwould contain a list of just the settings for ``myapp``.\n\nURL patterns are named: ``'site_settings'`` and ``'app_settings'``, respectively.\n\nThe editors are restricted to staff members, and the particular settings that\nwill be available to users is based on permissions that are set for them. This\nmeans that superusers will automatically be able to edit all settings, while\nother staff members will need to have permissions set explicitly.\n\nAccessing settings in Python\n----------------------------\n\nOnce settings have been assigned to an appropriate location, they may be\nreferenced as standard Python attributes. The group becomes an attribute of the\nlocation where it was assigned, and the individual values are attributes of the\ngroup.\n\nIf any settings are referenced without being set to a particular value, they\nwill default to ``None`` (or ``False`` in the case of ``BooleanValue``, or\nwhatever was passed as ``default``). In the\nfollowing example, assume that ``EmailOptions`` were just added to the project\nand the ``ImageLimits`` were added earlier and already set via editor.\n\n::\n\n >>> from myproject.myapp import models\n\n # EmailOptions are not defined\n >>> models.email.enabled\n False\n >>> models.email.sender\n >>> models.email.subject\n 'SiteMail' # Since default was defined\n\n # ImageLimits are defined\n >>> models.Image.limits.maximum_width\n 1024\n >>> models.Image.limits.maximum_height\n 768\n\nThese settings are accessible from any Python code, making them especially\nuseful in model methods and views. Each time the attribute is accessed, it will\nretrieve the current value, so your code doesn't need to worry about what\nhappens behind the scenes.\n\n::\n\n def is_valid(self):\n if self.width > Image.limits.maximum_width:\n return False\n if self.height > Image.limits.maximum_height:\n return False\n return True\n\nAs mentioned, views can make use of these settings as well.\n\n::\n\n from myproject.myapp.models import email\n\n def submit(request):\n\n ...\n # Deal with a form submission\n ...\n\n if email.enabled:\n from django.core.mail import send_mail\n send_mail(email.subject, 'message', email.sender, [request.user.email])\n\nSettings can be not only read, but also written. The admin editor is more\nuser-friendly, but in case code need to change something::\n\n from myproject.myapp.models import Image\n\n def low_disk_space():\n Image.limits.maximum_width = Image.limits.maximum_height = 200\n\nEvery write is immediately commited to the database and proper cache key is deleted.\n\nA note about model instances\n----------------------------\n\nSince settings aren't related to individual model instances, any settings that\nare set on models may only be accessed by the model class itself. Attempting to\naccess settings on an instance will raise an ``AttributeError``.\n\nValue types\n===========\n\nThere are several various value types available for database-backed settings.\nSelect the one most appropriate for each individual setting, but all types use\nthe same set of arguments.\n\nBooleanValue\n------------\n\nPresents a checkbox in the editor, and returns ``True`` or ``False`` in Python.\n\nDurationValue\n-------------\n\nPresents a set of inputs suitable for specifying a length of time. This is\nrepresented in Python as a |timedelta|_ object.\n\n.. |timedelta| replace:: ``timedelta``\n.. _timedelta: https://docs.python.org/2/library/datetime.html#timedelta-objects\n\nFloatValue\n----------\n\nPresents a standard input field, which becomes a ``float`` in Python.\n\nIntegerValue\n------------\n\nPresents a standard input field, which becomes an ``int`` in Python.\n\nPercentValue\n------------\n\nSimilar to ``IntegerValue``, but with a limit requiring that the value be\nbetween 0 and 100. In addition, when accessed in Python, the value will be\ndivided by 100, so that it is immediately suitable for calculations.\n\nFor instance, if a ``myapp.taxes.sales_tax`` was set to 5 in the editor,\nthe following calculation would be valid::\n\n >>> 5.00 * myapp.taxes.sales_tax\n 0.25\n\nPositiveIntegerValue\n--------------------\n\nSimilar to ``IntegerValue``, but limited to positive values and 0.\n\nStringValue\n-----------\n\nPresents a standard input, accepting any text string up to 255\n(or ``DBSETTINGS_VALUE_LENGTH``) characters. In\nPython, the value is accessed as a standard string.\n\nDateTimeValue\n-------------\n\nPresents a standard input field, which becomes a ``datetime`` in Python.\n\nUser input will be parsed according to ``DATETIME_INPUT_FORMATS`` setting.\n\nIn code, one can assign to field string or datetime object::\n\n # These two statements has the same effect\n myapp.Feed.next_feed = '2012-06-01 00:00:00'\n myapp.Feed.next_feed = datetime.datetime(2012, 6, 1, 0, 0, 0)\n\nDateValue\n---------\n\nPresents a standard input field, which becomes a ``date`` in Python.\n\nUser input will be parsed according to ``DATE_INPUT_FORMATS`` setting.\n\nSee ``DateTimeValue`` for the remark about assigning.\n\nTimeValue\n---------\n\nPresents a standard input field, which becomes a ``time`` in Python.\n\nUser input will be parsed according to ``TIME_INPUT_FORMATS`` setting.\n\nSee ``DateTimeValue`` for the remark about assigning.\n\nImageValue\n----------\n\n(requires PIL or Pillow imaging library to work)\n\nAllows to upload image and view its preview.\n\nImageValue has optional ``upload_to`` keyword, which specify path\n(relative to ``MEDIA_ROOT``), where uploaded images will be stored.\nIf keyword is not present, files will be saved directly under\n``MEDIA_ROOT``.\n\nPasswordValue\n-------------\n\nPresents a standard password input. Retain old setting value if not changed.\n\n\nSetting defaults for a distributed application\n==============================================\n\nDistributed applications often have need for certain default settings that are\nuseful for the common case, but which may be changed to suit individual\ninstallations. For such cases, a utility is provided to enable applications to\nset any applicable defaults.\n\nLiving at ``dbsettings.utils.set_defaults``, this utility is designed to be used\nwithin the app's ``management.py``. This way, when the application is installed\nusing ``syncdb``/``migrate``, the default settings will also be installed to the database.\n\nThe function requires a single positional argument, which is the ``models``\nmodule for the application. Any additional arguments must represent the actual\nsettings that will be installed. Each argument is a 3-tuple, of the following\nformat: ``(class_name, setting_name, value)``.\n\nIf the value is intended for a module-level setting, simply set ``class_name``\nto an empty string. The value for ``setting_name`` should be the name given to\nthe setting itself, while the name assigned to the group isn't supplied, as it\nisn't used for storing the value.\n\nFor example, the following code in ``management.py`` would set defaults for\nsome of the settings provided earlier in this document::\n\n from django.conf import settings\n from dbsettings.utils import set_defaults\n from myproject.myapp import models as myapp\n\n set_defaults(myapp,\n ('', 'enabled', True)\n ('', 'sender', settings.ADMINS[0][1]) # Email of the first listed admin\n ('Image', 'maximum_width', 800)\n ('Image', 'maximum_height', 600)\n )\n\n----------\n\nChangelog\n=========\n\n**0.11.0** (31/07/2019)\n - Added compatibility with Django 1.11, 2.0, 2.1, 2.2\n - Dropped compatibility with Django 1.7, 1.8, 1.9\n**0.10.0** (25/09/2016)\n - Added compatibility with Django 1.10\n**0.9.3** (02/06/2016)\n - Fixed (hopefully for good) problem with ImageValue in Python 3 (thanks rolexCoder)\n**0.9.2** (01/05/2016)\n - Fixed bug when saving non-required settings\n - Fixed problem with ImageValue in Python 3 (thanks rolexCoder)\n**0.9.1** (10/01/2016)\n - Fixed `Sites` app being optional (thanks rolexCoder)\n**0.9.0** (25/12/2015)\n - Added compatibility with Django 1.9 (thanks Alonso)\n - Dropped compatibility with Django 1.4, 1.5, 1.6\n**0.8.2** (17/09/2015)\n - Added migrations to distro\n - Add configuration option to change max length of setting values from 255 to whatever\n - Add configuration option to disable caching (thanks nwaxiomatic)\n - Fixed PercentValue rendering (thanks last-partizan)\n**0.8.1** (21/06/2015)\n - Made ``django.contrib.sites`` framework dependency optional\n - Added migration for app\n**0.8.0** (16/04/2015)\n - Switched to using django.utils.six instead of standalone six.\n - Added compatibility with Django 1.8\n - Dropped compatibility with Django 1.3\n**0.7.4** (24/03/2015)\n - Added default values for fields.\n - Fixed Python 3.3 compatibility\n - Added creation of folders with ImageValue\n**0.7.3**, **0.7.2**\n pypi problems\n**0.7.1** (11/03/2015)\n - Fixed pypi distribution.\n**0.7** (06/07/2014)\n - Added PasswordValue\n - Added compatibility with Django 1.6 and 1.7.\n**0.6** (16/09/2013)\n - Added compatibility with Django 1.5 and python3, dropped support for Django 1.2.\n - Fixed permissions: added permission for editing non-model (module-level) settings\n - Make PIL/Pillow not required in setup.py\n**0.5** (11/10/2012)\n - Fixed error occuring when test are run with ``LANGUAGE_CODE`` different than 'en'\n - Added verbose_name option for Groups\n - Cleaned code\n**0.4.1** (02/10/2012)\n - Fixed Image import\n**0.4** (30/09/2012)\n - Named urls\n - Added polish translation\n**0.3** (04/09/2012)\n Included testrunner in distribution\n**0.2** (05/07/2012)\n - Fixed errors appearing when module-level and model-level settings have\n same attribute names\n - Corrected the editor templates admin integration\n - Updated README\n**0.1** (29/06/2012)\n Initial PyPI release\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/zlorf/django-dbsettings", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "django-dbsettings", "package_url": "https://pypi.org/project/django-dbsettings/", "platform": "", "project_url": "https://pypi.org/project/django-dbsettings/", "project_urls": { "Homepage": "http://github.com/zlorf/django-dbsettings" }, "release_url": "https://pypi.org/project/django-dbsettings/0.11.0/", "requires_dist": null, "requires_python": "", "summary": "Application settings whose values can be updated while a project is up and running.", "version": "0.11.0" }, "last_serial": 5622693, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f127d98195fbab49ebb58879eb4aa3e2", "sha256": "a930ffaa6bf3508f541fdeaacfebb972773298f94201b552756f9dc2969a1f2a" }, "downloads": -1, "filename": "django-dbsettings-0.1.tar.gz", "has_sig": false, "md5_digest": "f127d98195fbab49ebb58879eb4aa3e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17261, "upload_time": "2012-06-29T11:53:24", "url": "https://files.pythonhosted.org/packages/aa/cc/110bca24e2bc4145f4d1f74cf31d41b52b3ab12a59ab19f7e74f884306d4/django-dbsettings-0.1.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "71ef952b0c84a3f7e155f0289fc8dee4", "sha256": "18f2a8c80801d4a16f159c762385010ce13303bf83b05058c5a72ee4ce958ec6" }, "downloads": -1, "filename": "django-dbsettings-0.10.0.tar.gz", "has_sig": false, "md5_digest": "71ef952b0c84a3f7e155f0289fc8dee4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21697, "upload_time": "2016-09-25T08:51:58", "url": "https://files.pythonhosted.org/packages/f4/f6/2948424ecf14c3477609633b2b38f5f4b810e18c383eaf65236d1eb1b774/django-dbsettings-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "8ca894a5ec10244ea45fd8848a928558", "sha256": "e3147ced54b7db3371df10df8845e4514aeae96720000bca1a01d0a6490a1404" }, "downloads": -1, "filename": "django-dbsettings-0.11.0.tar.gz", "has_sig": false, "md5_digest": "8ca894a5ec10244ea45fd8848a928558", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21857, "upload_time": "2019-08-02T08:53:55", "url": "https://files.pythonhosted.org/packages/06/1b/8b76c69e9f87561475586753bafd3fc9bf1b6440511a7c9ce4668e23f105/django-dbsettings-0.11.0.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "4dd79f54015f0f1250a4b7fef7d39d89", "sha256": "cd5f299b4dfa864308619ff587014e2c73cc8d0ad9789a51fe1ff072552b907b" }, "downloads": -1, "filename": "django-dbsettings-0.2.tar.gz", "has_sig": false, "md5_digest": "4dd79f54015f0f1250a4b7fef7d39d89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17914, "upload_time": "2012-07-05T13:30:49", "url": "https://files.pythonhosted.org/packages/25/44/21d26873159637a197a922fe2434be944d4d337fa39dce83f4956b325124/django-dbsettings-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "9b9bc7bd29d76dd657ab58676979332d", "sha256": "f11580af973c54019ead80c7d30488e6bfc8896d1c952d88db640b8e8a6659bd" }, "downloads": -1, "filename": "django-dbsettings-0.3.tar.gz", "has_sig": false, "md5_digest": "9b9bc7bd29d76dd657ab58676979332d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18612, "upload_time": "2012-09-04T12:28:26", "url": "https://files.pythonhosted.org/packages/43/bd/2227114fd5176cb73db562ac8b63e3f073a1394142551c9beaaed166b853/django-dbsettings-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "f7332315085dab026a2145caea0ca0da", "sha256": "ac1ab330235fa73305b71025869986052be06150a145cef7bad06a34185ce414" }, "downloads": -1, "filename": "django-dbsettings-0.4.tar.gz", "has_sig": false, "md5_digest": "f7332315085dab026a2145caea0ca0da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21603, "upload_time": "2012-09-30T17:48:49", "url": "https://files.pythonhosted.org/packages/41/cd/2b6e3bd9da07a76514a970c992dfb4d472c8e4d37e6cafe56a9b97773b0b/django-dbsettings-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e0e30383989638211729e934768a047b", "sha256": "84ed05af0349bbcca6fed15ba09fab112097fe83e2e93fdd8bf1a31211d856d1" }, "downloads": -1, "filename": "django-dbsettings-0.4.1.tar.gz", "has_sig": false, "md5_digest": "e0e30383989638211729e934768a047b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21695, "upload_time": "2012-10-02T09:23:09", "url": "https://files.pythonhosted.org/packages/d5/ff/632e90af3c1ebd31f0bfa840481d0d722caab9a2a8b1e8c7e99276569825/django-dbsettings-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "496507ed58121281d2a8719a015f6a2f", "sha256": "e5630de56f129d6ecde98096f8bdd66d4304e6d44e4d7f7821740c54c1a279ac" }, "downloads": -1, "filename": "django-dbsettings-0.5.tar.gz", "has_sig": false, "md5_digest": "496507ed58121281d2a8719a015f6a2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22137, "upload_time": "2012-10-11T14:08:52", "url": "https://files.pythonhosted.org/packages/2d/4a/4acd3417bb07c03f663c4e9cd42fca121125fc40c613c9e4e696453dde3f/django-dbsettings-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "3b68e813dd6046fbc33f06c435aa21fe", "sha256": "2bf6184f43609a4955199708d22be4d0825ed8559483e7f01062dc278075e278" }, "downloads": -1, "filename": "django-dbsettings-0.6.tar.gz", "has_sig": false, "md5_digest": "3b68e813dd6046fbc33f06c435aa21fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23218, "upload_time": "2013-09-15T22:13:44", "url": "https://files.pythonhosted.org/packages/7e/b8/17b90be47968f2c3fc18efb8c544f723b2d1fc91c94e7ec60b9fac19b8ee/django-dbsettings-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "84ed368d43fb54d0f72f0257fef3f6fd", "sha256": "834c31eef9330d7ee823a8f5041422920178aef35d6bc99ed30069d68cee8864" }, "downloads": -1, "filename": "django-dbsettings-0.7.tar.gz", "has_sig": false, "md5_digest": "84ed368d43fb54d0f72f0257fef3f6fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26970, "upload_time": "2014-07-06T20:24:22", "url": "https://files.pythonhosted.org/packages/23/97/e7d667a4705ee4a007bc32e678fecd08cf4003c5780113a1373c80a8bac0/django-dbsettings-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "263be8d5c68c696b2461bbba9a75ce91", "sha256": "a772bbbb082ca67c987cc03cef7943103bde74aa43fab642ee9fb2e8746cc651" }, "downloads": -1, "filename": "django-dbsettings-0.7.1.tar.gz", "has_sig": false, "md5_digest": "263be8d5c68c696b2461bbba9a75ce91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23767, "upload_time": "2015-03-11T21:16:25", "url": "https://files.pythonhosted.org/packages/97/18/e38a4446f7d97c80bbd2f3d69f9c8c2f097a9eae3e6bf3101383e8de4127/django-dbsettings-0.7.1.tar.gz" } ], "0.7.2": [], "0.7.3": [ { "comment_text": "", "digests": { "md5": "d4a7fbc75aaa14ca62e0e6294ac1a616", "sha256": "66f3ac079c2439346072d74023a4fadbd7e1b52f792cb4e9024e63b35b5f19bc" }, "downloads": -1, "filename": "django-dbsettings-0.7.3.tar.gz", "has_sig": false, "md5_digest": "d4a7fbc75aaa14ca62e0e6294ac1a616", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19811, "upload_time": "2015-03-23T23:51:04", "url": "https://files.pythonhosted.org/packages/a5/0a/d4614dba115920c383c6fe29d95de28a69ece5d5abcc590fe383cb4a6341/django-dbsettings-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "37a52429ee31350d8289d5ad0bb66b8e", "sha256": "d995b9ea9a8b7486293e237867895d51263b000880d7ac122fb14c077cf4eed5" }, "downloads": -1, "filename": "django-dbsettings-0.7.4.tar.gz", "has_sig": false, "md5_digest": "37a52429ee31350d8289d5ad0bb66b8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19827, "upload_time": "2015-03-23T23:53:35", "url": "https://files.pythonhosted.org/packages/60/ca/a7281ed824fde73c0bbb326a1cf8a650666df2606d8a5ad8ab384ab4310c/django-dbsettings-0.7.4.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "9fd5e3c9b088e46c21cff70ced2ae3b2", "sha256": "b3670d756e780eb0025a0892bfa1fabf35acd51ca525f6ff2d236c5ea839f455" }, "downloads": -1, "filename": "django-dbsettings-0.8.0.tar.gz", "has_sig": false, "md5_digest": "9fd5e3c9b088e46c21cff70ced2ae3b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19814, "upload_time": "2015-04-16T19:04:46", "url": "https://files.pythonhosted.org/packages/38/17/9c94c0f76239d297be853b136e523ca6806ef94e819abbf8341f98711157/django-dbsettings-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "6b0d3d2acbd0cb77c8af2e140c21f640", "sha256": "a5ee36ef5e97779020347937273af335f6301f7897c4f3c36824748ae99e2f76" }, "downloads": -1, "filename": "django-dbsettings-0.8.1.tar.gz", "has_sig": false, "md5_digest": "6b0d3d2acbd0cb77c8af2e140c21f640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20208, "upload_time": "2015-06-21T20:30:20", "url": "https://files.pythonhosted.org/packages/a6/31/02be5a7b2ef0e2cc9d46c41b43c1e65b06f3abf2fd6226d2a9b33576d55c/django-dbsettings-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "bee1f613193ab76c7385b9e6e6f15d89", "sha256": "a314f8f5f4ec4939a108dd7bd9f2b03eac118a284ed697075e797f2aa954d76c" }, "downloads": -1, "filename": "django-dbsettings-0.8.2.tar.gz", "has_sig": false, "md5_digest": "bee1f613193ab76c7385b9e6e6f15d89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20919, "upload_time": "2015-09-17T15:24:36", "url": "https://files.pythonhosted.org/packages/39/63/bf3f3d5b37f11c108884d72e863a88ca05ef6abe4bb8ea4459b7d6772746/django-dbsettings-0.8.2.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "8a88cb13e663c22a6412c9ef3831b745", "sha256": "f71e91edb0b914231798b92ad2ab63555c405898ea5c122e7c3b8fcb04b632ca" }, "downloads": -1, "filename": "django-dbsettings-0.9.0.tar.gz", "has_sig": false, "md5_digest": "8a88cb13e663c22a6412c9ef3831b745", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21155, "upload_time": "2015-12-25T20:05:58", "url": "https://files.pythonhosted.org/packages/89/27/46dab189d91cb5ef03aa9e7a3781b135106e98f17b8c4ae74a98e0352ce9/django-dbsettings-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "543185501f233b290289e152d32cf7b7", "sha256": "5786d997deb1203395bfee3243643198fabe9b22db598dee288dcc6073a0032a" }, "downloads": -1, "filename": "django-dbsettings-0.9.1.tar.gz", "has_sig": false, "md5_digest": "543185501f233b290289e152d32cf7b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21266, "upload_time": "2016-01-10T11:18:47", "url": "https://files.pythonhosted.org/packages/81/54/92e0f88e34013208a95da16b263575fddba68daef1168d5fb11878bfda7f/django-dbsettings-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "620a5228ffb53b29b1cb4d42cdc2a778", "sha256": "62d03accc323a38a80a527ae3e404f398cbff8569e8349066c2743195b67eb54" }, "downloads": -1, "filename": "django-dbsettings-0.9.2.tar.gz", "has_sig": false, "md5_digest": "620a5228ffb53b29b1cb4d42cdc2a778", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21365, "upload_time": "2016-05-01T20:41:27", "url": "https://files.pythonhosted.org/packages/aa/59/e767b6dbddf023c4f90ca6c782ef3790798682813c4ae32d7ae2f5e73214/django-dbsettings-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "1ad00e8a21e6e13e300136c9cf918d7e", "sha256": "6f514d40c36caa3777ad2df8d02cd7e469a48e24bf74c5c31655bc241057ec50" }, "downloads": -1, "filename": "django-dbsettings-0.9.3.tar.gz", "has_sig": false, "md5_digest": "1ad00e8a21e6e13e300136c9cf918d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21393, "upload_time": "2016-06-02T21:40:03", "url": "https://files.pythonhosted.org/packages/66/fb/69f33014dc9dbca5b50c10d32f6486c1cfc76e426d41ecb68f6a68b52d09/django-dbsettings-0.9.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ca894a5ec10244ea45fd8848a928558", "sha256": "e3147ced54b7db3371df10df8845e4514aeae96720000bca1a01d0a6490a1404" }, "downloads": -1, "filename": "django-dbsettings-0.11.0.tar.gz", "has_sig": false, "md5_digest": "8ca894a5ec10244ea45fd8848a928558", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21857, "upload_time": "2019-08-02T08:53:55", "url": "https://files.pythonhosted.org/packages/06/1b/8b76c69e9f87561475586753bafd3fc9bf1b6440511a7c9ce4668e23f105/django-dbsettings-0.11.0.tar.gz" } ] }