{ "info": { "author": "Marc Brinkmann", "author_email": "git@marcbrinkmann.de", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2", "Programming Language :: Python :: 3" ], "description": "Flask-AppConfig\n===============\n\nAllows you to configure an application using pre-set methods.\n\n.. code-block:: python\n\n from flask_appconfig import AppConfig\n\n def create_app(configfile=None):\n app = Flask('myapp')\n AppConfig(app, configfile)\n return app\n\nThe application returned by ``create_app`` will, in order:\n\n1. Load default settings from a module called ``myapp.default_config``, if it\n exists. (method described in\n http://flask.pocoo.org/docs/config/#configuring-from-files )\n2. Load settings from a configuration file whose name is given in the\n environment variable ``MYAPP_CONFIG`` (see link from 1.).\n3. Load json or string values directly from environment variables that start\n with a prefix of ``MYAPP_``, i.e. setting ``MYAPP_SQLALCHEMY_ECHO=true``\n will cause the setting of ``SQLALCHEMY_ECHO`` to be ``True``.\n\nAny of these behaviors can be altered or disabled by passing the appropriate\noptions to the constructor or ``init_app()``.\n\n\nHeroku support\n--------------\n\nFlask-AppConfig supports configuring a number of services through\n``HerokuConfig``:\n\n.. code-block:: python\n\n from flask_appconfig import HerokuConfig\n\n def create_app(configfile=None):\n app = Flask('myapp')\n HerokuConfig(app, configfile)\n return app\n\nWorks like the example above, but environment variables set by various Heroku\naddons will be parsed as json and converted to configuration variables\naccordingly. Forexample, when enabling `Mailgun\n`_, the configuration of `Flask-Mail\n`_ will be automatically be set correctly.\n\n\nUsing \"ENV-only\"\n----------------\n\nIf you only want to use the environment-parsing functions of Flask-AppConfig,\nthe appropriate functions are exposed:\n\n.. code-block:: python\n\n from flask_appconfig.heroku import from_heroku_envvars\n from flask_appconfig.env import from_envvars\n\n # from environment variables. note that you need to set the prefix, as\n # no auto-detection can be done without an app object\n from_envvars(app.config, prefix=app.name.upper() + '_')\n\n # also possible: parse heroku configuration values\n # any dict-like object will do as the first parameter\n from_heroku_envvars(app.config)\n\n\nInstallation\n------------\n\nVia `PyPI `_::\n\n $ pip install flask-appconfig\n\nRequires Python 2.7.\n\n\nflask utility\n-------------\n\nIf you want to get started quickly without thinking a lot about writing a run\nscript, the ``flask`` utility supports the ``create_app``/factory pattern::\n\n $ flask --app=myapp dev\n\nThis will import a module ``myapp``, and call ``myapp.run(debug=True)``.\n\nOther options can come in handy as well::\n\n $ flask --app=myapp dev -S -p 8000\n\nRuns the app on port 8080, with SSL enabled. You can also set the ``FLASK_APP``\nenvironment variable or set ``FLASK_APP`` inside ``.env`` and omit the\n``--app`` parameter.\n\nNote that the ``flask`` utility is subject to change, as it will conflict with\nthe CLI functionality of Flask 1.0. The API is currently kept close, but it\nwill see changes once Flask 1.0 is released.\n\n\nFlask-Debug and Flask-DebugToolbar support\n******************************************\n\n``flask`` automatically activates Flask-Debug_ and Flask-DebugToolbar_ on\nyour application; this allows to have it installed locally while not having to\ninstall any debug code in production. You can suppress this behavior with the\n``-E``/``--no-flask-debug`` flag.\n\nNote that these features are only enabled if you install either of these\nextensions manually; they are not dependencies of Flask-Appconfig.\n\n.. _Flask-Debug: https://github.com/mbr/flask-debug\n.. _Flask-DebugToolbar: https://flask-debugtoolbar.readthedocs.org/\n\n\nThoughts on Configuration\n-------------------------\n\nThere is a lot of ways to configure a Flask application and often times,\nless-than-optimal ones are chosen in a hurry.\n\nThis extension aims to do three things:\n\n1. Set a \"standard\" of doing configuration that is flexible and in-line with\n the official docs and (what I consider) good practices.\n2. Make it as convenient as possible to provide these configuration methods in\n an application.\n3. Auto-configure on Heroku as much as possible without sacrificing 1. and 2.\n\n`12factor.net `_ seems to capture a good amount of good\nthoughts on the issue and Flask-Appconfig should aid you in writing an\napplication that follows the principles laid out there.\n\nProviding defaults\n******************\n\nDefaults should be included and overridable, without altering the file\ncontaining the defaults.\n\nSeparate code and configuration\n*******************************\n\nIt should be possible to install the app to a read-only (possibly system-wide)\nlocation, without having to store configuration files (or, even worse,\nconfiguration modules) inside its folders.\n\nEnvironment variables and instance folders make this possible. As an added\nbenefit, configuration does not need to be stored alongside the code in version\ncontrol.\n\nNo code necessary for most deployments using the factory-method pattern\n***********************************************************************\n\nWhen deploying with gunicorn, passing ``myapp:create_app()`` suffices to create\nan app instance, no boilerplate code to create the WSGI app should be necessary.\n\nMultiple instances\n******************\n\nRunning multiple apps inside the same interpreter should also be possible. While\nthis is slightly more complicated and may occasionally violate the \"no-code\"\nguideline above, it's still straightforward by using configuration file\nparameters.\n\n\nDevelopment\n-----------\nFlask-AppConfig is under \"conceptional development\". The API or semantics\nmay change in the future.\n\nSend pull requests for more Heroku-apps to be supported. Send feedback via mail.\n\nChangelog\n---------\n\nBackwards-incompatible changes, as they were introduced:\n\n0.11\n****\n* The ``flaskdev`` tool has been replaced with ``flask``.\n* Using the new ``flask`` tool auto-reloading will also change by default. If a\n syntax error is introduced to the code, the app will try to restart after two\n seconds by default, instead of crashing. This can be suppressed with the\n '--extended-reload 0' flag.\n* If the app import fails, ``flask`` will add ``.`` to ``sys.path`` and try to\n to import once again.\n* Experimental commands ``serve`` and ``db`` have been added.\n\n0.4\n***\n* Environment variables are no longer prefixed with ``FLASK_`` by default, but\n rather use ``APPNAME_`` (with ``APPNAME`` being the applications name in\n uppercase).\n* ``MYAPP_SETTINGS`` became ``MYAPP_CONFIG``, ``default_settings`` became\n ``default_config``.", "description_content_type": null, "docs_url": "https://pythonhosted.org/flask-appconfig/", "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/mbr/flask-appconfig", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "flask-appconfig", "package_url": "https://pypi.org/project/flask-appconfig/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/flask-appconfig/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/mbr/flask-appconfig" }, "release_url": "https://pypi.org/project/flask-appconfig/0.11.1/", "requires_dist": null, "requires_python": null, "summary": "Configures Flask applications in a canonical way. Also auto-configures Heroku. Aims to standardize configuration.", "version": "0.11.1" }, "last_serial": 1789408, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "500bbf6d7a429895b43158bf92227b6a", "sha256": "5e692dbf8560c3141bcc61375870e274407e17f5d141635f43101fcc829ceb2e" }, "downloads": -1, "filename": "flask-appconfig-0.1.tar.gz", "has_sig": true, "md5_digest": "500bbf6d7a429895b43158bf92227b6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4780, "upload_time": "2013-06-24T17:31:24", "url": "https://files.pythonhosted.org/packages/a5/88/0bb6637d1330ead52bf35f2a9c286cf0bb89cfe685346ac43a3efb467c7a/flask-appconfig-0.1.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "31de1a38a02ccb48aa510c51287b6cc4", "sha256": "cbecbea7986ec64b6d9835da922411413a60f7c54ab4264279cab955d995754a" }, "downloads": -1, "filename": "flask-appconfig-0.10.0.tar.gz", "has_sig": true, "md5_digest": "31de1a38a02ccb48aa510c51287b6cc4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8155, "upload_time": "2015-07-02T19:59:23", "url": "https://files.pythonhosted.org/packages/f7/fe/7e059bdf7d0e167517b48c727e3a57308c60ea72f64222ceea9400f46fe3/flask-appconfig-0.10.0.tar.gz" } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "136fc9ce5c3f55dee78c82e529864f2d", "sha256": "c91e164c2cb520fcfcec82addc5342af61806be67cc37470aa163338b54aa4a3" }, "downloads": -1, "filename": "flask-appconfig-0.10.1.tar.gz", "has_sig": true, "md5_digest": "136fc9ce5c3f55dee78c82e529864f2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8626, "upload_time": "2015-07-16T15:56:28", "url": "https://files.pythonhosted.org/packages/c5/89/ed4e925c7c3d1ee9a441f624a2a3f978043f865b2ec3d94750972c8c49e7/flask-appconfig-0.10.1.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "0a1835b69da6f86d5c7f75fa3b662b12", "sha256": "e14c227a4d12f632229c15207f91ecc3cc8d2cbf5eba16ea136ffeea1c298cbb" }, "downloads": -1, "filename": "flask-appconfig-0.11.0.tar.gz", "has_sig": true, "md5_digest": "0a1835b69da6f86d5c7f75fa3b662b12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10703, "upload_time": "2015-08-23T21:10:40", "url": "https://files.pythonhosted.org/packages/c5/7f/d7084f017b6c06d2511bad57c615fcca938fdf44747d719cc3fec8ff1f62/flask-appconfig-0.11.0.tar.gz" } ], "0.11.1": [ { "comment_text": "", "digests": { "md5": "b1fa50ef82aac9ef93d1675c636e39fc", "sha256": "360d0598d48bdf3f421608d1181aa96183fc09f59f24fe426e1e8e372ed42647" }, "downloads": -1, "filename": "flask-appconfig-0.11.1.tar.gz", "has_sig": true, "md5_digest": "b1fa50ef82aac9ef93d1675c636e39fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12282, "upload_time": "2015-10-28T01:14:33", "url": "https://files.pythonhosted.org/packages/a6/52/8e331479219648b850abfa570d09ff962580800b39f017cbd529e267acae/flask-appconfig-0.11.1.tar.gz" } ], "0.1dev": [], "0.2.1dev": [ { "comment_text": "", "digests": { "md5": "85c7430a4142df7d6ec81c7266e84c0a", "sha256": "95047d47a919b022bc611f3e3ab5d11fb40d4afdc48d8ec96e19a6ab3c86e312" }, "downloads": -1, "filename": "flask-appconfig-0.2.1dev.tar.gz", "has_sig": true, "md5_digest": "85c7430a4142df7d6ec81c7266e84c0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4789, "upload_time": "2013-06-24T17:56:47", "url": "https://files.pythonhosted.org/packages/a1/fd/10318be9ec1f4e2ad6ce8d0315155512967630ddd3eb75db77ece88160fc/flask-appconfig-0.2.1dev.tar.gz" } ], "0.2dev": [ { "comment_text": "", "digests": { "md5": "eb797e254df7baf3453f72bba995a514", "sha256": "1c2216c6a981164a9b4ec49c0d7582e67d55d71778e98a5a16d899c34f5b3657" }, "downloads": -1, "filename": "flask-appconfig-0.2dev.tar.gz", "has_sig": true, "md5_digest": "eb797e254df7baf3453f72bba995a514", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4784, "upload_time": "2013-06-24T17:52:50", "url": "https://files.pythonhosted.org/packages/a4/67/383773edd1a443cdaab2eebcebe2e0ac6a8aca2e5951364726785b4bedc0/flask-appconfig-0.2dev.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "733b80828716a8b4445a790b600a7f04", "sha256": "1c86a11b82a2ac6e768fac823d23c209500d05626b2c3379df2c18abb642b0f1" }, "downloads": -1, "filename": "flask-appconfig-0.3.tar.gz", "has_sig": true, "md5_digest": "733b80828716a8b4445a790b600a7f04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4782, "upload_time": "2013-06-24T18:19:52", "url": "https://files.pythonhosted.org/packages/4b/63/71c0fff3167e2ef62ba62c2b3cbf5ac8c750d4214249546a4b396d052a15/flask-appconfig-0.3.tar.gz" } ], "0.3dev": [ { "comment_text": "", "digests": { "md5": "ee72cb3503a1ac9931c9f73b4406b1f9", "sha256": "bcb8112659abfe88a07c77889cd2f1d670b1069f4174a503248a958629d56753" }, "downloads": -1, "filename": "flask-appconfig-0.3dev.tar.gz", "has_sig": true, "md5_digest": "ee72cb3503a1ac9931c9f73b4406b1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4788, "upload_time": "2013-06-24T17:57:18", "url": "https://files.pythonhosted.org/packages/4c/5e/50b9d119f9fa721f0460a65afd04e7fadda4db953911260e9280bcce1362/flask-appconfig-0.3dev.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "8e0555f1be41e0148577a05aadc6409a", "sha256": "e9b09b873e7ed4029d8d31d223c2fcf1e2e54c35e7b45144ea0e2249e6debda5" }, "downloads": -1, "filename": "flask-appconfig-0.4.tar.gz", "has_sig": true, "md5_digest": "8e0555f1be41e0148577a05aadc6409a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5683, "upload_time": "2013-06-30T22:54:50", "url": "https://files.pythonhosted.org/packages/60/d7/93dbe1b494efc7773ae65960fa67323daa8fe0305e91ca6d37ec423cc7ea/flask-appconfig-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "50029870e4acc6e803990a6d1d968525", "sha256": "a85da36744477e5c39fb62caa6cfb907fa5de34fcf35aee462ddcce821eec2d3" }, "downloads": -1, "filename": "flask-appconfig-0.5.tar.gz", "has_sig": true, "md5_digest": "50029870e4acc6e803990a6d1d968525", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6085, "upload_time": "2013-09-17T14:11:24", "url": "https://files.pythonhosted.org/packages/a4/47/c997c018365fd095c05632020359aa7476a9accb30c1c5638ea9ab5fac8b/flask-appconfig-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "804e5a87a28bf5e5a2272b60d8950794", "sha256": "0d8685a7c6b8ed83638dde8acf69b606ea6ec013b990ebae53cf19804508cc98" }, "downloads": -1, "filename": "flask-appconfig-0.6.tar.gz", "has_sig": true, "md5_digest": "804e5a87a28bf5e5a2272b60d8950794", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6212, "upload_time": "2013-12-18T14:17:23", "url": "https://files.pythonhosted.org/packages/75/d3/12d5b0426e2db3e94084111236b749548e02fdc0fe72ab1e1b8a4c09aa82/flask-appconfig-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "6103a6b6ff9d45578392361c9388af34", "sha256": "132b6086fec65ebb3f5dc97c354c6b5857071c4b8f51e6e07d99f27f2ef9fc1b" }, "downloads": -1, "filename": "flask-appconfig-0.7.tar.gz", "has_sig": false, "md5_digest": "6103a6b6ff9d45578392361c9388af34", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6446, "upload_time": "2014-01-14T23:01:50", "url": "https://files.pythonhosted.org/packages/1e/b3/1aeaabfbfce4a444c4c064b9cb24bb70c2fee392a37ffc3408ef62a3e7fe/flask-appconfig-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "30fff4a95918cb278dde9e33a4a27841", "sha256": "c429a492dbb19e1690b7a4f6298bbd1e294ca1f2e5f12282b354f62bb563bd42" }, "downloads": -1, "filename": "flask-appconfig-0.8.tar.gz", "has_sig": true, "md5_digest": "30fff4a95918cb278dde9e33a4a27841", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7452, "upload_time": "2014-02-19T13:38:06", "url": "https://files.pythonhosted.org/packages/26/7b/c9a2e3eac3386fe05915486a6f71ebcdfa8c84928442254c73fa69a12c7f/flask-appconfig-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "51046c539088f88cfbc01ccb0996d439", "sha256": "25f5dde0cff0cec7ab94c1535218f837d3b95a8236f7d0417c84804883b76662" }, "downloads": -1, "filename": "flask-appconfig-0.9.tar.gz", "has_sig": true, "md5_digest": "51046c539088f88cfbc01ccb0996d439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7611, "upload_time": "2014-03-02T19:18:54", "url": "https://files.pythonhosted.org/packages/fa/65/43518ee1ee7fe4078bb70768e5224b7d35a4870fa63785c97f7320ca6d60/flask-appconfig-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "705a172946d28dd92809feee42b8a889", "sha256": "530d56050211d28f2ec410026fb77cb837c1aadd3272a22bc267a95972f82481" }, "downloads": -1, "filename": "flask-appconfig-0.9.1.tar.gz", "has_sig": true, "md5_digest": "705a172946d28dd92809feee42b8a889", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7781, "upload_time": "2014-03-19T13:21:14", "url": "https://files.pythonhosted.org/packages/c6/e4/1914f72bb03ed3d21fd8a01a56c1ca8f5fb4d97a243873949eb3122f9d24/flask-appconfig-0.9.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b1fa50ef82aac9ef93d1675c636e39fc", "sha256": "360d0598d48bdf3f421608d1181aa96183fc09f59f24fe426e1e8e372ed42647" }, "downloads": -1, "filename": "flask-appconfig-0.11.1.tar.gz", "has_sig": true, "md5_digest": "b1fa50ef82aac9ef93d1675c636e39fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12282, "upload_time": "2015-10-28T01:14:33", "url": "https://files.pythonhosted.org/packages/a6/52/8e331479219648b850abfa570d09ff962580800b39f017cbd529e267acae/flask-appconfig-0.11.1.tar.gz" } ] }