From a0bfbfa255293b72f2b3335a47ea08a9625d41e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sat, 11 Dec 2021 17:58:45 +0100 Subject: [PATCH] Follow isort formatting issue10928 --- .isort.cfg | 3 ++ bin/trytond | 4 +- bin/trytond-admin | 2 +- bin/trytond-console | 2 +- bin/trytond-cron | 4 +- bin/trytond-stat | 1 - bin/trytond-worker | 4 +- setup.py | 7 ++-- trytond/admin.py | 12 +++--- trytond/application.py | 2 +- trytond/backend/__init__.py | 1 + trytond/backend/database.py | 1 + trytond/backend/postgresql/database.py | 24 +++++------ trytond/backend/postgresql/table.py | 6 +-- trytond/backend/sqlite/database.py | 9 ++-- trytond/backend/sqlite/table.py | 5 ++- trytond/bus.py | 13 +++--- trytond/cache.py | 2 +- trytond/commandline.py | 2 +- trytond/config.py | 3 +- trytond/convert.py | 7 ++-- trytond/cron.py | 2 +- trytond/filestore.py | 2 +- trytond/i18n.py | 2 +- trytond/ir/__init__.py | 29 +++---------- trytond/ir/action.py | 11 +++-- trytond/ir/attachment.py | 3 +- trytond/ir/avatar.py | 4 +- trytond/ir/calendar_.py | 2 +- trytond/ir/configuration.py | 2 +- trytond/ir/cron.py | 7 ++-- trytond/ir/email_.py | 12 +++--- trytond/ir/error.py | 4 +- trytond/ir/exceptions.py | 14 +++---- trytond/ir/export.py | 2 +- trytond/ir/lang.py | 8 ++-- trytond/ir/message.py | 2 +- trytond/ir/model.py | 18 ++++---- trytond/ir/module.py | 12 +++--- trytond/ir/note.py | 3 +- trytond/ir/queue.py | 2 +- trytond/ir/routes.py | 7 ++-- trytond/ir/rule.py | 2 +- trytond/ir/sequence.py | 10 ++--- trytond/ir/session.py | 3 +- trytond/ir/translation.py | 21 +++++----- trytond/ir/trigger.py | 6 +-- trytond/ir/ui/__init__.py | 4 +- trytond/ir/ui/icon.py | 4 +- trytond/ir/ui/menu.py | 6 +-- trytond/ir/ui/view.py | 14 +++---- trytond/model/__init__.py | 30 ++++++------- trytond/model/active.py | 5 ++- trytond/model/avatar.py | 2 +- trytond/model/dictschema.py | 2 +- trytond/model/exceptions.py | 9 ++-- trytond/model/fields/__init__.py | 34 +++++++-------- trytond/model/fields/binary.py | 1 + trytond/model/fields/char.py | 3 +- trytond/model/fields/date.py | 3 +- trytond/model/fields/dict.py | 7 ++-- trytond/model/fields/field.py | 9 ++-- trytond/model/fields/float.py | 3 +- trytond/model/fields/function.py | 2 +- trytond/model/fields/many2many.py | 8 ++-- trytond/model/fields/many2one.py | 8 ++-- trytond/model/fields/multiselection.py | 3 +- trytond/model/fields/numeric.py | 4 +- trytond/model/fields/one2many.py | 9 ++-- trytond/model/fields/reference.py | 10 +++-- trytond/model/fields/selection.py | 1 + trytond/model/fields/text.py | 6 +-- trytond/model/model.py | 6 +-- trytond/model/modelsingleton.py | 3 +- trytond/model/modelsql.py | 36 ++++++++-------- trytond/model/modelstorage.py | 38 ++++++++--------- trytond/model/modelview.py | 16 +++---- trytond/model/multivalue.py | 3 +- trytond/model/tree.py | 1 + trytond/model/union.py | 2 +- trytond/modules/__init__.py | 12 +++--- trytond/pool.py | 8 ++-- trytond/protocols/dispatcher.py | 16 +++---- trytond/protocols/jsonrpc.py | 16 +++---- trytond/protocols/wrappers.py | 15 ++++--- trytond/protocols/xmlrpc.py | 13 +++--- trytond/pyson.py | 5 ++- trytond/report/report.py | 19 +++++---- trytond/res/__init__.py | 5 +-- trytond/res/exceptions.py | 2 +- trytond/res/group.py | 4 +- trytond/res/ir.py | 2 +- trytond/res/routes.py | 6 +-- trytond/res/user.py | 35 ++++++++-------- trytond/security.py | 6 +-- trytond/sendmail.py | 2 +- trytond/tests/__init__.py | 49 ++++------------------ trytond/tests/export_data.py | 2 +- trytond/tests/field_context.py | 2 +- trytond/tests/field_dict.py | 2 +- trytond/tests/field_many2one.py | 2 +- trytond/tests/model.py | 4 +- trytond/tests/modelsql.py | 2 +- trytond/tests/modelstorage.py | 6 ++- trytond/tests/modelview.py | 4 +- trytond/tests/mptt.py | 2 +- trytond/tests/path.py | 2 +- trytond/tests/resource.py | 3 +- trytond/tests/run-tests.py | 6 ++- trytond/tests/test_access.py | 2 +- trytond/tests/test_backend.py | 3 +- trytond/tests/test_bus.py | 6 +-- trytond/tests/test_cache.py | 10 ++--- trytond/tests/test_copy.py | 2 +- trytond/tests/test_descriptors.py | 2 +- trytond/tests/test_exportdata.py | 5 ++- trytond/tests/test_field_binary.py | 2 +- trytond/tests/test_field_char.py | 6 +-- trytond/tests/test_field_context.py | 2 +- trytond/tests/test_field_dict.py | 4 +- trytond/tests/test_field_float.py | 2 +- trytond/tests/test_field_integer.py | 2 +- trytond/tests/test_field_multiselection.py | 2 +- trytond/tests/test_field_numeric.py | 2 +- trytond/tests/test_field_one2one.py | 2 +- trytond/tests/test_field_selection.py | 2 +- trytond/tests/test_history.py | 6 +-- trytond/tests/test_i18n.py | 3 +- trytond/tests/test_importdata.py | 6 +-- trytond/tests/test_ir.py | 3 +- trytond/tests/test_mixins.py | 8 ++-- trytond/tests/test_model.py | 3 +- trytond/tests/test_modelsingleton.py | 3 +- trytond/tests/test_modelsql.py | 8 ++-- trytond/tests/test_modelstorage.py | 4 +- trytond/tests/test_modelview.py | 6 +-- trytond/tests/test_mptt.py | 2 +- trytond/tests/test_multivalue.py | 2 +- trytond/tests/test_order.py | 2 +- trytond/tests/test_protocols.py | 8 ++-- trytond/tests/test_pyson.py | 4 +- trytond/tests/test_report.py | 4 +- trytond/tests/test_resource.py | 2 +- trytond/tests/test_routes.py | 2 +- trytond/tests/test_rpc.py | 4 +- trytond/tests/test_sendmail.py | 7 ++-- trytond/tests/test_sequence.py | 7 ++-- trytond/tests/test_tools.py | 18 ++++---- trytond/tests/test_transaction.py | 2 +- trytond/tests/test_tree.py | 2 +- trytond/tests/test_trigger.py | 9 ++-- trytond/tests/test_tryton.py | 18 ++++---- trytond/tests/test_union.py | 2 +- trytond/tests/test_user.py | 6 +-- trytond/tests/test_wizard.py | 2 +- trytond/tests/test_workflow.py | 2 +- trytond/tests/test_wsgi.py | 5 ++- trytond/tests/tools.py | 5 ++- trytond/tests/tree.py | 2 +- trytond/tests/wizard.py | 6 +-- trytond/tools/__init__.py | 11 +++-- trytond/tools/decimal_.py | 2 +- trytond/tools/domain_inversion.py | 6 +-- trytond/tools/multivalue.py | 2 +- trytond/tools/string_.py | 3 +- trytond/transaction.py | 3 +- trytond/url.py | 2 +- trytond/wizard/__init__.py | 5 +-- trytond/wizard/wizard.py | 10 ++--- trytond/worker.py | 3 +- trytond/wsgi.py | 10 +++-- 171 files changed, 567 insertions(+), 567 deletions(-) create mode 100644 .isort.cfg diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 0000000000..e1c6495da9 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,3 @@ +[settings] +multi_line_output=4 +known_first_party=trytond diff --git a/bin/trytond b/bin/trytond index d1dddec5b9..0eda1f580a 100755 --- a/bin/trytond +++ b/bin/trytond @@ -25,10 +25,10 @@ if options.coroutine: from gevent import monkey monkey.patch_all() +from trytond.modules import get_module_info, get_module_list +from trytond.pool import Pool # Import trytond things after it is configured from trytond.wsgi import app -from trytond.pool import Pool -from trytond.modules import get_module_list, get_module_info with commandline.pidfile(options): Pool.start() diff --git a/bin/trytond-admin b/bin/trytond-admin index 81b27afa06..b2f6521573 100755 --- a/bin/trytond-admin +++ b/bin/trytond-admin @@ -1,8 +1,8 @@ #!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import sys import os +import sys DIR = os.path.abspath(os.path.normpath(os.path.join(__file__, '..', '..', 'trytond'))) diff --git a/bin/trytond-console b/bin/trytond-console index 549483e064..44cb72bdc4 100755 --- a/bin/trytond-console +++ b/bin/trytond-console @@ -1,8 +1,8 @@ #!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import sys import os +import sys DIR = os.path.abspath(os.path.normpath(os.path.join(__file__, '..', '..', 'trytond'))) diff --git a/bin/trytond-cron b/bin/trytond-cron index 9f777911cd..8b9b8aa8ef 100755 --- a/bin/trytond-cron +++ b/bin/trytond-cron @@ -1,8 +1,8 @@ #!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import sys import os +import sys DIR = os.path.abspath(os.path.normpath(os.path.join(__file__, '..', '..', 'trytond'))) @@ -17,9 +17,9 @@ options = parser.parse_args() config.update_etc(options.configfile) commandline.config_log(options) +import trytond.cron as cron # Import after application is configured from trytond.pool import Pool -import trytond.cron as cron with commandline.pidfile(options): Pool.start() diff --git a/bin/trytond-stat b/bin/trytond-stat index b94dbe4f27..38e80031dc 100755 --- a/bin/trytond-stat +++ b/bin/trytond-stat @@ -6,7 +6,6 @@ import datetime as dt import math import os import sys - from collections import defaultdict DIR = os.path.abspath(os.path.normpath(os.path.join(__file__, diff --git a/bin/trytond-worker b/bin/trytond-worker index 92ff76555f..0e9024bb7c 100755 --- a/bin/trytond-worker +++ b/bin/trytond-worker @@ -1,8 +1,8 @@ #!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import sys import os +import sys DIR = os.path.abspath(os.path.normpath(os.path.join(__file__, '..', '..', 'trytond'))) @@ -17,9 +17,9 @@ options = parser.parse_args() config.update_etc(options.configfile) commandline.config_log(options) +import trytond.worker as worker # Import after application is configured from trytond.pool import Pool -import trytond.worker as worker with commandline.pidfile(options): Pool.start() diff --git a/setup.py b/setup.py index 02f77646a1..f04ae60012 100755 --- a/setup.py +++ b/setup.py @@ -2,14 +2,15 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from setuptools import setup, find_packages, Command import glob -import os -import re import io +import os import platform +import re import subprocess +from setuptools import Command, find_packages, setup + def read(fname): return io.open( diff --git a/trytond/admin.py b/trytond/admin.py index 89ac9bce6e..f1eb295720 100644 --- a/trytond/admin.py +++ b/trytond/admin.py @@ -1,18 +1,18 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import sys -import os import logging +import os import random +import sys from getpass import getpass -from sql import Table, Literal +from sql import Literal, Table from trytond import backend -from trytond.transaction import Transaction -from trytond.pool import Pool from trytond.config import config +from trytond.pool import Pool from trytond.sendmail import send_test_email +from trytond.transaction import Transaction __all__ = ['run'] logger = logging.getLogger(__name__) @@ -128,7 +128,7 @@ def run(options): def validate(models, percentage=100): - from trytond.model import ModelStorage, ModelSingleton + from trytond.model import ModelSingleton, ModelStorage from trytond.model.exceptions import ValidationError logger = logging.getLogger('validate') pool = Pool() diff --git a/trytond/application.py b/trytond/application.py index a59a60907c..bc35564921 100644 --- a/trytond/application.py +++ b/trytond/application.py @@ -1,8 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import csv -import os import logging.config +import os import threading from io import StringIO diff --git a/trytond/backend/__init__.py b/trytond/backend/__init__.py index 68ed7779ff..e0573e923d 100644 --- a/trytond/backend/__init__.py +++ b/trytond/backend/__init__.py @@ -2,6 +2,7 @@ # this repository contains the full copyright notices and license terms. import importlib import urllib.parse + try: import pkg_resources except ImportError: diff --git a/trytond/backend/database.py b/trytond/backend/database.py index 79f93c31f6..4e356e8670 100644 --- a/trytond/backend/database.py +++ b/trytond/backend/database.py @@ -1,6 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from collections import namedtuple + from sql import For DatabaseIntegrityError = None diff --git a/trytond/backend/postgresql/database.py b/trytond/backend/postgresql/database.py index c874a94a48..3f7dd75d03 100644 --- a/trytond/backend/postgresql/database.py +++ b/trytond/backend/postgresql/database.py @@ -1,11 +1,11 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from collections import defaultdict -import time +import json import logging import os -import json +import time import warnings +from collections import defaultdict from datetime import datetime from decimal import Decimal from itertools import chain, repeat @@ -16,24 +16,22 @@ try: compat.register() except ImportError: pass -from psycopg2 import connect, Binary +from psycopg2 import Binary, connect +from psycopg2.extensions import ( + ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_REPEATABLE_READ, UNICODE, AsIs, + cursor, register_adapter, register_type) +from psycopg2.pool import PoolError, ThreadedConnectionPool from psycopg2.sql import SQL, Identifier -from psycopg2.pool import ThreadedConnectionPool, PoolError -from psycopg2.extensions import cursor -from psycopg2.extensions import ISOLATION_LEVEL_REPEATABLE_READ -from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT -from psycopg2.extensions import register_type, register_adapter -from psycopg2.extensions import UNICODE, AsIs + try: - from psycopg2.extensions import PYDATE, PYDATETIME, PYTIME, PYINTERVAL + from psycopg2.extensions import PYDATE, PYDATETIME, PYINTERVAL, PYTIME except ImportError: PYDATE, PYDATETIME, PYTIME, PYINTERVAL = None, None, None, None from psycopg2 import IntegrityError as DatabaseIntegrityError from psycopg2 import OperationalError as DatabaseOperationalError from psycopg2 import ProgrammingError from psycopg2.extras import register_default_json, register_default_jsonb - -from sql import Flavor, Cast, For, Table +from sql import Cast, Flavor, For, Table from sql.conditionals import Coalesce from sql.functions import Function from sql.operators import BinaryOperator, Concat diff --git a/trytond/backend/postgresql/table.py b/trytond/backend/postgresql/table.py index fd73a44da8..9d6e71fd91 100644 --- a/trytond/backend/postgresql/table.py +++ b/trytond/backend/postgresql/table.py @@ -1,12 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import re import logging +import re -from psycopg2.sql import SQL, Identifier, Composed +from psycopg2.sql import SQL, Composed, Identifier -from trytond.transaction import Transaction from trytond.backend.table import TableHandlerInterface +from trytond.transaction import Transaction __all__ = ['TableHandler'] diff --git a/trytond/backend/sqlite/database.py b/trytond/backend/sqlite/database.py index c76d43e6b8..1a2db07962 100644 --- a/trytond/backend/sqlite/database.py +++ b/trytond/backend/sqlite/database.py @@ -11,6 +11,7 @@ import urllib.parse import warnings from decimal import Decimal from weakref import WeakKeyDictionary + from werkzeug.security import safe_join try: @@ -21,10 +22,12 @@ except ImportError: import sqlite3 as sqlite from sqlite3 import IntegrityError as DatabaseIntegrityError from sqlite3 import OperationalError as DatabaseOperationalError -from sql import Flavor, Table, Query, Expression, Literal, Null + +from sql import Expression, Flavor, Literal, Null, Query, Table from sql.conditionals import NullIf -from sql.functions import (Function, Extract, Position, Substring, - Overlay, CharLength, CurrentTimestamp, Trim) +from sql.functions import ( + CharLength, CurrentTimestamp, Extract, Function, Overlay, Position, + Substring, Trim) from trytond.backend.database import DatabaseInterface, SQLType from trytond.config import config, parse_uri diff --git a/trytond/backend/sqlite/table.py b/trytond/backend/sqlite/table.py index cb45e7605c..0ce274cbe5 100644 --- a/trytond/backend/sqlite/table.py +++ b/trytond/backend/sqlite/table.py @@ -1,12 +1,13 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.transaction import Transaction -from trytond.backend.table import TableHandlerInterface import logging import re import warnings +from trytond.backend.table import TableHandlerInterface +from trytond.transaction import Transaction + from .database import sqlite __all__ = ['TableHandler'] diff --git a/trytond/bus.py b/trytond/bus.py index 76523344f7..200a1288c3 100644 --- a/trytond/bus.py +++ b/trytond/bus.py @@ -9,24 +9,25 @@ import select import threading import time import uuid + try: from http import HTTPStatus except ImportError: from http import client as HTTPStatus + from urllib.parse import urljoin +from werkzeug.exceptions import BadRequest +from werkzeug.exceptions import NotImplemented as NotImplementedException from werkzeug.utils import redirect from werkzeug.wrappers import Response -from werkzeug.exceptions import ( - NotImplemented as NotImplementedException, BadRequest) from trytond import backend -from trytond.wsgi import app -from trytond.transaction import Transaction -from trytond.protocols.jsonrpc import JSONEncoder, JSONDecoder from trytond.config import config +from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder from trytond.tools import resolve - +from trytond.transaction import Transaction +from trytond.wsgi import app logger = logging.getLogger(__name__) diff --git a/trytond/cache.py b/trytond/cache.py index 6d565defa0..312e13a0ef 100644 --- a/trytond/cache.py +++ b/trytond/cache.py @@ -17,8 +17,8 @@ from sql.functions import CurrentTimestamp, Function from trytond import backend from trytond.config import config from trytond.pool import Pool +from trytond.tools import grouped_slice, resolve from trytond.transaction import Transaction -from trytond.tools import resolve, grouped_slice __all__ = ['BaseCache', 'Cache', 'LRUDict', 'LRUDictTransaction'] _clear_timeout = config.getint('cache', 'clean_timeout', default=5 * 60) diff --git a/trytond/commandline.py b/trytond/commandline.py index c0b41bc7b2..3ad2b87e38 100644 --- a/trytond/commandline.py +++ b/trytond/commandline.py @@ -2,10 +2,10 @@ # this repository contains the full copyright notices and license terms. import argparse import csv -import os import logging import logging.config import logging.handlers +import os from contextlib import contextmanager from io import StringIO diff --git a/trytond/config.py b/trytond/config.py index 16cd64c165..8c3130bd57 100644 --- a/trytond/config.py +++ b/trytond/config.py @@ -1,11 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import __main__ as main import configparser import logging import os import urllib.parse +import __main__ as main + from . import status __all__ = ['config', 'get_hostname', 'get_port', 'split_netloc', diff --git a/trytond/convert.py b/trytond/convert.py index 8da210c27b..a57bdb147c 100644 --- a/trytond/convert.py +++ b/trytond/convert.py @@ -1,16 +1,15 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import time import datetime -from xml import sax import logging import re - +import time from collections import defaultdict from decimal import Decimal +from xml import sax from trytond import __version__ -from trytond.pyson import PYSONEncoder, CONTEXT +from trytond.pyson import CONTEXT, PYSONEncoder from trytond.tools import grouped_slice from trytond.transaction import Transaction diff --git a/trytond/cron.py b/trytond/cron.py index e7e37f496e..3308e91baf 100644 --- a/trytond/cron.py +++ b/trytond/cron.py @@ -1,8 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. +import logging import threading import time -import logging from trytond.pool import Pool diff --git a/trytond/filestore.py b/trytond/filestore.py index 0c6c918ea4..873977fc01 100644 --- a/trytond/filestore.py +++ b/trytond/filestore.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import os import hashlib +import os from trytond.config import config from trytond.tools import resolve diff --git a/trytond/i18n.py b/trytond/i18n.py index 4dd0610426..4a9d611934 100644 --- a/trytond/i18n.py +++ b/trytond/i18n.py @@ -1,8 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. +from trytond.pool import Pool from trytond.tools.string_ import LazyString from trytond.transaction import Transaction -from trytond.pool import Pool def gettext(message_id, *args, **variables): diff --git a/trytond/ir/__init__.py b/trytond/ir/__init__.py index fb9ce5ad34..81f63ee85e 100644 --- a/trytond/ir/__init__.py +++ b/trytond/ir/__init__.py @@ -1,30 +1,11 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from trytond.pool import Pool -from . import configuration -from . import translation -from . import sequence -from . import ui -from . import action -from . import model -from . import attachment -from . import note -from . import avatar -from . import cron -from . import lang -from . import export -from . import rule -from . import module -from . import cache -from . import date -from . import trigger -from . import session -from . import queue -from . import calendar_ -from . import message -from . import email_ -from . import routes -from . import error + +from . import ( + action, attachment, avatar, cache, calendar_, configuration, cron, date, + email_, error, export, lang, message, model, module, note, queue, routes, + rule, sequence, session, translation, trigger, ui) __all__ = ['register', 'routes'] diff --git a/trytond/ir/action.py b/trytond/ir/action.py index efc7082854..f84fc39e41 100644 --- a/trytond/ir/action.py +++ b/trytond/ir/action.py @@ -1,23 +1,22 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import os -from operator import itemgetter from collections import defaultdict from functools import partial +from operator import itemgetter -from sql import Null from genshi.template.text import TextTemplate +from sql import Null from trytond.cache import Cache, MemoryCache from trytond.config import config from trytond.i18n import gettext from trytond.model import ( - ModelView, ModelStorage, ModelSQL, DeactivableMixin, fields, - sequence_ordered, ModelSingleton) + DeactivableMixin, ModelSingleton, ModelSQL, ModelStorage, ModelView, + fields, sequence_ordered) from trytond.model.exceptions import ValidationError from trytond.pool import Pool -from trytond.pyson import PYSONDecoder, PYSON, Eval -from trytond.pyson import PYSONEncoder +from trytond.pyson import PYSON, Eval, PYSONDecoder, PYSONEncoder from trytond.rpc import RPC from trytond.tools import file_open from trytond.transaction import Transaction diff --git a/trytond/ir/attachment.py b/trytond/ir/attachment.py index bc659687ad..15ff53739f 100644 --- a/trytond/ir/attachment.py +++ b/trytond/ir/attachment.py @@ -5,11 +5,12 @@ from sql.operators import Concat from trytond.config import config from trytond.i18n import lazy_gettext -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelSQL, ModelView, fields from trytond.pool import Pool from trytond.pyson import Eval from trytond.tools import firstline from trytond.transaction import Transaction + from .resource import ResourceMixin, resource_copy __all__ = ['AttachmentCopyMixin'] diff --git a/trytond/ir/avatar.py b/trytond/ir/avatar.py index 4245b176b6..9c56efd42f 100644 --- a/trytond/ir/avatar.py +++ b/trytond/ir/avatar.py @@ -5,7 +5,7 @@ import math import os import uuid from random import Random -from urllib.parse import urljoin, quote +from urllib.parse import quote, urljoin try: import PIL @@ -14,7 +14,7 @@ except ImportError: PIL = None from trytond.config import config -from trytond.model import ModelSQL, fields, Unique +from trytond.model import ModelSQL, Unique, fields from trytond.pool import Pool from trytond.transaction import Transaction from trytond.wsgi import Base64Converter diff --git a/trytond/ir/calendar_.py b/trytond/ir/calendar_.py index 08f3cc876f..d3648841a5 100644 --- a/trytond/ir/calendar_.py +++ b/trytond/ir/calendar_.py @@ -2,7 +2,7 @@ # this repository contains the full copyright notices and license terms. from trytond.cache import Cache -from trytond.model import ModelSQL, fields, Unique +from trytond.model import ModelSQL, Unique, fields from trytond.rpc import RPC from trytond.transaction import Transaction diff --git a/trytond/ir/configuration.py b/trytond/ir/configuration.py index ecdda9b23b..ba542206b7 100644 --- a/trytond/ir/configuration.py +++ b/trytond/ir/configuration.py @@ -2,7 +2,7 @@ # this repository contains the full copyright notices and license terms. from trytond.cache import Cache from trytond.config import config -from trytond.model import ModelSQL, ModelSingleton, fields +from trytond.model import ModelSingleton, ModelSQL, fields class Configuration(ModelSingleton, ModelSQL): diff --git a/trytond/ir/cron.py b/trytond/ir/cron.py index cbcf7b073a..f49f41d44f 100644 --- a/trytond/ir/cron.py +++ b/trytond/ir/cron.py @@ -1,15 +1,16 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import datetime -import time -from dateutil.relativedelta import relativedelta import logging +import time + +from dateutil.relativedelta import relativedelta from trytond import backend from trytond.config import config from trytond.exceptions import UserError, UserWarning from trytond.model import ( - ModelView, ModelSQL, DeactivableMixin, fields, dualmethod) + DeactivableMixin, ModelSQL, ModelView, dualmethod, fields) from trytond.pool import Pool from trytond.pyson import Eval from trytond.status import processing diff --git a/trytond/ir/email_.py b/trytond/ir/email_.py index 5e2f0f18e4..f263bcaced 100644 --- a/trytond/ir/email_.py +++ b/trytond/ir/email_.py @@ -17,18 +17,18 @@ except ImportError: html2text = None from genshi.template import TextTemplate -from trytond.i18n import gettext from trytond.config import config -from trytond.model import ModelSQL, ModelView, fields, EvalEnvironment -from trytond.model.exceptions import ValidationError, AccessError +from trytond.i18n import gettext +from trytond.model import EvalEnvironment, ModelSQL, ModelView, fields +from trytond.model.exceptions import AccessError, ValidationError from trytond.pool import Pool -from trytond.pyson import Eval, Bool, PYSONDecoder +from trytond.pyson import Bool, Eval, PYSONDecoder from trytond.report import Report from trytond.rpc import RPC -from trytond.sendmail import sendmail_transactional, SMTPDataManager +from trytond.sendmail import SMTPDataManager, sendmail_transactional from trytond.tools import escape_wildcard -from trytond.tools.string_ import StringMatcher from trytond.tools.email_ import set_from_header +from trytond.tools.string_ import StringMatcher from trytond.transaction import Transaction from .resource import ResourceAccessMixin diff --git a/trytond/ir/error.py b/trytond/ir/error.py index 7d3e70dd55..dcf0f877a3 100644 --- a/trytond/ir/error.py +++ b/trytond/ir/error.py @@ -7,10 +7,10 @@ import logging from trytond.config import config from trytond.exceptions import UserError, UserWarning from trytond.model import ModelSQL, ModelView, Workflow, fields -from trytond.tools import firstline -from trytond.transaction import Transaction from trytond.pool import Pool from trytond.pyson import Eval +from trytond.tools import firstline +from trytond.transaction import Transaction logger = logging.getLogger(__name__) clean_days = config.getint('error', 'clean_days', default=90) diff --git a/trytond/ir/exceptions.py b/trytond/ir/exceptions.py index 8a9ead6e2e..9c847335b1 100644 --- a/trytond/ir/exceptions.py +++ b/trytond/ir/exceptions.py @@ -1,15 +1,13 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from .lang import ( - GroupingError as LanguageGroupingError, - DateError as LanguageDateError, - TranslatableError as LanguageTranslatableError, - DeleteDefaultError as LanguageDeleteDefaultError) +from .lang import DateError as LanguageDateError +from .lang import DeleteDefaultError as LanguageDeleteDefaultError +from .lang import GroupingError as LanguageGroupingError +from .lang import TranslatableError as LanguageTranslatableError from .module import DeactivateDependencyError -from .sequence import ( - AffixError as SequenceAffixError, - MissingError as SequenceMissingError) +from .sequence import AffixError as SequenceAffixError +from .sequence import MissingError as SequenceMissingError from .translation import OverriddenError as TranslationOverriddenError from .trigger import ConditionError as TriggerConditionError diff --git a/trytond/ir/export.py b/trytond/ir/export.py index 55c0cd849b..5d3f36aa1a 100644 --- a/trytond/ir/export.py +++ b/trytond/ir/export.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. "Exports" -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelSQL, ModelView, fields from trytond.pool import Pool from trytond.rpc import RPC diff --git a/trytond/ir/lang.py b/trytond/ir/lang.py index e81c45fffa..3a50823581 100644 --- a/trytond/ir/lang.py +++ b/trytond/ir/lang.py @@ -2,22 +2,22 @@ # this repository contains the full copyright notices and license terms. import datetime -from locale import CHAR_MAX from ast import literal_eval - from decimal import Decimal +from locale import CHAR_MAX + from sql import Table from trytond.cache import Cache from trytond.exceptions import UserError from trytond.i18n import gettext from trytond.model import ( - ModelView, ModelSQL, DeactivableMixin, fields, Check, Unique) + Check, DeactivableMixin, ModelSQL, ModelView, Unique, fields) from trytond.modules import create_graph, load_translations from trytond.pool import Pool from trytond.pyson import Eval from trytond.transaction import Transaction -from trytond.wizard import Wizard, StateView, Button, StateTransition +from trytond.wizard import Button, StateTransition, StateView, Wizard Transaction.cache_keys.add('translate_name') diff --git a/trytond/ir/message.py b/trytond/ir/message.py index 9aaa38516c..f3825d251d 100644 --- a/trytond/ir/message.py +++ b/trytond/ir/message.py @@ -1,8 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelView, ModelSQL, fields from trytond.cache import Cache +from trytond.model import ModelSQL, ModelView, fields from trytond.pool import Pool from trytond.transaction import Transaction diff --git a/trytond/ir/model.py b/trytond/ir/model.py index c5294ac610..a7802da03d 100644 --- a/trytond/ir/model.py +++ b/trytond/ir/model.py @@ -4,28 +4,28 @@ import heapq import json import logging import re - -from sql import Null, Literal -from sql.aggregate import Max -from sql.conditionals import Case from collections import defaultdict from itertools import groupby +from sql import Literal, Null +from sql.aggregate import Max +from sql.conditionals import Case + from trytond.cache import Cache from trytond.i18n import gettext from trytond.model import ( - ModelView, ModelSQL, Workflow, DeactivableMixin, fields, Unique, - EvalEnvironment) + DeactivableMixin, EvalEnvironment, ModelSQL, ModelView, Unique, Workflow, + fields) from trytond.model.exceptions import AccessError, ValidationError from trytond.pool import Pool from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder from trytond.pyson import Bool, Eval, PYSONDecoder from trytond.report import Report from trytond.rpc import RPC -from trytond.tools import is_instance_method, cursor_dict, grouped_slice +from trytond.tools import cursor_dict, grouped_slice, is_instance_method from trytond.tools.string_ import StringMatcher from trytond.transaction import Transaction -from trytond.wizard import Wizard, StateView, StateAction, Button +from trytond.wizard import Button, StateAction, StateView, Wizard logger = logging.getLogger(__name__) @@ -1295,8 +1295,8 @@ class ModelData(ModelSQL, ModelView): return dict(json.loads(values, object_hook=JSONDecoder())) except ValueError: # Migration from 3.2 - from decimal import Decimal import datetime + from decimal import Decimal return eval(values, { 'Decimal': Decimal, 'datetime': datetime, diff --git a/trytond/ir/module.py b/trytond/ir/module.py index a12c3df875..abab7a1a44 100644 --- a/trytond/ir/module.py +++ b/trytond/ir/module.py @@ -5,19 +5,19 @@ from functools import wraps from sql.operators import NotIn +from trytond import backend from trytond.cache import Cache from trytond.exceptions import UserError from trytond.i18n import gettext -from trytond.model import ModelView, ModelSQL, fields, Unique, sequence_ordered +from trytond.model import ModelSQL, ModelView, Unique, fields, sequence_ordered from trytond.model.exceptions import AccessError -from trytond.modules import get_module_list, get_module_info -from trytond.wizard import Wizard, StateView, Button, StateTransition, \ - StateAction -from trytond import backend +from trytond.modules import get_module_info, get_module_list from trytond.pool import Pool -from trytond.transaction import Transaction from trytond.pyson import Eval from trytond.rpc import RPC +from trytond.transaction import Transaction +from trytond.wizard import ( + Button, StateAction, StateTransition, StateView, Wizard) class DeactivateDependencyError(UserError): diff --git a/trytond/ir/note.py b/trytond/ir/note.py index 355d7d3186..49b3dc8685 100644 --- a/trytond/ir/note.py +++ b/trytond/ir/note.py @@ -6,11 +6,12 @@ from sql import Null from sql.conditionals import Case from trytond.i18n import lazy_gettext -from trytond.model import ModelView, ModelSQL, ModelStorage, fields +from trytond.model import ModelSQL, ModelStorage, ModelView, fields from trytond.pool import Pool from trytond.pyson import Eval from trytond.tools import grouped_slice, reduce_ids from trytond.transaction import Transaction + from .resource import ResourceMixin, resource_copy __all__ = ['NoteCopyMixin'] diff --git a/trytond/ir/queue.py b/trytond/ir/queue.py index 09c76fc2af..60b19c0982 100644 --- a/trytond/ir/queue.py +++ b/trytond/ir/queue.py @@ -2,7 +2,7 @@ # this repository contains the full copyright notices and license terms. import datetime -from sql import With, Literal, Null +from sql import Literal, Null, With from sql.aggregate import Min from sql.functions import CurrentTimestamp, Extract diff --git a/trytond/ir/routes.py b/trytond/ir/routes.py index 00d283bf11..16e2e232db 100644 --- a/trytond/ir/routes.py +++ b/trytond/ir/routes.py @@ -2,9 +2,10 @@ # this repository contains the full copyright notices and license terms. import csv import datetime as dt -import json import io +import json from numbers import Number + try: from http import HTTPStatus except ImportError: @@ -14,13 +15,13 @@ from werkzeug.exceptions import abort from werkzeug.utils import redirect from werkzeug.wrappers import Response -from trytond.i18n import gettext from trytond.config import config -from trytond.wsgi import app +from trytond.i18n import gettext from trytond.protocols.jsonrpc import JSONDecoder from trytond.protocols.wrappers import with_pool, with_transaction from trytond.tools import slugify from trytond.transaction import Transaction +from trytond.wsgi import app SOURCE = config.get( 'html', 'src', default='https://cloud.tinymce.com/stable/tinymce.min.js') diff --git a/trytond/ir/rule.py b/trytond/ir/rule.py index f39417b758..879d3b0ca6 100644 --- a/trytond/ir/rule.py +++ b/trytond/ir/rule.py @@ -6,7 +6,7 @@ from sql import Literal from trytond.cache import Cache from trytond.i18n import gettext -from trytond.model import ModelView, ModelSQL, fields, EvalEnvironment, Check +from trytond.model import Check, EvalEnvironment, ModelSQL, ModelView, fields from trytond.model.exceptions import ValidationError from trytond.pool import Pool from trytond.pyson import PYSONDecoder diff --git a/trytond/ir/sequence.py b/trytond/ir/sequence.py index 4414b69b40..213cc4ce3c 100644 --- a/trytond/ir/sequence.py +++ b/trytond/ir/sequence.py @@ -1,17 +1,17 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from string import Template import time +from string import Template -from sql import Literal, For +from sql import For, Literal from trytond import backend from trytond.exceptions import UserError from trytond.i18n import gettext -from trytond.model import ModelView, ModelSQL, DeactivableMixin, fields, Check -from trytond.model.exceptions import ValidationError, AccessError +from trytond.model import Check, DeactivableMixin, ModelSQL, ModelView, fields +from trytond.model.exceptions import AccessError, ValidationError from trytond.pool import Pool -from trytond.pyson import Eval, And +from trytond.pyson import And, Eval from trytond.transaction import Transaction sql_sequence = backend.Database.has_sequence() diff --git a/trytond/ir/session.py b/trytond/ir/session.py index d2acd1ebbd..79199f748c 100644 --- a/trytond/ir/session.py +++ b/trytond/ir/session.py @@ -4,6 +4,7 @@ import binascii import datetime import json import os + try: from secrets import token_hex except ImportError: @@ -12,8 +13,8 @@ except ImportError: nbytes = 32 return binascii.hexlify(os.urandom(nbytes)).decode('ascii') -from trytond.model import ModelSQL, fields from trytond.config import config +from trytond.model import ModelSQL, fields class Session(ModelSQL): diff --git a/trytond/ir/translation.py b/trytond/ir/translation.py index 7cb2a02f4c..1d2b361281 100644 --- a/trytond/ir/translation.py +++ b/trytond/ir/translation.py @@ -2,33 +2,32 @@ # this repository contains the full copyright notices and license terms. import os import xml.dom.minidom -from difflib import SequenceMatcher from collections import defaultdict +from difflib import SequenceMatcher from io import BytesIO -from lxml import etree import polib -from sql import Column, Null, Literal -from sql.functions import Substring, Position -from sql.conditionals import Case -from sql.aggregate import Max - from genshi.filters.i18n import extract as genshi_extract +from lxml import etree from relatorio.reporting import MIMETemplateLoader from relatorio.templates.opendocument import get_zip_file +from sql import Column, Literal, Null +from sql.aggregate import Max +from sql.conditionals import Case +from sql.functions import Position, Substring from trytond.cache import Cache from trytond.config import config from trytond.exceptions import UserError from trytond.i18n import gettext -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelSQL, ModelView, fields from trytond.pool import Pool -from trytond.pyson import PYSONEncoder, Eval -from trytond.tools import file_open, grouped_slice, cursor_dict +from trytond.pyson import Eval, PYSONEncoder +from trytond.tools import cursor_dict, file_open, grouped_slice from trytond.tools.string_ import LazyString, StringPartitioned from trytond.transaction import Transaction from trytond.wizard import ( - Wizard, StateView, StateTransition, StateAction, Button) + Button, StateAction, StateTransition, StateView, Wizard) from .lang import get_parent_language as get_parent diff --git a/trytond/ir/trigger.py b/trytond/ir/trigger.py index f1dc426fae..e0d0a0ad2f 100644 --- a/trytond/ir/trigger.py +++ b/trytond/ir/trigger.py @@ -2,6 +2,7 @@ # this repository contains the full copyright notices and license terms. import datetime import time + from sql import Literal, Null, Select from sql.aggregate import Count, Max from sql.functions import CurrentTimestamp @@ -10,12 +11,11 @@ from sql.operators import Concat from trytond.cache import Cache from trytond.i18n import gettext from trytond.model import ( - ModelView, ModelSQL, DeactivableMixin, fields, EvalEnvironment, Check) + Check, DeactivableMixin, EvalEnvironment, ModelSQL, ModelView, fields) from trytond.model.exceptions import ValidationError from trytond.pool import Pool from trytond.pyson import Eval, PYSONDecoder -from trytond.tools import grouped_slice -from trytond.tools import reduce_ids +from trytond.tools import grouped_slice, reduce_ids from trytond.transaction import Transaction diff --git a/trytond/ir/ui/__init__.py b/trytond/ir/ui/__init__.py index 693c5da67d..e25c3e615b 100644 --- a/trytond/ir/ui/__init__.py +++ b/trytond/ir/ui/__init__.py @@ -1,7 +1,5 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from . import menu -from . import view -from . import icon +from . import icon, menu, view __all__ = ['menu', 'view', 'icon'] diff --git a/trytond/ir/ui/icon.py b/trytond/ir/ui/icon.py index 19b8efcf02..e4057567a0 100644 --- a/trytond/ir/ui/icon.py +++ b/trytond/ir/ui/icon.py @@ -3,10 +3,10 @@ import os -from trytond.model import ModelView, ModelSQL, fields, sequence_ordered +from trytond.model import ModelSQL, ModelView, fields, sequence_ordered +from trytond.rpc import RPC from trytond.tools import file_open from trytond.transaction import Transaction -from trytond.rpc import RPC class Icon(sequence_ordered(), ModelSQL, ModelView): diff --git a/trytond/ir/ui/menu.py b/trytond/ir/ui/menu.py index 43fd0e5176..191f8a2b56 100644 --- a/trytond/ir/ui/menu.py +++ b/trytond/ir/ui/menu.py @@ -4,11 +4,11 @@ from collections import defaultdict from itertools import groupby from trytond.model import ( - ModelView, ModelSQL, DeactivableMixin, fields, sequence_ordered, tree) -from trytond.transaction import Transaction -from trytond.tools import grouped_slice + DeactivableMixin, ModelSQL, ModelView, fields, sequence_ordered, tree) from trytond.pool import Pool from trytond.rpc import RPC +from trytond.tools import grouped_slice +from trytond.transaction import Transaction def one_in(i, j): diff --git a/trytond/ir/ui/view.py b/trytond/ir/ui/view.py index 74b5bb5d06..e2351ea832 100644 --- a/trytond/ir/ui/view.py +++ b/trytond/ir/ui/view.py @@ -1,20 +1,20 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import os import json +import os from lxml import etree +from trytond.cache import Cache from trytond.i18n import gettext -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelSQL, ModelView, fields from trytond.model.exceptions import ValidationError -from trytond.pyson import Eval, Bool, PYSONDecoder, If +from trytond.pool import Pool +from trytond.pyson import Bool, Eval, If, PYSONDecoder +from trytond.rpc import RPC from trytond.tools import file_open from trytond.transaction import Transaction -from trytond.wizard import Wizard, StateView, Button -from trytond.pool import Pool -from trytond.cache import Cache -from trytond.rpc import RPC +from trytond.wizard import Button, StateView, Wizard class XMLError(ValidationError): diff --git a/trytond/model/__init__.py b/trytond/model/__init__.py index a2db19a1aa..c535b00e39 100644 --- a/trytond/model/__init__.py +++ b/trytond/model/__init__.py @@ -1,22 +1,22 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from .model import Model -from .modelview import ModelView -from .modelstorage import ModelStorage, EvalEnvironment -from .modelsingleton import ModelSingleton -from .modelsql import ModelSQL, Check, Unique, Exclude -from .workflow import Workflow -from .dictschema import DictSchemaMixin -from .match import MatchMixin -from .union import UnionMixin -from .symbol import SymbolMixin -from .digits import DigitsMixin -from .multivalue import MultiValueMixin, ValueMixin -from .descriptors import dualmethod -from .order import sequence_ordered from .active import DeactivableMixin -from .tree import tree from .avatar import avatar_mixin +from .descriptors import dualmethod +from .dictschema import DictSchemaMixin +from .digits import DigitsMixin +from .match import MatchMixin +from .model import Model +from .modelsingleton import ModelSingleton +from .modelsql import Check, Exclude, ModelSQL, Unique +from .modelstorage import EvalEnvironment, ModelStorage +from .modelview import ModelView +from .multivalue import MultiValueMixin, ValueMixin +from .order import sequence_ordered +from .symbol import SymbolMixin +from .tree import tree +from .union import UnionMixin +from .workflow import Workflow __all__ = ['Model', 'ModelView', 'ModelStorage', 'ModelSingleton', 'ModelSQL', 'Check', 'Unique', 'Exclude', diff --git a/trytond/model/active.py b/trytond/model/active.py index f42748bfe9..51808587cd 100644 --- a/trytond/model/active.py +++ b/trytond/model/active.py @@ -1,9 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the toplevel of this # repository contains the full copyright notices and license terms. from trytond.i18n import lazy_gettext -from trytond.model import Model, ModelView, fields from trytond.pyson import Eval +from . import fields +from .model import Model +from .modelview import ModelView + class DeactivableMixin(Model): "Mixin to allow to soft deletion of records" diff --git a/trytond/model/avatar.py b/trytond/model/avatar.py index b607673605..727e6e5d06 100644 --- a/trytond/model/avatar.py +++ b/trytond/model/avatar.py @@ -55,7 +55,7 @@ def avatar_mixin(size=64, default=None): @classmethod def generate_avatar(cls, records, field='rec_name'): - from trytond.ir.avatar import generate, PIL + from trytond.ir.avatar import PIL, generate if not PIL: return records = [r for r in records if not r.has_avatar] diff --git a/trytond/model/dictschema.py b/trytond/model/dictschema.py index 236cfeb42a..67d92ba391 100644 --- a/trytond/model/dictschema.py +++ b/trytond/model/dictschema.py @@ -8,11 +8,11 @@ from trytond.config import config from trytond.i18n import gettext, lazy_gettext from trytond.model import fields from trytond.model.exceptions import ValidationError +from trytond.pool import Pool from trytond.pyson import Eval, PYSONDecoder from trytond.rpc import RPC from trytond.tools import slugify from trytond.transaction import Transaction -from trytond.pool import Pool class DomainError(ValidationError): diff --git a/trytond/model/exceptions.py b/trytond/model/exceptions.py index 7be35fe16e..1d47e7ee09 100644 --- a/trytond/model/exceptions.py +++ b/trytond/model/exceptions.py @@ -1,11 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from .modelstorage import (AccessError, ImportDataError, ValidationError, - DomainValidationError, RequiredValidationError, SizeValidationError, - DigitsValidationError, ForbiddenCharValidationError, - SelectionValidationError, TimeFormatValidationError) from .modelsql import ForeignKeyError, SQLConstraintError +from .modelstorage import ( + AccessError, DigitsValidationError, DomainValidationError, + ForbiddenCharValidationError, ImportDataError, RequiredValidationError, + SelectionValidationError, SizeValidationError, TimeFormatValidationError, + ValidationError) from .modelview import AccessButtonError from .tree import RecursionError diff --git a/trytond/model/fields/__init__.py b/trytond/model/fields/__init__.py index e057735e96..5e677e18b5 100644 --- a/trytond/model/fields/__init__.py +++ b/trytond/model/fields/__init__.py @@ -1,26 +1,26 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from .field import ( - depends, with_inactive_records, SQL_OPERATORS, on_change_result, - get_eval_fields, states_validate, domain_validate, context_validate, Field) -from .boolean import Boolean -from .integer import Integer, BigInteger -from .char import Char -from .text import Text, FullText -from .float import Float -from .numeric import Numeric -from .date import Date, Timestamp, DateTime, Time, TimeDelta from .binary import Binary -from .selection import Selection -from .reference import Reference -from .many2one import Many2One -from .one2many import One2Many -from .many2many import Many2Many -from .function import Function, MultiValue -from .one2one import One2One +from .boolean import Boolean +from .char import Char +from .date import Date, DateTime, Time, TimeDelta, Timestamp from .dict import Dict +from .field import ( + SQL_OPERATORS, Field, context_validate, depends, domain_validate, + get_eval_fields, on_change_result, states_validate, with_inactive_records) +from .float import Float +from .function import Function, MultiValue +from .integer import BigInteger, Integer +from .many2many import Many2Many +from .many2one import Many2One from .multiselection import MultiSelection +from .numeric import Numeric +from .one2many import One2Many +from .one2one import One2One +from .reference import Reference +from .selection import Selection +from .text import FullText, Text __all__ = [ depends, with_inactive_records, SQL_OPERATORS, on_change_result, diff --git a/trytond/model/fields/binary.py b/trytond/model/fields/binary.py index 4fb353b135..18c19842b0 100644 --- a/trytond/model/fields/binary.py +++ b/trytond/model/fields/binary.py @@ -5,6 +5,7 @@ from sql import Column, Null from trytond.filestore import filestore from trytond.tools import grouped_slice, reduce_ids from trytond.transaction import Transaction + from .field import Field diff --git a/trytond/model/fields/char.py b/trytond/model/fields/char.py index b499741f06..5b41309ff5 100644 --- a/trytond/model/fields/char.py +++ b/trytond/model/fields/char.py @@ -6,8 +6,9 @@ from sql.conditionals import Coalesce, NullIf from sql.operators import Not from trytond.rpc import RPC -from trytond.tools import unescape_wildcard, is_full_text +from trytond.tools import is_full_text, unescape_wildcard from trytond.transaction import Transaction + from .field import Field, FieldTranslate, size_validate diff --git a/trytond/model/fields/date.py b/trytond/model/fields/date.py index 461b69b3bd..0876bb8d22 100644 --- a/trytond/model/fields/date.py +++ b/trytond/model/fields/date.py @@ -2,10 +2,11 @@ # this repository contains the full copyright notices and license terms. import datetime -from sql.functions import Function, AtTimeZone +from sql.functions import AtTimeZone, Function from trytond import backend from trytond.pyson import PYSONEncoder + from .field import Field diff --git a/trytond/model/fields/dict.py b/trytond/model/fields/dict.py index 0b1ef0b4bf..ea02ab2fe7 100644 --- a/trytond/model/fields/dict.py +++ b/trytond/model/fields/dict.py @@ -1,9 +1,9 @@ # This file is part of Tryton. The COPYRIGHT file at the toplevel of this # repository contains the full copyright notices and license terms. -from functools import partial import json +from functools import partial -from sql import operators, Literal, Select, CombiningQuery, Cast, Null +from sql import Cast, CombiningQuery, Literal, Null, Select, operators from trytond import backend from trytond.pool import Pool @@ -11,7 +11,8 @@ from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder from trytond.tools import grouped_slice from trytond.tools.immutabledict import ImmutableDict from trytond.transaction import Transaction -from .field import Field, SQL_OPERATORS + +from .field import SQL_OPERATORS, Field # Use canonical form dumps = partial( diff --git a/trytond/model/fields/field.py b/trytond/model/fields/field.py index f7eb467df2..5953ee2567 100644 --- a/trytond/model/fields/field.py +++ b/trytond/model/fields/field.py @@ -4,8 +4,9 @@ import warnings from functools import wraps import sql -from sql import (operators, Column, Literal, Select, CombiningQuery, Null, - Query, Expression, Cast) +from sql import ( + Cast, Column, CombiningQuery, Expression, Literal, Null, Query, Select, + operators) from sql.aggregate import Min from sql.conditionals import Coalesce, NullIf from sql.operators import Concat @@ -13,9 +14,9 @@ from sql.operators import Concat from trytond import backend from trytond.const import OPERATORS from trytond.pool import Pool -from trytond.pyson import PYSON, PYSONEncoder, PYSONDecoder, Eval +from trytond.pyson import PYSON, Eval, PYSONDecoder, PYSONEncoder from trytond.rpc import RPC -from trytond.tools.string_ import StringPartitioned, LazyString +from trytond.tools.string_ import LazyString, StringPartitioned from trytond.transaction import Transaction _sql_version = tuple(map(int, sql.__version__.split('.'))) diff --git a/trytond/model/fields/float.py b/trytond/model/fields/float.py index 34075070d3..979aeb54b6 100644 --- a/trytond/model/fields/float.py +++ b/trytond/model/fields/float.py @@ -1,6 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.pyson import PYSONEncoder, PYSON +from trytond.pyson import PYSON, PYSONEncoder + from .field import Field diff --git a/trytond/model/fields/function.py b/trytond/model/fields/function.py index 70374c2d4d..fcc31932c4 100644 --- a/trytond/model/fields/function.py +++ b/trytond/model/fields/function.py @@ -1,8 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import inspect import copy +import inspect from functools import wraps from trytond.i18n import gettext diff --git a/trytond/model/fields/many2many.py b/trytond/model/fields/many2many.py index 044b31e15e..26599f38ac 100644 --- a/trytond/model/fields/many2many.py +++ b/trytond/model/fields/many2many.py @@ -4,15 +4,17 @@ from collections import defaultdict from itertools import chain from sql import Cast, Literal, Null -from sql.functions import Substring, Position from sql.conditionals import Coalesce +from sql.functions import Position, Substring from trytond.pool import Pool from trytond.pyson import PYSONEncoder from trytond.tools import grouped_slice from trytond.transaction import Transaction -from .field import (Field, size_validate, instanciate_values, domain_validate, - search_order_validate, context_validate, instantiate_context) + +from .field import ( + Field, context_validate, domain_validate, instanciate_values, + instantiate_context, search_order_validate, size_validate) from .function import Function diff --git a/trytond/model/fields/many2one.py b/trytond/model/fields/many2one.py index 8f781b9850..d7dc1de36e 100644 --- a/trytond/model/fields/many2one.py +++ b/trytond/model/fields/many2one.py @@ -1,6 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from sql import Literal, Column, With, Query, Expression +from sql import Column, Expression, Literal, Query, With from sql.aggregate import Max from sql.conditionals import Coalesce from sql.operators import Or @@ -9,8 +9,10 @@ from trytond.pool import Pool from trytond.pyson import PYSONEncoder from trytond.tools import reduce_ids from trytond.transaction import Transaction -from .field import (Field, search_order_validate, context_validate, - with_inactive_records, instantiate_context) + +from .field import ( + Field, context_validate, instantiate_context, search_order_validate, + with_inactive_records) class Many2One(Field): diff --git a/trytond/model/fields/multiselection.py b/trytond/model/fields/multiselection.py index 5e9da3e67f..168d9e7c85 100644 --- a/trytond/model/fields/multiselection.py +++ b/trytond/model/fields/multiselection.py @@ -3,10 +3,11 @@ import json from functools import partial -from sql import operators, Literal +from sql import Literal, operators from trytond.rpc import RPC from trytond.transaction import Transaction + from .field import Field from .selection import SelectionMixin diff --git a/trytond/model/fields/numeric.py b/trytond/model/fields/numeric.py index 536c2d800a..336b12499f 100644 --- a/trytond/model/fields/numeric.py +++ b/trytond/model/fields/numeric.py @@ -1,9 +1,11 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from decimal import Decimal -from sql import Cast, Literal, Select, CombiningQuery, As + +from sql import As, Cast, CombiningQuery, Literal, Select from trytond import backend + from .float import Float diff --git a/trytond/model/fields/one2many.py b/trytond/model/fields/one2many.py index b0826081f9..fc5b7717fc 100644 --- a/trytond/model/fields/one2many.py +++ b/trytond/model/fields/one2many.py @@ -2,16 +2,19 @@ # this repository contains the full copyright notices and license terms. from collections import defaultdict from itertools import chain + from sql import Cast, Literal -from sql.functions import Substring, Position from sql.conditionals import Coalesce +from sql.functions import Position, Substring from trytond.pool import Pool from trytond.pyson import PYSONEncoder from trytond.tools import grouped_slice from trytond.transaction import Transaction -from .field import (Field, size_validate, instanciate_values, domain_validate, - search_order_validate, context_validate, instantiate_context) + +from .field import ( + Field, context_validate, domain_validate, instanciate_values, + instantiate_context, search_order_validate, size_validate) from .function import Function diff --git a/trytond/model/fields/reference.py b/trytond/model/fields/reference.py index e8921f7c5b..7fdfacc8c9 100644 --- a/trytond/model/fields/reference.py +++ b/trytond/model/fields/reference.py @@ -2,16 +2,18 @@ # this repository contains the full copyright notices and license terms. import warnings -from sql import Cast, Literal, Query, Expression -from sql.functions import Substring, Position +from sql import Cast, Expression, Literal, Query +from sql.functions import Position, Substring from trytond.pool import Pool from trytond.pyson import PYSONEncoder from trytond.rpc import RPC from trytond.transaction import Transaction + +from .field import ( + Field, context_validate, instantiate_context, search_order_validate, + with_inactive_records) from .selection import SelectionMixin -from .field import (Field, search_order_validate, context_validate, - with_inactive_records, instantiate_context) class Reference(SelectionMixin, Field): diff --git a/trytond/model/fields/selection.py b/trytond/model/fields/selection.py index f417f66531..459c789d3c 100644 --- a/trytond/model/fields/selection.py +++ b/trytond/model/fields/selection.py @@ -10,6 +10,7 @@ from trytond.rpc import RPC from trytond.tools import is_instance_method from trytond.tools.string_ import LazyString from trytond.transaction import Transaction + from .field import Field diff --git a/trytond/model/fields/text.py b/trytond/model/fields/text.py index f0f7eb425a..46e1fd0fa3 100644 --- a/trytond/model/fields/text.py +++ b/trytond/model/fields/text.py @@ -1,12 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from sql import Query, Expression, Null, Literal -from sql.operators import ILike, Not, In, NotIn +from sql import Expression, Literal, Null, Query +from sql.operators import ILike, In, Not, NotIn from trytond.transaction import Transaction -from .field import Field, SQL_OPERATORS from .char import Char +from .field import SQL_OPERATORS, Field class Text(Char): diff --git a/trytond/model/model.py b/trytond/model/model.py index 3a83d4cde6..abc5edc2da 100644 --- a/trytond/model/model.py +++ b/trytond/model/model.py @@ -1,8 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import copy import collections.abc +import copy import sys from collections import defaultdict from functools import total_ordering @@ -11,10 +11,10 @@ from itertools import chain from trytond.i18n import lazy_gettext from trytond.model import fields from trytond.pool import Pool, PoolBase, PoolMeta -from trytond.pyson import PYSONEncoder, PYSONDecoder +from trytond.pyson import PYSONDecoder, PYSONEncoder +from trytond.rpc import RPC from trytond.transaction import Transaction from trytond.url import URLMixin -from trytond.rpc import RPC __all__ = ['Model'] diff --git a/trytond/model/modelsingleton.py b/trytond/model/modelsingleton.py index 1d51ed5e51..621dcc63af 100644 --- a/trytond/model/modelsingleton.py +++ b/trytond/model/modelsingleton.py @@ -1,8 +1,9 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelStorage from trytond.transaction import Transaction +from .modelstorage import ModelStorage + class ModelSingleton(ModelStorage): """ diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py index fc5b3bc440..d79db5bd67 100644 --- a/trytond/model/modelsql.py +++ b/trytond/model/modelsql.py @@ -1,33 +1,35 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import datetime -from itertools import islice, chain, product, groupby, repeat from collections import OrderedDict, defaultdict from functools import wraps +from itertools import chain, groupby, islice, product, repeat -from sql import (Table, Column, Literal, Desc, Asc, Expression, Null, - NullsFirst, NullsLast, For, Union, With) -from sql.functions import CurrentTimestamp, Extract, Substring -from sql.conditionals import Coalesce -from sql.operators import Or, And, Operator, Equal, Concat +from sql import ( + Asc, Column, Desc, Expression, For, Literal, Null, NullsFirst, NullsLast, + Table, Union, With) from sql.aggregate import Count, Max +from sql.conditionals import Coalesce +from sql.functions import CurrentTimestamp, Extract, Substring +from sql.operators import And, Concat, Equal, Operator, Or -from trytond.i18n import gettext -from trytond.model import ModelStorage, ModelView -from trytond.model import fields from trytond import backend -from trytond.tools import reduce_ids, grouped_slice, cursor_dict -from trytond.transaction import Transaction, record_cache_size -from trytond.pool import Pool -from trytond.pyson import PYSONEncoder, PYSONDecoder from trytond.cache import freeze -from trytond.exceptions import ConcurrencyException -from trytond.rpc import RPC from trytond.config import config +from trytond.exceptions import ConcurrencyException +from trytond.i18n import gettext +from trytond.pool import Pool +from trytond.pyson import PYSONDecoder, PYSONEncoder +from trytond.rpc import RPC +from trytond.tools import cursor_dict, grouped_slice, reduce_ids +from trytond.transaction import Transaction, record_cache_size -from .modelstorage import (is_leaf, - ValidationError, RequiredValidationError, AccessError) +from . import fields from .descriptors import dualmethod +from .modelstorage import ( + AccessError, ModelStorage, RequiredValidationError, ValidationError, + is_leaf) +from .modelview import ModelView class ForeignKeyError(ValidationError): diff --git a/trytond/model/modelstorage.py b/trytond/model/modelstorage.py index 2c19141112..b608a79d7e 100644 --- a/trytond/model/modelstorage.py +++ b/trytond/model/modelstorage.py @@ -2,32 +2,32 @@ # this repository contains the full copyright notices and license terms. import base64 -import datetime -import time import csv +import datetime import random - -from decimal import Decimal -from itertools import islice, chain -from functools import lru_cache, wraps -from operator import itemgetter +import time from collections import defaultdict +from decimal import Decimal +from functools import lru_cache, wraps +from itertools import chain, islice +from operator import itemgetter -from trytond.exceptions import UserError -from trytond.model import Model -from trytond.model import fields -from trytond.tools import reduce_domain, is_instance_method, grouped_slice -from trytond.tools.domain_inversion import ( - domain_inversion, eval_domain, parse as domain_parse) -from trytond.pyson import PYSONEncoder, PYSONDecoder, PYSON -from trytond.const import OPERATORS -from trytond.config import config -from trytond.i18n import gettext, lazy_gettext -from trytond.transaction import Transaction, record_cache_size -from trytond.pool import Pool from trytond.cache import Cache, LRUDictTransaction, freeze, unfreeze +from trytond.config import config +from trytond.const import OPERATORS +from trytond.exceptions import UserError +from trytond.i18n import gettext, lazy_gettext +from trytond.pool import Pool +from trytond.pyson import PYSON, PYSONDecoder, PYSONEncoder from trytond.rpc import RPC +from trytond.tools import grouped_slice, is_instance_method, reduce_domain +from trytond.tools.domain_inversion import domain_inversion, eval_domain +from trytond.tools.domain_inversion import parse as domain_parse +from trytond.transaction import Transaction, record_cache_size + +from . import fields from .descriptors import dualmethod +from .model import Model __all__ = ['ModelStorage', 'EvalEnvironment'] _cache_field = config.getint('cache', 'field') diff --git a/trytond/model/modelview.py b/trytond/model/modelview.py index fbf45fd72f..a06a814cfb 100644 --- a/trytond/model/modelview.py +++ b/trytond/model/modelview.py @@ -1,20 +1,22 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from lxml import etree -from functools import wraps import collections +from functools import wraps +from lxml import etree + +from trytond.cache import Cache from trytond.exceptions import UserError from trytond.i18n import gettext -from trytond.model import Model, fields -from trytond.tools import ClassProperty, is_instance_method -from trytond.pyson import PYSONDecoder, PYSONEncoder -from trytond.transaction import Transaction -from trytond.cache import Cache from trytond.pool import Pool +from trytond.pyson import PYSONDecoder, PYSONEncoder from trytond.rpc import RPC +from trytond.tools import ClassProperty, is_instance_method +from trytond.transaction import Transaction +from . import fields from .fields import on_change_result +from .model import Model __all__ = ['ModelView'] diff --git a/trytond/model/multivalue.py b/trytond/model/multivalue.py index af8f55119a..f71112b866 100644 --- a/trytond/model/multivalue.py +++ b/trytond/model/multivalue.py @@ -1,8 +1,9 @@ # This file is part of Tryton. The COPYRIGHT file at the toplevel of this # repository contains the full copyright notices and license terms. from trytond.pool import Pool -from .model import Model + from .match import MatchMixin +from .model import Model class MultiValueMixin(object): diff --git a/trytond/model/tree.py b/trytond/model/tree.py index b4c3136580..fd160559fa 100644 --- a/trytond/model/tree.py +++ b/trytond/model/tree.py @@ -3,6 +3,7 @@ from itertools import chain from trytond.i18n import gettext + from .modelstorage import ValidationError diff --git a/trytond/model/union.py b/trytond/model/union.py index c2da0939fc..cd0ccd7151 100644 --- a/trytond/model/union.py +++ b/trytond/model/union.py @@ -1,6 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the toplevel of this # repository contains the full copyright notices and license terms. -from sql import Union, Column, Literal +from sql import Column, Literal, Union from trytond.model import fields from trytond.pool import Pool diff --git a/trytond/modules/__init__.py b/trytond/modules/__init__.py index eb4e65120f..feb7479965 100644 --- a/trytond/modules/__init__.py +++ b/trytond/modules/__init__.py @@ -1,23 +1,23 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import os -import sys +import configparser import importlib import itertools import logging -import configparser -from glob import iglob +import os +import sys from collections import defaultdict -from importlib.machinery import FileFinder, SourceFileLoader, SOURCE_SUFFIXES +from glob import iglob +from importlib.machinery import SOURCE_SUFFIXES, FileFinder, SourceFileLoader from sql import Table from sql.functions import CurrentTimestamp +import trytond.convert as convert import trytond.tools as tools from trytond.config import config from trytond.exceptions import MissingDependenciesException from trytond.transaction import Transaction -import trytond.convert as convert logger = logging.getLogger(__name__) diff --git a/trytond/pool.py b/trytond/pool.py index 407ff3586d..0978eb8496 100644 --- a/trytond/pool.py +++ b/trytond/pool.py @@ -1,11 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from collections import defaultdict, OrderedDict -from threading import RLock +import builtins import logging +from collections import OrderedDict, defaultdict +from threading import RLock + from trytond.modules import load_modules, register_classes from trytond.transaction import Transaction -import builtins __all__ = ['Pool', 'PoolMeta', 'PoolBase', 'isregisteredby'] @@ -188,6 +189,7 @@ class Pool(object): except KeyError: if type == 'report': from trytond.report import Report + # Keyword argument 'type' conflicts with builtin function cls = builtins.type(name, (Report,), {'__slots__': ()}) cls.__setup__() diff --git a/trytond/protocols/dispatcher.py b/trytond/protocols/dispatcher.py index a5f184b38c..a62226757a 100644 --- a/trytond/protocols/dispatcher.py +++ b/trytond/protocols/dispatcher.py @@ -4,26 +4,26 @@ import logging import pydoc import time + try: from http import HTTPStatus except ImportError: from http import client as HTTPStatus +from sql import Table from werkzeug.exceptions import abort from werkzeug.wrappers import Response -from sql import Table -from trytond import security -from trytond import backend +from trytond import __version__, backend, security from trytond.config import config, get_hostname -from trytond import __version__ -from trytond.transaction import Transaction from trytond.exceptions import ( - UserError, UserWarning, ConcurrencyException, LoginException, - RateLimitException) + ConcurrencyException, LoginException, RateLimitException, UserError, + UserWarning) from trytond.tools import is_instance_method -from trytond.wsgi import app +from trytond.transaction import Transaction from trytond.worker import run_task +from trytond.wsgi import app + from .wrappers import with_pool logger = logging.getLogger(__name__) diff --git a/trytond/protocols/jsonrpc.py b/trytond/protocols/jsonrpc.py index 5a0ea6ee1a..aa3d5764d7 100644 --- a/trytond/protocols/jsonrpc.py +++ b/trytond/protocols/jsonrpc.py @@ -1,19 +1,19 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import datetime -from decimal import Decimal -import json import base64 +import datetime +import json +from decimal import Decimal -from werkzeug.wrappers import Response from werkzeug.exceptions import ( - BadRequest, InternalServerError, Conflict, Forbidden, Locked, + BadRequest, Conflict, Forbidden, InternalServerError, Locked, TooManyRequests) +from werkzeug.wrappers import Response -from trytond.protocols.wrappers import Request from trytond.exceptions import ( - TrytonException, UserWarning, LoginException, ConcurrencyException, - RateLimitException, MissingDependenciesException) + ConcurrencyException, LoginException, MissingDependenciesException, + RateLimitException, TrytonException, UserWarning) +from trytond.protocols.wrappers import Request from trytond.tools import cached_property diff --git a/trytond/protocols/wrappers.py b/trytond/protocols/wrappers.py index ed1259eddb..c81fcf4297 100644 --- a/trytond/protocols/wrappers.py +++ b/trytond/protocols/wrappers.py @@ -4,23 +4,25 @@ import base64 import gzip import logging import time -from io import BytesIO from functools import wraps +from io import BytesIO + try: from http import HTTPStatus except ImportError: from http import client as HTTPStatus -from werkzeug.wrappers import Request as _Request, Response from werkzeug.datastructures import Authorization -from werkzeug.exceptions import abort, HTTPException +from werkzeug.exceptions import HTTPException, abort +from werkzeug.wrappers import Request as _Request +from werkzeug.wrappers import Response -from trytond import security, backend +from trytond import backend, security +from trytond.config import config from trytond.exceptions import RateLimitException from trytond.pool import Pool from trytond.tools import cached_property from trytond.transaction import Transaction -from trytond.config import config logger = logging.getLogger(__name__) @@ -209,7 +211,8 @@ def with_transaction(readonly=None, user=0, context=None): def user_application(name, json=True): - from .jsonrpc import JSONEncoder, json as json_ + from .jsonrpc import JSONEncoder + from .jsonrpc import json as json_ def decorator(func): @wraps(func) diff --git a/trytond/protocols/xmlrpc.py b/trytond/protocols/xmlrpc.py index f7426b8e09..7cb5c53058 100644 --- a/trytond/protocols/xmlrpc.py +++ b/trytond/protocols/xmlrpc.py @@ -1,22 +1,21 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import xmlrpc.client as client import datetime import logging - +import xmlrpc.client as client # convert decimal to float before marshalling: from decimal import Decimal -from werkzeug.wrappers import Response from werkzeug.exceptions import ( - BadRequest, InternalServerError, Conflict, Forbidden, Locked, + BadRequest, Conflict, Forbidden, InternalServerError, Locked, TooManyRequests) +from werkzeug.wrappers import Response +from trytond.exceptions import ( + ConcurrencyException, LoginException, MissingDependenciesException, + RateLimitException, TrytonException, UserWarning) from trytond.model.fields.dict import ImmutableDict from trytond.protocols.wrappers import Request -from trytond.exceptions import ( - TrytonException, UserWarning, LoginException, ConcurrencyException, - RateLimitException, MissingDependenciesException) from trytond.tools import cached_property logger = logging.getLogger(__name__) diff --git a/trytond/pyson.py b/trytond/pyson.py index d8da0f846a..34e0f61563 100644 --- a/trytond/pyson.py +++ b/trytond/pyson.py @@ -1,11 +1,12 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import json import datetime +import json from decimal import Decimal -from dateutil.relativedelta import relativedelta from functools import reduce +from dateutil.relativedelta import relativedelta + class PYSON(object): diff --git a/trytond/report/report.py b/trytond/report/report.py index f69eb8a3c3..f36e8cc478 100644 --- a/trytond/report/report.py +++ b/trytond/report/report.py @@ -1,23 +1,23 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import datetime -import dateutil.tz -import os import inspect import logging import math +import operator +import os import subprocess import tempfile import time import warnings import zipfile -import operator - from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from io import BytesIO from itertools import groupby +import dateutil.tz + try: import html2text except ImportError: @@ -31,19 +31,20 @@ except ImportError: from genshi.filters import Translator from genshi.template.text import TextTemplate +from trytond.exceptions import UserError from trytond.i18n import gettext from trytond.pool import Pool, PoolBase -from trytond.transaction import Transaction -from trytond.tools import slugify -from trytond.url import URLMixin from trytond.rpc import RPC -from trytond.exceptions import UserError +from trytond.tools import slugify +from trytond.transaction import Transaction +from trytond.url import URLMixin warnings.simplefilter("ignore") import relatorio.reporting # noqa: E402 + warnings.resetwarnings() try: - from relatorio.templates.opendocument import Manifest, MANIFEST + from relatorio.templates.opendocument import MANIFEST, Manifest except ImportError: Manifest, MANIFEST = None, None diff --git a/trytond/res/__init__.py b/trytond/res/__init__.py index 304378cb9e..249a2e8020 100644 --- a/trytond/res/__init__.py +++ b/trytond/res/__init__.py @@ -2,10 +2,7 @@ # this repository contains the full copyright notices and license terms. from trytond.pool import Pool -from . import group -from . import user -from . import ir -from . import routes +from . import group, ir, routes, user __all__ = ['register', 'routes'] diff --git a/trytond/res/exceptions.py b/trytond/res/exceptions.py index b7a82a6e12..ca145f3be1 100644 --- a/trytond/res/exceptions.py +++ b/trytond/res/exceptions.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from .user import PasswordError, DeleteError +from .user import DeleteError, PasswordError __all__ = [ PasswordError, diff --git a/trytond/res/group.py b/trytond/res/group.py index 00ab650fc7..43f3a12feb 100644 --- a/trytond/res/group.py +++ b/trytond/res/group.py @@ -4,8 +4,8 @@ from itertools import chain from sql import With -from trytond.model import ModelView, ModelSQL, DeactivableMixin, tree, fields -from trytond.model import Unique +from trytond.model import ( + DeactivableMixin, ModelSQL, ModelView, Unique, fields, tree) from trytond.pool import Pool from trytond.tools import grouped_slice diff --git a/trytond/res/ir.py b/trytond/res/ir.py index 03a431ef8a..e80ca945bd 100644 --- a/trytond/res/ir.py +++ b/trytond/res/ir.py @@ -1,6 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelSQL, DeactivableMixin, fields +from trytond.model import DeactivableMixin, ModelSQL, fields from trytond.pool import Pool, PoolMeta from trytond.pyson import Eval diff --git a/trytond/res/routes.py b/trytond/res/routes.py index 07a3db55c6..87b98f7c2d 100644 --- a/trytond/res/routes.py +++ b/trytond/res/routes.py @@ -1,16 +1,16 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import logging -import time import random +import time from werkzeug.exceptions import abort from trytond.config import config -from trytond.wsgi import app from trytond.protocols.wrappers import ( - with_pool, with_transaction, allow_null_origin) + allow_null_origin, with_pool, with_transaction) from trytond.transaction import Transaction +from trytond.wsgi import app logger = logging.getLogger(__name__) diff --git a/trytond/res/user.py b/trytond/res/user.py index d4be430e47..35ae53718c 100644 --- a/trytond/res/user.py +++ b/trytond/res/user.py @@ -3,34 +3,34 @@ "User" import copy -import string -import random -import hashlib -import time import datetime +import hashlib import logging -import uuid import mmap +import random import re +import string +import time +import uuid + try: import secrets except ImportError: secrets = None import ipaddress import warnings +from ast import literal_eval from email.header import Header from functools import wraps from itertools import groupby from operator import attrgetter -from ast import literal_eval - -from sql import Literal, Null -from sql.functions import CurrentTimestamp -from sql.conditionals import Coalesce, Case -from sql.aggregate import Count -from sql.operators import Concat from passlib.context import CryptContext +from sql import Literal, Null +from sql.aggregate import Count +from sql.conditionals import Case, Coalesce +from sql.functions import CurrentTimestamp +from sql.operators import Concat try: import bcrypt @@ -43,14 +43,13 @@ except ImportError: from trytond.cache import Cache from trytond.config import config -from trytond.exceptions import LoginException, RateLimitException -from trytond.exceptions import UserError +from trytond.exceptions import LoginException, RateLimitException, UserError from trytond.i18n import gettext from trytond.model import ( - ModelView, ModelSQL, Workflow, DeactivableMixin, fields, Unique, - avatar_mixin) + DeactivableMixin, ModelSQL, ModelView, Unique, Workflow, avatar_mixin, + fields) from trytond.pool import Pool -from trytond.pyson import PYSONEncoder, Eval, Bool +from trytond.pyson import Bool, Eval, PYSONEncoder from trytond.report import Report, get_email from trytond.rpc import RPC from trytond.sendmail import sendmail_transactional @@ -58,7 +57,7 @@ from trytond.tools import grouped_slice from trytond.tools.email_ import set_from_header from trytond.transaction import Transaction from trytond.url import host, http_host -from trytond.wizard import Wizard, StateView, Button, StateTransition +from trytond.wizard import Button, StateTransition, StateView, Wizard logger = logging.getLogger(__name__) _has_password = 'password' in re.split('[,+]', config.get( diff --git a/trytond/security.py b/trytond/security.py index d6bbbe7c59..57a16646ba 100644 --- a/trytond/security.py +++ b/trytond/security.py @@ -2,11 +2,11 @@ # this repository contains the full copyright notices and license terms. import logging -from trytond.pool import Pool -from trytond.config import config -from trytond.transaction import Transaction from trytond import backend +from trytond.config import config from trytond.exceptions import LoginException, RateLimitException +from trytond.pool import Pool +from trytond.transaction import Transaction logger = logging.getLogger(__name__) diff --git a/trytond/sendmail.py b/trytond/sendmail.py index bfcf920dcf..82088ecfeb 100644 --- a/trytond/sendmail.py +++ b/trytond/sendmail.py @@ -3,8 +3,8 @@ import logging import smtplib from email.message import Message -from email.utils import formatdate from email.mime.text import MIMEText +from email.utils import formatdate from urllib.parse import parse_qs, unquote_plus from trytond.config import config, parse_uri diff --git a/trytond/tests/__init__.py b/trytond/tests/__init__.py index b822417da3..82cdabdebc 100644 --- a/trytond/tests/__init__.py +++ b/trytond/tests/__init__.py @@ -8,46 +8,15 @@ except ImportError: def register(): - from . import access - from . import copy_ - from . import export_data - from . import field_binary - from . import field_boolean - from . import field_char - from . import field_context - from . import field_date - from . import field_datetime - from . import field_dict - from . import field_float - from . import field_function - from . import field_integer - from . import field_many2many - from . import field_many2one - from . import field_multiselection - from . import field_numeric - from . import field_one2many - from . import field_one2one - from . import field_reference - from . import field_selection - from . import field_text - from . import field_time - from . import field_timedelta - from . import history - from . import import_data - from . import mixin - from . import model - from . import modelsql - from . import modelstorage - from . import modelview - from . import mptt - from . import multivalue - from . import path - from . import resource - from . import rule - from . import tree - from . import trigger - from . import wizard - from . import workflow + from . import ( + access, copy_, export_data, field_binary, field_boolean, field_char, + field_context, field_date, field_datetime, field_dict, field_float, + field_function, field_integer, field_many2many, field_many2one, + field_multiselection, field_numeric, field_one2many, field_one2one, + field_reference, field_selection, field_text, field_time, + field_timedelta, history, import_data, mixin, model, modelsql, + modelstorage, modelview, mptt, multivalue, path, resource, rule, tree, + trigger, wizard, workflow) access.register('tests') copy_.register('tests') diff --git a/trytond/tests/export_data.py b/trytond/tests/export_data.py index 67316f93b9..44e94131fd 100644 --- a/trytond/tests/export_data.py +++ b/trytond/tests/export_data.py @@ -2,7 +2,7 @@ # this repository contains the full copyright notices and license terms. "Test for export_data" from trytond.model import ModelSQL, fields -from trytond.pool import PoolMeta, Pool +from trytond.pool import Pool, PoolMeta class ExportDataTarget(ModelSQL): diff --git a/trytond/tests/field_context.py b/trytond/tests/field_context.py index 87db7cd60b..79ef9d275f 100644 --- a/trytond/tests/field_context.py +++ b/trytond/tests/field_context.py @@ -2,8 +2,8 @@ # this repository contains the full copyright notices and license terms. from trytond.model import ModelSQL, fields -from trytond.pyson import Eval from trytond.pool import Pool +from trytond.pyson import Eval class FieldContextParent(ModelSQL): diff --git a/trytond/tests/field_dict.py b/trytond/tests/field_dict.py index f51673cbb7..f10a38f896 100644 --- a/trytond/tests/field_dict.py +++ b/trytond/tests/field_dict.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelSQL, DictSchemaMixin, fields +from trytond.model import DictSchemaMixin, ModelSQL, fields from trytond.pool import Pool diff --git a/trytond/tests/field_many2one.py b/trytond/tests/field_many2one.py index 6d3deb42c4..944747e40d 100644 --- a/trytond/tests/field_many2one.py +++ b/trytond/tests/field_many2one.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelSQL, ModelStorage, DeactivableMixin, fields +from trytond.model import DeactivableMixin, ModelSQL, ModelStorage, fields from trytond.pool import Pool from trytond.transaction import Transaction diff --git a/trytond/tests/model.py b/trytond/tests/model.py index 7b83132918..ac8b3d9c01 100644 --- a/trytond/tests/model.py +++ b/trytond/tests/model.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import (ModelSingleton, ModelSQL, UnionMixin, fields, - sequence_ordered) +from trytond.model import ( + ModelSingleton, ModelSQL, UnionMixin, fields, sequence_ordered) from trytond.pool import Pool from trytond.pyson import Eval diff --git a/trytond/tests/modelsql.py b/trytond/tests/modelsql.py index 25731c4757..d119f9f52d 100644 --- a/trytond/tests/modelsql.py +++ b/trytond/tests/modelsql.py @@ -4,7 +4,7 @@ from sql import Literal from sql.operators import Equal from trytond.model import ( - ModelSQL, fields, Check, Unique, Exclude, DeactivableMixin) + Check, DeactivableMixin, Exclude, ModelSQL, Unique, fields) from trytond.pool import Pool from trytond.pyson import Eval diff --git a/trytond/tests/modelstorage.py b/trytond/tests/modelstorage.py index b85e0c854a..4e3fa6c967 100644 --- a/trytond/tests/modelstorage.py +++ b/trytond/tests/modelstorage.py @@ -1,9 +1,11 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelSQL, ModelStorage as ModelStorage_, fields +from trytond.model import ModelSQL +from trytond.model import ModelStorage as ModelStorage_ +from trytond.model import fields +from trytond.pool import Pool from trytond.pyson import Eval, If from trytond.transaction import Transaction -from trytond.pool import Pool class ModelStorage(ModelSQL): diff --git a/trytond/tests/modelview.py b/trytond/tests/modelview.py index b583bf3c4e..c4f6861023 100644 --- a/trytond/tests/modelview.py +++ b/trytond/tests/modelview.py @@ -1,9 +1,9 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelView, ModelSQL, DictSchemaMixin, fields +from trytond.model import DictSchemaMixin, ModelSQL, ModelView, fields from trytond.pool import Pool -from trytond.pyson import If, Eval +from trytond.pyson import Eval, If class ModelViewChangedValues(ModelView): diff --git a/trytond/tests/mptt.py b/trytond/tests/mptt.py index 2aaa9d3cf7..704c361ed0 100644 --- a/trytond/tests/mptt.py +++ b/trytond/tests/mptt.py @@ -4,7 +4,7 @@ from sql import Null from sql.conditionals import Case -from trytond.model import ModelView, ModelSQL, DeactivableMixin, tree, fields +from trytond.model import DeactivableMixin, ModelSQL, ModelView, fields, tree from trytond.pool import Pool diff --git a/trytond/tests/path.py b/trytond/tests/path.py index 5a7ebf0524..1d1d2c55d7 100644 --- a/trytond/tests/path.py +++ b/trytond/tests/path.py @@ -1,6 +1,6 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelSQL, DeactivableMixin, tree, fields +from trytond.model import DeactivableMixin, ModelSQL, fields, tree from trytond.pool import Pool diff --git a/trytond/tests/resource.py b/trytond/tests/resource.py index 0bafc9c9c8..6723fbc8c8 100644 --- a/trytond/tests/resource.py +++ b/trytond/tests/resource.py @@ -1,10 +1,9 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. +from trytond.ir.note import NoteCopyMixin from trytond.model import ModelSQL from trytond.pool import Pool -from trytond.ir.note import NoteCopyMixin - class TestResource(ModelSQL, NoteCopyMixin): "Test Resource" diff --git a/trytond/tests/run-tests.py b/trytond/tests/run-tests.py index 0388541eed..bafa155b0c 100755 --- a/trytond/tests/run-tests.py +++ b/trytond/tests/run-tests.py @@ -1,12 +1,12 @@ #!/usr/bin/env python3 # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import logging import argparse +import logging import os +import sys import time import unittest -import sys from trytond.config import config @@ -36,6 +36,7 @@ config.update_etc(opt.config) # Import after application is configured from trytond import backend # noqa: E402 + if backend.name == 'sqlite': database_name = ':memory:' else: @@ -43,6 +44,7 @@ else: os.environ.setdefault('DB_NAME', database_name) from trytond.tests.test_tryton import all_suite, modules_suite # noqa: E402 + if not opt.modules: suite = all_suite(opt.tests) else: diff --git a/trytond/tests/test_access.py b/trytond/tests/test_access.py index b9431115a6..9b5d57dc7e 100644 --- a/trytond/tests/test_access.py +++ b/trytond/tests/test_access.py @@ -4,9 +4,9 @@ import unittest from trytond.model.exceptions import AccessError +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool _context = {'_check_access': True} diff --git a/trytond/tests/test_backend.py b/trytond/tests/test_backend.py index 9a9657a803..62dda8ff9c 100644 --- a/trytond/tests/test_backend.py +++ b/trytond/tests/test_backend.py @@ -4,8 +4,7 @@ import datetime import math import unittest -from sql import Select -from sql import functions, Literal +from sql import Literal, Select, functions from sql.functions import CurrentTimestamp, ToChar from trytond.tests.test_tryton import activate_module, with_transaction diff --git a/trytond/tests/test_bus.py b/trytond/tests/test_bus.py index 79104eeb1c..569f2b3aad 100644 --- a/trytond/tests/test_bus.py +++ b/trytond/tests/test_bus.py @@ -5,10 +5,10 @@ import time import unittest from unittest.mock import patch -from trytond import bus, backend -from trytond.bus import _MessageQueue, notify, Bus +from trytond import backend, bus +from trytond.bus import Bus, _MessageQueue, notify from trytond.tests.test_tryton import ( - activate_module, with_transaction, DB_NAME) + DB_NAME, activate_module, with_transaction) from trytond.transaction import Transaction diff --git a/trytond/tests/test_cache.py b/trytond/tests/test_cache.py index 12f6f96d1d..aac980cf30 100644 --- a/trytond/tests/test_cache.py +++ b/trytond/tests/test_cache.py @@ -4,14 +4,14 @@ import time import unittest -from trytond import backend, cache as cache_mod +from trytond import backend +from trytond import cache as cache_mod from trytond.cache import ( - freeze, unfreeze, MemoryCache, LRUDict, LRUDictTransaction) -from trytond.tests.test_tryton import with_transaction, activate_module -from trytond.tests.test_tryton import DB_NAME, USER + LRUDict, LRUDictTransaction, MemoryCache, freeze, unfreeze) +from trytond.tests.test_tryton import ( + DB_NAME, USER, activate_module, with_transaction) from trytond.transaction import Transaction - cache = MemoryCache('test.cache') cache_expire = MemoryCache('test.cache_expire', duration=1) diff --git a/trytond/tests/test_copy.py b/trytond/tests/test_copy.py index 81c6172163..af59f7b532 100644 --- a/trytond/tests/test_copy.py +++ b/trytond/tests/test_copy.py @@ -5,9 +5,9 @@ import unittest from trytond.model import fields from trytond.model.exceptions import AccessError +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool from .test_modelsql import TranslationTestCase diff --git a/trytond/tests/test_descriptors.py b/trytond/tests/test_descriptors.py index 0bcca2bce5..f2a4de355a 100644 --- a/trytond/tests/test_descriptors.py +++ b/trytond/tests/test_descriptors.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest import doctest +import unittest from trytond.model import descriptors diff --git a/trytond/tests/test_exportdata.py b/trytond/tests/test_exportdata.py index 3f6aa9deb4..b75c008fc7 100644 --- a/trytond/tests/test_exportdata.py +++ b/trytond/tests/test_exportdata.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. +import datetime import unittest from decimal import Decimal -import datetime -from trytond.tests.test_tryton import activate_module, with_transaction + from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class ExportDataTestCase(unittest.TestCase): diff --git a/trytond/tests/test_field_binary.py b/trytond/tests/test_field_binary.py index 35372c63db..b6f213aecf 100644 --- a/trytond/tests/test_field_binary.py +++ b/trytond/tests/test_field_binary.py @@ -7,8 +7,8 @@ import unittest from sql import Literal from trytond.config import config -from trytond.model.exceptions import RequiredValidationError from trytond.model import fields +from trytond.model.exceptions import RequiredValidationError from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction diff --git a/trytond/tests/test_field_char.py b/trytond/tests/test_field_char.py index 87ef8b3938..e8b63c5942 100644 --- a/trytond/tests/test_field_char.py +++ b/trytond/tests/test_field_char.py @@ -7,10 +7,10 @@ from sql import Literal from trytond import backend from trytond.model.exceptions import ( - RequiredValidationError, ForbiddenCharValidationError) + ForbiddenCharValidationError, RequiredValidationError) from trytond.pool import Pool -from trytond.tests.test_tryton import activate_module, with_transaction -from trytond.tests.test_tryton import ExtensionTestCase +from trytond.tests.test_tryton import ( + ExtensionTestCase, activate_module, with_transaction) from trytond.transaction import Transaction diff --git a/trytond/tests/test_field_context.py b/trytond/tests/test_field_context.py index 6ea9dc23c9..d373e91ab9 100644 --- a/trytond/tests/test_field_context.py +++ b/trytond/tests/test_field_context.py @@ -3,8 +3,8 @@ import unittest -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class FieldContextTestCase(unittest.TestCase): diff --git a/trytond/tests/test_field_dict.py b/trytond/tests/test_field_dict.py index a3eec9996d..65de75fb2d 100644 --- a/trytond/tests/test_field_dict.py +++ b/trytond/tests/test_field_dict.py @@ -6,8 +6,8 @@ from trytond import backend from trytond.model.dictschema import SelectionError from trytond.model.exceptions import RequiredValidationError from trytond.pool import Pool -from trytond.tests.test_tryton import activate_module, with_transaction -from trytond.tests.test_tryton import ExtensionTestCase +from trytond.tests.test_tryton import ( + ExtensionTestCase, activate_module, with_transaction) class FieldDictTestCase(unittest.TestCase): diff --git a/trytond/tests/test_field_float.py b/trytond/tests/test_field_float.py index 40b0765e98..9ecd04d35b 100644 --- a/trytond/tests/test_field_float.py +++ b/trytond/tests/test_field_float.py @@ -5,7 +5,7 @@ import unittest from sql import Literal from trytond.model.exceptions import ( - RequiredValidationError, DigitsValidationError) + DigitsValidationError, RequiredValidationError) from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction diff --git a/trytond/tests/test_field_integer.py b/trytond/tests/test_field_integer.py index ece10e30c4..ff7285fe55 100644 --- a/trytond/tests/test_field_integer.py +++ b/trytond/tests/test_field_integer.py @@ -5,7 +5,7 @@ import unittest from sql import Literal from trytond.model.exceptions import ( - RequiredValidationError, DomainValidationError) + DomainValidationError, RequiredValidationError) from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction diff --git a/trytond/tests/test_field_multiselection.py b/trytond/tests/test_field_multiselection.py index 9db539a832..439c0bc76f 100644 --- a/trytond/tests/test_field_multiselection.py +++ b/trytond/tests/test_field_multiselection.py @@ -4,7 +4,7 @@ import unittest from trytond import backend from trytond.model.exceptions import ( - SelectionValidationError, RequiredValidationError) + RequiredValidationError, SelectionValidationError) from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction diff --git a/trytond/tests/test_field_numeric.py b/trytond/tests/test_field_numeric.py index e550b606df..822a2d1c8a 100644 --- a/trytond/tests/test_field_numeric.py +++ b/trytond/tests/test_field_numeric.py @@ -6,7 +6,7 @@ from decimal import Decimal, InvalidOperation from sql import Literal from trytond.model.exceptions import ( - RequiredValidationError, DigitsValidationError) + DigitsValidationError, RequiredValidationError) from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction diff --git a/trytond/tests/test_field_one2one.py b/trytond/tests/test_field_one2one.py index e610b788a5..d54408af9f 100644 --- a/trytond/tests/test_field_one2one.py +++ b/trytond/tests/test_field_one2one.py @@ -3,7 +3,7 @@ import unittest from trytond.model.exceptions import ( - SQLConstraintError, RequiredValidationError, DomainValidationError) + DomainValidationError, RequiredValidationError, SQLConstraintError) from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction diff --git a/trytond/tests/test_field_selection.py b/trytond/tests/test_field_selection.py index ee8591fde2..a924a1cec7 100644 --- a/trytond/tests/test_field_selection.py +++ b/trytond/tests/test_field_selection.py @@ -3,7 +3,7 @@ import unittest from trytond.model.exceptions import ( - SelectionValidationError, RequiredValidationError) + RequiredValidationError, SelectionValidationError) from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction diff --git a/trytond/tests/test_history.py b/trytond/tests/test_history.py index 4f5e0c296d..a8130cc1c3 100644 --- a/trytond/tests/test_history.py +++ b/trytond/tests/test_history.py @@ -1,13 +1,13 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest import datetime +import unittest +from trytond import backend from trytond.model.exceptions import AccessError +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool -from trytond import backend class HistoryTestCase(unittest.TestCase): diff --git a/trytond/tests/test_i18n.py b/trytond/tests/test_i18n.py index 6744e04088..5701e3998f 100644 --- a/trytond/tests/test_i18n.py +++ b/trytond/tests/test_i18n.py @@ -1,9 +1,10 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import unittest -from trytond.tests.test_tryton import activate_module, with_transaction + from trytond.i18n import gettext, lazy_gettext from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction from trytond.tools.string_ import LazyString diff --git a/trytond/tests/test_importdata.py b/trytond/tests/test_importdata.py index 32e0fa0a03..936e78b2d5 100644 --- a/trytond/tests/test_importdata.py +++ b/trytond/tests/test_importdata.py @@ -3,13 +3,13 @@ # this repository contains the full copyright notices and license terms. import datetime import unittest -from decimal import InvalidOperation, Decimal +from decimal import Decimal, InvalidOperation from trytond.model.exceptions import ( - RequiredValidationError, SelectionValidationError, ImportDataError) + ImportDataError, RequiredValidationError, SelectionValidationError) +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool class ImportDataTestCase(unittest.TestCase): diff --git a/trytond/tests/test_ir.py b/trytond/tests/test_ir.py index fe8c3f8773..d56716b867 100644 --- a/trytond/tests/test_ir.py +++ b/trytond/tests/test_ir.py @@ -3,7 +3,7 @@ import datetime import unittest from decimal import Decimal -from unittest.mock import Mock, patch, ANY +from unittest.mock import ANY, Mock, patch from dateutil.relativedelta import relativedelta @@ -11,6 +11,7 @@ from trytond.config import config from trytond.pool import Pool from trytond.pyson import Eval, If, PYSONEncoder from trytond.transaction import Transaction + from .test_tryton import ModuleTestCase, with_transaction diff --git a/trytond/tests/test_mixins.py b/trytond/tests/test_mixins.py index 85e8bd202a..80745bb298 100644 --- a/trytond/tests/test_mixins.py +++ b/trytond/tests/test_mixins.py @@ -5,13 +5,13 @@ import unittest import urllib.parse -from trytond.tests.test_tryton import activate_module, with_transaction -from trytond.transaction import Transaction from trytond.model import ModelView from trytond.pool import Pool -from trytond.url import http_host, HOSTNAME +from trytond.tests.test_tryton import activate_module, with_transaction +from trytond.transaction import Transaction +from trytond.url import HOSTNAME, http_host -from .mixin import TestMixin, TestSecondMixin, NotMixin, ReportMixin +from .mixin import NotMixin, ReportMixin, TestMixin, TestSecondMixin class UrlTestCase(unittest.TestCase): diff --git a/trytond/tests/test_model.py b/trytond/tests/test_model.py index 7bcf281032..357f15e99e 100644 --- a/trytond/tests/test_model.py +++ b/trytond/tests/test_model.py @@ -1,8 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of this # repository contains the full copyright notices and license terms. -from copy import copy - import unittest +from copy import copy from trytond.model.model import record from trytond.pool import Pool diff --git a/trytond/tests/test_modelsingleton.py b/trytond/tests/test_modelsingleton.py index f932ba197c..edcee97b83 100644 --- a/trytond/tests/test_modelsingleton.py +++ b/trytond/tests/test_modelsingleton.py @@ -3,9 +3,10 @@ # this repository contains the full copyright notices and license terms. import unittest from datetime import datetime + +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool class ModelSingletonTestCase(unittest.TestCase): diff --git a/trytond/tests/test_modelsql.py b/trytond/tests/test_modelsql.py index bbdfc70536..3682842e20 100644 --- a/trytond/tests/test_modelsql.py +++ b/trytond/tests/test_modelsql.py @@ -3,18 +3,18 @@ # repository contains the full copyright notices and license terms. import random -import unittest import time -from unittest.mock import patch, call +import unittest +from unittest.mock import call, patch from trytond import backend from trytond.exceptions import ConcurrencyException from trytond.model.exceptions import ( - RequiredValidationError, SQLConstraintError, ForeignKeyError) + ForeignKeyError, RequiredValidationError, SQLConstraintError) from trytond.model.modelsql import split_subquery_domain -from trytond.transaction import Transaction from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction +from trytond.transaction import Transaction class ModelSQLTestCase(unittest.TestCase): diff --git a/trytond/tests/test_modelstorage.py b/trytond/tests/test_modelstorage.py index b888946523..c351cfa178 100644 --- a/trytond/tests/test_modelstorage.py +++ b/trytond/tests/test_modelstorage.py @@ -5,10 +5,10 @@ import unittest from trytond.model import EvalEnvironment from trytond.model.exceptions import ( - RequiredValidationError, DomainValidationError, AccessError) + AccessError, DomainValidationError, RequiredValidationError) from trytond.pool import Pool -from trytond.transaction import Transaction from trytond.tests.test_tryton import activate_module, with_transaction +from trytond.transaction import Transaction class ModelStorageTestCase(unittest.TestCase): diff --git a/trytond/tests/test_modelview.py b/trytond/tests/test_modelview.py index 53483555b8..a1edacd1be 100644 --- a/trytond/tests/test_modelview.py +++ b/trytond/tests/test_modelview.py @@ -6,10 +6,10 @@ from unittest.mock import patch from lxml import etree -from trytond.model.exceptions import AccessError, AccessButtonError -from trytond.tests.test_tryton import activate_module, with_transaction +from trytond.model.exceptions import AccessButtonError, AccessError from trytond.pool import Pool -from trytond.pyson import PYSONEncoder, PYSONDecoder, Eval +from trytond.pyson import Eval, PYSONDecoder, PYSONEncoder +from trytond.tests.test_tryton import activate_module, with_transaction class ModelView(unittest.TestCase): diff --git a/trytond/tests/test_mptt.py b/trytond/tests/test_mptt.py index 7a03d8132b..14725d31fc 100644 --- a/trytond/tests/test_mptt.py +++ b/trytond/tests/test_mptt.py @@ -5,9 +5,9 @@ import sys import unittest from unittest.mock import patch +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool from .test_tree import TreeTestCaseMixin diff --git a/trytond/tests/test_multivalue.py b/trytond/tests/test_multivalue.py index 737229788e..fc31bcad47 100644 --- a/trytond/tests/test_multivalue.py +++ b/trytond/tests/test_multivalue.py @@ -2,8 +2,8 @@ # this repository contains the full copyright notices and license terms. import unittest -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class MultiValueTestCase(unittest.TestCase): diff --git a/trytond/tests/test_order.py b/trytond/tests/test_order.py index 8eb7048b8c..a0ea8ccb15 100644 --- a/trytond/tests/test_order.py +++ b/trytond/tests/test_order.py @@ -2,8 +2,8 @@ # this repository contains the full copyright notices and license terms. import unittest -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class SequenceOrderedMixinTestCase(unittest.TestCase): diff --git a/trytond/tests/test_protocols.py b/trytond/tests/test_protocols.py index 55cddce5e5..ae7734a635 100644 --- a/trytond/tests/test_protocols.py +++ b/trytond/tests/test_protocols.py @@ -1,14 +1,14 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest -import json import datetime +import json +import unittest from decimal import Decimal +from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder, JSONRequest +from trytond.protocols.xmlrpc import XMLRequest, client from trytond.tools.immutabledict import ImmutableDict -from trytond.protocols.jsonrpc import JSONEncoder, JSONDecoder, JSONRequest -from trytond.protocols.xmlrpc import client, XMLRequest class DumpsLoadsMixin: diff --git a/trytond/tests/test_pyson.py b/trytond/tests/test_pyson.py index b0de2caf55..cc608a32d5 100644 --- a/trytond/tests/test_pyson.py +++ b/trytond/tests/test_pyson.py @@ -2,11 +2,11 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest import datetime import sys - +import unittest from decimal import Decimal + from trytond import pyson diff --git a/trytond/tests/test_report.py b/trytond/tests/test_report.py index 3a7948801b..e2351658e9 100644 --- a/trytond/tests/test_report.py +++ b/trytond/tests/test_report.py @@ -1,10 +1,10 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest import datetime +import unittest -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.report.report import Report +from trytond.tests.test_tryton import activate_module, with_transaction class ReportTestCase(unittest.TestCase): diff --git a/trytond/tests/test_resource.py b/trytond/tests/test_resource.py index 83f5e4b76f..8cbacde41c 100644 --- a/trytond/tests/test_resource.py +++ b/trytond/tests/test_resource.py @@ -3,8 +3,8 @@ import unittest from trytond.pool import Pool -from trytond.transaction import Transaction from trytond.tests.test_tryton import activate_module, with_transaction +from trytond.transaction import Transaction class ResourceTestCase(unittest.TestCase): diff --git a/trytond/tests/test_routes.py b/trytond/tests/test_routes.py index 8e0b726694..81f0416f1a 100644 --- a/trytond/tests/test_routes.py +++ b/trytond/tests/test_routes.py @@ -9,7 +9,7 @@ from werkzeug.test import Client from werkzeug.wrappers import BaseResponse from trytond.pool import Pool -from trytond.tests.test_tryton import activate_module, DB_NAME, drop_db +from trytond.tests.test_tryton import DB_NAME, activate_module, drop_db from trytond.transaction import Transaction from trytond.wsgi import app diff --git a/trytond/tests/test_rpc.py b/trytond/tests/test_rpc.py index 3386c74ff3..070ae854a9 100644 --- a/trytond/tests/test_rpc.py +++ b/trytond/tests/test_rpc.py @@ -1,10 +1,10 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. import unittest -from unittest.mock import Mock, DEFAULT, call +from unittest.mock import DEFAULT, Mock, call -from trytond.tests.test_tryton import with_transaction, activate_module from trytond.rpc import RPC +from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction diff --git a/trytond/tests/test_sendmail.py b/trytond/tests/test_sendmail.py index 9e887a72e3..77d3e576cd 100644 --- a/trytond/tests/test_sendmail.py +++ b/trytond/tests/test_sendmail.py @@ -3,12 +3,13 @@ import smtplib import unittest from email.message import Message -from unittest.mock import Mock, MagicMock, patch, call +from unittest.mock import MagicMock, Mock, call, patch from trytond.sendmail import ( - sendmail_transactional, sendmail, SMTPDataManager, get_smtp_server) + SMTPDataManager, get_smtp_server, sendmail, sendmail_transactional) from trytond.transaction import Transaction -from .test_tryton import with_transaction, activate_module + +from .test_tryton import activate_module, with_transaction class SendmailTestCase(unittest.TestCase): diff --git a/trytond/tests/test_sequence.py b/trytond/tests/test_sequence.py index 965ed873bc..9b55e780cd 100644 --- a/trytond/tests/test_sequence.py +++ b/trytond/tests/test_sequence.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest import datetime +import unittest + +from trytond.ir.sequence import LastTimestampError +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool -from trytond.ir.sequence import LastTimestampError class SequenceTestCase(unittest.TestCase): diff --git a/trytond/tests/test_tools.py b/trytond/tests/test_tools.py index d61536e8cd..7e98cace2c 100644 --- a/trytond/tests/test_tools.py +++ b/trytond/tests/test_tools.py @@ -3,24 +3,24 @@ # this repository contains the full copyright notices and license terms. import datetime as dt -import unittest import doctest import sys +import unittest import sql import sql.operators from trytond.tools import ( - reduce_ids, reduce_domain, decimal_, is_instance_method, file_open, - strip_wildcard, lstrip_wildcard, rstrip_wildcard, slugify, sortable_values, - escape_wildcard, unescape_wildcard, is_full_text, firstline, - remove_forbidden_chars) -from trytond.tools.string_ import StringPartitioned, LazyString + decimal_, escape_wildcard, file_open, firstline, is_full_text, + is_instance_method, lstrip_wildcard, reduce_domain, reduce_ids, + remove_forbidden_chars, rstrip_wildcard, slugify, sortable_values, + strip_wildcard, unescape_wildcard) from trytond.tools.domain_inversion import ( - domain_inversion, parse, simplify, merge, concat, unique_value, - eval_domain, localize_domain, - prepare_reference_domain, extract_reference_models) + concat, domain_inversion, eval_domain, extract_reference_models, + localize_domain, merge, parse, prepare_reference_domain, simplify, + unique_value) from trytond.tools.immutabledict import ImmutableDict +from trytond.tools.string_ import LazyString, StringPartitioned class ToolsTestCase(unittest.TestCase): diff --git a/trytond/tests/test_transaction.py b/trytond/tests/test_transaction.py index 1e8b404016..fc8dbee296 100644 --- a/trytond/tests/test_transaction.py +++ b/trytond/tests/test_transaction.py @@ -3,7 +3,7 @@ import unittest from unittest.mock import Mock -from trytond.tests.test_tryton import DB_NAME, USER, CONTEXT, activate_module +from trytond.tests.test_tryton import CONTEXT, DB_NAME, USER, activate_module from trytond.transaction import Transaction diff --git a/trytond/tests/test_tree.py b/trytond/tests/test_tree.py index c8992487ba..a5376a2672 100644 --- a/trytond/tests/test_tree.py +++ b/trytond/tests/test_tree.py @@ -4,8 +4,8 @@ import unittest from trytond.model.exceptions import DomainValidationError, RecursionError -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class TreeTestCaseMixin: diff --git a/trytond/tests/test_trigger.py b/trytond/tests/test_trigger.py index 414505dd9c..43f88d554c 100644 --- a/trytond/tests/test_trigger.py +++ b/trytond/tests/test_trigger.py @@ -1,18 +1,17 @@ # -*- coding: utf-8 -*- # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import unittest import datetime +import unittest from itertools import combinations +from trytond.ir.exceptions import TriggerConditionError from trytond.model.exceptions import SQLConstraintError +from trytond.pool import Pool +from trytond.pyson import Eval, PYSONEncoder from trytond.tests.test_tryton import activate_module, with_transaction from trytond.tests.trigger import TRIGGER_LOGS from trytond.transaction import Transaction -from trytond.pool import Pool -from trytond.pyson import PYSONEncoder, Eval - -from trytond.ir.exceptions import TriggerConditionError class TriggerTestCase(unittest.TestCase): diff --git a/trytond/tests/test_tryton.py b/trytond/tests/test_tryton.py index 2e1b58a8ba..18bb0ecbc5 100644 --- a/trytond/tests/test_tryton.py +++ b/trytond/tests/test_tryton.py @@ -11,9 +11,9 @@ import time import unittest import unittest.mock from configparser import ConfigParser -from functools import reduce -from functools import wraps +from functools import reduce, wraps from itertools import chain + try: import pkg_resources except ImportError: @@ -22,17 +22,17 @@ except ImportError: from lxml import etree from sql import Table -from trytond.pool import Pool, isregisteredby from trytond import backend -from trytond.model import ( - Workflow, ModelSQL, ModelStorage, ModelSingleton, ModelView, fields) -from trytond.model.fields import get_eval_fields, Function -from trytond.tools import is_instance_method, file_open -from trytond.transaction import Transaction from trytond.cache import Cache from trytond.config import config, parse_uri -from trytond.wizard import StateView, StateAction +from trytond.model import ( + ModelSingleton, ModelSQL, ModelStorage, ModelView, Workflow, fields) +from trytond.model.fields import Function, get_eval_fields +from trytond.pool import Pool, isregisteredby from trytond.pyson import PYSONDecoder, PYSONEncoder +from trytond.tools import file_open, is_instance_method +from trytond.transaction import Transaction +from trytond.wizard import StateAction, StateView __all__ = ['DB_NAME', 'USER', 'CONTEXT', 'activate_module', 'ModuleTestCase', 'with_transaction', diff --git a/trytond/tests/test_union.py b/trytond/tests/test_union.py index 61987f6b2f..7d753bd5b6 100644 --- a/trytond/tests/test_union.py +++ b/trytond/tests/test_union.py @@ -2,8 +2,8 @@ # this repository contains the full copyright notices and license terms. import unittest -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class UnionMixinTestCase(unittest.TestCase): diff --git a/trytond/tests/test_user.py b/trytond/tests/test_user.py index 7561ed45f4..44c06c61c4 100644 --- a/trytond/tests/test_user.py +++ b/trytond/tests/test_user.py @@ -4,13 +4,13 @@ import datetime import os import unittest from contextlib import contextmanager -from unittest.mock import patch, ANY, Mock +from unittest.mock import ANY, Mock, patch -from trytond.tests.test_tryton import activate_module, with_transaction -from trytond.pool import Pool from trytond.config import config +from trytond.pool import Pool from trytond.res import user as user_module from trytond.res.user import PasswordError +from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction FROM = 'tryton@example.com' diff --git a/trytond/tests/test_wizard.py b/trytond/tests/test_wizard.py index 26c4488d34..ebb047a8cd 100644 --- a/trytond/tests/test_wizard.py +++ b/trytond/tests/test_wizard.py @@ -3,9 +3,9 @@ import unittest from trytond.model.exceptions import AccessError +from trytond.pool import Pool from trytond.tests.test_tryton import activate_module, with_transaction from trytond.transaction import Transaction -from trytond.pool import Pool class WizardTestCase(unittest.TestCase): diff --git a/trytond/tests/test_workflow.py b/trytond/tests/test_workflow.py index b502c292e3..def71ca640 100644 --- a/trytond/tests/test_workflow.py +++ b/trytond/tests/test_workflow.py @@ -3,8 +3,8 @@ import unittest -from trytond.tests.test_tryton import activate_module, with_transaction from trytond.pool import Pool +from trytond.tests.test_tryton import activate_module, with_transaction class WorkflowTestCase(unittest.TestCase): diff --git a/trytond/tests/test_wsgi.py b/trytond/tests/test_wsgi.py index 4d899c2bc6..764fea5bfd 100644 --- a/trytond/tests/test_wsgi.py +++ b/trytond/tests/test_wsgi.py @@ -4,10 +4,11 @@ import unittest from unittest.mock import Mock, sentinel -from werkzeug.wrappers import Response from werkzeug.test import Client -from trytond.wsgi import TrytondWSGI +from werkzeug.wrappers import Response + from trytond.exceptions import TrytonException +from trytond.wsgi import TrytondWSGI class WSGIAppTestCase(unittest.TestCase): diff --git a/trytond/tests/tools.py b/trytond/tests/tools.py index de813ac87f..a2ecc4c8b9 100644 --- a/trytond/tests/tools.py +++ b/trytond/tests/tools.py @@ -1,8 +1,9 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from proteus import config as pconfig, Model, Wizard +from proteus import Model, Wizard +from proteus import config as pconfig -from .test_tryton import restore_db_cache, backup_db_cache, drop_create +from .test_tryton import backup_db_cache, drop_create, restore_db_cache __all__ = ['activate_modules', 'set_user'] diff --git a/trytond/tests/tree.py b/trytond/tests/tree.py index fb4205755a..3dc28c88a4 100644 --- a/trytond/tests/tree.py +++ b/trytond/tests/tree.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelSQL, tree, fields +from trytond.model import ModelSQL, fields, tree from trytond.pool import Pool diff --git a/trytond/tests/wizard.py b/trytond/tests/wizard.py index cf26c38a03..ba07866610 100644 --- a/trytond/tests/wizard.py +++ b/trytond/tests/wizard.py @@ -1,10 +1,10 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from trytond.model import ModelView, ModelSQL, fields +from trytond.model import ModelSQL, ModelView, fields from trytond.pool import Pool from trytond.transaction import Transaction -from trytond.wizard import Wizard, StateView, StateTransition, StateAction, \ - Button +from trytond.wizard import ( + Button, StateAction, StateTransition, StateView, Wizard) class TestWizardStart(ModelSQL, ModelView): diff --git a/trytond/tools/__init__.py b/trytond/tools/__init__.py index c860a2be97..f42b2e8e4a 100644 --- a/trytond/tools/__init__.py +++ b/trytond/tools/__init__.py @@ -5,13 +5,12 @@ try: except ImportError: from werkzeug.utils import cached_property -from .misc import ( - file_open, get_smtp_server, reduce_ids, reduce_domain, - grouped_slice, is_instance_method, resolve, strip_wildcard, - lstrip_wildcard, rstrip_wildcard, slugify, sortable_values, - escape_wildcard, unescape_wildcard, is_full_text, sql_pairing, firstline, - remove_forbidden_chars) from .decimal_ import decistmt +from .misc import ( + escape_wildcard, file_open, firstline, get_smtp_server, grouped_slice, + is_full_text, is_instance_method, lstrip_wildcard, reduce_domain, + reduce_ids, remove_forbidden_chars, resolve, rstrip_wildcard, slugify, + sortable_values, sql_pairing, strip_wildcard, unescape_wildcard) __all__ = ['file_open', 'get_smtp_server', 'reduce_ids', 'reduce_domain', 'grouped_slice', 'is_instance_method', 'resolve', diff --git a/trytond/tools/decimal_.py b/trytond/tools/decimal_.py index 8f4af9cf4e..c418ae9890 100644 --- a/trytond/tools/decimal_.py +++ b/trytond/tools/decimal_.py @@ -1,7 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from tokenize import tokenize, untokenize, NUMBER, NAME, OP, STRING from io import BytesIO +from tokenize import NAME, NUMBER, OP, STRING, tokenize, untokenize # code snippet taken from http://docs.python.org/library/tokenize.html diff --git a/trytond/tools/domain_inversion.py b/trytond/tools/domain_inversion.py index 64e59050df..0b7ac4534e 100644 --- a/trytond/tools/domain_inversion.py +++ b/trytond/tools/domain_inversion.py @@ -1,11 +1,11 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -import re -import operator import datetime +import operator +import re from collections import defaultdict -from functools import reduce, partial +from functools import partial, reduce def sql_like(value, pattern, ignore_case=True): diff --git a/trytond/tools/multivalue.py b/trytond/tools/multivalue.py index 921bd0b98a..9cbb9de449 100644 --- a/trytond/tools/multivalue.py +++ b/trytond/tools/multivalue.py @@ -2,7 +2,7 @@ # this repository contains the full copyright notices and license terms. from decimal import Decimal -from sql import Table, Column, Literal, Union, Null +from sql import Column, Literal, Null, Table, Union from sql.aggregate import Max from trytond import backend diff --git a/trytond/tools/string_.py b/trytond/tools/string_.py index b03d15b035..3fe34edab7 100644 --- a/trytond/tools/string_.py +++ b/trytond/tools/string_.py @@ -6,8 +6,9 @@ __all__ = ['StringMatcher', 'StringPartitioned', 'LazyString'] from warnings import warn + try: - from Levenshtein import opcodes, editops, matching_blocks, ratio, distance + from Levenshtein import distance, editops, matching_blocks, opcodes, ratio class StringMatcher: """A SequenceMatcher-like class built on the top of Levenshtein""" diff --git a/trytond/transaction.py b/trytond/transaction.py index 647c69fc70..6767e6f12b 100644 --- a/trytond/transaction.py +++ b/trytond/transaction.py @@ -4,6 +4,7 @@ import logging import time from collections import defaultdict from threading import local + from sql import Flavor from trytond.config import config @@ -65,8 +66,8 @@ class Transaction(object): started_at = None def __new__(cls, new=False): - from trytond.pool import Pool from trytond.cache import LRUDict + from trytond.pool import Pool transactions = cls._local.transactions if new or not transactions: instance = super(Transaction, cls).__new__(cls) diff --git a/trytond/url.py b/trytond/url.py index 38a54d5b18..f05ef397cd 100644 --- a/trytond/url.py +++ b/trytond/url.py @@ -62,8 +62,8 @@ class URLAccessor(object): def __get__(self, inst, cls): from trytond.model import Model - from trytond.wizard import Wizard from trytond.report import Report + from trytond.wizard import Wizard url_part = {} if issubclass(cls, Model): diff --git a/trytond/wizard/__init__.py b/trytond/wizard/__init__.py index f5b491e460..7688cc7ccc 100644 --- a/trytond/wizard/__init__.py +++ b/trytond/wizard/__init__.py @@ -1,8 +1,7 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. -from .wizard import Wizard -from .wizard import StateView, StateTransition, StateAction, StateReport -from .wizard import Button +from .wizard import ( + Button, StateAction, StateReport, StateTransition, StateView, Wizard) __all__ = ['Wizard', 'StateView', 'StateTransition', 'StateAction', 'StateReport', diff --git a/trytond/wizard/wizard.py b/trytond/wizard/wizard.py index 11b42903dd..8d7895b62b 100644 --- a/trytond/wizard/wizard.py +++ b/trytond/wizard/wizard.py @@ -5,20 +5,20 @@ __all__ = ['Wizard', 'StateView', 'StateTransition', 'StateAction', 'StateReport', 'Button'] -import json import copy +import json from trytond.i18n import gettext -from trytond.pool import Pool, PoolBase -from trytond.transaction import Transaction -from trytond.url import URLMixin -from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder from trytond.model import ModelSQL from trytond.model.exceptions import AccessError from trytond.model.fields import states_validate +from trytond.pool import Pool, PoolBase +from trytond.protocols.jsonrpc import JSONDecoder, JSONEncoder from trytond.pyson import PYSONEncoder from trytond.rpc import RPC from trytond.tools import cached_property +from trytond.transaction import Transaction +from trytond.url import URLMixin class Button(object): diff --git a/trytond/worker.py b/trytond/worker.py index 4088e2b6eb..6cb75d15c0 100644 --- a/trytond/worker.py +++ b/trytond/worker.py @@ -6,7 +6,8 @@ import random import select import signal import time -from multiprocessing import Pool as MPool, cpu_count +from multiprocessing import Pool as MPool +from multiprocessing import cpu_count from sql import Flavor diff --git a/trytond/wsgi.py b/trytond/wsgi.py index e8491ce48d..3af12edf21 100644 --- a/trytond/wsgi.py +++ b/trytond/wsgi.py @@ -8,14 +8,16 @@ import posixpath import sys import traceback import urllib.parse + try: from http import HTTPStatus except ImportError: from http import client as HTTPStatus +from werkzeug.exceptions import HTTPException, InternalServerError, abort +from werkzeug.routing import BaseConverter, Map, Rule from werkzeug.wrappers import Response -from werkzeug.routing import Map, Rule, BaseConverter -from werkzeug.exceptions import abort, HTTPException, InternalServerError + try: from werkzeug.middleware.proxy_fix import ProxyFix @@ -37,8 +39,8 @@ except ImportError: import wrapt from trytond.config import config -from trytond.protocols.wrappers import Request from trytond.protocols.jsonrpc import JSONProtocol +from trytond.protocols.wrappers import Request from trytond.protocols.xmlrpc import XMLProtocol from trytond.status import processing from trytond.tools import resolve @@ -250,5 +252,5 @@ if config.has_section('wsgi middleware'): kwargs = eval(config.get(section, 'kwargs')) app.wsgi_app = Middleware(app.wsgi_app, *args, **kwargs) -import trytond.protocols.dispatcher # noqa: E402,F401 import trytond.bus # noqa: E402,F401 +import trytond.protocols.dispatcher # noqa: E402,F401