mirror of https://github.com/pallets/flask.git
				
				
				
			
						commit
						31d3c7e719
					
				
							
								
								
									
										12
									
								
								AUTHORS
								
								
								
								
							
							
						
						
									
										12
									
								
								AUTHORS
								
								
								
								
							|  | @ -1,12 +0,0 @@ | |||
| Flask is developed and maintained by the Pallets team and community | ||||
| contributors. It was created by Armin Ronacher. The core maintainers | ||||
| are: | ||||
| 
 | ||||
| - David Lord (davidism) | ||||
| - Adrian Mönnich (ThiefMaster) | ||||
| - Armin Ronacher (mitsuhiko) | ||||
| - Marcus Unterwaditzer (untitaker) | ||||
| 
 | ||||
| A full list of contributors is available from git with:: | ||||
| 
 | ||||
|     git shortlog -sne | ||||
							
								
								
									
										1039
									
								
								CHANGES.rst
								
								
								
								
							
							
						
						
									
										1039
									
								
								CHANGES.rst
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -9,7 +9,7 @@ Support questions | |||
| Please, don't use the issue tracker for this. Use one of the following | ||||
| resources for questions about your own code: | ||||
| 
 | ||||
| * The ``#get-help`` channel on our Discord chat: https://discord.gg/t6rrQZH | ||||
| * The ``#get-help`` channel on our Discord chat: https://discordapp.com/invite/t6rrQZH | ||||
| 
 | ||||
|   * The IRC channel ``#pocoo`` on FreeNode is linked to Discord, but | ||||
|     Discord is preferred. | ||||
|  | @ -24,15 +24,15 @@ Reporting issues | |||
| ---------------- | ||||
| 
 | ||||
| - Describe what you expected to happen. | ||||
| - If possible, include a `minimal, complete, and verifiable example`_ to help | ||||
|   us identify the issue. This also helps check that the issue is not with your | ||||
|   own code. | ||||
| - If possible, include a `minimal reproducible example`_ to help us | ||||
|   identify the issue. This also helps check that the issue is not with | ||||
|   your own code. | ||||
| - Describe what actually happened. Include the full traceback if there was an | ||||
|   exception. | ||||
| - List your Python, Flask, and Werkzeug versions. If possible, check if this | ||||
|   issue is already fixed in the repository. | ||||
| 
 | ||||
| .. _minimal, complete, and verifiable example: https://stackoverflow.com/help/mcve | ||||
| .. _minimal reproducible example: https://stackoverflow.com/help/minimal-reproducible-example | ||||
| 
 | ||||
| Submitting patches | ||||
| ------------------ | ||||
|  | @ -76,10 +76,10 @@ First time setup | |||
| 
 | ||||
| .. _GitHub account: https://github.com/join | ||||
| .. _latest version of git: https://git-scm.com/downloads | ||||
| .. _username: https://help.github.com/articles/setting-your-username-in-git/ | ||||
| .. _email: https://help.github.com/articles/setting-your-email-in-git/ | ||||
| .. _username: https://help.github.com/en/articles/setting-your-username-in-git | ||||
| .. _email: https://help.github.com/en/articles/setting-your-commit-email-address-in-git | ||||
| .. _Fork: https://github.com/pallets/flask/fork | ||||
| .. _Clone: https://help.github.com/articles/fork-a-repo/#step-2-create-a-local-clone-of-your-fork | ||||
| .. _Clone: https://help.github.com/en/articles/fork-a-repo#step-2-create-a-local-clone-of-your-fork | ||||
| 
 | ||||
| Start coding | ||||
| ~~~~~~~~~~~~ | ||||
|  | @ -96,8 +96,8 @@ Start coding | |||
|         git checkout -b your-branch-name origin/master | ||||
| 
 | ||||
| - Using your favorite editor, make your changes, `committing as you go`_. | ||||
| - Try to follow `PEP8`_, but you may ignore the line length limit if following | ||||
|   it would make the code uglier. | ||||
| - Try to follow `PEP8`_. We have a pre-commit config and tests that will | ||||
|   ensure the code follows our style guide. | ||||
| - Include tests that cover any code changes you make. Make sure the test fails | ||||
|   without your patch. `Run the tests. <contributing-testsuite_>`_. | ||||
| - Push your commits to GitHub and `create a pull request`_ by using:: | ||||
|  | @ -106,9 +106,9 @@ Start coding | |||
| 
 | ||||
| - Celebrate 🎉 | ||||
| 
 | ||||
| .. _committing as you go: http://dont-be-afraid-to-commit.readthedocs.io/en/latest/git/commandlinegit.html#commit-your-changes | ||||
| .. _committing as you go: https://dont-be-afraid-to-commit.readthedocs.io/en/latest/git/commandlinegit.html#commit-your-changes | ||||
| .. _PEP8: https://pep8.org/ | ||||
| .. _create a pull request: https://help.github.com/articles/creating-a-pull-request/ | ||||
| .. _create a pull request: https://help.github.com/en/articles/creating-a-pull-request | ||||
| 
 | ||||
| .. _contributing-testsuite: | ||||
| 
 | ||||
|  | @ -157,20 +157,9 @@ Build the docs in the ``docs`` directory using Sphinx:: | |||
| 
 | ||||
| Open ``_build/html/index.html`` in your browser to view the docs. | ||||
| 
 | ||||
| Read more about `Sphinx <http://www.sphinx-doc.org>`_. | ||||
| Read more about `Sphinx <https://www.sphinx-doc.org/en/master/>`_. | ||||
| 
 | ||||
| 
 | ||||
| make targets | ||||
| ~~~~~~~~~~~~ | ||||
| 
 | ||||
| Flask provides a ``Makefile`` with various shortcuts. They will ensure that | ||||
| all dependencies are installed. | ||||
| 
 | ||||
| - ``make test`` runs the basic test suite with ``pytest`` | ||||
| - ``make cov`` runs the basic test suite with ``coverage`` | ||||
| - ``make test-all`` runs the full test suite with ``tox`` | ||||
| - ``make docs`` builds the HTML documentation | ||||
| 
 | ||||
| Caution: zero-padded file modes | ||||
| ------------------------------- | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										31
									
								
								LICENSE
								
								
								
								
							
							
						
						
									
										31
									
								
								LICENSE
								
								
								
								
							|  | @ -1,31 +0,0 @@ | |||
| Copyright © 2010 by the Pallets team. | ||||
| 
 | ||||
| Some rights reserved. | ||||
| 
 | ||||
| Redistribution and use in source and binary forms of the software as | ||||
| well as documentation, with or without modification, are permitted | ||||
| provided that the following conditions are met: | ||||
| 
 | ||||
| * Redistributions of source code must retain the above copyright notice, | ||||
|   this list of conditions and the following disclaimer. | ||||
| 
 | ||||
| * Redistributions in binary form must reproduce the above copyright | ||||
|   notice, this list of conditions and the following disclaimer in the | ||||
|   documentation and/or other materials provided with the distribution. | ||||
| 
 | ||||
| * Neither the name of the copyright holder nor the names of its | ||||
|   contributors may be used to endorse or promote products derived from | ||||
|   this software without specific prior written permission. | ||||
| 
 | ||||
| THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND | ||||
| CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, | ||||
| BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | ||||
| FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||||
| COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||||
| INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||
| NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | ||||
| USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON | ||||
| ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
| THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
| SUCH DAMAGE. | ||||
|  | @ -0,0 +1,28 @@ | |||
| Copyright 2010 Pallets | ||||
| 
 | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are | ||||
| met: | ||||
| 
 | ||||
| 1.  Redistributions of source code must retain the above copyright | ||||
|     notice, this list of conditions and the following disclaimer. | ||||
| 
 | ||||
| 2.  Redistributions in binary form must reproduce the above copyright | ||||
|     notice, this list of conditions and the following disclaimer in the | ||||
|     documentation and/or other materials provided with the distribution. | ||||
| 
 | ||||
| 3.  Neither the name of the copyright holder nor the names of its | ||||
|     contributors may be used to endorse or promote products derived from | ||||
|     this software without specific prior written permission. | ||||
| 
 | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | ||||
| PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||
| HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ||||
| TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||
| PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||||
| LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||||
| NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
							
								
								
									
										13
									
								
								MANIFEST.in
								
								
								
								
							
							
						
						
									
										13
									
								
								MANIFEST.in
								
								
								
								
							|  | @ -1,11 +1,8 @@ | |||
