{ "info": { "author": "Thomas Marques", "author_email": "marquesthom@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "# django-settings-custom\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://travis-ci.org/ThomasMarques/django-settings-custom.svg?branch=master)](https://travis-ci.org/ThomasMarques/django-settings-custom)\n[![Coverage Status](https://coveralls.io/repos/github/ThomasMarques/django-settings-custom/badge.svg)](https://coveralls.io/github/ThomasMarques/django-settings-custom)\n[![PyPI version](https://img.shields.io/pypi/v/django-settings-custom.svg)](https://pypi.org/project/django-settings-custom)\n[![Versions supported](https://img.shields.io/pypi/pyversions/django-settings-custom.svg)](https://pypi.org/project/django-settings-custom)\n[![Supports Wheel format](https://img.shields.io/pypi/wheel/django-settings-custom.svg)](https://pypi.org/project/django-settings-custom)\n[![Documentation Status](https://readthedocs.org/projects/django-settings-custom/badge/?version=latest)](https://django-settings-custom.readthedocs.io/en/latest/?badge=latest)\n\nA Django interactive command for configuration file generation.\n\n## Getting It\n\nThe project is on PyPI (https://pypi.org/project/django-settings-custom/)\n\n```\npip install django-settings-custom\n```\n\n## Installing It\n\nTo enable `django_settings_custom` in your project you need to add it to `INSTALLED_APPS` in your projects\n`settings.py` file:\n```\nINSTALLED_APPS = (\n ...\n 'django_settings_custom',\n ...\n)\n```\n\n## Using It\n\nCreate a template for your target conf.ini like\n```ini\n[DATABASE]\nNAME = { USER_VALUE }\nHOST = { USER_VALUE }\nPORT = { USER_VALUE }\n\n[DATABASE_CREDENTIALS]\nUSER = { USER_VALUE }\nPASSWORD = { ENCRYPTED_USER_VALUE }\n\n[DJANGO]\nKEY = { DJANGO_SECRET_KEY }\n\n# A constant field\n[LDAP]\nURL = 'ldaps://myldap'\n```\n\n### Configure in Django settings\nAdd `settings.py` file\n```python\nSETTINGS_TEMPLATE_FILE = 'PATH_TO_YOUR_TEMPLATE_CONFIGURATION_FILE'\nSETTINGS_FILE_PATH = 'TARGET_FOR_CONFIGURATION_FILE'\n```\n\nLaunch in command line\n```\npython manage.py generate_settings\n```\n\n### Or all in command line\n```\npython manage.py generate_settings path/to/template/settings.ini target/path/of/settings.ini\n```\n\n\n## Results\n![](results.gif)\n\nThe command ask user to fill missing values from template:\n```\n[user@localhost a_project]$ ./manage.py generate_conf\n** Configuration file generation: **\n\n** Configuration file generation: **\nDo you want to generate the secret key for Django ? (Y/n) : y\nDjango secret key generated\n\n** Enter values for configuration file content **\n\nValue for [DATABASE] NAME: database_name\nValue for [DATABASE] HOST: database_host\nValue for [DATABASE] PORT: 900\nValue for [DATABASE_CREDENTIALS] USER: my_user\nValue for [DATABASE_CREDENTIALS] PASSWORD (will be encrypted):\n\nWriting file at /home/user/a_project/conf.ini:\nConfiguration file successfully generated.\n[user@localhost a_project]$ \n```\n\nIt generates the file /home/user/a_project/conf.ini:\n```ini\n[DATABASE]\nNAME = database_name\nHOST = database_host\nPORT = 900\n\n[DATABASE_CREDENTIALS]\nUSER = my_user\nPASSWORD = JbAwLj5Zwz8lMrvcUZq5sP/v6eaUFY5E7U8Fmg63vxI=\n\n# A constant field\n[LDAP]\nURL = 'ldaps://monldap'\n\n[DJANGO]\nKEY = w)r13ne4=id9_8xdojir)3)%%5m3r$co#jwj_)4d*_%%!0+f#sro\n```\n\nAnd to decrypt values in your code (in settings.py for example), you may use `django_settings_custom.encryption.decrypt` :\n```python\nimport configparser\nfrom django_settings_custom import encryption\n\nconfig = configparser.RawConfigParser()\nconfig.read(SETTINGS_FILE_PATH)\ndatabase_password = encryption.decrypt(config.get('DATABASE_CREDENTIALS', 'PASSWORD'))\n```\nTo decrypt values, the function uses the django SECRET_KEY (must be set before).\n\n## Miscellaneous\n\n### If you don't want to use Django settings\nIf you don't want to add specific variables to your Django settings file, you can inherit `generate_settings.Command` to specify command options :\n```python\nfrom django_settings_custom.management.commands import generate_settings\n\n\nclass Command(generate_settings.Command):\n settings_template_file = 'The/settings/template/file_path.ini'\n settings_file_path = 'The/target/settings/file_path.ini'\n```\n\n### Adding custom tag\nTo add a custom tag, you can inherit `generate_settings.Command` and override the method `get_value` :\n\n```python\nimport random\nfrom django_settings_custom.management.commands import generate_settings\n\n\nclass Command(generate_settings.Command):\n\n def get_value(self, section, key, value_type):\n if value_type == 'RANDOM_VALUE':\n return random.uniform(0, 100)\n return super(Command, self).get_value(section, key, value_type)\n```\n\nOr a little more complex example :\n\n```python\nfrom django.core.management.base import CommandError\nfrom django_settings_custom.management.commands import generate_settings\n\n\nclass Command(generate_settings.Command):\n\n def get_value(self, section, key, value_type):\n int_less_10 = value_type == 'INT_LESS_THAN_10'\n if int_less_10:\n value_type = 'USER_VALUE'\n value = super(Command, self).get_value(section, key, value_type)\n if int_less_10:\n try:\n value = int(value)\n if value >= 10:\n raise CommandError('This field needs an int less than 10.')\n except ValueError:\n raise CommandError('This field needs an int.')\n return value\n```\n\n## [Documentation](https://django-settings-custom.readthedocs.io/en/latest/?badge=latest)\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ThomasMarques/django-settings-custom", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-settings-custom", "package_url": "https://pypi.org/project/django-settings-custom/", "platform": "any", "project_url": "https://pypi.org/project/django-settings-custom/", "project_urls": { "Homepage": "https://github.com/ThomasMarques/django-settings-custom" }, "release_url": "https://pypi.org/project/django-settings-custom/1.1.1/", "requires_dist": [ "django", "pycryptodome", "PyYAML", "six", "mock ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "coveralls ; extra == 'dev'", "pypandoc ; extra == 'dev'", "sphinx ; extra == 'dev'", "sphinx-rtd-theme ; extra == 'dev'", "black ; extra == 'dev'", "isort ; extra == 'dev'", "pip ; extra == 'dev'", "setuptools ; extra == 'dev'", "wheel ; extra == 'dev'", "mock ; extra == 'test'", "pytest ; extra == 'test'", "pytest-cov ; extra == 'test'", "coveralls ; extra == 'test'", "pypandoc ; extra == 'test'", "sphinx ; extra == 'test'", "sphinx-rtd-theme ; extra == 'test'" ], "requires_python": "", "summary": "A Django interactive command for configuration file generation.", "version": "1.1.1" }, "last_serial": 5949617, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "3639da856d74b97eabd59d7d7d7f5d16", "sha256": "27723386367e52ecd889f2443406dee5c3b42ba5137da812800c057b516b4da6" }, "downloads": -1, "filename": "django_settings_custom-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3639da856d74b97eabd59d7d7d7f5d16", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5115, "upload_time": "2018-10-31T15:47:35", "url": "https://files.pythonhosted.org/packages/52/59/d249547ed4ea43eacbe5bd8a8e4faecdda06da0ad08e22aa6885dfabb012/django_settings_custom-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f281fefc4e25403d6c55d378b44ee9d3", "sha256": "9d08472c8359615171c9ca3e7cb998f624cec282a125eb54c7054b390662c9cd" }, "downloads": -1, "filename": "django-settings-custom-1.0.1.tar.gz", "has_sig": false, "md5_digest": "f281fefc4e25403d6c55d378b44ee9d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4327, "upload_time": "2018-10-31T15:47:36", "url": "https://files.pythonhosted.org/packages/55/69/af5acf199e927af708e8cbffff876208787dded10dc6a4673be6df98f2b0/django-settings-custom-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "76f1f6d7c1bb40dc48cb843f5e0b9a1c", "sha256": "6e80c587e8438a60a0c56aebd25bbdde24468f18f2117adca518dd8fe9115edc" }, "downloads": -1, "filename": "django_settings_custom-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "76f1f6d7c1bb40dc48cb843f5e0b9a1c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6393, "upload_time": "2018-10-31T15:50:08", "url": "https://files.pythonhosted.org/packages/90/c1/d11cf9ffddc8b3a4273d08d46715a34177071651b20f924ee255e71f29ec/django_settings_custom-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f17b293a77555cd8b1ddb8f96c22a4dd", "sha256": "7e8ac0c916fce096816970f8b4aa3732f50af26270109f4a3fe2f2571b532a92" }, "downloads": -1, "filename": "django-settings-custom-1.0.2.tar.gz", "has_sig": false, "md5_digest": "f17b293a77555cd8b1ddb8f96c22a4dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4770, "upload_time": "2018-10-31T15:50:09", "url": "https://files.pythonhosted.org/packages/5e/a9/d0cd1c93ee08970600a6622a129b82cb08b09444193bd325ce17bfa7c8e5/django-settings-custom-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "001986d5eecbb57e1c166794d180369e", "sha256": "7831bd5ff68431caca6f1d65297d5df736a6f2dfc5c969f1a87bd37fae149f3c" }, "downloads": -1, "filename": "django_settings_custom-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "001986d5eecbb57e1c166794d180369e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6418, "upload_time": "2018-10-31T15:52:10", "url": "https://files.pythonhosted.org/packages/9e/93/4278369bc8090affc06d152286a6c134226a40b85a7d8edd5265a1998f1b/django_settings_custom-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b77712bd0ba808f04f9b3a1de00872bf", "sha256": "f39ffc7c4f4ab70ddee4eeaea8410ec76dc402035b8486fdc6c9cadcb318ba19" }, "downloads": -1, "filename": "django-settings-custom-1.0.3.tar.gz", "has_sig": false, "md5_digest": "b77712bd0ba808f04f9b3a1de00872bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4811, "upload_time": "2018-10-31T15:52:11", "url": "https://files.pythonhosted.org/packages/6f/32/3052f8cf440408b5e6dad9b893c88fa3f8cc76a70bd0a1186222a2f54f57/django-settings-custom-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "447807bfd9aa6872b132021739089ddd", "sha256": "35ff46d677cef031ba74034004490730a1fb4d6b563eaaf96caec8d133bb6b6f" }, "downloads": -1, "filename": "django_settings_custom-1.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "447807bfd9aa6872b132021739089ddd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7085, "upload_time": "2018-11-06T14:13:53", "url": "https://files.pythonhosted.org/packages/3a/b1/067b084bb16542b8b11a6db42d39ff3858e70623abd56a4740597ae14e64/django_settings_custom-1.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "de3c7555cffdc58ea8767a2fed611aa1", "sha256": "eb5af6c4c844305ab569c0e940b3c9cfdc7a42e70d3c68a030ff1f895f33a8cd" }, "downloads": -1, "filename": "django-settings-custom-1.0.4.tar.gz", "has_sig": false, "md5_digest": "de3c7555cffdc58ea8767a2fed611aa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5484, "upload_time": "2018-11-06T14:13:55", "url": "https://files.pythonhosted.org/packages/0f/f1/0db2f68e627c3fd1f9c4f58a05b4752e287154fdc76f70febfacec496475/django-settings-custom-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "ecc7da7726986a09aaab412fd11fe790", "sha256": "b37ecfed2a434c7eb4496c00300c164282e2696c288f0f4e4acfdd9fae751185" }, "downloads": -1, "filename": "django_settings_custom-1.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ecc7da7726986a09aaab412fd11fe790", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8146, "upload_time": "2018-11-08T11:30:48", "url": "https://files.pythonhosted.org/packages/12/66/6c6ace49c7fa8e621213f070a8f11fa4d2233d8d1ea5d84435745cb4621c/django_settings_custom-1.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb10c4398f96316d6bba5bf295c3ead5", "sha256": "b094f64b1ebc7df818d7fb61faaefcd1d46742e807d31d8b4da12300c320ac86" }, "downloads": -1, "filename": "django-settings-custom-1.0.5.tar.gz", "has_sig": false, "md5_digest": "eb10c4398f96316d6bba5bf295c3ead5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6383, "upload_time": "2018-11-08T11:30:49", "url": "https://files.pythonhosted.org/packages/5c/02/55996d39a51015da59cf3b047064a66f73b1f519f7d35b46be446ab2de96/django-settings-custom-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "ae1003b43e45165fec28fee266d1833c", "sha256": "6465eef4adfa978cbeda4604475182401dc3a61c03695491ebe598ce9977408b" }, "downloads": -1, "filename": "django_settings_custom-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ae1003b43e45165fec28fee266d1833c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8371, "upload_time": "2018-11-27T08:04:24", "url": "https://files.pythonhosted.org/packages/31/05/c7d76038c2e740939c04efe17ec2ca7ab57b55bcce1e774107a7758177d4/django_settings_custom-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54a8f5586635e5f50fa27b11a7519d80", "sha256": "1212cbf90e37b993ccca7f3c65b47de69302f0dff35e3ae8e9aaa80d646eab66" }, "downloads": -1, "filename": "django-settings-custom-1.0.6.tar.gz", "has_sig": false, "md5_digest": "54a8f5586635e5f50fa27b11a7519d80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6737, "upload_time": "2018-11-27T08:04:25", "url": "https://files.pythonhosted.org/packages/fe/5b/e98af9903cf48564ab056b740207ac99df3cd3a356fd498321198ce58558/django-settings-custom-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "1ec59434c75bbd37dffcb2b473db1576", "sha256": "4c35279f1234365eaca9b962aec0bf17f2b2c79fe6be71be2aa75a761aadd391" }, "downloads": -1, "filename": "django_settings_custom-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1ec59434c75bbd37dffcb2b473db1576", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8375, "upload_time": "2018-12-18T09:18:06", "url": "https://files.pythonhosted.org/packages/06/8f/9debf0b93f766b22fe366f7a2cccd2581e352a631c5b3b0275f3bf3990b7/django_settings_custom-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "666b464150780a71715f9607e96244ff", "sha256": "556f7a7f1d90cbfb7936d7e712bb6e86eb681c8edc89de3a7e1b9a4c5b18ec1c" }, "downloads": -1, "filename": "django-settings-custom-1.0.7.tar.gz", "has_sig": false, "md5_digest": "666b464150780a71715f9607e96244ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6743, "upload_time": "2018-12-18T09:18:08", "url": "https://files.pythonhosted.org/packages/04/91/9381f8a1ac43cb358404557ba28850cb81e2a506d18618cb8ff65df13d52/django-settings-custom-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "7158c3dd920868e92d1deacc66033690", "sha256": "ff3125f93d1aa06605daea85355d6e5f881ba250899b3216a9183e69a2d34d95" }, "downloads": -1, "filename": "django_settings_custom-1.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7158c3dd920868e92d1deacc66033690", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9742, "upload_time": "2019-01-24T13:24:13", "url": "https://files.pythonhosted.org/packages/56/c1/ea8597323bc2a7628d4f5c6fae2a6e4292d9d1abd40180906ede2d4ba061/django_settings_custom-1.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4569b50cd062d90086e376209c9951a3", "sha256": "dac2badd0a3bb92e4527ccecef70a64845d45595e606537b19632323c5c5cbba" }, "downloads": -1, "filename": "django-settings-custom-1.0.8.tar.gz", "has_sig": false, "md5_digest": "4569b50cd062d90086e376209c9951a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8199, "upload_time": "2019-01-24T13:24:15", "url": "https://files.pythonhosted.org/packages/c0/a2/ba8201d63ffa7034883ba97dcec091d63db0ff2a05152ae497a5188dcbf2/django-settings-custom-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "7111dd10941b0427f7c2243f50cf7dd7", "sha256": "62aa9d2bb0fb87416d4c6ce2ebce6a8b1db960575fb338dd5f2ae7ab4230dcf4" }, "downloads": -1, "filename": "django_settings_custom-1.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7111dd10941b0427f7c2243f50cf7dd7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9929, "upload_time": "2019-03-12T15:15:46", "url": "https://files.pythonhosted.org/packages/65/35/7b35f048eb7a3c4efa78f00cd001b6ff428ec4c985942bb933ed89f6db96/django_settings_custom-1.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "613a1bfe00e96b7d01d4a31144fb27f8", "sha256": "7889c5a88424a2ccdd35ef72e3224476b53d20dd6cd31a30d3f44676b3859151" }, "downloads": -1, "filename": "django-settings-custom-1.0.9.tar.gz", "has_sig": false, "md5_digest": "613a1bfe00e96b7d01d4a31144fb27f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8462, "upload_time": "2019-03-12T15:15:48", "url": "https://files.pythonhosted.org/packages/02/1c/313c098d5d75025596be1facd465c25fb1ec41c7360a7182a90d75701e22/django-settings-custom-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "3b7f97f911cc3c6dc03f90898e26c004", "sha256": "85f5818488da9c0a8146a6135439410594122a4f09374b5f3e263fa37966a294" }, "downloads": -1, "filename": "django_settings_custom-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3b7f97f911cc3c6dc03f90898e26c004", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10898, "upload_time": "2019-10-07T12:28:25", "url": "https://files.pythonhosted.org/packages/f6/c9/14c448b5331bc82bea61ab1dc3e6137ee1955d61cf0e0f49d482b3028300/django_settings_custom-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a9b71d047ef1e7358062b65903e34e8", "sha256": "499dd33033413a93013bda499d89efacb9938c9773cb4ee361615f9823d54e04" }, "downloads": -1, "filename": "django-settings-custom-1.1.0.tar.gz", "has_sig": false, "md5_digest": "9a9b71d047ef1e7358062b65903e34e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9205, "upload_time": "2019-10-07T12:28:27", "url": "https://files.pythonhosted.org/packages/15/57/bdffc83d0cd37e25ec20c95f7186c1c9fa783710c25e96105b5dec0424bf/django-settings-custom-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "2ddea88ae41459320da0f8b9a0ba10e9", "sha256": "453ae8388aa0ea63c5e4ccda46c751fee7284f9586ea654438cc5ad10c0029b1" }, "downloads": -1, "filename": "django_settings_custom-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ddea88ae41459320da0f8b9a0ba10e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11150, "upload_time": "2019-10-09T12:55:34", "url": "https://files.pythonhosted.org/packages/25/d4/dd0f6d71d0e2643772925328a8142b6784e54fa79f2fdfe4d02f09d9ce05/django_settings_custom-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a77f167ebaf97ffe332f6cb96acf6172", "sha256": "bbaf19a784fc454e4e72164c9a9e3235eb9f5381fbf2476dc78ca049884608d0" }, "downloads": -1, "filename": "django-settings-custom-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a77f167ebaf97ffe332f6cb96acf6172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9269, "upload_time": "2019-10-09T12:55:36", "url": "https://files.pythonhosted.org/packages/d9/a0/f9e48859ccc5fb7d82319103fdeb7e414d2a6f303b04c329bcfe8e9e5369/django-settings-custom-1.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ddea88ae41459320da0f8b9a0ba10e9", "sha256": "453ae8388aa0ea63c5e4ccda46c751fee7284f9586ea654438cc5ad10c0029b1" }, "downloads": -1, "filename": "django_settings_custom-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ddea88ae41459320da0f8b9a0ba10e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11150, "upload_time": "2019-10-09T12:55:34", "url": "https://files.pythonhosted.org/packages/25/d4/dd0f6d71d0e2643772925328a8142b6784e54fa79f2fdfe4d02f09d9ce05/django_settings_custom-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a77f167ebaf97ffe332f6cb96acf6172", "sha256": "bbaf19a784fc454e4e72164c9a9e3235eb9f5381fbf2476dc78ca049884608d0" }, "downloads": -1, "filename": "django-settings-custom-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a77f167ebaf97ffe332f6cb96acf6172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9269, "upload_time": "2019-10-09T12:55:36", "url": "https://files.pythonhosted.org/packages/d9/a0/f9e48859ccc5fb7d82319103fdeb7e414d2a6f303b04c329bcfe8e9e5369/django-settings-custom-1.1.1.tar.gz" } ] }