diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7aaed8de..eb797309 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,11 @@ repos: + - repo: https://github.com/asottile/reorder_python_imports + rev: v1.4.0 + hooks: + - id: reorder-python-imports + name: Reorder Python imports (src, tests) + files: "^(?!examples/)" + args: ["--application-directories", ".:src"] - repo: https://github.com/python/black rev: 19.3b0 hooks: @@ -9,7 +16,7 @@ repos: - id: flake8 additional_dependencies: [flake8-bugbear] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.1.0 + rev: v2.2.3 hooks: - id: check-byte-order-marker - id: trailing-whitespace diff --git a/examples/javascript/js_example/views.py b/examples/javascript/js_example/views.py index 8efee858..8926b8a0 100644 --- a/examples/javascript/js_example/views.py +++ b/examples/javascript/js_example/views.py @@ -1,4 +1,6 @@ -from flask import jsonify, render_template, request +from flask import jsonify +from flask import render_template +from flask import request from js_example import app diff --git a/examples/javascript/setup.py b/examples/javascript/setup.py index 89b8373b..93f28db2 100644 --- a/examples/javascript/setup.py +++ b/examples/javascript/setup.py @@ -1,6 +1,7 @@ import io -from setuptools import find_packages, setup +from setuptools import find_packages +from setuptools import setup with io.open("README.rst", "rt", encoding="utf8") as f: readme = f.read() diff --git a/examples/javascript/tests/test_js_example.py b/examples/javascript/tests/test_js_example.py index 4923f827..aa0215f1 100644 --- a/examples/javascript/tests/test_js_example.py +++ b/examples/javascript/tests/test_js_example.py @@ -1,5 +1,4 @@ import pytest - from flask import template_rendered diff --git a/examples/tutorial/flaskr/auth.py b/examples/tutorial/flaskr/auth.py index 1b94b063..815ab694 100644 --- a/examples/tutorial/flaskr/auth.py +++ b/examples/tutorial/flaskr/auth.py @@ -1,16 +1,15 @@ import functools -from flask import ( - Blueprint, - flash, - g, - redirect, - render_template, - request, - session, - url_for, -) -from werkzeug.security import check_password_hash, generate_password_hash +from flask import Blueprint +from flask import flash +from flask import g +from flask import redirect +from flask import render_template +from flask import request +from flask import session +from flask import url_for +from werkzeug.security import check_password_hash +from werkzeug.security import generate_password_hash from flaskr.db import get_db diff --git a/examples/tutorial/flaskr/blog.py b/examples/tutorial/flaskr/blog.py index 9804ca13..86dd19c7 100644 --- a/examples/tutorial/flaskr/blog.py +++ b/examples/tutorial/flaskr/blog.py @@ -1,4 +1,10 @@ -from flask import Blueprint, flash, g, redirect, render_template, request, url_for +from flask import Blueprint +from flask import flash +from flask import g +from flask import redirect +from flask import render_template +from flask import request +from flask import url_for from werkzeug.exceptions import abort from flaskr.auth import login_required diff --git a/examples/tutorial/flaskr/db.py b/examples/tutorial/flaskr/db.py index 36b7f514..f1e2dc30 100644 --- a/examples/tutorial/flaskr/db.py +++ b/examples/tutorial/flaskr/db.py @@ -1,7 +1,8 @@ import sqlite3 import click -from flask import current_app, g +from flask import current_app +from flask import g from flask.cli import with_appcontext diff --git a/examples/tutorial/setup.py b/examples/tutorial/setup.py index b6ac73e9..01bf7976 100644 --- a/examples/tutorial/setup.py +++ b/examples/tutorial/setup.py @@ -1,6 +1,7 @@ import io -from setuptools import find_packages, setup +from setuptools import find_packages +from setuptools import setup with io.open("README.rst", "rt", encoding="utf8") as f: readme = f.read() diff --git a/examples/tutorial/tests/conftest.py b/examples/tutorial/tests/conftest.py index 869b19e7..4d109ab7 100644 --- a/examples/tutorial/tests/conftest.py +++ b/examples/tutorial/tests/conftest.py @@ -2,8 +2,10 @@ import os import tempfile import pytest + from flaskr import create_app -from flaskr.db import get_db, init_db +from flaskr.db import get_db +from flaskr.db import init_db # read in SQL for populating test data with open(os.path.join(os.path.dirname(__file__), "data.sql"), "rb") as f: diff --git a/examples/tutorial/tests/test_auth.py b/examples/tutorial/tests/test_auth.py index 7b7b84fc..3ac9a12c 100644 --- a/examples/tutorial/tests/test_auth.py +++ b/examples/tutorial/tests/test_auth.py @@ -1,5 +1,7 @@ import pytest -from flask import g, session +from flask import g +from flask import session + from flaskr.db import get_db diff --git a/examples/tutorial/tests/test_blog.py b/examples/tutorial/tests/test_blog.py index 29468742..91859686 100644 --- a/examples/tutorial/tests/test_blog.py +++ b/examples/tutorial/tests/test_blog.py @@ -1,4 +1,5 @@ import pytest + from flaskr.db import get_db diff --git a/examples/tutorial/tests/test_db.py b/examples/tutorial/tests/test_db.py index 59eaddff..86d2c0e9 100644 --- a/examples/tutorial/tests/test_db.py +++ b/examples/tutorial/tests/test_db.py @@ -1,6 +1,7 @@ import sqlite3 import pytest + from flaskr.db import get_db diff --git a/scripts/make-release.py b/scripts/make-release.py index ad5f7bf3..d482e291 100755 --- a/scripts/make-release.py +++ b/scripts/make-release.py @@ -4,8 +4,10 @@ from __future__ import print_function import os import re import sys -from datetime import date, datetime -from subprocess import PIPE, Popen +from datetime import date +from datetime import datetime +from subprocess import PIPE +from subprocess import Popen _date_strip_re = re.compile(r"(?<=\d)(st|nd|rd|th)") diff --git a/src/flask/__init__.py b/src/flask/__init__.py index 173b7f28..596b0dd3 100644 --- a/src/flask/__init__.py +++ b/src/flask/__init__.py @@ -9,64 +9,51 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - -__version__ = "1.1.dev" - # utilities we import from Werkzeug and Jinja2 that are unused # in the module but are exported as public interface. +from jinja2 import escape +from jinja2 import Markup from werkzeug.exceptions import abort from werkzeug.utils import redirect -from jinja2 import Markup, escape -from .app import Flask, Request, Response -from .config import Config -from .helpers import ( - url_for, - flash, - send_file, - send_from_directory, - get_flashed_messages, - get_template_attribute, - make_response, - safe_join, - stream_with_context, -) -from .globals import ( - current_app, - g, - request, - session, - _request_ctx_stack, - _app_ctx_stack, -) -from .ctx import ( - has_request_context, - has_app_context, - after_this_request, - copy_current_request_context, -) -from .blueprints import Blueprint -from .templating import render_template, render_template_string - -# the signals -from .signals import ( - signals_available, - template_rendered, - request_started, - request_finished, - got_request_exception, - request_tearing_down, - appcontext_tearing_down, - appcontext_pushed, - appcontext_popped, - message_flashed, - before_render_template, -) - -# We're not exposing the actual json module but a convenient wrapper around -# it. from . import json +from .app import Flask +from .app import Request +from .app import Response +from .blueprints import Blueprint +from .config import Config +from .ctx import after_this_request +from .ctx import copy_current_request_context +from .ctx import has_app_context +from .ctx import has_request_context +from .globals import _app_ctx_stack +from .globals import _request_ctx_stack +from .globals import current_app +from .globals import g +from .globals import request +from .globals import session +from .helpers import flash +from .helpers import get_flashed_messages +from .helpers import get_template_attribute +from .helpers import make_response +from .helpers import safe_join +from .helpers import send_file +from .helpers import send_from_directory +from .helpers import stream_with_context +from .helpers import url_for +from .json import jsonify +from .signals import appcontext_popped +from .signals import appcontext_pushed +from .signals import appcontext_tearing_down +from .signals import before_render_template +from .signals import got_request_exception +from .signals import message_flashed +from .signals import request_finished +from .signals import request_started +from .signals import request_tearing_down +from .signals import signals_available +from .signals import template_rendered +from .templating import render_template +from .templating import render_template_string -# This was the only thing that Flask used to export at one point and it had -# a more generic name. -jsonify = json.jsonify +__version__ = "1.1.dev" diff --git a/src/flask/_compat.py b/src/flask/_compat.py index a44c2b13..b3876055 100644 --- a/src/flask/_compat.py +++ b/src/flask/_compat.py @@ -10,7 +10,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import sys PY2 = sys.version_info[0] == 2 diff --git a/src/flask/app.py b/src/flask/app.py index a5034d06..962a5e91 100644 --- a/src/flask/app.py +++ b/src/flask/app.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import os import sys import warnings @@ -17,50 +16,58 @@ from functools import update_wrapper from itertools import chain from threading import Lock -from werkzeug.datastructures import Headers, ImmutableDict -from werkzeug.exceptions import ( - BadRequest, - BadRequestKeyError, - HTTPException, - InternalServerError, - MethodNotAllowed, - default_exceptions, -) -from werkzeug.routing import BuildError, Map, RequestRedirect, RoutingException, Rule +from werkzeug.datastructures import Headers +from werkzeug.datastructures import ImmutableDict +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import BadRequestKeyError +from werkzeug.exceptions import default_exceptions +from werkzeug.exceptions import HTTPException +from werkzeug.exceptions import InternalServerError +from werkzeug.exceptions import MethodNotAllowed +from werkzeug.routing import BuildError +from werkzeug.routing import Map +from werkzeug.routing import RequestRedirect +from werkzeug.routing import RoutingException +from werkzeug.routing import Rule from werkzeug.wrappers import BaseResponse -from . import cli, json -from ._compat import integer_types, reraise, string_types, text_type -from .config import Config, ConfigAttribute -from .ctx import AppContext, RequestContext, _AppCtxGlobals -from .globals import _request_ctx_stack, g, request, session -from .helpers import ( - _PackageBoundObject, - _endpoint_from_view_func, - find_package, - get_env, - get_debug_flag, - get_flashed_messages, - locked_cached_property, - url_for, - get_load_dotenv, -) +from . import cli +from . import json +from ._compat import integer_types +from ._compat import reraise +from ._compat import string_types +from ._compat import text_type +from .config import Config +from .config import ConfigAttribute +from .ctx import _AppCtxGlobals +from .ctx import AppContext +from .ctx import RequestContext +from .globals import _request_ctx_stack +from .globals import g +from .globals import request +from .globals import session +from .helpers import _endpoint_from_view_func +from .helpers import _PackageBoundObject +from .helpers import find_package +from .helpers import get_debug_flag +from .helpers import get_env +from .helpers import get_flashed_messages +from .helpers import get_load_dotenv +from .helpers import locked_cached_property +from .helpers import url_for from .json import jsonify from .logging import create_logger from .sessions import SecureCookieSessionInterface -from .signals import ( - appcontext_tearing_down, - got_request_exception, - request_finished, - request_started, - request_tearing_down, -) -from .templating import ( - DispatchingJinjaLoader, - Environment, - _default_template_ctx_processor, -) -from .wrappers import Request, Response +from .signals import appcontext_tearing_down +from .signals import got_request_exception +from .signals import request_finished +from .signals import request_started +from .signals import request_tearing_down +from .templating import _default_template_ctx_processor +from .templating import DispatchingJinjaLoader +from .templating import Environment +from .wrappers import Request +from .wrappers import Response # a singleton sentinel value for parameter defaults _sentinel = object() @@ -1036,7 +1043,7 @@ class Flask(_PackageBoundObject): """ cls = self.test_client_class if cls is None: - from flask.testing import FlaskClient as cls + from .testing import FlaskClient as cls return cls(self, self.response_class, use_cookies=use_cookies, **kwargs) def test_cli_runner(self, **kwargs): @@ -1052,7 +1059,7 @@ class Flask(_PackageBoundObject): cls = self.test_cli_runner_class if cls is None: - from flask.testing import FlaskCliRunner as cls + from .testing import FlaskCliRunner as cls return cls(self, **kwargs) @@ -2356,7 +2363,7 @@ class Flask(_PackageBoundObject): :param kwargs: other keyword arguments passed to :class:`~werkzeug.test.EnvironBuilder`. """ - from flask.testing import EnvironBuilder + from .testing import EnvironBuilder builder = EnvironBuilder(self, *args, **kwargs) diff --git a/src/flask/blueprints.py b/src/flask/blueprints.py index 30c864e0..a6eac6f3 100644 --- a/src/flask/blueprints.py +++ b/src/flask/blueprints.py @@ -11,7 +11,8 @@ """ from functools import update_wrapper -from .helpers import _PackageBoundObject, _endpoint_from_view_func +from .helpers import _endpoint_from_view_func +from .helpers import _PackageBoundObject # a singleton sentinel value for parameter defaults _sentinel = object() diff --git a/src/flask/cli.py b/src/flask/cli.py index a36bd7cb..f57c237e 100644 --- a/src/flask/cli.py +++ b/src/flask/cli.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - from __future__ import print_function import ast @@ -20,15 +19,20 @@ import sys import traceback from functools import update_wrapper from operator import attrgetter -from threading import Lock, Thread +from threading import Lock +from threading import Thread import click from werkzeug.utils import import_string -from . import __version__ -from ._compat import getargspec, itervalues, reraise, text_type +from ._compat import getargspec +from ._compat import itervalues +from ._compat import reraise +from ._compat import text_type from .globals import current_app -from .helpers import get_debug_flag, get_env, get_load_dotenv +from .helpers import get_debug_flag +from .helpers import get_env +from .helpers import get_load_dotenv try: import dotenv @@ -147,7 +151,7 @@ def find_app_by_string(script_info, module, app_name): ``script_info`` argument and calls the function with the appropriate arguments. """ - from flask import Flask + from . import Flask match = re.match(r"^ *([^ ()]+) *(?:\((.*?) *,? *\))? *$", app_name) @@ -258,7 +262,9 @@ def locate_app(script_info, module_name, app_name, raise_if_not_found=True): def get_version(ctx, param, value): if not value or ctx.resilient_parsing: return + import werkzeug + from . import __version__ message = "Python %(python)s\n" "Flask %(flask)s\n" "Werkzeug %(werkzeug)s" click.echo( @@ -865,7 +871,7 @@ def shell_command(): without having to manually configure the application. """ import code - from flask.globals import _app_ctx_stack + from .globals import _app_ctx_stack app = _app_ctx_stack.top.app banner = "Python %s on %s\nApp: %s [%s]\nInstance: %s" % ( diff --git a/src/flask/config.py b/src/flask/config.py index 2f207a57..88722a8c 100644 --- a/src/flask/config.py +++ b/src/flask/config.py @@ -8,14 +8,15 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - +import errno import os import types -import errno from werkzeug.utils import import_string -from ._compat import string_types, iteritems + from . import json +from ._compat import iteritems +from ._compat import string_types class ConfigAttribute(object): diff --git a/src/flask/ctx.py b/src/flask/ctx.py index ce2f2766..176d9d8d 100644 --- a/src/flask/ctx.py +++ b/src/flask/ctx.py @@ -8,15 +8,17 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import sys from functools import update_wrapper from werkzeug.exceptions import HTTPException -from .globals import _request_ctx_stack, _app_ctx_stack -from .signals import appcontext_pushed, appcontext_popped -from ._compat import BROKEN_PYPY_CTXMGR_EXIT, reraise +from ._compat import BROKEN_PYPY_CTXMGR_EXIT +from ._compat import reraise +from .globals import _app_ctx_stack +from .globals import _request_ctx_stack +from .signals import appcontext_popped +from .signals import appcontext_pushed # a singleton sentinel value for parameter defaults diff --git a/src/flask/debughelpers.py b/src/flask/debughelpers.py index c92b0153..04c11620 100644 --- a/src/flask/debughelpers.py +++ b/src/flask/debughelpers.py @@ -8,11 +8,11 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import os from warnings import warn -from ._compat import implements_to_string, text_type +from ._compat import implements_to_string +from ._compat import text_type from .app import Flask from .blueprints import Blueprint from .globals import _request_ctx_stack diff --git a/src/flask/globals.py b/src/flask/globals.py index 8fc3ffe4..783bbed3 100644 --- a/src/flask/globals.py +++ b/src/flask/globals.py @@ -9,9 +9,10 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - from functools import partial -from werkzeug.local import LocalStack, LocalProxy + +from werkzeug.local import LocalProxy +from werkzeug.local import LocalStack _request_ctx_err_msg = """\ diff --git a/src/flask/helpers.py b/src/flask/helpers.py index 8bcb7ab0..91699042 100644 --- a/src/flask/helpers.py +++ b/src/flask/helpers.py @@ -9,29 +9,37 @@ :license: BSD, see LICENSE for more details. """ import io +import mimetypes import os -import socket -import sys import pkgutil import posixpath -import mimetypes +import socket +import sys +import unicodedata +from functools import update_wrapper +from threading import RLock from time import time from zlib import adler32 -from threading import RLock -import unicodedata -from werkzeug.routing import BuildError -from functools import update_wrapper -from werkzeug.urls import url_quote -from werkzeug.datastructures import Headers -from werkzeug.exceptions import BadRequest, NotFound, RequestedRangeNotSatisfiable - -from werkzeug.wsgi import wrap_file from jinja2 import FileSystemLoader +from werkzeug.datastructures import Headers +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import NotFound +from werkzeug.exceptions import RequestedRangeNotSatisfiable +from werkzeug.routing import BuildError +from werkzeug.urls import url_quote +from werkzeug.wsgi import wrap_file +from ._compat import fspath +from ._compat import PY2 +from ._compat import string_types +from ._compat import text_type +from .globals import _app_ctx_stack +from .globals import _request_ctx_stack +from .globals import current_app +from .globals import request +from .globals import session from .signals import message_flashed -from .globals import session, _request_ctx_stack, _app_ctx_stack, current_app, request -from ._compat import string_types, text_type, PY2, fspath # sentinel _missing = object() diff --git a/src/flask/json/__init__.py b/src/flask/json/__init__.py index f3de8ef2..073d3cb2 100644 --- a/src/flask/json/__init__.py +++ b/src/flask/json/__init__.py @@ -9,16 +9,17 @@ flask.json import codecs import io import uuid -from datetime import date, datetime -from flask.globals import current_app, request -from flask._compat import text_type, PY2 +from datetime import date +from datetime import datetime -from werkzeug.http import http_date -from jinja2 import Markup - -# Use the same json implementation as itsdangerous on which we -# depend anyways. from itsdangerous import json as _json +from jinja2 import Markup +from werkzeug.http import http_date + +from .._compat import PY2 +from .._compat import text_type +from ..globals import current_app +from ..globals import request try: import dataclasses diff --git a/src/flask/json/tag.py b/src/flask/json/tag.py index 197aa1aa..4eb402e2 100644 --- a/src/flask/json/tag.py +++ b/src/flask/json/tag.py @@ -41,16 +41,19 @@ processes dicts first, so insert the new tag at the front of the order since :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - -from base64 import b64decode, b64encode +from base64 import b64decode +from base64 import b64encode from datetime import datetime from uuid import UUID from jinja2 import Markup -from werkzeug.http import http_date, parse_date +from werkzeug.http import http_date +from werkzeug.http import parse_date -from flask._compat import iteritems, text_type -from flask.json import dumps, loads +from .._compat import iteritems +from .._compat import text_type +from ..json import dumps +from ..json import loads class JSONTag(object): diff --git a/src/flask/logging.py b/src/flask/logging.py index 2282ea0a..9ba3415f 100644 --- a/src/flask/logging.py +++ b/src/flask/logging.py @@ -6,7 +6,6 @@ flask.logging :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - from __future__ import absolute_import import logging diff --git a/src/flask/sessions.py b/src/flask/sessions.py index 61180c22..44138fef 100644 --- a/src/flask/sessions.py +++ b/src/flask/sessions.py @@ -8,17 +8,18 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import hashlib import warnings from datetime import datetime -from itsdangerous import BadSignature, URLSafeTimedSerializer +from itsdangerous import BadSignature +from itsdangerous import URLSafeTimedSerializer from werkzeug.datastructures import CallbackDict -from flask._compat import collections_abc -from flask.helpers import is_ip, total_seconds -from flask.json.tag import TaggedJSONSerializer +from ._compat import collections_abc +from .helpers import is_ip +from .helpers import total_seconds +from .json.tag import TaggedJSONSerializer class SessionMixin(collections_abc.MutableMapping): diff --git a/src/flask/signals.py b/src/flask/signals.py index 69da0216..30ee22bd 100644 --- a/src/flask/signals.py +++ b/src/flask/signals.py @@ -9,13 +9,12 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - -signals_available = False try: from blinker import Namespace signals_available = True except ImportError: + signals_available = False class Namespace(object): def signal(self, name, doc=None): diff --git a/src/flask/templating.py b/src/flask/templating.py index 9e571710..2a305f56 100644 --- a/src/flask/templating.py +++ b/src/flask/templating.py @@ -8,11 +8,14 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ +from jinja2 import BaseLoader +from jinja2 import Environment as BaseEnvironment +from jinja2 import TemplateNotFound -from jinja2 import BaseLoader, Environment as BaseEnvironment, TemplateNotFound - -from .globals import _request_ctx_stack, _app_ctx_stack -from .signals import template_rendered, before_render_template +from .globals import _app_ctx_stack +from .globals import _request_ctx_stack +from .signals import before_render_template +from .signals import template_rendered def _default_template_ctx_processor(): diff --git a/src/flask/testing.py b/src/flask/testing.py index 45e6bac7..15546241 100644 --- a/src/flask/testing.py +++ b/src/flask/testing.py @@ -10,17 +10,17 @@ :license: BSD, see LICENSE for more details. """ import warnings -import werkzeug -import werkzeug.test from contextlib import contextmanager +import werkzeug.test from click.testing import CliRunner -from flask.cli import ScriptInfo from werkzeug.test import Client -from flask import _request_ctx_stack -from flask.json import dumps as json_dumps from werkzeug.urls import url_parse +from . import _request_ctx_stack +from .cli import ScriptInfo +from .json import dumps as json_dumps + class EnvironBuilder(werkzeug.test.EnvironBuilder): """An :class:`~werkzeug.test.EnvironBuilder`, that takes defaults from the diff --git a/src/flask/views.py b/src/flask/views.py index 0a4f4688..c8da63cd 100644 --- a/src/flask/views.py +++ b/src/flask/views.py @@ -8,9 +8,8 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - -from .globals import request from ._compat import with_metaclass +from .globals import request http_method_funcs = frozenset( diff --git a/src/flask/wrappers.py b/src/flask/wrappers.py index d9f4295e..a22099b8 100644 --- a/src/flask/wrappers.py +++ b/src/flask/wrappers.py @@ -8,13 +8,13 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - from werkzeug.exceptions import BadRequest -from werkzeug.wrappers import Request as RequestBase, Response as ResponseBase +from werkzeug.wrappers import Request as RequestBase +from werkzeug.wrappers import Response as ResponseBase from werkzeug.wrappers.json import JSONMixin as _JSONMixin -from flask import json -from flask.globals import current_app +from . import json +from .globals import current_app class JSONMixin(_JSONMixin): diff --git a/tests/conftest.py b/tests/conftest.py index 0996467c..56688bb3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -6,7 +6,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import gc import os import pkgutil diff --git a/tests/test_appctx.py b/tests/test_appctx.py index 7e903a86..ae4f131d 100644 --- a/tests/test_appctx.py +++ b/tests/test_appctx.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import pytest import flask diff --git a/tests/test_apps/blueprintapp/apps/admin/__init__.py b/tests/test_apps/blueprintapp/apps/admin/__init__.py index 69a5a29d..b197fad0 100644 --- a/tests/test_apps/blueprintapp/apps/admin/__init__.py +++ b/tests/test_apps/blueprintapp/apps/admin/__init__.py @@ -1,4 +1,5 @@ -from flask import Blueprint, render_template +from flask import Blueprint +from flask import render_template admin = Blueprint( "admin", diff --git a/tests/test_apps/blueprintapp/apps/frontend/__init__.py b/tests/test_apps/blueprintapp/apps/frontend/__init__.py index 48faf34d..7cc5cd82 100644 --- a/tests/test_apps/blueprintapp/apps/frontend/__init__.py +++ b/tests/test_apps/blueprintapp/apps/frontend/__init__.py @@ -1,4 +1,5 @@ -from flask import Blueprint, render_template +from flask import Blueprint +from flask import render_template frontend = Blueprint("frontend", __name__, template_folder="templates") diff --git a/tests/test_apps/cliapp/app.py b/tests/test_apps/cliapp/app.py index 273bcce6..1bf1815c 100644 --- a/tests/test_apps/cliapp/app.py +++ b/tests/test_apps/cliapp/app.py @@ -1,4 +1,5 @@ -from __future__ import absolute_import, print_function +from __future__ import absolute_import +from __future__ import print_function from flask import Flask diff --git a/tests/test_apps/cliapp/factory.py b/tests/test_apps/cliapp/factory.py index c299a8a7..daf09e53 100644 --- a/tests/test_apps/cliapp/factory.py +++ b/tests/test_apps/cliapp/factory.py @@ -1,4 +1,5 @@ -from __future__ import absolute_import, print_function +from __future__ import absolute_import +from __future__ import print_function from flask import Flask diff --git a/tests/test_apps/cliapp/importerrorapp.py b/tests/test_apps/cliapp/importerrorapp.py index e6692c80..1bca80c3 100644 --- a/tests/test_apps/cliapp/importerrorapp.py +++ b/tests/test_apps/cliapp/importerrorapp.py @@ -1,4 +1,5 @@ -from __future__ import absolute_import, print_function +from __future__ import absolute_import +from __future__ import print_function from flask import Flask diff --git a/tests/test_apps/cliapp/multiapp.py b/tests/test_apps/cliapp/multiapp.py index 37e7ceb7..fa1069c5 100644 --- a/tests/test_apps/cliapp/multiapp.py +++ b/tests/test_apps/cliapp/multiapp.py @@ -1,4 +1,5 @@ -from __future__ import absolute_import, print_function +from __future__ import absolute_import +from __future__ import print_function from flask import Flask diff --git a/tests/test_basic.py b/tests/test_basic.py index 7e4287a0..410b12f2 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import re import sys import time @@ -18,7 +17,9 @@ from threading import Thread import pytest import werkzeug.serving -from werkzeug.exceptions import BadRequest, Forbidden, NotFound +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import Forbidden +from werkzeug.exceptions import NotFound from werkzeug.http import parse_date from werkzeug.routing import BuildError diff --git a/tests/test_blueprints.py b/tests/test_blueprints.py index 23b31b2b..c2e18a3a 100644 --- a/tests/test_blueprints.py +++ b/tests/test_blueprints.py @@ -8,15 +8,14 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import functools + import pytest +from jinja2 import TemplateNotFound +from werkzeug.http import parse_cache_control_header import flask - from flask._compat import text_type -from werkzeug.http import parse_cache_control_header -from jinja2 import TemplateNotFound def test_blueprint_specific_error_handling(app, client): diff --git a/tests/test_cli.py b/tests/test_cli.py index 46f626ea..5cbe09b7 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -6,10 +6,8 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - # This file was part of Flask-CLI and was modified under the terms of # its Revised BSD License. Copyright © 2015 CERN. - from __future__ import absolute_import import os @@ -23,21 +21,21 @@ import pytest from _pytest.monkeypatch import notset from click.testing import CliRunner -from flask import Flask, current_app, Blueprint -from flask.cli import ( - AppGroup, - FlaskGroup, - NoAppException, - ScriptInfo, - dotenv, - find_best_app, - get_version, - load_dotenv, - locate_app, - prepare_import, - run_command, - with_appcontext, -) +from flask import Blueprint +from flask import current_app +from flask import Flask +from flask.cli import AppGroup +from flask.cli import dotenv +from flask.cli import find_best_app +from flask.cli import FlaskGroup +from flask.cli import get_version +from flask.cli import load_dotenv +from flask.cli import locate_app +from flask.cli import NoAppException +from flask.cli import prepare_import +from flask.cli import run_command +from flask.cli import ScriptInfo +from flask.cli import with_appcontext cwd = os.getcwd() test_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "test_apps")) diff --git a/tests/test_config.py b/tests/test_config.py index bd7605c3..801469e7 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -6,14 +6,14 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - -from datetime import timedelta import os import textwrap +from datetime import timedelta + +import pytest import flask from flask._compat import PY2 -import pytest # config keys used for the TestConfig diff --git a/tests/test_helpers.py b/tests/test_helpers.py index d5806a54..cacbca2e 100644 --- a/tests/test_helpers.py +++ b/tests/test_helpers.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import datetime import io import os @@ -16,13 +15,18 @@ import uuid import pytest from werkzeug.datastructures import Range -from werkzeug.exceptions import BadRequest, NotFound -from werkzeug.http import http_date, parse_cache_control_header, parse_options_header +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import NotFound +from werkzeug.http import http_date +from werkzeug.http import parse_cache_control_header +from werkzeug.http import parse_options_header import flask from flask import json -from flask._compat import StringIO, text_type -from flask.helpers import get_debug_flag, get_env +from flask._compat import StringIO +from flask._compat import text_type +from flask.helpers import get_debug_flag +from flask.helpers import get_env def has_encoding(name): diff --git a/tests/test_instance_config.py b/tests/test_instance_config.py index afdb3938..e37dfde7 100644 --- a/tests/test_instance_config.py +++ b/tests/test_instance_config.py @@ -6,11 +6,11 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import os import sys import pytest + import flask from flask._compat import PY2 diff --git a/tests/test_json_tag.py b/tests/test_json_tag.py index b5af89cb..8448945d 100644 --- a/tests/test_json_tag.py +++ b/tests/test_json_tag.py @@ -6,14 +6,14 @@ tests.test_json_tag :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - from datetime import datetime from uuid import uuid4 import pytest from flask import Markup -from flask.json.tag import TaggedJSONSerializer, JSONTag +from flask.json.tag import JSONTag +from flask.json.tag import TaggedJSONSerializer @pytest.mark.parametrize( diff --git a/tests/test_logging.py b/tests/test_logging.py index 124cc0a3..6e094749 100644 --- a/tests/test_logging.py +++ b/tests/test_logging.py @@ -6,14 +6,15 @@ tests.test_logging :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import logging import sys import pytest from flask._compat import StringIO -from flask.logging import default_handler, has_level_handler, wsgi_errors_stream +from flask.logging import default_handler +from flask.logging import has_level_handler +from flask.logging import wsgi_errors_stream @pytest.fixture(autouse=True) diff --git a/tests/test_regression.py b/tests/test_regression.py index 8c9b1cb9..33333fd3 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import gc import sys import threading diff --git a/tests/test_reqctx.py b/tests/test_reqctx.py index e7846416..20ae2b28 100644 --- a/tests/test_reqctx.py +++ b/tests/test_reqctx.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import pytest import flask diff --git a/tests/test_signals.py b/tests/test_signals.py index 2de7575f..6ec931c0 100644 --- a/tests/test_signals.py +++ b/tests/test_signals.py @@ -8,7 +8,6 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import pytest try: diff --git a/tests/test_subclassing.py b/tests/test_subclassing.py index e317601b..d823567b 100644 --- a/tests/test_subclassing.py +++ b/tests/test_subclassing.py @@ -9,9 +9,7 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import flask - from flask._compat import StringIO diff --git a/tests/test_templating.py b/tests/test_templating.py index 16b70efe..068dd583 100644 --- a/tests/test_templating.py +++ b/tests/test_templating.py @@ -8,13 +8,13 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ +import logging import pytest +import werkzeug.serving +from jinja2 import TemplateNotFound import flask -import logging -from jinja2 import TemplateNotFound -import werkzeug.serving def test_context_processing(app, client): diff --git a/tests/test_testing.py b/tests/test_testing.py index a16c56cd..a22f1146 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -10,15 +10,16 @@ """ import click import pytest - -import flask import werkzeug +import flask from flask import appcontext_popped from flask._compat import text_type from flask.cli import ScriptInfo from flask.json import jsonify -from flask.testing import make_test_environ_builder, FlaskCliRunner, EnvironBuilder +from flask.testing import EnvironBuilder +from flask.testing import FlaskCliRunner +from flask.testing import make_test_environ_builder try: import blinker diff --git a/tests/test_user_error_handler.py b/tests/test_user_error_handler.py index 756bd722..f26826d2 100644 --- a/tests/test_user_error_handler.py +++ b/tests/test_user_error_handler.py @@ -6,8 +6,11 @@ tests.test_user_error_handler :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ +from werkzeug.exceptions import Forbidden +from werkzeug.exceptions import HTTPException +from werkzeug.exceptions import InternalServerError +from werkzeug.exceptions import NotFound -from werkzeug.exceptions import Forbidden, InternalServerError, HTTPException, NotFound import flask diff --git a/tests/test_views.py b/tests/test_views.py index 7c8610fc..e1389f0c 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -8,11 +8,9 @@ :copyright: © 2010 by the Pallets team. :license: BSD, see LICENSE for more details. """ - import pytest from werkzeug.http import parse_set_header -import flask import flask.views