| include Makefile CHANGES.rst CONTRIBUTING.rst LICENSE AUTHORS tox.ini | ||||
| 
 | ||||
| include CHANGES.rst | ||||
| include CONTRIBUTING.rst | ||||
| include tox.ini | ||||
| graft artwork | ||||
| graft tests | ||||
| graft examples | ||||
| graft docs | ||||
| 
 | ||||
| global-exclude *.py[co] | ||||
| 
 | ||||
| prune docs/_build | ||||
| prune docs/_themes | ||||
| graft examples | ||||
| graft tests | ||||
|  |  | |||
							
								
								
									
										35
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										35
									
								
								Makefile
								
								
								
								
							|  | @ -1,35 +0,0 @@ | |||
| .PHONY: all install-dev test coverage cov test-all tox docs audit release clean-pyc upload-docs ebook | ||||
| 
 | ||||
| all: test | ||||
| 
 | ||||
| install-dev: | ||||
| 	pip install -q -e .[dev] | ||||
| 
 | ||||
| test: clean-pyc install-dev | ||||
| 	pytest | ||||
| 
 | ||||
| coverage: clean-pyc install-dev | ||||
| 	coverage run -m pytest | ||||
| 	coverage report | ||||
| 	coverage html | ||||
| 
 | ||||
| cov: coverage | ||||
| 
 | ||||
| test-all: install-dev | ||||
| 	tox | ||||
| 
 | ||||
| tox: test-all | ||||
| 
 | ||||
| docs: clean-pyc install-dev | ||||
| 	$(MAKE) -C docs html | ||||
| 
 | ||||
| audit: | ||||
| 	python setup.py audit | ||||
| 
 | ||||
| release: | ||||
| 	python scripts/make-release.py | ||||
| 
 | ||||
| clean-pyc: | ||||
| 	find . -name '*.pyc' -exec rm -f {} + | ||||
| 	find . -name '*.pyo' -exec rm -f {} + | ||||
| 	find . -name '*~' -exec rm -f {} + | ||||
|  | @ -32,9 +32,9 @@ A Simple Example | |||
| 
 | ||||
|     app = Flask(__name__) | ||||
| 
 | ||||
|     @app.route('/') | ||||
|     @app.route("/") | ||||
|     def hello(): | ||||
|         return 'Hello, World!' | ||||
|         return "Hello, World!" | ||||
| 
 | ||||
| .. code-block:: text | ||||
| 
 | ||||
|  | @ -59,12 +59,10 @@ Links | |||
| 
 | ||||
| * Website: https://www.palletsprojects.com/p/flask/ | ||||
| * Documentation: http://flask.pocoo.org/docs/ | ||||
| * License: `BSD <https://github.com/pallets/flask/blob/master/LICENSE>`_ | ||||
| * Releases: https://pypi.org/project/Flask/ | ||||
| * Code: https://github.com/pallets/flask | ||||
| * Issue tracker: https://github.com/pallets/flask/issues | ||||
| * Test status: https://dev.azure.com/pallets/pallets/_build?definitionId=2 | ||||
| * Test coverage: https://codecov.io/gh/pallets/flask | ||||
| * Official chat: https://discord.gg/t6rrQZH | ||||
| 
 | ||||
| .. _WSGI: https://wsgi.readthedocs.io | ||||
|  |  | |||
|  | @ -1,20 +0,0 @@ | |||
| Copyright (c) 2010 by Armin Ronacher. | ||||
| 
 | ||||
| Some rights reserved. | ||||
| 
 | ||||
| This logo or a modified version may be used by anyone to refer to the | ||||
| Flask project, but does not indicate endorsement by the project. | ||||
| 
 | ||||
| Redistribution and use in source (the SVG file) and binary forms (rendered | ||||
| PNG files etc.) of the image, with or without modification, are permitted | ||||
| provided that the following conditions are met: | ||||
| 
 | ||||
| * Redistributions of source code must retain the above copyright | ||||
|   notice and this list of conditions. | ||||
| 
 | ||||
| * The names of the contributors to the Flask software (see AUTHORS) may | ||||
|   not be used to endorse or promote products derived from this software | ||||
|   without specific prior written permission. | ||||
| 
 | ||||
| Note: we would appreciate that you make the image a link to | ||||
| http://flask.pocoo.org/ if you use it on a web page. | ||||
|  | @ -0,0 +1,19 @@ | |||
| Copyright 2010 Pallets | ||||
| 
 | ||||
| This logo or a modified version may be used by anyone to refer to the | ||||
| Flask project, but does not indicate endorsement by the project. | ||||
| 
 | ||||
| Redistribution and use in source (SVG) and binary (renders in PNG, etc.) | ||||
| forms, with or without modification, are permitted provided that the | ||||
| following conditions are met: | ||||
| 
 | ||||
| 1.  Redistributions of source code must retain the above copyright | ||||
|     notice and this list of conditions. | ||||
| 
 | ||||
| 3.  Neither the name of the copyright holder nor the names of its | ||||
|     contributors may be used to endorse or promote products derived from | ||||
|     this software without specific prior written permission. | ||||
| 
 | ||||
| We would appreciate that you make the image a link to | ||||
| https://palletsprojects.com/p/flask/ if you use it in a medium that | ||||
| supports links. | ||||
|  | @ -4,7 +4,6 @@ | |||
| # You can set these variables from the command line.
 | ||||
| SPHINXOPTS    = | ||||
| SPHINXBUILD   = sphinx-build | ||||
| SPHINXPROJ    = Flask | ||||
| SOURCEDIR     = . | ||||
| BUILDDIR      = _build | ||||
| 
 | ||||
|  |  | |||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 2.2 KiB | 
| Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB | 
| Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.3 KiB | 
|  | @ -43,9 +43,9 @@ Incoming Request Data | |||
|    .. attribute:: base_url | ||||
|    .. attribute:: url_root | ||||
| 
 | ||||
|       Provides different ways to look at the current `IRI | ||||
|       <http://tools.ietf.org/html/rfc3987>`_.  Imagine your application is | ||||
|       listening on the following application root:: | ||||
|       Provides different ways to look at the current :rfc:`3987`. | ||||
|       Imagine your application is listening on the following application | ||||
|       root:: | ||||
| 
 | ||||
|           http://www.example.com/myapplication | ||||
| 
 | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ The :ref:`app-dispatch` chapter shows in detail how to apply middleware. You | |||
| can introduce WSGI middleware to wrap your Flask instances and introduce fixes | ||||
| and changes at the layer between your Flask application and your HTTP | ||||
| server. Werkzeug includes several `middlewares | ||||
| <http://werkzeug.pocoo.org/docs/middlewares/>`_. | ||||
| <https://werkzeug.palletsprojects.com/middleware/>`_. | ||||
| 
 | ||||
| Fork. | ||||
| ----- | ||||
|  |  | |||
|  | @ -1 +1,4 @@ | |||
| Changelog | ||||
| ========= | ||||
| 
 | ||||
| .. include:: ../CHANGES.rst | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ interface, in your virtualenv. Executed from the terminal, this script gives | |||
| access to built-in, extension, and application-defined commands. The ``--help`` | ||||
| option will give more information about any commands and options. | ||||
| 
 | ||||
| .. _Click: http://click.pocoo.org/ | ||||
| .. _Click: https://click.palletsprojects.com/ | ||||
| 
 | ||||
| 
 | ||||
| Application Discovery | ||||
|  | @ -340,7 +340,7 @@ they are installed. Entry points are specified in :file:`setup.py` :: | |||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| .. _entry point: https://packaging.python.org/tutorials/distributing-packages/#entry-points | ||||
| .. _entry point: https://packaging.python.org/tutorials/packaging-projects/#entry-points | ||||
| 
 | ||||
| Inside :file:`flask_my_extension/commands.py` you can then export a Click | ||||
| object:: | ||||
|  | @ -409,7 +409,7 @@ script is available. Note that you don't need to set ``FLASK_APP``. :: | |||
|     The ``flask`` command, being separate from your code, does not have | ||||
|     this issue and is recommended in most cases. | ||||
| 
 | ||||
| .. _console script: https://packaging.python.org/tutorials/distributing-packages/#console-scripts | ||||
| .. _console script: https://packaging.python.org/tutorials/packaging-projects/#console-scripts | ||||
| 
 | ||||
| 
 | ||||
