{ "info": { "author": "Jonathan Stoppani", "author_email": "jonathan@stoppani.name", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4" ], "description": "=======\nCOOLFIG\n=======\n\n.. image:: https://img.shields.io/travis/GaretJax/coolfig.svg\n :target: https://travis-ci.org/GaretJax/coolfig\n\n.. image:: https://img.shields.io/pypi/v/coolfig.svg\n :target: https://pypi.python.org/pypi/coolfig\n\n.. image:: https://img.shields.io/pypi/dm/coolfig.svg\n :target: https://pypi.python.org/pypi/coolfig\n\n.. image:: https://img.shields.io/coveralls/GaretJax/coolfig/master.svg\n :target: https://coveralls.io/r/GaretJax/coolfig?branch=master\n\n.. image:: https://img.shields.io/badge/docs-latest-brightgreen.svg\n :target: http://coolfig.readthedocs.org/en/latest/\n\n.. image:: https://img.shields.io/pypi/l/coolfig.svg\n :target: https://github.com/GaretJax/coolfig/blob/develop/LICENSE\n\n.. image:: https://img.shields.io/requires/github/GaretJax/coolfig.svg\n :target: https://requires.io/github/GaretJax/coolfig/requirements/?branch=master\n\n.. .. image:: https://img.shields.io/codeclimate/github/GaretJax/coolfig.svg\n.. :target: https://codeclimate.com/github/GaretJax/coolfig\n\nCoolfig is a library to easily write configuration specifications to be\nfulfilled by various sources.\n\n* Free software: MIT license\n* Documentation: http://coolfig.rtfd.org\n\n\nInstallation\n============\n\n::\n\n pip install coolfig\n\n\nExample\n=======\n\nDefine your schema:\n\n.. code:: python\n\n from coolfig import Settings, Value, types\n\n class DefaultSettings(Settings):\n SECRET_KEY = Value(str)\n DEBUG = Value(types.boolean, default=False)\n DB_URL = Value(types.sqlalchemy_url)\n LOCALES = Value(types.list(str))\n\nInstantiate the configuration with a data provider:\n\n.. code:: python\n\n from coolfig import EnvConfig\n\n settings = DefaultSettings(EnvConfig(prefix='MYAPP_'))\n\nProfit:\n\n.. code:: python\n\n if settings.DEBUG:\n print(settings.SECRET_KEY)\n else:\n print(settings.LOCALES)\n\n connect(settings.DB_URL)\n\n\nDjango integration\n==================\n\nIn your ``settings.py`` file:\n\n.. code:: python\n\n from coolfig import EnvConfig, load_django_settings\n\n INSTALLED_APPS = (\n 'django.contrib.admin',\n 'django.contrib.auth',\n 'django.contrib.contenttypes',\n 'django.contrib.sessions',\n 'django.contrib.messages',\n 'django.contrib.staticfiles',\n\n 'testprj.my_custom_app',\n )\n\n MIDDLEWARE_CLASSES = (\n 'django.contrib.sessions.middleware.SessionMiddleware',\n 'django.middleware.common.CommonMiddleware',\n 'django.middleware.csrf.CsrfViewMiddleware',\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\n 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',\n 'django.contrib.messages.middleware.MessageMiddleware',\n 'django.middleware.clickjacking.XFrameOptionsMiddleware',\n 'django.middleware.security.SecurityMiddleware',\n )\n\n ROOT_URLCONF = 'testprj.urls'\n\n WSGI_APPLICATION = 'testprj.wsgi.application'\n\n TEMPLATES = [\n {\n 'BACKEND': 'django.template.backends.django.DjangoTemplates',\n 'DIRS': [],\n 'APP_DIRS': True,\n 'OPTIONS': {\n 'context_processors': [\n 'django.template.context_processors.debug',\n 'django.template.context_processors.request',\n 'django.contrib.auth.context_processors.auth',\n 'django.contrib.messages.context_processors.messages',\n ],\n },\n },\n ]\n\n load_django_settings(EnvConfig(), locals())\n\nThen, in each ``settings`` submodule of each app, you can define additional\nsetting entries to be added to the main settings object. For example, in \n``testprj/my_custom_app/settings.py`` you can add the following:\n\n.. code:: python\n\n from coolfig import Settings, Value\n\n class AppSettings(Settings): # The class has to be named AppSettings\n MY_APP_SETTING = Value(str)\n\nUsage is 100% compatible with Django's settings machinery:\n\n.. code:: python\n\n from django.conf import settings\n\n settings.MY_APP_SETTING\n\n\n=======\nHistory\n=======\n\n\n3.1.0 - 2018-08-23\n==================\n\n* Make ``EnvDirConfig`` importable from ``coolfig``.\n\n\n3.0.0 - 2018-08-23\n==================\n\n* Removed explicit support for secrets in favor of ``EnvDirConfig`` and\n a ``FallbackProvider``.\n* Use `black` and `isort` for formatting.\n* Improved tests coverage\n\n\n2.0.0 - 2018-08-03\n==================\n\n* Support for Docker secrets.\n\n\n1.0.2 - 2016-03-14\n==================\n\n* Additional bug-fixing.\n\n\n1.0.1 - 2016-03-14\n==================\n\n* Fixed a bug in AppConfig checking.\n\n\n1.0.0 - 2016-03-14\n==================\n\n* Added support for Django ``AppConfig`` (including custom settings path\n configured with a ``settings`` property on the config class.\n* Officially supporting Django 1.4, 1.5, 1.6, 1.7, 1.8 and 1.9, running on\n Python 2.7, 3.4 (where Django supports itself supports it) and PyPy.\n\n\n0.4.0 - 2015-10-05\n==================\n\n* Added support for the CACHES Django settings directive\n* Added support for computed_values\n* Added initial documentation stub\n\n\n0.3.0 - 2015-07-20\n==================\n\n* Added first-class support for Django\n* Added some more importing shortcuts (``EnvConfig``, ``DictConfig``,\n ``load_django_settings``)\n* Added a ``DictValue`` value, able to load multiple keys with the same prefix\n into the same value\n* Added an API to merge different settings schema into an existing object\n\n\n0.2.0 - 2015-05-31\n==================\n\n* Added a ``EnvConfig`` provider\n* Added a ``dottedpath`` value type\n\n\n0.1.0 \u2013 2015-05-30\n==================\n\n* Initial release\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/GaretJax/coolfig", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "coolfig", "package_url": "https://pypi.org/project/coolfig/", "platform": "", "project_url": "https://pypi.org/project/coolfig/", "project_urls": { "Homepage": "https://github.com/GaretJax/coolfig" }, "release_url": "https://pypi.org/project/coolfig/3.1.0/", "requires_dist": null, "requires_python": "", "summary": "Helpers for dealing with application settings", "version": "3.1.0" }, "last_serial": 4199669, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e0f0b01636f979f6432b997efa037b63", "sha256": "de3bb0dd9edc27e7a9a7cb949a082ba134ab650a20496d70f96206edf19c2ad3" }, "downloads": -1, "filename": "coolfig-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "e0f0b01636f979f6432b997efa037b63", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7210, "upload_time": "2015-05-29T22:34:45", "url": "https://files.pythonhosted.org/packages/69/b4/389419fdb90756272681f7a2b668d25020ddaaecfbf70aa8eb50d763b180/coolfig-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec8622a03fd01bb2e189c89d4c0b2970", "sha256": "8870e26263331d1c9946b3bdfb1d08982fc0ca4f7700c01b2e62ef487a4fa278" }, "downloads": -1, "filename": "coolfig-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ec8622a03fd01bb2e189c89d4c0b2970", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6912, "upload_time": "2015-05-29T22:34:40", "url": "https://files.pythonhosted.org/packages/7d/af/8491f1a5006f524e1bfe6d48cd27611c342d7d638c1c4fa7a036a8b21c22/coolfig-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2cc214bfa2041941cb9ed38bf08c0e20", "sha256": "d26a4e22dd37317e4a35cd67fae69abe59a7886c71192103b0d03b87b3153945" }, "downloads": -1, "filename": "coolfig-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "2cc214bfa2041941cb9ed38bf08c0e20", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 7434, "upload_time": "2015-05-31T13:12:04", "url": "https://files.pythonhosted.org/packages/7e/79/df62eaa5d936739cd0e02069dbe28f7112c915e8b55a2c89085550c62d3f/coolfig-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3bfe78f7d750cb2289789d959c9dea83", "sha256": "4393c28410113de19cfa4913e38c4bf736b607efb27112a96ff6daad479db901" }, "downloads": -1, "filename": "coolfig-0.2.0.tar.gz", "has_sig": false, "md5_digest": "3bfe78f7d750cb2289789d959c9dea83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7120, "upload_time": "2015-05-31T13:12:00", "url": "https://files.pythonhosted.org/packages/ba/d3/30bd038a9744eb4070ab2bcc420cdfd45b0c20e49c25ae2d4d778b738e2f/coolfig-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6e5ca03adc6fd3685285d3894deb9ac9", "sha256": "e8825fe716feb69af2c84ccd0e030ad09318731fd07d526315fc9321f9cbd935" }, "downloads": -1, "filename": "coolfig-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "6e5ca03adc6fd3685285d3894deb9ac9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12312, "upload_time": "2015-07-20T09:59:10", "url": "https://files.pythonhosted.org/packages/b0/a6/372e51954dc4608aa768890701ab979ebe250122af8da3be178dfcda91b1/coolfig-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0ef76994de504dbc587307926c19c21", "sha256": "c3d5702527766a9f5763f88dd497ffe1378aa0aa7c37ce304aa008d4f4ad3014" }, "downloads": -1, "filename": "coolfig-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e0ef76994de504dbc587307926c19c21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10602, "upload_time": "2015-07-20T09:59:07", "url": "https://files.pythonhosted.org/packages/ba/7a/9e0149c302e90b5584ba9e1b04afab18d8311f137bd25850e5603a8ba7e5/coolfig-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "4a60c73bd9807a303d5ac84d13177cae", "sha256": "7d08783dc297fb8ba8668032b77cb477bba63959595ee3598342d82dc0cd20d8" }, "downloads": -1, "filename": "coolfig-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4a60c73bd9807a303d5ac84d13177cae", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 12661, "upload_time": "2015-10-05T13:36:17", "url": "https://files.pythonhosted.org/packages/42/77/1683fdd9755cc6f317296796215d16da9b16a3a25bed3b90828fc4df4425/coolfig-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "db0be8098a6bc46e469c4f114d23d066", "sha256": "9c2ba520b62befa5c7f5c2eba30eb7de4879e580286639e7c693922afb2e97ad" }, "downloads": -1, "filename": "coolfig-0.4.0.tar.gz", "has_sig": false, "md5_digest": "db0be8098a6bc46e469c4f114d23d066", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10892, "upload_time": "2015-10-05T13:36:12", "url": "https://files.pythonhosted.org/packages/d8/ab/e73e4378ceb0e1dd229c480156492d213baf8c7c1bb95dfdb36298851de9/coolfig-0.4.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "d000ae25b6d3938d124a64724f58344e", "sha256": "e071cc2e96afb5065a99dcb7b7c0d9d1024858cfb0bef36428069a8205edb59d" }, "downloads": -1, "filename": "coolfig-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d000ae25b6d3938d124a64724f58344e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13295, "upload_time": "2016-03-14T12:57:35", "url": "https://files.pythonhosted.org/packages/a4/cd/e536457a981cc38b2e142eb73cab57149d369e9c514c9566201fb01a89ba/coolfig-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad537e653b31adcbe9aa6f09472c9ef9", "sha256": "122253275e343d6e88bdd908a3980c9412a836d387691d608b98dd8e87a52cd2" }, "downloads": -1, "filename": "coolfig-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ad537e653b31adcbe9aa6f09472c9ef9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11459, "upload_time": "2016-03-14T12:57:30", "url": "https://files.pythonhosted.org/packages/96/33/4b70f4bdeddef659e9ae8fb35f96db6589380bed5e18a760ba93849391b6/coolfig-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "c3797e04a65d6986a5462519e81f0b02", "sha256": "c7c01ea98812fdbc41b1c50338f8729e9adb98255fa837e1432c75c39c8eeb35" }, "downloads": -1, "filename": "coolfig-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c3797e04a65d6986a5462519e81f0b02", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13363, "upload_time": "2016-03-14T13:05:28", "url": "https://files.pythonhosted.org/packages/84/74/e94da0851fc9819136b80e4187ff68e5736b8b1567963b6b1e3584065e31/coolfig-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d423bb8d0844d43911ca6153f9aafdef", "sha256": "1ad89742b279b9e03814308236e46fe66f76b1cb2f21560810501790ae78ccfb" }, "downloads": -1, "filename": "coolfig-1.0.1.tar.gz", "has_sig": false, "md5_digest": "d423bb8d0844d43911ca6153f9aafdef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11504, "upload_time": "2016-03-14T13:05:22", "url": "https://files.pythonhosted.org/packages/6b/58/31e7c79b4a96659026626d4008d6208209e9c20d94b2ce34de5569ed890c/coolfig-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "0f20f8bb40f528ea4c8a8b2f4fec93b9", "sha256": "9ff22b4b62af2ded2a7badf1a8aac8ae88a0270c54736baf87f3f7c3c1841b83" }, "downloads": -1, "filename": "coolfig-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "0f20f8bb40f528ea4c8a8b2f4fec93b9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13385, "upload_time": "2016-03-14T13:11:14", "url": "https://files.pythonhosted.org/packages/89/71/6219b3637875c40260a09ad8d32a257a7ff51e78d89cd9a0c92415f56115/coolfig-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6edadb3bd6a04b9d1e46f65468acffcf", "sha256": "c04b23c1f879502f6c46df5c3da788a1725b2cbdeafa70079b914cf7a7a02e9e" }, "downloads": -1, "filename": "coolfig-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6edadb3bd6a04b9d1e46f65468acffcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11537, "upload_time": "2016-03-14T13:10:50", "url": "https://files.pythonhosted.org/packages/e5/88/68abe501590caac09ecb00ba35d912287544d0004ec2dd05f6f07c450b3f/coolfig-1.0.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "eb62a30c0b73e2074921e39bad650dfd", "sha256": "9e4b36ef6a2d83b1e468db764f09fcc64cc4ffce27fc2c23e99735a84f8867cc" }, "downloads": -1, "filename": "coolfig-2.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "eb62a30c0b73e2074921e39bad650dfd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 11312, "upload_time": "2018-08-03T16:17:48", "url": "https://files.pythonhosted.org/packages/13/73/a496fe517d1cfa0fe1b7b783c1a4f9a64d5084d7b6ed7869c54d6a2519fe/coolfig-2.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6894b48d5c91649d6b0c52f3f2e5428", "sha256": "af1a09978244ea387fd2fedd5d30457a203c17afcaa99822308b09470dfd12fb" }, "downloads": -1, "filename": "coolfig-2.0.0.tar.gz", "has_sig": false, "md5_digest": "a6894b48d5c91649d6b0c52f3f2e5428", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13704, "upload_time": "2018-08-03T16:17:46", "url": "https://files.pythonhosted.org/packages/5e/fd/9475ef5b0882c15ee4218cb29f8ea6e345bd82d92a4106edc05999eaec49/coolfig-2.0.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "7e1eebd157218c706b6e062599d74498", "sha256": "0c309724f70b61ac9a8010c9b5158c04502e60826dc568887ed14670279b323a" }, "downloads": -1, "filename": "coolfig-3.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7e1eebd157218c706b6e062599d74498", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15366, "upload_time": "2018-08-23T11:24:56", "url": "https://files.pythonhosted.org/packages/b4/52/da2516d518c2eea5e7e01c817f605292fa9783d2ca0a89bc80f541e541bb/coolfig-3.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c86dda7454dc0970ee43f5b12e9eb3d", "sha256": "28cd9f9b3c50f4ff17cff87620cab35b4e699910a014972d76f7a2faebc53ba8" }, "downloads": -1, "filename": "coolfig-3.0.0.tar.gz", "has_sig": false, "md5_digest": "0c86dda7454dc0970ee43f5b12e9eb3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12726, "upload_time": "2018-08-23T11:24:55", "url": "https://files.pythonhosted.org/packages/60/ff/5e45a164e9bf8cb20b4aa769108dfc6d40646fe8c75d306190ab2ca3595e/coolfig-3.0.0.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "4b9204da40d155d0dd294df5ebcb3c2c", "sha256": "9cbf1e08c82f45055aa77d381ca4adc8ac80123b3cefe5869f09efbf5f34ffeb" }, "downloads": -1, "filename": "coolfig-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b9204da40d155d0dd294df5ebcb3c2c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15421, "upload_time": "2018-08-23T12:06:05", "url": "https://files.pythonhosted.org/packages/74/99/b80db7a8819c799881896d4b3e514ac90dc39ccc5ed4e9a4aecd9b017de3/coolfig-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdfe4d99a4c61ed1541b497e5c524b0a", "sha256": "036e9be6aac073eccffa69e15743a5937abe20feb4f32bb7b41a7ed3a281bcab" }, "downloads": -1, "filename": "coolfig-3.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fdfe4d99a4c61ed1541b497e5c524b0a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15417, "upload_time": "2018-08-23T12:04:47", "url": "https://files.pythonhosted.org/packages/70/11/ecab31792f6e04290e4992f4d995a29eee81c0dfd92d61c04fcb8658371a/coolfig-3.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe95b740d289f1c74fd5bdd94ea03b89", "sha256": "0fb5d6988f6afa0019dc14c9872ecc4563787d4e0f0e81160b5da9b057804b6d" }, "downloads": -1, "filename": "coolfig-3.1.0.tar.gz", "has_sig": false, "md5_digest": "fe95b740d289f1c74fd5bdd94ea03b89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12759, "upload_time": "2018-08-23T12:04:45", "url": "https://files.pythonhosted.org/packages/a6/9e/79928f308bf8e147bb4fa93a2ee057b112c02a8b78ac6f5e0d2ac2af2ade/coolfig-3.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4b9204da40d155d0dd294df5ebcb3c2c", "sha256": "9cbf1e08c82f45055aa77d381ca4adc8ac80123b3cefe5869f09efbf5f34ffeb" }, "downloads": -1, "filename": "coolfig-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b9204da40d155d0dd294df5ebcb3c2c", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15421, "upload_time": "2018-08-23T12:06:05", "url": "https://files.pythonhosted.org/packages/74/99/b80db7a8819c799881896d4b3e514ac90dc39ccc5ed4e9a4aecd9b017de3/coolfig-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdfe4d99a4c61ed1541b497e5c524b0a", "sha256": "036e9be6aac073eccffa69e15743a5937abe20feb4f32bb7b41a7ed3a281bcab" }, "downloads": -1, "filename": "coolfig-3.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fdfe4d99a4c61ed1541b497e5c524b0a", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 15417, "upload_time": "2018-08-23T12:04:47", "url": "https://files.pythonhosted.org/packages/70/11/ecab31792f6e04290e4992f4d995a29eee81c0dfd92d61c04fcb8658371a/coolfig-3.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe95b740d289f1c74fd5bdd94ea03b89", "sha256": "0fb5d6988f6afa0019dc14c9872ecc4563787d4e0f0e81160b5da9b057804b6d" }, "downloads": -1, "filename": "coolfig-3.1.0.tar.gz", "has_sig": false, "md5_digest": "fe95b740d289f1c74fd5bdd94ea03b89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12759, "upload_time": "2018-08-23T12:04:45", "url": "https://files.pythonhosted.org/packages/a6/9e/79928f308bf8e147bb4fa93a2ee057b112c02a8b78ac6f5e0d2ac2af2ade/coolfig-3.1.0.tar.gz" } ] }