| PyCharm Integration | ||||
|  |  | |||
							
								
								
									
										29
									
								
								docs/conf.py
								
								
								
								
							
							
						
						
									
										29
									
								
								docs/conf.py
								
								
								
								
							|  | @ -1,13 +1,11 @@ | |||
| # -*- coding: utf-8 -*- | ||||
| from __future__ import print_function | ||||
| 
 | ||||
| from pallets_sphinx_themes import ProjectLink, get_version | ||||
| from pallets_sphinx_themes import get_version | ||||
| from pallets_sphinx_themes import ProjectLink | ||||
| 
 | ||||
| # Project -------------------------------------------------------------- | ||||
| 
 | ||||
| project = "Flask" | ||||
| copyright = "2010 Pallets Team" | ||||
| author = "Pallets Team" | ||||
| copyright = "2010 Pallets" | ||||
| author = "Pallets" | ||||
| release, version = get_version("Flask") | ||||
| 
 | ||||
| # General -------------------------------------------------------------- | ||||
|  | @ -18,10 +16,11 @@ extensions = [ | |||
|     "sphinx.ext.intersphinx", | ||||
|     "sphinxcontrib.log_cabinet", | ||||
|     "pallets_sphinx_themes", | ||||
|     "sphinx_issues", | ||||
| ] | ||||
| intersphinx_mapping = { | ||||
|     "python": ("https://docs.python.org/3/", None), | ||||
|     "werkzeug": ("http://werkzeug.pocoo.org/docs/", None), | ||||
|     "werkzeug": ("https://werkzeug.palletsprojects.com/", None), | ||||
|     "click": ("https://click.palletsprojects.com/", None), | ||||
|     "jinja": ("http://jinja.pocoo.org/docs/", None), | ||||
|     "itsdangerous": ("https://itsdangerous.palletsprojects.com/", None), | ||||
|  | @ -29,6 +28,7 @@ intersphinx_mapping = { | |||
|     "wtforms": ("https://wtforms.readthedocs.io/en/stable/", None), | ||||
|     "blinker": ("https://pythonhosted.org/blinker/", None), | ||||
| } | ||||
| issues_github_path = "pallets/flask" | ||||
| 
 | ||||
| # HTML ----------------------------------------------------------------- | ||||
| 
 | ||||
|  | @ -49,25 +49,16 @@ html_sidebars = { | |||
| } | ||||
| singlehtml_sidebars = {"index": ["project.html", "localtoc.html"]} | ||||
| html_static_path = ["_static"] | ||||
| html_favicon = "_static/flask-favicon.ico" | ||||
| html_logo = "_static/flask.png" | ||||
| html_favicon = "_static/flask-icon.png" | ||||
| html_logo = "_static/flask-icon.png" | ||||
| html_title = "Flask Documentation ({})".format(version) | ||||
| html_show_sourcelink = False | ||||
| 
 | ||||
| # LaTeX ---------------------------------------------------------------- | ||||
| 
 | ||||
| latex_documents = [ | ||||
|     (master_doc, "Flask.tex", "Flask Documentation", "Pallets Team", "manual") | ||||
|     (master_doc, "Flask-{}.tex".format(version), html_title, author, "manual") | ||||
| ] | ||||
| latex_use_modindex = False | ||||
| latex_elements = { | ||||
|     "papersize": "a4paper", | ||||
|     "pointsize": "12pt", | ||||
|     "fontpkg": r"\usepackage{mathpazo}", | ||||
|     "preamble": r"\usepackage{flaskstyle}", | ||||
| } | ||||
| latex_use_parts = True | ||||
| latex_additional_files = ["flaskstyle.sty", "logo.pdf"] | ||||
| 
 | ||||
| # Local Extensions ----------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,62 +0,0 @@ | |||
| User's Guide | ||||
| ------------ | ||||
| 
 | ||||
| This part of the documentation, which is mostly prose, begins with some | ||||
| background information about Flask, then focuses on step-by-step | ||||
| instructions for web development with Flask. | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
| 
 | ||||
|    foreword | ||||
|    advanced_foreword | ||||
|    installation | ||||
|    quickstart | ||||
|    tutorial/index | ||||
|    templating | ||||
|    testing | ||||
|    errorhandling | ||||
|    logging | ||||
|    config | ||||
|    signals | ||||
|    views | ||||
|    appcontext | ||||
|    reqcontext | ||||
|    blueprints | ||||
|    extensions | ||||
|    cli | ||||
|    server | ||||
|    shell | ||||
|    patterns/index | ||||
|    deploying/index | ||||
|    becomingbig | ||||
| 
 | ||||
| API Reference | ||||
| ------------- | ||||
| 
 | ||||
| If you are looking for information on a specific function, class or | ||||
| method, this part of the documentation is for you. | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
| 
 | ||||
|    api | ||||
| 
 | ||||
| Additional Notes | ||||
| ---------------- | ||||
| 
 | ||||
| Design notes, legal information and changelog are here for the interested. | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
| 
 | ||||
|    design | ||||
|    htmlfaq | ||||
|    security | ||||
|    unicode | ||||
|    extensiondev | ||||
|    styleguide | ||||
|    upgrading | ||||
|    changelog | ||||
|    license | ||||
|    contributing | ||||
|  | @ -58,4 +58,4 @@ work in that case: | |||
| 
 | ||||
| For more information consult the documentation of your webserver. | ||||
| 
 | ||||
| .. _App Engine: https://developers.google.com/appengine/ | ||||
| .. _App Engine: https://cloud.google.com/appengine/docs/ | ||||
|  |  | |||
|  | @ -17,12 +17,9 @@ Hosted options | |||
| -------------- | ||||
| 
 | ||||
| - `Deploying Flask on Heroku <https://devcenter.heroku.com/articles/getting-started-with-python>`_ | ||||
| - `Deploying Flask on OpenShift <https://developers.openshift.com/en/python-flask.html>`_ | ||||
| - `Deploying Flask on Webfaction <http://flask.pocoo.org/snippets/65/>`_ | ||||
| - `Deploying Flask on Google App Engine <https://cloud.google.com/appengine/docs/standard/python/getting-started/python-standard-env>`_ | ||||
| - `Deploying Flask on AWS Elastic Beanstalk <https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-flask.html>`_ | ||||
| - `Sharing your Localhost Server with Localtunnel <http://flask.pocoo.org/snippets/89/>`_ | ||||
| - `Deploying on Azure (IIS) <https://azure.microsoft.com/documentation/articles/web-sites-python-configure/>`_ | ||||
| - `Deploying on Azure (IIS) <https://docs.microsoft.com/en-us/azure/app-service/containers/how-to-configure-python>`_ | ||||
| - `Deploying on PythonAnywhere <https://help.pythonanywhere.com/pages/Flask/>`_ | ||||
| 
 | ||||
| Self-hosted options | ||||
|  |  | |||
|  | @ -69,4 +69,4 @@ to have it in the URL root its a bit simpler:: | |||
| .. _nginx: https://nginx.org/ | ||||
| .. _lighttpd: https://www.lighttpd.net/ | ||||
| .. _cherokee: http://cherokee-project.com/ | ||||
| .. _uwsgi: http://projects.unbit.it/uwsgi/ | ||||
| .. _uwsgi: https://uwsgi-docs.readthedocs.io/en/latest/ | ||||
|  |  | |||
|  | @ -43,11 +43,10 @@ Running `uWSGI HTTP Router`_:: | |||
| 
 | ||||
|     uwsgi --http 127.0.0.1:5000 --module myproject:app | ||||
| 
 | ||||
| For a more optimized setup, see `configuring uWSGI and NGINX`_. | ||||
| For a more optimized setup, see :doc:`/deploying/uwsgi`. | ||||
| 
 | ||||
| .. _uWSGI: http://uwsgi-docs.readthedocs.io/en/latest/ | ||||
| .. _uWSGI HTTP Router: http://uwsgi-docs.readthedocs.io/en/latest/HTTP.html#the-uwsgi-http-https-router | ||||
| .. _configuring uWSGI and NGINX: uwsgi.html#starting-your-app-with-uwsgi | ||||
| .. _uWSGI: https://uwsgi-docs.readthedocs.io/en/latest/ | ||||
| .. _uWSGI HTTP Router: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html#the-uwsgi-http-https-router | ||||
| 
 | ||||
| Gevent | ||||
| ------- | ||||
|  | @ -86,7 +85,7 @@ application from ``myproject``:: | |||
| 
 | ||||
|     twistd -n web --port tcp:8080 --wsgi myproject.app | ||||
| 
 | ||||
| .. _Twisted: https://twistedmatrix.com/ | ||||
| .. _Twisted: https://twistedmatrix.com/trac/ | ||||
| .. _Twisted Web: https://twistedmatrix.com/trac/wiki/TwistedWeb | ||||
| 
 | ||||
| .. _deploying-proxy-setups: | ||||
|  |  | |||
|  | @ -34,10 +34,10 @@ Error Logging Tools | |||
| Sending error mails, even if just for critical ones, can become | ||||
| overwhelming if enough users are hitting the error and log files are | ||||
| typically never looked at. This is why we recommend using `Sentry | ||||
| <https://www.getsentry.com/>`_ for dealing with application errors.  It's | ||||
| <https://sentry.io/welcome/>`_ for dealing with application errors.  It's | ||||
| available as an Open Source project `on GitHub | ||||
| <https://github.com/getsentry/sentry>`__ and is also available as a `hosted version | ||||
| <https://getsentry.com/signup/>`_ which you can try for free. Sentry | ||||
| <https://sentry.io/signup/>`_ which you can try for free. Sentry | ||||
| aggregates duplicate errors, captures the full stack trace and local | ||||
| variables for debugging, and sends you mails based on new errors or | ||||
| frequency thresholds. | ||||
|  |  | |||
|  | @ -4,9 +4,8 @@ Flask Extension Development | |||
| =========================== | ||||
| 
 | ||||
| Flask, being a microframework, often requires some repetitive steps to get | ||||
| a third party library working.  Because very often these steps could be | ||||
| abstracted to support multiple projects the `Flask Extension Registry`_ | ||||
| was created. | ||||
| a third party library working. Many such extensions are already available | ||||
| on `PyPI <https://pypi.org/search/?c=Framework+%3A%3A+Flask>`_. | ||||
| 
 | ||||
| If you want to create your own Flask extension for something that does not | ||||
| exist yet, this guide to extension development will help you get your | ||||
|  | @ -328,8 +327,8 @@ extension to be approved you have to follow these guidelines: | |||
| 6.  Approved extensions must define all their dependencies in the | ||||
|     :file:`setup.py` file unless a dependency cannot be met because it is not | ||||
|     available on PyPI. | ||||
| 7.  The documentation must use the ``flask`` theme from the `Official | ||||
|     Pallets Themes`_. | ||||
| 7.  The documentation must use the ``flask`` theme from the | ||||
|     `Official Pallets Themes`_. | ||||
| 8.  The setup.py description (and thus the PyPI description) has to | ||||
|     link to the documentation, website (if there is one) and there | ||||
|     must be a link to automatically install the development version | ||||
|  | @ -342,4 +341,4 @@ extension to be approved you have to follow these guidelines: | |||
| .. _OAuth extension: https://pythonhosted.org/Flask-OAuth/ | ||||
| .. _mailinglist: http://flask.pocoo.org/mailinglist/ | ||||
| .. _IRC channel: http://flask.pocoo.org/community/irc/ | ||||
| .. _Official Pallets Themes: https://pypi.org/project/pallets-sphinx-themes/ | ||||
| .. _Official Pallets Themes: https://pypi.org/project/Pallets-Sphinx-Themes/ | ||||
|  |  | |||
|  | @ -1,124 +0,0 @@ | |||
| \definecolor{TitleColor}{rgb}{0,0,0} | ||||
| \definecolor{InnerLinkColor}{rgb}{0,0,0} | ||||
| 
 | ||||
| % Replace Unicode character 'PARTY POPPER' (U+1F389) with a non-breaking space. | ||||
| % pdfLaTeX doesn't support Unicode. | ||||
| \DeclareUnicodeCharacter{1F389}{\nobreakspace} | ||||
| 
 | ||||
| \renewcommand{\maketitle}{% | ||||
|   \begin{titlepage}% | ||||
|     \let\footnotesize\small | ||||
|     \let\footnoterule\relax | ||||
|     % Apply following fix only on PDF output, i.e. pdfoutput macro is not  | ||||
|     % undefined | ||||
|     \ifx\pdfoutput\undefined\else | ||||
|       \begingroup | ||||
|       % This \def is required to deal with multi-line authors; it | ||||
|       % changes \\ to ', ' (comma-space), making it pass muster for | ||||
|       % generating document info in the PDF file. | ||||
|       \def\\{, } | ||||
|       \pdfinfo{ | ||||
|         /Author (\@author) | ||||
|         /Title (\@title) | ||||
|       } | ||||
|       \endgroup | ||||
|     \fi | ||||
|     \begin{flushright}% | ||||
|       %\sphinxlogo% | ||||
|       {\center | ||||
|         \vspace*{3cm} | ||||
|       	\includegraphics{logo.pdf} | ||||
|         \vspace{3cm} | ||||
| 	\par | ||||
|         {\rm\Huge \@title \par}% | ||||
|         {\em\LARGE \py@release\releaseinfo \par} | ||||
|         {\large | ||||
|          \@date \par | ||||
|          \py@authoraddress \par | ||||
|         }}% | ||||
|     \end{flushright}%\par | ||||
|     \@thanks | ||||
|   \end{titlepage}% | ||||
|   \cleardoublepage% | ||||
|   \setcounter{footnote}{0}% | ||||
|   \let\thanks\relax\let\maketitle\relax | ||||
|   %\gdef\@thanks{}\gdef\@author{}\gdef\@title{} | ||||
| } | ||||
| 
 | ||||
| \fancypagestyle{normal}{ | ||||
|   \fancyhf{} | ||||
|   \fancyfoot[LE,RO]{{\thepage}} | ||||
|   \fancyfoot[LO]{{\nouppercase{\rightmark}}} | ||||
|   \fancyfoot[RE]{{\nouppercase{\leftmark}}} | ||||
|   \fancyhead[LE,RO]{{ \@title, \py@release}} | ||||
|   \renewcommand{\headrulewidth}{0.4pt} | ||||
|   \renewcommand{\footrulewidth}{0.4pt} | ||||
| } | ||||
| 
 | ||||
| \fancypagestyle{plain}{ | ||||
|   \fancyhf{} | ||||
|   \fancyfoot[LE,RO]{{\thepage}} | ||||
|   \renewcommand{\headrulewidth}{0pt} | ||||
|   \renewcommand{\footrulewidth}{0.4pt} | ||||
| } | ||||
| 
 | ||||
| \titleformat{\section}{\Large}% | ||||
|             {\py@TitleColor\thesection}{0.5em}{\py@TitleColor}{\py@NormalColor} | ||||
| \titleformat{\subsection}{\large}% | ||||
|             {\py@TitleColor\thesubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} | ||||
| \titleformat{\subsubsection}{}% | ||||
|             {\py@TitleColor\thesubsubsection}{0.5em}{\py@TitleColor}{\py@NormalColor} | ||||
| \titleformat{\paragraph}{\large}% | ||||
|             {\py@TitleColor}{0em}{\py@TitleColor}{\py@NormalColor} | ||||
| 
 | ||||
| \ChNameVar{\raggedleft\normalsize} | ||||
| \ChNumVar{\raggedleft \bfseries\Large} | ||||
| \ChTitleVar{\raggedleft \rm\Huge} | ||||
| 
 | ||||
| \renewcommand\thepart{\@Roman\c@part} | ||||
| \renewcommand\part{% | ||||
|    \pagestyle{plain} | ||||
|    \if@noskipsec \leavevmode \fi | ||||
|    \cleardoublepage | ||||
|    \vspace*{6cm}% | ||||
|    \@afterindentfalse | ||||
|    \secdef\@part\@spart} | ||||
| 
 | ||||
| \def\@part[#1]#2{% | ||||
|     \ifnum \c@secnumdepth >\m@ne | ||||
|       \refstepcounter{part}% | ||||
|       \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% | ||||
|     \else | ||||
|       \addcontentsline{toc}{part}{#1}% | ||||
|     \fi | ||||
|     {\parindent \z@ %\center | ||||
|      \interlinepenalty \@M | ||||
|      \normalfont | ||||
|      \ifnum \c@secnumdepth >\m@ne | ||||
|        \rm\Large \partname~\thepart | ||||
|        \par\nobreak | ||||
|      \fi | ||||
|      \MakeUppercase{\rm\Huge #2}% | ||||
|      \markboth{}{}\par}% | ||||
|     \nobreak | ||||
|     \vskip 8ex | ||||
|     \@afterheading} | ||||
| \def\@spart#1{% | ||||
|     {\parindent \z@ %\center | ||||
|      \interlinepenalty \@M | ||||
|      \normalfont | ||||
|      \huge \bfseries #1\par}% | ||||
|      \nobreak | ||||
|      \vskip 3ex | ||||
|      \@afterheading} | ||||
| 
 | ||||
| % use inconsolata font | ||||
| \usepackage{inconsolata} | ||||
| 
 | ||||
| % fix single quotes, for inconsolata. (does not work) | ||||
| %%\usepackage{textcomp} | ||||
| %%\begingroup | ||||
| %%  \catcode`'=\active | ||||
| %%  \g@addto@macro\@noligs{\let'\textsinglequote} | ||||
| %%  \endgroup | ||||
| %%\endinput | ||||
|  | @ -186,7 +186,7 @@ Many other features have been added, as well. A good guide to new features | |||
| in HTML5 is Mark Pilgrim's soon-to-be-published book, `Dive Into HTML5`_. | ||||
| Not all of them are supported in browsers yet, however, so use caution. | ||||
| 
 | ||||
| .. _Dive Into HTML5: http://diveintohtml5.info/ | ||||
| .. _Dive Into HTML5: https://diveintohtml5.info/ | ||||
| 
 | ||||
| What should be used? | ||||
| -------------------- | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| Welcome to Flask | ||||
| ================ | ||||
| 
 | ||||
| .. image:: _static/logo-full.png | ||||
| .. image:: _static/flask-logo.png | ||||
|     :alt: Flask: web development, one drop at a time | ||||
|     :align: center | ||||
|     :target: https://palletsprojects.com/p/flask/ | ||||
|  | @ -19,9 +19,73 @@ Flask depends on the `Jinja`_ template engine and the `Werkzeug`_ WSGI | |||
| toolkit. The documentation for these libraries can be found at: | ||||
| 
 | ||||
| - `Jinja documentation <http://jinja.pocoo.org/docs>`_ | ||||
| - `Werkzeug documentation <http://werkzeug.pocoo.org/docs>`_ | ||||
| - `Werkzeug documentation <https://werkzeug.palletsprojects.com/>`_ | ||||
| 
 | ||||
| .. _Jinja: https://www.palletsprojects.com/p/jinja/ | ||||
| .. _Werkzeug: https://www.palletsprojects.com/p/werkzeug/ | ||||
| 
 | ||||
| .. include:: contents.rst.inc | ||||
| 
 | ||||
| User's Guide | ||||
| ------------ | ||||
| 
 | ||||
| This part of the documentation, which is mostly prose, begins with some | ||||
| background information about Flask, then focuses on step-by-step | ||||
| instructions for web development with Flask. | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
| 
 | ||||
|    foreword | ||||
|    advanced_foreword | ||||
|    installation | ||||
|    quickstart | ||||
|    tutorial/index | ||||
|    templating | ||||
|    testing | ||||
|    errorhandling | ||||
|    logging | ||||
|    config | ||||
|    signals | ||||
|    views | ||||
|    appcontext | ||||
|    reqcontext | ||||
|    blueprints | ||||
|    extensions | ||||
|    cli | ||||
|    server | ||||
|    shell | ||||
|    patterns/index | ||||
|    deploying/index | ||||
|    becomingbig | ||||
| 
 | ||||
| 
 | ||||
| API Reference | ||||
| ------------- | ||||
| 
 | ||||
| If you are looking for information on a specific function, class or | ||||
| method, this part of the documentation is for you. | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
| 
 | ||||
|    api | ||||
| 
 | ||||
| 
 | ||||
| Additional Notes | ||||
| ---------------- | ||||
| 
 | ||||
| Design notes, legal information and changelog are here for the interested. | ||||
| 
 | ||||
| .. toctree:: | ||||
|    :maxdepth: 2 | ||||
| 
 | ||||
|    design | ||||
|    htmlfaq | ||||
|    security | ||||
|    unicode | ||||
|    extensiondev | ||||
|    styleguide | ||||
|    upgrading | ||||
|    changelog | ||||
|    license | ||||
|    contributing | ||||
|  |  | |||
|  | @ -25,11 +25,11 @@ These distributions will be installed automatically when installing Flask. | |||
| * `Click`_ is a framework for writing command line applications. It provides | ||||
|   the ``flask`` command and allows adding custom management commands. | ||||
| 
 | ||||
| .. _Werkzeug: http://werkzeug.pocoo.org/ | ||||
| .. _Jinja: http://jinja.pocoo.org/ | ||||
| .. _MarkupSafe: https://pypi.org/project/MarkupSafe/ | ||||
| .. _ItsDangerous: https://pythonhosted.org/itsdangerous/ | ||||
| .. _Click: http://click.pocoo.org/ | ||||
| .. _Werkzeug: https://palletsprojects.com/p/werkzeug/ | ||||
| .. _Jinja: https://palletsprojects.com/p/jinja/ | ||||
| .. _MarkupSafe: https://palletsprojects.com/p/markupsafe/ | ||||
| .. _ItsDangerous: https://palletsprojects.com/p/itsdangerous/ | ||||
| .. _Click: https://palletsprojects.com/p/click/ | ||||
| 
 | ||||
| Optional dependencies | ||||
| ~~~~~~~~~~~~~~~~~~~~~ | ||||
|  |  | |||
|  | @ -1,6 +0,0 @@ | |||
| :orphan: | ||||
| 
 | ||||
| Flask Documentation | ||||
| =================== | ||||
| 
 | ||||
| .. include:: contents.rst.inc | ||||
|  | @ -1,48 +1,19 @@ | |||
| License | ||||
| ======= | ||||
| 
 | ||||
| Flask is licensed under a three clause BSD License.  It basically means: | ||||
| do whatever you want with it as long as the copyright in Flask sticks | ||||
| around, the conditions are not modified and the disclaimer is present. | ||||
| Furthermore you must not use the names of the authors to promote derivatives | ||||
| of the software without written consent. | ||||
| Source License | ||||
| -------------- | ||||
| 
 | ||||
| The full license text can be found below (:ref:`flask-license`).  For the | ||||
| documentation and artwork different licenses apply. | ||||
| This license applies to all files in the Flask repository and source | ||||
| distribution. This includes Flask's source code, the examples, and | ||||
| tests, as well as the documentation. | ||||
| 
 | ||||
| .. _authors: | ||||
| 
 | ||||
| Authors | ||||
| ------- | ||||
| 
 | ||||
| .. include:: ../AUTHORS | ||||
| 
 | ||||
| General License Definitions | ||||
| --------------------------- | ||||
| 
 | ||||
| The following section contains the full license texts for Flask and the | ||||
| documentation. | ||||
| 
 | ||||
| -   "AUTHORS" hereby refers to all the authors listed in the | ||||
|     :ref:`authors` section. | ||||
| 
 | ||||
| -   The ":ref:`flask-license`" applies to all the source code shipped as | ||||
|     part of Flask (Flask itself as well as the examples and the unittests) | ||||
|     as well as documentation. | ||||
| 
 | ||||
| -   The ":ref:`artwork-license`" applies to the project's Horn-Logo. | ||||
| 
 | ||||
| .. _flask-license: | ||||
| 
 | ||||
| Flask License | ||||
| ------------- | ||||
| 
 | ||||
| .. include:: ../LICENSE | ||||
| .. include:: ../LICENSE.rst | ||||
| 
 | ||||
| 
 | ||||
| .. _artwork-license: | ||||
| Artwork License | ||||
| --------------- | ||||
| 
 | ||||
| Flask Artwork License | ||||
| --------------------- | ||||
| This license applies to Flask's logo. | ||||
| 
 | ||||
| .. include:: ../artwork/LICENSE | ||||
| .. include:: ../artwork/LICENSE.rst | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								docs/logo.pdf
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								docs/logo.pdf
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -9,7 +9,6 @@ if "%SPHINXBUILD%" == "" ( | |||
| ) | ||||
| set SOURCEDIR=. | ||||
| set BUILDDIR=_build | ||||
| set SPHINXPROJ=Flask | ||||
| 
 | ||||
| if "%1" == "" goto help | ||||
| 
 | ||||
|  |  | |||
|  | @ -60,7 +60,7 @@ Factories & Extensions | |||
| It's preferable to create your extensions and app factories so that the | ||||
| extension object does not initially get bound to the application. | ||||
| 
 | ||||
| Using `Flask-SQLAlchemy <http://flask-sqlalchemy.pocoo.org/>`_, | ||||
| Using `Flask-SQLAlchemy <https://flask-sqlalchemy.palletsprojects.com/>`_, | ||||
| as an example, you should not do something along those lines:: | ||||
| 
 | ||||
|     def create_app(config_filename): | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ Python primitives (numbers, strings, dicts and lists) look like which is | |||
| widely supported and very easy to parse.  It became popular a few years | ||||
| ago and quickly replaced XML as transport format in web applications. | ||||
| 
 | ||||
| .. _jQuery: http://jquery.com/ | ||||
| .. _jQuery: https://jquery.com/ | ||||
| 
 | ||||
| Loading jQuery | ||||
| -------------- | ||||
|  | @ -27,7 +27,7 @@ to add a script statement to the bottom of your ``<body>`` to load jQuery: | |||
|      url_for('static', filename='jquery.js') }}"></script> | ||||
| 
 | ||||
| Another method is using Google's `AJAX Libraries API | ||||
| <https://developers.google.com/speed/libraries/devguide>`_ to load jQuery: | ||||
| <https://developers.google.com/speed/libraries/>`_ to load jQuery: | ||||
| 
 | ||||
| .. sourcecode:: html | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ if you want to get started quickly. | |||
| You can download `Flask-SQLAlchemy`_ from `PyPI | ||||
| <https://pypi.org/project/Flask-SQLAlchemy/>`_. | ||||
| 
 | ||||
| .. _Flask-SQLAlchemy: http://flask-sqlalchemy.pocoo.org/ | ||||
| .. _Flask-SQLAlchemy: https://flask-sqlalchemy.palletsprojects.com/ | ||||
| 
 | ||||
| 
 | ||||
| Declarative | ||||
|  |  | |||
|  | @ -69,8 +69,8 @@ This launches a very simple builtin server, which is good enough for testing | |||
| but probably not what you want to use in production. For deployment options see | ||||
| :ref:`deployment`. | ||||
| 
 | ||||
| Now head over to `http://127.0.0.1:5000/ <http://127.0.0.1:5000/>`_, and you | ||||
| should see your hello world greeting. | ||||
| Now head over to http://127.0.0.1:5000/, and you should see your hello | ||||
| world greeting. | ||||
| 
 | ||||
| .. _public-server: | ||||
| 
 | ||||
|  | @ -167,7 +167,7 @@ Screenshot of the debugger in action: | |||
| More information on using the debugger can be found in the `Werkzeug | ||||
| documentation`_. | ||||
| 
 | ||||
| .. _Werkzeug documentation: http://werkzeug.pocoo.org/docs/debug/#using-the-debugger | ||||
| .. _Werkzeug documentation: https://werkzeug.palletsprojects.com/debug/#using-the-debugger | ||||
| 
 | ||||
| Have another debugger in mind? See :ref:`working-with-debuggers`. | ||||
| 
 | ||||
|  | @ -384,7 +384,7 @@ package it's actually inside your package: | |||
| 
 | ||||
| For templates you can use the full power of Jinja2 templates.  Head over | ||||
| to the official `Jinja2 Template Documentation | ||||
| <http://jinja.pocoo.org/docs/templates>`_ for more information. | ||||
| <http://jinja.pocoo.org/docs/templates/>`_ for more information. | ||||
| 
 | ||||
| Here is an example template: | ||||
| 
 | ||||
|  | @ -819,9 +819,8 @@ Here are some example log calls:: | |||
|     app.logger.error('An error occurred') | ||||
| 
 | ||||
| The attached :attr:`~flask.Flask.logger` is a standard logging | ||||
| :class:`~logging.Logger`, so head over to the official `logging | ||||
| documentation <https://docs.python.org/library/logging.html>`_ for more | ||||
| information. | ||||
| :class:`~logging.Logger`, so head over to the official :mod:`logging` | ||||
| docs for more information. | ||||
| 
 | ||||
| Read more on :ref:`application-errors`. | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| Sphinx~=1.8.0 | ||||
| Pallets-Sphinx-Themes~=1.1.0 | ||||
| Sphinx~=2.1.2 | ||||
| Pallets-Sphinx-Themes~=1.1.4 | ||||
| sphinxcontrib-log-cabinet~=1.0.0 | ||||
| sphinx-issues~=1.2.0 | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ An extension can depend on Jinja2 being present. | |||
| This section only gives a very quick introduction into how Jinja2 | ||||
| is integrated into Flask.  If you want information on the template | ||||
| engine's syntax itself, head over to the official `Jinja2 Template | ||||
| Documentation <http://jinja.pocoo.org/docs/templates>`_ for | ||||
| Documentation <http://jinja.pocoo.org/docs/templates/>`_ for | ||||
| more information. | ||||
| 
 | ||||
| Jinja Setup | ||||
|  |  | |||
|  | @ -20,8 +20,7 @@ framework for our tests. You can install it with ``pip``, like so:: | |||
| 
 | ||||
|     pip install pytest | ||||
| 
 | ||||
| .. _pytest: | ||||
|    https://pytest.org | ||||
| .. _pytest: https://docs.pytest.org/ | ||||
| 
 | ||||
| The Application | ||||
| --------------- | ||||
|  | @ -453,5 +452,5 @@ This is useful for testing complex validation rules and custom types. :: | |||
|         context = hello_command.make_context('hello', ['--name', 'flask']) | ||||
|         assert context.params['name'] == 'FLASK' | ||||
| 
 | ||||
| .. _click: http://click.pocoo.org/ | ||||
| .. _utilities for testing: http://click.pocoo.org/testing | ||||
| .. _click: https://click.palletsprojects.com/ | ||||
| .. _utilities for testing: https://click.palletsprojects.com/testing/ | ||||
|  |  | |||
|  | @ -116,6 +116,6 @@ your application. Waitress is just an example, chosen for the tutorial | |||
| because it supports both Windows and Linux. There are many more WSGI | ||||
| servers and deployment options that you may choose for your project. | ||||
| 
 | ||||
| .. _Waitress: https://docs.pylonsproject.org/projects/waitress/ | ||||
| .. _Waitress: https://docs.pylonsproject.org/projects/waitress/en/stable/ | ||||
| 
 | ||||
| Continue to :doc:`next`. | ||||
|  |  | |||
|  | @ -70,7 +70,7 @@ files. | |||
| See the `official packaging guide`_ for another explanation of the files | ||||
| and options used. | ||||
| 
 | ||||
| .. _official packaging guide: https://packaging.python.org/tutorials/distributing-packages/ | ||||
| .. _official packaging guide: https://packaging.python.org/tutorials/packaging-projects/ | ||||
| 
 | ||||
| 
 | ||||
| Install the Project | ||||
|  |  | |||
|  | @ -6,9 +6,9 @@ text.  Not only these libraries, also the majority of web related Python | |||
| libraries that deal with text.  If you don't know Unicode so far, you | ||||
| should probably read `The Absolute Minimum Every Software Developer | ||||
| Absolutely, Positively Must Know About Unicode and Character Sets | ||||
| <http://www.joelonsoftware.com/articles/Unicode.html>`_.  This part of the | ||||
| documentation just tries to cover the very basics so that you have a | ||||
| pleasant experience with Unicode related things. | ||||
| <https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/>`_. | ||||
| This part of the documentation just tries to cover the very basics so | ||||
| that you have a pleasant experience with Unicode related things. | ||||
| 
 | ||||
| Automatic Conversion | ||||
| -------------------- | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|     A microframework based on Werkzeug.  It's extensively documented | ||||
|     and follows best practice patterns. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| __version__ = '1.0.3' | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Alias for flask.run for the command line. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|  |  | |||
|  | @ -7,8 +7,8 @@ | |||
|     version of six so we don't have to depend on a specific version | ||||
|     of it. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import sys | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     This module implements the central WSGI application object. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import os | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|     Blueprints are the recommended way to implement larger or more | ||||
|     pluggable applications in Flask 0.7 and later. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| from functools import update_wrapper | ||||
| 
 | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     A simple command line application to run flask apps. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from __future__ import print_function | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Implements the configuration related objects. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import os | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Implements the objects required to keep the context. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import sys | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Various helpers to make the development experience better. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import os | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|     Defines all the global objects that are proxies to the current | ||||
|     active context. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from functools import partial | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Implements various helpers. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import os | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
| flask.json | ||||
| ~~~~~~~~~~ | ||||
| 
 | ||||
| :copyright: © 2010 by the Pallets team. | ||||
| :license: BSD, see LICENSE for more details. | ||||
| :copyright: 2010 Pallets | ||||
| :license: BSD-3-Clause | ||||
| """ | ||||
| import codecs | ||||
| import io | ||||
|  |  | |||
|  | @ -38,8 +38,8 @@ processes dicts first, so insert the new tag at the front of the order since | |||
| 
 | ||||
|     app.session_interface.serializer.register(TagOrderedDict, index=0) | ||||
| 
 | ||||
| :copyright: © 2010 by the Pallets team. | ||||
| :license: BSD, see LICENSE for more details. | ||||
| :copyright: 2010 Pallets | ||||
| :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from base64 import b64decode, b64encode | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
| flask.logging | ||||
| ~~~~~~~~~~~~~ | ||||
| 
 | ||||
| :copyright: © 2010 by the Pallets team. | ||||
| :license: BSD, see LICENSE for more details. | ||||
| :copyright: 2010 Pallets | ||||
| :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from __future__ import absolute_import | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Implements cookie based sessions based on itsdangerous. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import hashlib | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|     Implements signals based on blinker if available, otherwise | ||||
|     falls silently back to a noop. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| signals_available = False | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Implements the bridge to Jinja2. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from jinja2 import BaseLoader, Environment as BaseEnvironment, \ | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|     Implements test support helpers.  This module is lazily imported | ||||
|     and usually not used in production environments. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import werkzeug | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     This module provides class-based views inspired by the ones in Django. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from .globals import request | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Implements the WSGI wrappers (request and response). | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from werkzeug.exceptions import BadRequest | ||||
|  |  | |||
|  | @ -1,164 +0,0 @@ | |||
| #!/usr/bin/env python | ||||
| from __future__ import print_function | ||||
| 
 | ||||
| import os | ||||
| import re | ||||
| import sys | ||||
| from datetime import date, datetime | ||||
| from subprocess import PIPE, Popen | ||||
| 
 | ||||
| _date_strip_re = re.compile(r'(?<=\d)(st|nd|rd|th)') | ||||
| 
 | ||||
| 
 | ||||
| def parse_changelog(): | ||||
|     with open('CHANGES.rst') as f: | ||||
|         lineiter = iter(f) | ||||
|         for line in lineiter: | ||||
|             match = re.search('^Version\s+(.*)', line.strip()) | ||||
| 
 | ||||
|             if match is None: | ||||
|                 continue | ||||
| 
 | ||||
|             version = match.group(1).strip() | ||||
| 
 | ||||
|             if next(lineiter).count('-') != len(match.group(0)): | ||||
|                 continue | ||||
| 
 | ||||
|             while 1: | ||||
|                 change_info = next(lineiter).strip() | ||||
| 
 | ||||
|                 if change_info: | ||||
|                     break | ||||
| 
 | ||||
|             match = re.search( | ||||
|                 r'released on (\w+\s+\d+\w+\s+\d+)(?:, codename (.*))?', | ||||
|                 change_info, | ||||
|                 flags=re.IGNORECASE | ||||
|             ) | ||||
| 
 | ||||
|             if match is None: | ||||
|                 continue | ||||
| 
 | ||||
|             datestr, codename = match.groups() | ||||
|             return version, parse_date(datestr), codename | ||||
| 
 | ||||
| 
 | ||||
| def bump_version(version): | ||||
|     try: | ||||
|         parts = [int(i) for i in version.split('.')] | ||||
|     except ValueError: | ||||
|         fail('Current version is not numeric') | ||||
| 
 | ||||
|     parts[-1] += 1 | ||||
|     return '.'.join(map(str, parts)) | ||||
| 
 | ||||
| 
 | ||||
| def parse_date(string): | ||||
|     string = _date_strip_re.sub('', string) | ||||
|     return datetime.strptime(string, '%B %d %Y') | ||||
| 
 | ||||
| 
 | ||||
| def set_filename_version(filename, version_number, pattern): | ||||
|     changed = [] | ||||
| 
 | ||||
|     def inject_version(match): | ||||
|         before, old, after = match.groups() | ||||
|         changed.append(True) | ||||
|         return before + version_number + after | ||||
| 
 | ||||
|     with open(filename) as f: | ||||
|         contents = re.sub( | ||||
|             r"^(\s*%s\s*=\s*')(.+?)(')" % pattern, | ||||
|             inject_version, f.read(), | ||||
|             flags=re.DOTALL | re.MULTILINE | ||||
|         ) | ||||
| 
 | ||||
|     if not changed: | ||||
|         fail('Could not find %s in %s', pattern, filename) | ||||
| 
 | ||||
|     with open(filename, 'w') as f: | ||||
|         f.write(contents) | ||||
| 
 | ||||
| 
 | ||||
| def set_init_version(version): | ||||
|     info('Setting __init__.py version to %s', version) | ||||
|     set_filename_version('flask/__init__.py', version, '__version__') | ||||
| 
 | ||||
| 
 | ||||
| def build(): | ||||
|     cmd = [sys.executable, 'setup.py', 'sdist', 'bdist_wheel'] | ||||
|     Popen(cmd).wait() | ||||
| 
 | ||||
| 
 | ||||
| def fail(message, *args): | ||||
|     print('Error:', message % args, file=sys.stderr) | ||||
|     sys.exit(1) | ||||
| 
 | ||||
| 
 | ||||
| def info(message, *args): | ||||
|     print(message % args, file=sys.stderr) | ||||
| 
 | ||||
| 
 | ||||
| def get_git_tags(): | ||||
|     return set( | ||||
|         Popen(['git', 'tag'], stdout=PIPE).communicate()[0].splitlines() | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| def git_is_clean(): | ||||
|     return Popen(['git', 'diff', '--quiet']).wait() == 0 | ||||
| 
 | ||||
| 
 | ||||
| def make_git_commit(message, *args): | ||||
|     message = message % args | ||||
|     Popen(['git', 'commit', '-am', message]).wait() | ||||
| 
 | ||||
| 
 | ||||
| def make_git_tag(tag): | ||||
|     info('Tagging "%s"', tag) | ||||
|     Popen(['git', 'tag', tag]).wait() | ||||
| 
 | ||||
| 
 | ||||
| def main(): | ||||
|     os.chdir(os.path.join(os.path.dirname(__file__), '..')) | ||||
| 
 | ||||
|     rv = parse_changelog() | ||||
| 
 | ||||
|     if rv is None: | ||||
|         fail('Could not parse changelog') | ||||
| 
 | ||||
|     version, release_date, codename = rv | ||||
|     dev_version = bump_version(version) + '.dev' | ||||
| 
 | ||||
|     info( | ||||
|         'Releasing %s (codename %s, release date %s)', | ||||
|         version, codename, release_date.strftime('%d/%m/%Y') | ||||
|     ) | ||||
|     tags = get_git_tags() | ||||
| 
 | ||||
|     if version in tags: | ||||
|         fail('Version "%s" is already tagged', version) | ||||
| 
 | ||||
|     if release_date.date() != date.today(): | ||||
|         fail( | ||||
|             'Release date is not today (%s != %s)', | ||||
|             release_date.date(), date.today() | ||||
|         ) | ||||
| 
 | ||||
|     if not git_is_clean(): | ||||
|         fail('You have uncommitted changes in git') | ||||
| 
 | ||||
|     try: | ||||
|         import wheel  # noqa: F401 | ||||
|     except ImportError: | ||||
|         fail('You need to install the wheel package.') | ||||
| 
 | ||||
|     set_init_version(version) | ||||
|     make_git_commit('Bump version number to %s', version) | ||||
|     make_git_tag(version) | ||||
|     build() | ||||
|     set_init_version(dev_version) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
							
								
								
									
										12
									
								
								setup.cfg
								
								
								
								
							
							
						
						
									
										12
									
								
								setup.cfg
								
								
								
								
							|  | @ -1,14 +1,10 @@ | |||
| [aliases] | ||||
| release = egg_info -Db '' | ||||
| [metadata] | ||||
| license_file = LICENSE.rst | ||||
| 
 | ||||
| [bdist_wheel] | ||||
| universal = 1 | ||||
| 
 | ||||
| [metadata] | ||||
| license_file = LICENSE | ||||
| universal = true | ||||
| 
 | ||||
| [tool:pytest] | ||||
| minversion = 3.0 | ||||
| testpaths = tests | ||||
| 
 | ||||
| [coverage:run] | ||||
|  | @ -21,4 +17,4 @@ source = | |||
| source = | ||||
|     flask | ||||
|     .tox/*/lib/python*/site-packages/flask | ||||
|     .tox/pypy/site-packages/flask | ||||
|     .tox/*/site-packages/flask | ||||
|  |  | |||
|  | @ -1,81 +1,76 @@ | |||
| #!/usr/bin/env python | ||||
| # -*- coding: utf-8 -*- | ||||
| import io | ||||
| import re | ||||
| from collections import OrderedDict | ||||
| 
 | ||||
| from setuptools import find_packages | ||||
| from setuptools import setup | ||||
| 
 | ||||
| with io.open('README.rst', 'rt', encoding='utf8') as f: | ||||
| with io.open("README.rst", "rt", encoding="utf8") as f: | ||||
|     readme = f.read() | ||||
| 
 | ||||
| with io.open('flask/__init__.py', 'rt', encoding='utf8') as f: | ||||
|     version = re.search(r'__version__ = \'(.*?)\'', f.read()).group(1) | ||||
| with io.open("flask/__init__.py", "rt", encoding="utf8") as f: | ||||
|     version = re.search(r"__version__ = \'(.*?)\'", f.read()).group(1) | ||||
| 
 | ||||
| setup( | ||||
|     name='Flask', | ||||
|     name="Flask", | ||||
|     version=version, | ||||
|     url='https://www.palletsprojects.com/p/flask/', | ||||
|     project_urls=OrderedDict(( | ||||
|         ('Documentation', 'http://flask.pocoo.org/docs/'), | ||||
|         ('Code', 'https://github.com/pallets/flask'), | ||||
|         ('Issue tracker', 'https://github.com/pallets/flask/issues'), | ||||
|     )), | ||||
|     license='BSD', | ||||
|     author='Armin Ronacher', | ||||
|     author_email='armin.ronacher@active-4.com', | ||||
|     maintainer='Pallets team', | ||||
|     maintainer_email='contact@palletsprojects.com', | ||||
|     description='A simple framework for building complex web applications.', | ||||
|     url="https://palletsprojects.com/p/flask/", | ||||
|     project_urls={ | ||||
|         "Documentation": "http://flask.palletsprojects.com/", | ||||
|         "Code": "https://github.com/pallets/flask", | ||||
|         "Issue tracker": "https://github.com/pallets/flask/issues", | ||||
|     }, | ||||
|     license="BSD-3-Clause", | ||||
|     author="Armin Ronacher", | ||||
|     author_email="armin.ronacher@active-4.com", | ||||
|     maintainer="Pallets", | ||||
|     maintainer_email="contact@palletsprojects.com", | ||||
|     description="A simple framework for building complex web applications.", | ||||
|     long_description=readme, | ||||
|     packages=['flask', 'flask.json'], | ||||
|     classifiers=[ | ||||
|         "Development Status :: 5 - Production/Stable", | ||||
|         "Environment :: Web Environment", | ||||
|         "Framework :: Flask", | ||||
|         "Intended Audience :: Developers", | ||||
|         "License :: OSI Approved :: BSD 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.4", | ||||
|         "Programming Language :: Python :: 3.5", | ||||
|         "Programming Language :: Python :: 3.6", | ||||
|         "Topic :: Internet :: WWW/HTTP :: Dynamic Content", | ||||
|         "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", | ||||
|         "Topic :: Software Development :: Libraries :: Application Frameworks", | ||||
|         "Topic :: Software Development :: Libraries :: Python Modules", | ||||
|     ], | ||||
|     packages=find_packages(), | ||||
|     include_package_data=True, | ||||
|     zip_safe=False, | ||||
|     platforms='any', | ||||
|     python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", | ||||
|     install_requires=[ | ||||
|         'Werkzeug>=0.14', | ||||
|         'Jinja2>=2.10', | ||||
|         'itsdangerous>=0.24', | ||||
|         'click>=5.1', | ||||
|         "Werkzeug>=0.14", | ||||
|         "Jinja2>=2.10", | ||||
|         "itsdangerous>=0.24", | ||||
|         "click>=5.1", | ||||
|     ], | ||||
|     extras_require={ | ||||
|         'dotenv': ['python-dotenv'], | ||||
|         'dev': [ | ||||
|             'pytest>=3', | ||||
|             'coverage', | ||||
|             'tox', | ||||
|             'sphinx', | ||||
|             'pallets-sphinx-themes', | ||||
|             'sphinxcontrib-log-cabinet', | ||||
|         "dotenv": ["python-dotenv"], | ||||
|         "dev": [ | ||||
|             "pytest", | ||||
|             "coverage", | ||||
|             "tox", | ||||
|             "sphinx", | ||||
|             "pallets-sphinx-themes", | ||||
|             "sphinxcontrib-log-cabinet", | ||||
|             "sphinx-issues", | ||||
|         ], | ||||
|         'docs': [ | ||||
|             'sphinx', | ||||
|             'pallets-sphinx-themes', | ||||
|             'sphinxcontrib-log-cabinet', | ||||
|         ] | ||||
|     }, | ||||
|     classifiers=[ | ||||
|         'Development Status :: 5 - Production/Stable', | ||||
|         'Environment :: Web Environment', | ||||
|         'Framework :: Flask', | ||||
|         'Intended Audience :: Developers', | ||||
|         'License :: OSI Approved :: BSD 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.4', | ||||
|         'Programming Language :: Python :: 3.5', | ||||
|         'Programming Language :: Python :: 3.6', | ||||
|         'Topic :: Internet :: WWW/HTTP :: Dynamic Content', | ||||
|         'Topic :: Internet :: WWW/HTTP :: WSGI :: Application', | ||||
|         'Topic :: Software Development :: Libraries :: Application Frameworks', | ||||
|         'Topic :: Software Development :: Libraries :: Python Modules', | ||||
|     ], | ||||
|     entry_points={ | ||||
|         'console_scripts': [ | ||||
|             'flask = flask.cli:main', | ||||
|         "docs": [ | ||||
|             "sphinx", | ||||
|             "pallets-sphinx-themes", | ||||
|             "sphinxcontrib-log-cabinet", | ||||
|             "sphinx-issues", | ||||
|         ], | ||||
|     }, | ||||
|     entry_points={"console_scripts": ["flask = flask.cli:main"]}, | ||||
| ) | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
|     tests.conftest | ||||
|     ~~~~~~~~~~~~~~ | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import gc | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Tests the application context. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import pytest | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     The basic functionality. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import re | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Blueprints (and currently modules) | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import functools | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
|     tests.test_cli | ||||
|     ~~~~~~~~~~~~~~ | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| # This file was part of Flask-CLI and was modified under the terms of | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
|     tests.test_config | ||||
|     ~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from datetime import timedelta | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Various helpers. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import datetime | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
|     tests.test_instance | ||||
|     ~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import os | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
| tests.test_json_tag | ||||
| ~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| :copyright: © 2010 by the Pallets team. | ||||
| :license: BSD, see LICENSE for more details. | ||||
| :copyright: 2010 Pallets | ||||
| :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from datetime import datetime | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
| tests.test_logging | ||||
| ~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| :copyright: © 2010 by the Pallets team. | ||||
| :license: BSD, see LICENSE for more details. | ||||
| :copyright: 2010 Pallets | ||||
| :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import logging | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Tests regressions. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import gc | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Tests the request context. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import pytest | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Signalling. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import pytest | ||||
|  |  | |||
|  | @ -6,8 +6,8 @@ | |||
|     Test that certain behavior of flask can be customized by | ||||
|     subclasses. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import flask | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Template functionality | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import pytest | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Test client and more. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| import click | ||||
| import pytest | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ | |||
| tests.test_user_error_handler | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| 
 | ||||
| :copyright: © 2010 by the Pallets team. | ||||
| :license: BSD, see LICENSE for more details. | ||||
| :copyright: 2010 Pallets | ||||
| :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| from werkzeug.exceptions import ( | ||||
|  |  | |||
|  | @ -5,8 +5,8 @@ | |||
| 
 | ||||
|     Pluggable views. | ||||
| 
 | ||||
|     :copyright: © 2010 by the Pallets team. | ||||
|     :license: BSD, see LICENSE for more details. | ||||
|     :copyright: 2010 Pallets | ||||
|     :license: BSD-3-Clause | ||||
| """ | ||||
| 
 | ||||
| import pytest | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue