diff --git a/setup.py b/setup.py index f4fbefabc..adf182090 100644 --- a/setup.py +++ b/setup.py @@ -9,8 +9,7 @@ from distutils.command.sdist import sdist from distutils.errors import CompileError from distutils.spawn import find_executable -from setuptools import find_packages -from setuptools import setup +from setuptools import find_packages, setup from setuptools.command.install_lib import install_lib as _install_lib local_cfg = None diff --git a/tests/admin_pages/test_all.py b/tests/admin_pages/test_all.py index 79c1722c3..6c4e918fe 100644 --- a/tests/admin_pages/test_all.py +++ b/tests/admin_pages/test_all.py @@ -3,10 +3,7 @@ import os import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount diff --git a/tests/admin_pages/test_api_access.py b/tests/admin_pages/test_api_access.py index 4c5772134..522c05e78 100644 --- a/tests/admin_pages/test_api_access.py +++ b/tests/admin_pages/test_api_access.py @@ -15,10 +15,7 @@ # along with this program; if not, see . import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.api_access import ApiAccess from wcs.qommon.http_request import HTTPRequest diff --git a/tests/admin_pages/test_block.py b/tests/admin_pages/test_block.py index 29fe89b65..f2afb06f6 100644 --- a/tests/admin_pages/test_block.py +++ b/tests/admin_pages/test_block.py @@ -8,10 +8,7 @@ except ImportError: lasso = None import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields @@ -19,8 +16,7 @@ from wcs.blocks import BlockDef from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest -from .test_all import create_role -from .test_all import create_superuser +from .test_all import create_role, create_superuser def pytest_generate_tests(metafunc): diff --git a/tests/admin_pages/test_card.py b/tests/admin_pages/test_card.py index 6ab5b2b1e..43e4d1a7a 100644 --- a/tests/admin_pages/test_card.py +++ b/tests/admin_pages/test_card.py @@ -3,10 +3,7 @@ import re import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.admin.settings import UserFieldsFormDef @@ -14,11 +11,8 @@ from wcs.carddef import CardDef from wcs.categories import CardDefCategory from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowVariablesFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef +from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef, WorkflowVariablesFieldsFormDef from .test_all import create_superuser diff --git a/tests/admin_pages/test_carddefcategory.py b/tests/admin_pages/test_carddefcategory.py index 34736099f..19f5936b9 100644 --- a/tests/admin_pages/test_carddefcategory.py +++ b/tests/admin_pages/test_carddefcategory.py @@ -1,10 +1,7 @@ # -*- coding: utf-8 -*- import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.carddef import CardDef from wcs.categories import CardDefCategory diff --git a/tests/admin_pages/test_category.py b/tests/admin_pages/test_category.py index a6a8cec4f..2cdcd752a 100644 --- a/tests/admin_pages/test_category.py +++ b/tests/admin_pages/test_category.py @@ -1,10 +1,7 @@ # -*- coding: utf-8 -*- import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.categories import Category from wcs.formdef import FormDef diff --git a/tests/admin_pages/test_datasource.py b/tests/admin_pages/test_datasource.py index 6ea09a70b..2c265b0e4 100644 --- a/tests/admin_pages/test_datasource.py +++ b/tests/admin_pages/test_datasource.py @@ -13,11 +13,7 @@ except ImportError: lasso = None import pytest -from utilities import HttpRequestsMocking -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import HttpRequestsMocking, clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields @@ -26,8 +22,7 @@ from wcs.carddef import CardDef from wcs.data_sources import NamedDataSource from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef from .test_all import create_superuser @@ -347,8 +342,7 @@ def test_data_sources_view(pub): fields.ItemField(id='1', type='item', label='item', data_source={'type': data_source.slug}) ) - from wcs.wf.form import FormWorkflowStatusItem - from wcs.wf.form import WorkflowFormFieldsFormDef + from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef baz_status = workflow.add_status(name='baz') display_form = FormWorkflowStatusItem() diff --git a/tests/admin_pages/test_form.py b/tests/admin_pages/test_form.py index 9c2920341..97bd184e1 100644 --- a/tests/admin_pages/test_form.py +++ b/tests/admin_pages/test_form.py @@ -10,10 +10,7 @@ import xml.etree.ElementTree as ET import mock import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields @@ -26,8 +23,7 @@ from wcs.qommon.http_request import HTTPRequest from wcs.workflows import Workflow from wcs.wscalls import NamedWsCall -from .test_all import create_role -from .test_all import create_superuser +from .test_all import create_role, create_superuser def pytest_generate_tests(metafunc): diff --git a/tests/admin_pages/test_logged_errors.py b/tests/admin_pages/test_logged_errors.py index 3db1ff565..e598c6905 100644 --- a/tests/admin_pages/test_logged_errors.py +++ b/tests/admin_pages/test_logged_errors.py @@ -3,10 +3,7 @@ import datetime import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.carddef import CardDef from wcs.formdef import FormDef diff --git a/tests/admin_pages/test_role.py b/tests/admin_pages/test_role.py index c32e83790..d4fb401a9 100644 --- a/tests/admin_pages/test_role.py +++ b/tests/admin_pages/test_role.py @@ -1,10 +1,7 @@ # -*- coding: utf-8 -*- import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest diff --git a/tests/admin_pages/test_settings.py b/tests/admin_pages/test_settings.py index 0ba938290..61a614aa1 100644 --- a/tests/admin_pages/test_settings.py +++ b/tests/admin_pages/test_settings.py @@ -14,25 +14,20 @@ except ImportError: import mock import pytest from quixote.http_request import Upload as QuixoteUpload -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields from wcs.api_access import ApiAccess from wcs.carddef import CardDef -from wcs.categories import CardDefCategory -from wcs.categories import Category +from wcs.categories import CardDefCategory, Category from wcs.data_sources import NamedDataSource from wcs.formdef import FormDef from wcs.qommon.form import UploadedFile from wcs.qommon.http_request import HTTPRequest from wcs.qommon.template import get_current_theme from wcs.wf.export_to_model import ExportToModel -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import Workflow +from wcs.workflows import CommentableWorkflowStatusItem, Workflow from wcs.wscalls import NamedWsCall from .test_all import create_superuser diff --git a/tests/admin_pages/test_user.py b/tests/admin_pages/test_user.py index 8d73a59d7..efb6f35c6 100644 --- a/tests/admin_pages/test_user.py +++ b/tests/admin_pages/test_user.py @@ -1,18 +1,14 @@ # -*- coding: utf-8 -*- import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.admin.settings import UserFieldsFormDef from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount -from .test_all import create_role -from .test_all import create_superuser +from .test_all import create_role, create_superuser def pytest_generate_tests(metafunc): diff --git a/tests/admin_pages/test_workflow.py b/tests/admin_pages/test_workflow.py index 75daa5bf9..b1c9a4313 100644 --- a/tests/admin_pages/test_workflow.py +++ b/tests/admin_pages/test_workflow.py @@ -12,10 +12,7 @@ except ImportError: lasso = None import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields @@ -24,27 +21,27 @@ from wcs.formdef import FormDef from wcs.qommon.errors import ConnectionError from wcs.qommon.http_request import HTTPRequest from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem -from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem -from wcs.wf.create_formdata import Mapping +from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping from wcs.wf.dispatch import DispatchWorkflowStatusItem from wcs.wf.edit_carddata import EditCarddataWorkflowStatusItem from wcs.wf.export_to_model import ExportToModel from wcs.wf.external_workflow import ExternalWorkflowGlobalAction -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem from wcs.wf.wscall import WebserviceCallStatusItem -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import DisplayMessageWorkflowStatusItem -from wcs.workflows import JumpOnSubmitWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowCriticalityLevel -from wcs.workflows import WorkflowVariablesFieldsFormDef -from wcs.workflows import item_classes +from wcs.workflows import ( + ChoiceWorkflowStatusItem, + CommentableWorkflowStatusItem, + DisplayMessageWorkflowStatusItem, + JumpOnSubmitWorkflowStatusItem, + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowCriticalityLevel, + WorkflowVariablesFieldsFormDef, + item_classes, +) from .test_all import create_superuser diff --git a/tests/admin_pages/test_wscall.py b/tests/admin_pages/test_wscall.py index c80028220..9e51e1109 100644 --- a/tests/admin_pages/test_wscall.py +++ b/tests/admin_pages/test_wscall.py @@ -4,10 +4,7 @@ import io import xml.etree.ElementTree as ET import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs.qommon.http_request import HTTPRequest diff --git a/tests/api/test_access.py b/tests/api/test_access.py index 2509c56a3..fd0b32c90 100644 --- a/tests/api/test_access.py +++ b/tests/api/test_access.py @@ -11,14 +11,9 @@ import urllib.parse import pytest from django.utils.encoding import force_bytes from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login -from wcs.api_utils import get_secret_and_orig -from wcs.api_utils import is_url_signed -from wcs.api_utils import sign_url +from wcs.api_utils import get_secret_and_orig, is_url_signed, sign_url from wcs.qommon.errors import AccessForbiddenError from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount diff --git a/tests/api/test_all.py b/tests/api/test_all.py index 6416a60cc..c9287f5f8 100644 --- a/tests/api/test_all.py +++ b/tests/api/test_all.py @@ -7,9 +7,7 @@ import os import mock import pytest from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs.api_utils import sign_url from wcs.formdef import FormDef diff --git a/tests/api/test_carddef.py b/tests/api/test_carddef.py index 551f2570d..2fac97de1 100644 --- a/tests/api/test_carddef.py +++ b/tests/api/test_carddef.py @@ -11,12 +11,9 @@ import mock import pytest from django.utils.encoding import force_text from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app -from wcs import fields -from wcs import qommon +from wcs import fields, qommon from wcs.api_utils import sign_url from wcs.carddef import CardDef from wcs.categories import CardDefCategory @@ -24,8 +21,7 @@ from wcs.data_sources import NamedDataSource from wcs.qommon.afterjobs import AfterJob from wcs.qommon.http_request import HTTPRequest from wcs.qommon.upload_storage import PicklableUpload -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef from .utils import sign_uri diff --git a/tests/api/test_category.py b/tests/api/test_category.py index e1b024ce0..00d7b4dfe 100644 --- a/tests/api/test_category.py +++ b/tests/api/test_category.py @@ -4,9 +4,7 @@ import os import pytest from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs.categories import Category from wcs.formdef import FormDef diff --git a/tests/api/test_custom_view.py b/tests/api/test_custom_view.py index 0c96d80ec..1dc91fa17 100644 --- a/tests/api/test_custom_view.py +++ b/tests/api/test_custom_view.py @@ -7,9 +7,7 @@ import zipfile import pytest from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs import fields from wcs.carddef import CardDef diff --git a/tests/api/test_formdata.py b/tests/api/test_formdata.py index 4fe300dec..3aa1eb625 100644 --- a/tests/api/test_formdata.py +++ b/tests/api/test_formdata.py @@ -12,10 +12,7 @@ import zipfile import pytest from django.utils.encoding import force_bytes from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.blocks import BlockDef @@ -26,9 +23,7 @@ from wcs.qommon import ods from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount from wcs.qommon.upload_storage import PicklableUpload -from wcs.workflows import EditableWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import EditableWorkflowStatusItem, Workflow, WorkflowBackofficeFieldsFormDef from .utils import sign_uri diff --git a/tests/api/test_formdef.py b/tests/api/test_formdef.py index 529cb1a48..fe34f4c92 100644 --- a/tests/api/test_formdef.py +++ b/tests/api/test_formdef.py @@ -12,20 +12,16 @@ import mock import pytest from django.utils.encoding import force_text from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app -from wcs import fields -from wcs import qommon +from wcs import fields, qommon from wcs.api_utils import sign_url from wcs.data_sources import NamedDataSource from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest from wcs.qommon.upload_storage import PicklableUpload from wcs.wf.jump import JumpWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef from .utils import sign_uri diff --git a/tests/api/test_user.py b/tests/api/test_user.py index c4fd95063..27d44f310 100644 --- a/tests/api/test_user.py +++ b/tests/api/test_user.py @@ -5,17 +5,14 @@ import os import pytest from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs import fields from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount from wcs.qommon.upload_storage import PicklableUpload -from wcs.workflows import Workflow -from wcs.workflows import WorkflowVariablesFieldsFormDef +from wcs.workflows import Workflow, WorkflowVariablesFieldsFormDef from .utils import sign_uri diff --git a/tests/api/test_utils.py b/tests/api/test_utils.py index 9e32d1a11..00503a7bf 100644 --- a/tests/api/test_utils.py +++ b/tests/api/test_utils.py @@ -1,8 +1,6 @@ import pytest -from quixote import cleanup -from quixote import get_response -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from quixote import cleanup, get_response +from utilities import clean_temporary_pub, create_temporary_pub from wcs import sessions from wcs.api_utils import get_query_flag diff --git a/tests/api/test_workflow.py b/tests/api/test_workflow.py index 7b67a89df..f431747ba 100644 --- a/tests/api/test_workflow.py +++ b/tests/api/test_workflow.py @@ -4,9 +4,7 @@ import os import pytest from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs import fields from wcs.formdef import FormDef diff --git a/tests/backoffice_pages/test_all.py b/tests/backoffice_pages/test_all.py index 3ed1fbe52..23fc24ed5 100644 --- a/tests/backoffice_pages/test_all.py +++ b/tests/backoffice_pages/test_all.py @@ -13,10 +13,7 @@ import mock import pytest from quixote import get_publisher from quixote.http_request import Upload as QuixoteUpload -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login import wcs.qommon.storage as st from wcs import fields @@ -31,24 +28,24 @@ from wcs.qommon.upload_storage import PicklableUpload from wcs.roles import logged_users_role from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem -from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem -from wcs.wf.create_formdata import Mapping +from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping from wcs.wf.export_to_model import ExportToModel -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem from wcs.wf.resubmit import ResubmitWorkflowStatusItem from wcs.wf.wscall import WebserviceCallStatusItem -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import DisplayMessageWorkflowStatusItem -from wcs.workflows import EditableWorkflowStatusItem -from wcs.workflows import JumpOnSubmitWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowCriticalityLevel +from wcs.workflows import ( + ChoiceWorkflowStatusItem, + CommentableWorkflowStatusItem, + DisplayMessageWorkflowStatusItem, + EditableWorkflowStatusItem, + JumpOnSubmitWorkflowStatusItem, + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowCriticalityLevel, +) from wcs.wscalls import NamedWsCall @@ -1757,8 +1754,7 @@ def test_backoffice_statistics_with_no_formdefs(pub): create_environment(pub) FormDef.wipe() if pub.is_using_postgresql(): - from wcs.sql import drop_global_views - from wcs.sql import get_connection_and_cursor + from wcs.sql import drop_global_views, get_connection_and_cursor conn, cur = get_connection_and_cursor() drop_global_views(conn, cur) @@ -3147,8 +3143,7 @@ def test_management_views_with_no_formdefs(pub): create_environment(pub) FormDef.wipe() - from wcs.sql import drop_global_views - from wcs.sql import get_connection_and_cursor + from wcs.sql import drop_global_views, get_connection_and_cursor conn, cur = get_connection_and_cursor() drop_global_views(conn, cur) diff --git a/tests/backoffice_pages/test_carddata.py b/tests/backoffice_pages/test_carddata.py index 829a5ad15..bb7bd9c21 100644 --- a/tests/backoffice_pages/test_carddata.py +++ b/tests/backoffice_pages/test_carddata.py @@ -4,10 +4,7 @@ import os import uuid import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields @@ -17,8 +14,7 @@ from wcs.categories import CardDefCategory from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest from wcs.wf.wscall import WebserviceCallStatusItem -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import Workflow +from wcs.workflows import ChoiceWorkflowStatusItem, Workflow from .test_all import create_user diff --git a/tests/backoffice_pages/test_custom_view.py b/tests/backoffice_pages/test_custom_view.py index 58a6ea11f..120ee650c 100644 --- a/tests/backoffice_pages/test_custom_view.py +++ b/tests/backoffice_pages/test_custom_view.py @@ -4,10 +4,7 @@ import re import pytest from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.carddef import CardDef @@ -15,8 +12,7 @@ from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount -from .test_all import create_superuser -from .test_all import create_user +from .test_all import create_superuser, create_user def pytest_generate_tests(metafunc): diff --git a/tests/backoffice_pages/test_export.py b/tests/backoffice_pages/test_export.py index 3ddea5af6..94898ad1a 100644 --- a/tests/backoffice_pages/test_export.py +++ b/tests/backoffice_pages/test_export.py @@ -9,10 +9,7 @@ import xml.etree.ElementTree as ET import zipfile import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.blocks import BlockDef diff --git a/tests/backoffice_pages/test_submission.py b/tests/backoffice_pages/test_submission.py index 57b159b18..453e2984c 100644 --- a/tests/backoffice_pages/test_submission.py +++ b/tests/backoffice_pages/test_submission.py @@ -6,10 +6,7 @@ import time import urllib.parse import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.api_utils import sign_url @@ -19,11 +16,9 @@ from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem from wcs.wf.dispatch import DispatchWorkflowStatusItem from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef -from .test_all import create_superuser -from .test_all import create_user +from .test_all import create_superuser, create_user def pytest_generate_tests(metafunc): diff --git a/tests/conftest.py b/tests/conftest.py index a663d5ac5..06c24e236 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,9 +2,7 @@ import configparser import os import pytest -from utilities import EmailsMocking -from utilities import HttpRequestsMocking -from utilities import SMSMocking +from utilities import EmailsMocking, HttpRequestsMocking, SMSMocking def site_options(request, pub, section, variable, value): diff --git a/tests/form_pages/test_all.py b/tests/form_pages/test_all.py index 467001215..4221a642f 100644 --- a/tests/form_pages/test_all.py +++ b/tests/form_pages/test_all.py @@ -12,21 +12,15 @@ import zipfile import mock import pytest -from webtest import Hidden -from webtest import Radio -from webtest import Upload +from webtest import Hidden, Radio, Upload try: from PIL import Image except ImportError: Image = None -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from django.utils.encoding import force_bytes, force_text +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.blocks import BlockDef @@ -42,22 +36,22 @@ from wcs.qommon.misc import ConnectionError from wcs.roles import logged_users_role from wcs.tracking_code import TrackingCode from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem -from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem -from wcs.wf.create_formdata import Mapping -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem from wcs.wf.resubmit import ResubmitWorkflowStatusItem -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import DisplayMessageWorkflowStatusItem -from wcs.workflows import EditableWorkflowStatusItem -from wcs.workflows import JumpOnSubmitWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowVariablesFieldsFormDef +from wcs.workflows import ( + ChoiceWorkflowStatusItem, + CommentableWorkflowStatusItem, + DisplayMessageWorkflowStatusItem, + EditableWorkflowStatusItem, + JumpOnSubmitWorkflowStatusItem, + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowVariablesFieldsFormDef, +) def assert_equal_zip(stream1, stream2): diff --git a/tests/form_pages/test_block.py b/tests/form_pages/test_block.py index 36b894c9a..6262bd065 100644 --- a/tests/form_pages/test_block.py +++ b/tests/form_pages/test_block.py @@ -5,10 +5,7 @@ import json import mock import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields @@ -16,8 +13,7 @@ from wcs.blocks import BlockDef from wcs.categories import Category from wcs.data_sources import NamedDataSource from wcs.formdef import FormDef -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.workflows import Workflow from .test_all import create_user diff --git a/tests/form_pages/test_formdata.py b/tests/form_pages/test_formdata.py index 8a00dbbfb..0a6e907df 100644 --- a/tests/form_pages/test_formdata.py +++ b/tests/form_pages/test_formdata.py @@ -13,32 +13,27 @@ import mock import pytest from django.utils.encoding import force_bytes from quixote.http_request import Upload as QuixoteUpload -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login -from webtest import Hidden -from webtest import Upload +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login +from webtest import Hidden, Upload from wcs import fields from wcs.data_sources import NamedDataSource from wcs.formdef import FormDef from wcs.qommon.form import UploadedFile from wcs.wf.attachment import AddAttachmentWorkflowStatusItem -from wcs.wf.export_to_model import ExportToModel -from wcs.wf.export_to_model import transform_to_pdf -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.export_to_model import ExportToModel, transform_to_pdf +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import DisplayMessageWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import ( + ChoiceWorkflowStatusItem, + DisplayMessageWorkflowStatusItem, + Workflow, + WorkflowBackofficeFieldsFormDef, +) from wcs.wscalls import NamedWsCall -from .test_all import create_user -from .test_all import create_user_and_admin +from .test_all import create_user, create_user_and_admin def pytest_generate_tests(metafunc): diff --git a/tests/test_auth_pages.py b/tests/test_auth_pages.py index 4e1350756..d6b34c89f 100644 --- a/tests/test_auth_pages.py +++ b/tests/test_auth_pages.py @@ -1,8 +1,5 @@ import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.qommon.ident.password_accounts import PasswordAccount diff --git a/tests/test_carddef.py b/tests/test_carddef.py index e9114cbea..02eac3d8b 100644 --- a/tests/test_carddef.py +++ b/tests/test_carddef.py @@ -2,13 +2,11 @@ import io import xml.etree.ElementTree as ET import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs.carddef import CardDef from wcs.categories import CardDefCategory -from wcs.fields import ItemField -from wcs.fields import StringField +from wcs.fields import ItemField, StringField from wcs.qommon.http_request import HTTPRequest from wcs.qommon.misc import indent_xml as indent from wcs.qommon.template import Template diff --git a/tests/test_categories.py b/tests/test_categories.py index 97f9a3031..5dd0fc6c6 100644 --- a/tests/test_categories.py +++ b/tests/test_categories.py @@ -7,8 +7,7 @@ import pytest from quixote import cleanup from utilities import create_temporary_pub -from wcs.categories import CardDefCategory -from wcs.categories import Category +from wcs.categories import CardDefCategory, Category def setup_module(module): diff --git a/tests/test_convert_to_sql.py b/tests/test_convert_to_sql.py index d87acdf81..124a36144 100644 --- a/tests/test_convert_to_sql.py +++ b/tests/test_convert_to_sql.py @@ -4,13 +4,10 @@ import random import psycopg2 import pytest -from django.core.management import call_command -from django.core.management import get_commands +from django.core.management import call_command, get_commands from django.core.management.base import CommandError from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import force_connections_close +from utilities import clean_temporary_pub, create_temporary_pub, force_connections_close from wcs.fields import BoolField from wcs.formdef import FormDef diff --git a/tests/test_ctl.py b/tests/test_ctl.py index 46055fe08..49bd9ebf4 100644 --- a/tests/test_ctl.py +++ b/tests/test_ctl.py @@ -6,10 +6,8 @@ from email.mime.text import MIMEText import psycopg2 import pytest -from django.core.management import CommandError -from django.core.management import call_command -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from django.core.management import CommandError, call_command +from utilities import clean_temporary_pub, create_temporary_pub import wcs.qommon.ctl from wcs.ctl.delete_tenant import CmdDeleteTenant @@ -17,19 +15,16 @@ from wcs.ctl.management.commands.runscript import Command as CmdRunScript from wcs.ctl.management.commands.trigger_jumps import select_and_jump_formdata from wcs.ctl.rebuild_indexes import rebuild_vhost_indexes from wcs.ctl.wipe_data import CmdWipeData -from wcs.fields import EmailField -from wcs.fields import StringField +from wcs.fields import EmailField, StringField from wcs.formdef import FormDef from wcs.qommon.afterjobs import AfterJob from wcs.qommon.management.commands.collectstatic import Command as CmdCollectStatic from wcs.qommon.management.commands.makemessages import Command as CmdMakeMessages from wcs.qommon.management.commands.migrate import Command as CmdMigrate from wcs.qommon.management.commands.migrate_schemas import Command as CmdMigrateSchemas -from wcs.sql import cleanup_connection -from wcs.sql import get_connection_and_cursor +from wcs.sql import cleanup_connection, get_connection_and_cursor from wcs.wf.jump import JumpWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowStatusItem +from wcs.workflows import Workflow, WorkflowStatusItem @pytest.fixture diff --git a/tests/test_datasource.py b/tests/test_datasource.py index 21e92aee6..9b8b7ce2a 100644 --- a/tests/test_datasource.py +++ b/tests/test_datasource.py @@ -10,17 +10,12 @@ import urllib.parse import mock import pytest from quixote import cleanup -from test_widgets import MockHtmlForm -from test_widgets import mock_form_submission -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from test_widgets import MockHtmlForm, mock_form_submission +from utilities import clean_temporary_pub, create_temporary_pub -from wcs import data_sources -from wcs import fields -from wcs.data_sources import NamedDataSource -from wcs.data_sources import register_data_source_function -from wcs.qommon.form import Form -from wcs.qommon.form import get_request +from wcs import data_sources, fields +from wcs.data_sources import NamedDataSource, register_data_source_function +from wcs.qommon.form import Form, get_request from wcs.qommon.http_request import HTTPRequest diff --git a/tests/test_datasource_chrono.py b/tests/test_datasource_chrono.py index 6f0a1721c..6e5769823 100644 --- a/tests/test_datasource_chrono.py +++ b/tests/test_datasource_chrono.py @@ -10,9 +10,7 @@ from quixote import cleanup from utilities import create_temporary_pub from wcs import fields -from wcs.data_sources import NamedDataSource -from wcs.data_sources import build_agenda_datasources -from wcs.data_sources import collect_agenda_data +from wcs.data_sources import NamedDataSource, build_agenda_datasources, collect_agenda_data from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest from wcs.qommon.misc import ConnectionError diff --git a/tests/test_ezt.py b/tests/test_ezt.py index c2bd37c5c..15955c5b7 100644 --- a/tests/test_ezt.py +++ b/tests/test_ezt.py @@ -4,16 +4,16 @@ import os import pytest from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app -from wcs.qommon.ezt import ArgCountSyntaxError -from wcs.qommon.ezt import Template -from wcs.qommon.ezt import UnclosedBlocksError -from wcs.qommon.ezt import UnmatchedElseError -from wcs.qommon.ezt import UnmatchedEndError -from wcs.qommon.ezt import _re_parse +from wcs.qommon.ezt import ( + ArgCountSyntaxError, + Template, + UnclosedBlocksError, + UnmatchedElseError, + UnmatchedEndError, + _re_parse, +) from wcs.scripts import ScriptsSubstitutionProxy diff --git a/tests/test_fc_auth.py b/tests/test_fc_auth.py index a715e8c10..3ecee4509 100644 --- a/tests/test_fc_auth.py +++ b/tests/test_fc_auth.py @@ -3,12 +3,9 @@ import json import urllib.parse import mock -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import cleanup -from quixote import get_session_manager -from utilities import create_temporary_pub -from utilities import get_app +from django.utils.encoding import force_bytes, force_text +from quixote import cleanup, get_session_manager +from utilities import create_temporary_pub, get_app PROFILE = { 'fields': [ diff --git a/tests/test_fields.py b/tests/test_fields.py index 04717028d..a4aff58e7 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -7,8 +7,7 @@ import pytest from bs4 import BeautifulSoup from quixote import cleanup from quixote.http_request import Upload -from utilities import MockSubstitutionVariables -from utilities import create_temporary_pub +from utilities import MockSubstitutionVariables, create_temporary_pub from wcs import fields from wcs.formdef import FormDef diff --git a/tests/test_formdata.py b/tests/test_formdata.py index 3612912d9..328b8d428 100644 --- a/tests/test_formdata.py +++ b/tests/test_formdata.py @@ -8,12 +8,9 @@ import mock import pytest from quixote import get_publisher from quixote.http_request import Upload -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub -from wcs import fields -from wcs import formdef -from wcs import sessions +from wcs import fields, formdef, sessions from wcs.blocks import BlockDef from wcs.carddef import CardDef from wcs.categories import Category @@ -27,10 +24,12 @@ from wcs.qommon.upload_storage import PicklableUpload from wcs.variables import LazyFormData from wcs.wf.register_comment import JournalEvolutionPart from wcs.wf.wscall import JournalWsCallErrorPart -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowCriticalityLevel -from wcs.workflows import WorkflowStatusItem +from wcs.workflows import ( + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowCriticalityLevel, + WorkflowStatusItem, +) def pytest_generate_tests(metafunc): diff --git a/tests/test_formdef.py b/tests/test_formdef.py index 976f0b987..a9449fd45 100644 --- a/tests/test_formdef.py +++ b/tests/test_formdef.py @@ -11,25 +11,16 @@ import time import pytest from django.utils.encoding import force_bytes from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs import fields from wcs.blocks import BlockDef -from wcs.fields import DateField -from wcs.fields import FileField -from wcs.fields import ItemField -from wcs.fields import PageField -from wcs.fields import StringField -from wcs.formdef import FormDef -from wcs.formdef import get_formdefs_of_all_kinds +from wcs.fields import DateField, FileField, ItemField, PageField, StringField +from wcs.formdef import FormDef, get_formdefs_of_all_kinds from wcs.qommon.http_request import HTTPRequest from wcs.qommon.upload_storage import PicklableUpload -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef -from wcs.workflows import AttachmentEvolutionPart -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef +from wcs.workflows import AttachmentEvolutionPart, Workflow, WorkflowBackofficeFieldsFormDef def pytest_generate_tests(metafunc): @@ -504,10 +495,8 @@ def test_unused_file_removal_job(pub): def test_get_formdefs_of_all_kinds(pub): from wcs.admin.settings import UserFieldsFormDef from wcs.carddef import CardDef - from wcs.wf.form import FormWorkflowStatusItem - from wcs.wf.form import WorkflowFormFieldsFormDef - from wcs.workflows import WorkflowBackofficeFieldsFormDef - from wcs.workflows import WorkflowVariablesFieldsFormDef + from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef + from wcs.workflows import WorkflowBackofficeFieldsFormDef, WorkflowVariablesFieldsFormDef BlockDef.wipe() FormDef.wipe() diff --git a/tests/test_formdef_import.py b/tests/test_formdef_import.py index 597f6d693..ad7b2008b 100644 --- a/tests/test_formdef_import.py +++ b/tests/test_formdef_import.py @@ -11,9 +11,7 @@ from utilities import create_temporary_pub from wcs.carddef import CardDef from wcs.categories import Category -from wcs.formdef import FormDef -from wcs.formdef import FormdefImportError -from wcs.formdef import fields +from wcs.formdef import FormDef, FormdefImportError, fields from wcs.qommon.misc import indent_xml as indent from wcs.workflows import Workflow diff --git a/tests/test_hobo.py b/tests/test_hobo.py index fb076b96b..6723728f1 100644 --- a/tests/test_hobo.py +++ b/tests/test_hobo.py @@ -12,11 +12,9 @@ import urllib.parse import mock import pytest from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub -from wcs import fields -from wcs import sql +from wcs import fields, sql from wcs.ctl.check_hobos import CmdCheckHobos from wcs.publisher import WcsPublisher from wcs.qommon import force_str diff --git a/tests/test_mail_templates.py b/tests/test_mail_templates.py index 419767f85..dac434ceb 100644 --- a/tests/test_mail_templates.py +++ b/tests/test_mail_templates.py @@ -8,10 +8,7 @@ import xml.etree.ElementTree as ET import pytest from django.utils.encoding import force_bytes from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs.fields import FileField @@ -20,8 +17,7 @@ from wcs.mail_templates import MailTemplate from wcs.qommon.http_request import HTTPRequest from wcs.qommon.ident.password_accounts import PasswordAccount from wcs.qommon.upload_storage import PicklableUpload -from wcs.workflows import SendmailWorkflowStatusItem -from wcs.workflows import Workflow +from wcs.workflows import SendmailWorkflowStatusItem, Workflow def setup_module(module): diff --git a/tests/test_misc.py b/tests/test_misc.py index 44a174252..d3d5e07b0 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -15,31 +15,29 @@ import pytest from django.core.cache import cache from django.utils import translation from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app import wcs.api # workaround against circular dependencies :/ import wcs.qommon.storage from wcs.admin.settings import FileTypesDirectory from wcs.fields import StringField -from wcs.qommon import evalutils -from wcs.qommon import force_str +from wcs.qommon import evalutils, force_str from wcs.qommon.backoffice.listing import pagination_links from wcs.qommon.emails import docutils from wcs.qommon.emails import email as send_email from wcs.qommon.form import FileSizeWidget from wcs.qommon.http_request import HTTPRequest -from wcs.qommon.humantime import humanduration2seconds -from wcs.qommon.humantime import seconds2humanduration -from wcs.qommon.misc import date_format -from wcs.qommon.misc import ellipsize -from wcs.qommon.misc import format_time -from wcs.qommon.misc import get_as_datetime -from wcs.qommon.misc import json_loads -from wcs.qommon.misc import normalize_geolocation -from wcs.qommon.misc import parse_isotime -from wcs.qommon.misc import simplify +from wcs.qommon.humantime import humanduration2seconds, seconds2humanduration +from wcs.qommon.misc import ( + date_format, + ellipsize, + format_time, + get_as_datetime, + json_loads, + normalize_geolocation, + parse_isotime, + simplify, +) from wcs.qommon.upload_storage import PicklableUpload from wcs.scripts import Script from wcs.wf.jump import JumpWorkflowStatusItem diff --git a/tests/test_prefill.py b/tests/test_prefill.py index a23e34762..07de3cfc0 100644 --- a/tests/test_prefill.py +++ b/tests/test_prefill.py @@ -2,8 +2,7 @@ import datetime import shutil import pytest -from quixote import cleanup -from quixote import get_request +from quixote import cleanup, get_request from utilities import create_temporary_pub from wcs import fields diff --git a/tests/test_register.py b/tests/test_register.py index f7f57b1fe..761e84888 100644 --- a/tests/test_register.py +++ b/tests/test_register.py @@ -6,9 +6,7 @@ import shutil import pytest from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs.qommon import force_str from wcs.qommon.http_request import HTTPRequest diff --git a/tests/test_role.py b/tests/test_role.py index 3a93921f4..3c4f36f4f 100644 --- a/tests/test_role.py +++ b/tests/test_role.py @@ -3,8 +3,7 @@ import pickle from quixote import get_publisher -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs.roles import get_user_roles diff --git a/tests/test_rootdirectory.py b/tests/test_rootdirectory.py index ed27938f6..04fb25ec2 100644 --- a/tests/test_rootdirectory.py +++ b/tests/test_rootdirectory.py @@ -4,8 +4,7 @@ import sys import pytest from quixote import cleanup -from utilities import create_temporary_pub -from utilities import get_app +from utilities import create_temporary_pub, get_app import wcs.forms.root from wcs import formdef diff --git a/tests/test_saml_auth.py b/tests/test_saml_auth.py index d59c5da70..082e27dcc 100644 --- a/tests/test_saml_auth.py +++ b/tests/test_saml_auth.py @@ -10,20 +10,14 @@ except ImportError: lasso = None import pytest -from quixote import cleanup -from quixote import get_session -from quixote import get_session_manager +from quixote import cleanup, get_session, get_session_manager from quixote.errors import RequestError from test_hobo_notify import PROFILE -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app -from wcs.qommon import sessions -from wcs.qommon import x509utils +from wcs.qommon import sessions, x509utils from wcs.qommon.http_request import HTTPRequest -from wcs.qommon.ident.idp import AdminIDPDir -from wcs.qommon.ident.idp import MethodAdminDirectory +from wcs.qommon.ident.idp import AdminIDPDir, MethodAdminDirectory from wcs.qommon.misc import get_lasso_server from wcs.qommon.saml2 import Saml2Directory diff --git a/tests/test_sessions.py b/tests/test_sessions.py index 133f52c6e..c13d310ec 100644 --- a/tests/test_sessions.py +++ b/tests/test_sessions.py @@ -5,10 +5,7 @@ import time import pytest from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs import fields from wcs.formdef import FormDef diff --git a/tests/test_snapshots.py b/tests/test_snapshots.py index 1f31fd398..111dd2267 100644 --- a/tests/test_snapshots.py +++ b/tests/test_snapshots.py @@ -4,13 +4,9 @@ import shutil import xml.etree.ElementTree as ET import pytest -from admin_pages.test_all import create_role -from admin_pages.test_all import create_superuser +from admin_pages.test_all import create_role, create_superuser from quixote.http_request import Upload -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from wcs.blocks import BlockDef from wcs.carddef import CardDef @@ -20,8 +16,7 @@ from wcs.formdef import FormDef from wcs.qommon.form import UploadedFile from wcs.qommon.misc import localstrftime from wcs.wf.export_to_model import ExportToModel -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.workflows import Workflow from wcs.wscalls import NamedWsCall diff --git a/tests/test_sql.py b/tests/test_sql.py index 9fd609074..0feb50791 100644 --- a/tests/test_sql.py +++ b/tests/test_sql.py @@ -13,21 +13,16 @@ import time import pytest from django.core.management import call_command from quixote import cleanup -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub import wcs.qommon.storage as st -from wcs import fields -from wcs import publisher -from wcs import sql +from wcs import fields, publisher, sql from wcs.formdata import Evolution from wcs.formdef import FormDef from wcs.qommon import force_str from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowCriticalityLevel +from wcs.workflows import CommentableWorkflowStatusItem, Workflow, WorkflowCriticalityLevel postgresql = pytest.mark.postgresql diff --git a/tests/test_storage.py b/tests/test_storage.py index 9bdcceaf6..706e96a9b 100644 --- a/tests/test_storage.py +++ b/tests/test_storage.py @@ -11,8 +11,7 @@ from utilities import create_temporary_pub import wcs.qommon.storage as st from wcs.carddef import CardDef from wcs.formdef import FormDef -from wcs.qommon.storage import StorableObject -from wcs.qommon.storage import cache_umask +from wcs.qommon.storage import StorableObject, cache_umask def setup_module(module): diff --git a/tests/test_templates.py b/tests/test_templates.py index 8d73cc4ff..2c3509a4e 100644 --- a/tests/test_templates.py +++ b/tests/test_templates.py @@ -13,15 +13,13 @@ except ImportError: from django.test import override_settings from django.utils.timezone import now -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs import fields from wcs.formdef import FormDef from wcs.qommon.http_request import HTTPRequest from wcs.qommon.substitution import CompatibilityNamesDict -from wcs.qommon.template import Template -from wcs.qommon.template import TemplateError +from wcs.qommon.template import Template, TemplateError from wcs.variables import LazyFormData diff --git a/tests/test_texts.py b/tests/test_texts.py index 186acce7e..6b410116f 100644 --- a/tests/test_texts.py +++ b/tests/test_texts.py @@ -2,8 +2,7 @@ import shutil import sys from quixote import cleanup -from utilities import MockSubstitutionVariables -from utilities import create_temporary_pub +from utilities import MockSubstitutionVariables, create_temporary_pub from wcs.qommon.admin.texts import TextsDirectory from wcs.qommon.http_request import HTTPRequest diff --git a/tests/test_tracking_code.py b/tests/test_tracking_code.py index 75402c7cb..b5409c9cb 100644 --- a/tests/test_tracking_code.py +++ b/tests/test_tracking_code.py @@ -1,6 +1,5 @@ import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs.formdef import FormDef diff --git a/tests/test_upload_storage.py b/tests/test_upload_storage.py index 6c6f77a69..1f2a6595d 100644 --- a/tests/test_upload_storage.py +++ b/tests/test_upload_storage.py @@ -5,10 +5,7 @@ import os import mock import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app -from utilities import login +from utilities import clean_temporary_pub, create_temporary_pub, get_app, login from webtest import Upload from wcs import fields diff --git a/tests/test_users.py b/tests/test_users.py index 65b55c302..8eaa01eb5 100644 --- a/tests/test_users.py +++ b/tests/test_users.py @@ -9,8 +9,7 @@ import pytest from quixote import cleanup from utilities import create_temporary_pub -from wcs import fields -from wcs import publisher +from wcs import fields, publisher from wcs.variables import LazyUser diff --git a/tests/test_variadic_url.py b/tests/test_variadic_url.py index c6d8391bb..5cc4daae6 100644 --- a/tests/test_variadic_url.py +++ b/tests/test_variadic_url.py @@ -1,6 +1,5 @@ import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs.qommon.ezt import EZTException from wcs.qommon.misc import get_variadic_url diff --git a/tests/test_widgets.py b/tests/test_widgets.py index 470e05c20..70da66265 100644 --- a/tests/test_widgets.py +++ b/tests/test_widgets.py @@ -6,8 +6,7 @@ import shutil import mechanize import pytest -from quixote import cleanup -from quixote import get_response +from quixote import cleanup, get_response from quixote.http_request import parse_query from utilities import create_temporary_pub diff --git a/tests/test_workflow_import.py b/tests/test_workflow_import.py index b1e526a56..f10d8beca 100644 --- a/tests/test_workflow_import.py +++ b/tests/test_workflow_import.py @@ -5,41 +5,39 @@ import xml.etree.ElementTree as ET import pytest from quixote.http_request import Upload -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import clean_temporary_pub, create_temporary_pub from wcs.carddef import CardDef -from wcs.fields import FileField -from wcs.fields import StringField +from wcs.fields import FileField, StringField from wcs.formdef import FormDef from wcs.mail_templates import MailTemplate from wcs.qommon.form import UploadedFile from wcs.qommon.misc import indent_xml as indent from wcs.wf.attachment import AddAttachmentWorkflowStatusItem from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem -from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem -from wcs.wf.create_formdata import Mapping +from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping from wcs.wf.dispatch import DispatchWorkflowStatusItem from wcs.wf.export_to_model import ExportToModel from wcs.wf.external_workflow import ExternalWorkflowGlobalAction -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.wf.jump import JumpWorkflowStatusItem from wcs.wf.profile import UpdateUserProfileStatusItem from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem from wcs.wf.wscall import WebserviceCallStatusItem -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import DisplayMessageWorkflowStatusItem -from wcs.workflows import JumpOnSubmitWorkflowStatusItem -from wcs.workflows import SendmailWorkflowStatusItem -from wcs.workflows import SendSMSWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowCriticalityLevel -from wcs.workflows import WorkflowImportError -from wcs.workflows import WorkflowVariablesFieldsFormDef +from wcs.workflows import ( + ChoiceWorkflowStatusItem, + CommentableWorkflowStatusItem, + DisplayMessageWorkflowStatusItem, + JumpOnSubmitWorkflowStatusItem, + SendmailWorkflowStatusItem, + SendSMSWorkflowStatusItem, + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowCriticalityLevel, + WorkflowImportError, + WorkflowVariablesFieldsFormDef, +) @pytest.fixture diff --git a/tests/test_workflows.py b/tests/test_workflows.py index e056167a8..eb7c5f54a 100644 --- a/tests/test_workflows.py +++ b/tests/test_workflows.py @@ -16,84 +16,77 @@ try: except ImportError: Image = None -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import cleanup -from quixote import get_response +from django.utils.encoding import force_bytes, force_text +from quixote import cleanup, get_response from quixote.http_request import Upload as QuixoteUpload -from utilities import MockSubstitutionVariables -from utilities import clean_temporary_pub -from utilities import create_temporary_pub +from utilities import MockSubstitutionVariables, clean_temporary_pub, create_temporary_pub from wcs import sessions from wcs.blocks import BlockDef from wcs.carddef import CardDef -from wcs.fields import BlockField -from wcs.fields import BoolField -from wcs.fields import CommentField -from wcs.fields import DateField -from wcs.fields import EmailField -from wcs.fields import FileField -from wcs.fields import ItemField -from wcs.fields import ItemsField -from wcs.fields import MapField -from wcs.fields import PageField -from wcs.fields import StringField -from wcs.fields import SubtitleField -from wcs.fields import TableField -from wcs.fields import TextField -from wcs.fields import TitleField +from wcs.fields import ( + BlockField, + BoolField, + CommentField, + DateField, + EmailField, + FileField, + ItemField, + ItemsField, + MapField, + PageField, + StringField, + SubtitleField, + TableField, + TextField, + TitleField, +) from wcs.formdata import Evolution from wcs.formdef import FormDef from wcs.qommon.errors import ConnectionError from wcs.qommon.form import * from wcs.qommon.http_request import HTTPRequest from wcs.qommon.upload_storage import PicklableUpload -from wcs.wf.aggregation_email import AggregationEmail -from wcs.wf.aggregation_email import AggregationEmailWorkflowStatusItem -from wcs.wf.aggregation_email import send_aggregation_emails +from wcs.wf.aggregation_email import ( + AggregationEmail, + AggregationEmailWorkflowStatusItem, + send_aggregation_emails, +) from wcs.wf.anonymise import AnonymiseWorkflowStatusItem from wcs.wf.backoffice_fields import SetBackofficeFieldsWorkflowStatusItem from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem -from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem -from wcs.wf.create_formdata import Mapping -from wcs.wf.criticality import MODE_DEC -from wcs.wf.criticality import MODE_INC -from wcs.wf.criticality import MODE_SET -from wcs.wf.criticality import ModifyCriticalityWorkflowStatusItem +from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, Mapping +from wcs.wf.criticality import MODE_DEC, MODE_INC, MODE_SET, ModifyCriticalityWorkflowStatusItem from wcs.wf.dispatch import DispatchWorkflowStatusItem from wcs.wf.edit_carddata import EditCarddataWorkflowStatusItem -from wcs.wf.export_to_model import ExportToModel -from wcs.wf.export_to_model import transform_to_pdf +from wcs.wf.export_to_model import ExportToModel, transform_to_pdf from wcs.wf.external_workflow import ExternalWorkflowGlobalAction -from wcs.wf.form import FormWorkflowStatusItem -from wcs.wf.form import WorkflowFormFieldsFormDef +from wcs.wf.form import FormWorkflowStatusItem, WorkflowFormFieldsFormDef from wcs.wf.geolocate import GeolocateWorkflowStatusItem -from wcs.wf.jump import JumpWorkflowStatusItem -from wcs.wf.jump import _apply_timeouts +from wcs.wf.jump import JumpWorkflowStatusItem, _apply_timeouts from wcs.wf.notification import SendNotificationWorkflowStatusItem from wcs.wf.profile import UpdateUserProfileStatusItem from wcs.wf.redirect_to_url import RedirectToUrlWorkflowStatusItem -from wcs.wf.register_comment import JournalEvolutionPart -from wcs.wf.register_comment import RegisterCommenterWorkflowStatusItem +from wcs.wf.register_comment import JournalEvolutionPart, RegisterCommenterWorkflowStatusItem from wcs.wf.remove import RemoveWorkflowStatusItem -from wcs.wf.roles import AddRoleWorkflowStatusItem -from wcs.wf.roles import RemoveRoleWorkflowStatusItem +from wcs.wf.roles import AddRoleWorkflowStatusItem, RemoveRoleWorkflowStatusItem from wcs.wf.timeout_jump import TimeoutWorkflowStatusItem from wcs.wf.wscall import WebserviceCallStatusItem -from wcs.workflows import AbortActionException -from wcs.workflows import AttachmentEvolutionPart -from wcs.workflows import ChoiceWorkflowStatusItem -from wcs.workflows import CommentableWorkflowStatusItem -from wcs.workflows import DisplayMessageWorkflowStatusItem -from wcs.workflows import SendmailWorkflowStatusItem -from wcs.workflows import SendSMSWorkflowStatusItem -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowCriticalityLevel -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import WorkflowVariablesFieldsFormDef -from wcs.workflows import perform_items +from wcs.workflows import ( + AbortActionException, + AttachmentEvolutionPart, + ChoiceWorkflowStatusItem, + CommentableWorkflowStatusItem, + DisplayMessageWorkflowStatusItem, + SendmailWorkflowStatusItem, + SendSMSWorkflowStatusItem, + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowCriticalityLevel, + WorkflowStatusItem, + WorkflowVariablesFieldsFormDef, + perform_items, +) def setup_module(module): diff --git a/tests/test_wscall.py b/tests/test_wscall.py index c4b5266cc..3c78af5e8 100644 --- a/tests/test_wscall.py +++ b/tests/test_wscall.py @@ -1,9 +1,7 @@ import json import pytest -from utilities import clean_temporary_pub -from utilities import create_temporary_pub -from utilities import get_app +from utilities import clean_temporary_pub, create_temporary_pub, get_app from wcs import fields from wcs.formdef import FormDef diff --git a/tests/utilities.py b/tests/utilities.py index cc4b1d842..7e0c73a21 100644 --- a/tests/utilities.py +++ b/tests/utilities.py @@ -10,10 +10,8 @@ import urllib.parse import psycopg2 from django.conf import settings -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import cleanup -from quixote import get_publisher +from django.utils.encoding import force_bytes, force_text +from quixote import cleanup, get_publisher from webtest import TestApp import wcs @@ -21,10 +19,7 @@ import wcs.middleware import wcs.qommon.emails import wcs.qommon.sms import wcs.wsgi -from wcs import compat -from wcs import custom_views -from wcs import sessions -from wcs import sql +from wcs import compat, custom_views, sessions, sql from wcs.qommon import force_str from wcs.qommon.errors import ConnectionError from wcs.roles import Role diff --git a/wcs/admin/api_access.py b/wcs/admin/api_access.py index d4538ad0a..0f0730c44 100644 --- a/wcs/admin/api_access.py +++ b/wcs/admin/api_access.py @@ -16,21 +16,14 @@ import uuid -from quixote import get_response -from quixote import redirect +from quixote import get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.api_access import ApiAccess -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import template +from wcs.qommon import _, errors, template from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import TextWidget +from wcs.qommon.form import Form, HtmlWidget, StringWidget, TextWidget class ApiAccessUI: diff --git a/wcs/admin/blocks.py b/wcs/admin/blocks.py index 93e760b3a..d260eb4a2 100644 --- a/wcs/admin/blocks.py +++ b/wcs/admin/blocks.py @@ -16,29 +16,17 @@ import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.admin import utils -from wcs.admin.fields import FieldDefPage -from wcs.admin.fields import FieldsDirectory +from wcs.admin.fields import FieldDefPage, FieldsDirectory from wcs.backoffice.snapshots import SnapshotsDirectory -from wcs.blocks import BlockDef -from wcs.blocks import BlockdefImportError -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import misc -from wcs.qommon import template +from wcs.blocks import BlockDef, BlockdefImportError +from wcs.qommon import N_, _, misc, template from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget +from wcs.qommon.form import FileWidget, Form, HtmlWidget, StringWidget class BlockFieldDefPage(FieldDefPage): diff --git a/wcs/admin/categories.py b/wcs/admin/categories.py index 12bbd0197..b5bb1f622 100644 --- a/wcs/admin/categories.py +++ b/wcs/admin/categories.py @@ -14,24 +14,16 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_request -from quixote import get_response -from quixote import redirect +from quixote import get_request, get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.carddef import CardDef -from wcs.categories import CardDefCategory -from wcs.categories import Category +from wcs.categories import CardDefCategory, Category from wcs.formdef import FormDef -from wcs.qommon import N_ -from wcs.qommon import _ +from wcs.qommon import N_, _ from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import WysiwygTextWidget +from wcs.qommon.form import Form, HtmlWidget, StringWidget, WysiwygTextWidget class CategoryUI: diff --git a/wcs/admin/data_sources.py b/wcs/admin/data_sources.py index e484b90eb..46184547a 100644 --- a/wcs/admin/data_sources.py +++ b/wcs/admin/data_sources.py @@ -16,36 +16,34 @@ import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import redirect +from quixote import get_publisher, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.admin import utils from wcs.backoffice.snapshots import SnapshotsDirectory from wcs.carddef import CardDef -from wcs.data_sources import DataSourceSelectionWidget -from wcs.data_sources import NamedDataSource -from wcs.data_sources import RefreshAgendas -from wcs.data_sources import get_structured_items -from wcs.data_sources import has_chrono +from wcs.data_sources import ( + DataSourceSelectionWidget, + NamedDataSource, + RefreshAgendas, + get_structured_items, + has_chrono, +) from wcs.formdef import get_formdefs_of_all_kinds -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import force_str -from wcs.qommon import misc -from wcs.qommon import template +from wcs.qommon import _, errors, force_str, misc, template from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import DurationWidget -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import TextWidget -from wcs.qommon.form import get_response -from wcs.qommon.form import get_session +from wcs.qommon.form import ( + CheckboxWidget, + DurationWidget, + FileWidget, + Form, + HtmlWidget, + StringWidget, + TextWidget, + get_response, + get_session, +) class NamedDataSourceUI: diff --git a/wcs/admin/fields.py b/wcs/admin/fields.py index 7323fd1a1..d448e5c44 100644 --- a/wcs/admin/fields.py +++ b/wcs/admin/fields.py @@ -19,31 +19,18 @@ import copy import json -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmlescape -from quixote.html import htmltext +from quixote.html import TemplateIO, htmlescape, htmltext from wcs import fields from wcs.admin import utils from wcs.fields import get_field_options from wcs.formdef import FormDef -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import get_cfg -from wcs.qommon import misc +from wcs.qommon import N_, _, errors, get_cfg, misc from wcs.qommon.admin.menu import command_icon from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import StringWidget +from wcs.qommon.form import CheckboxWidget, Form, HtmlWidget, SingleSelectWidget, StringWidget class FieldDefPage(Directory): diff --git a/wcs/admin/forms.py b/wcs/admin/forms.py index 58ad31348..04b04e946 100644 --- a/wcs/admin/forms.py +++ b/wcs/admin/forms.py @@ -23,61 +23,45 @@ import tarfile import time import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect -from quixote.directory import AccessControlled -from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request, get_response, get_session, redirect +from quixote.directory import AccessControlled, Directory +from quixote.html import TemplateIO, htmltext from wcs.backoffice.snapshots import SnapshotsDirectory from wcs.carddef import CardDef from wcs.categories import Category -from wcs.formdef import DRAFTS_DEFAULT_LIFESPAN -from wcs.formdef import FormDef -from wcs.formdef import FormdefImportError -from wcs.formdef import FormdefImportRecoverableError +from wcs.formdef import DRAFTS_DEFAULT_LIFESPAN, FormDef, FormdefImportError, FormdefImportRecoverableError from wcs.forms.root import qrcode -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import force_str -from wcs.qommon import get_logger -from wcs.qommon import misc -from wcs.qommon import template +from wcs.qommon import N_, _, force_str, get_logger, misc, template from wcs.qommon.afterjobs import AfterJob from wcs.qommon.backoffice.menu import html_top from wcs.qommon.errors import TraversalError -from wcs.qommon.form import CheckboxesWidget -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import DateTimeWidget -from wcs.qommon.form import DateWidget -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import UrlWidget -from wcs.qommon.form import ValidatedStringWidget -from wcs.qommon.form import WcsExtraStringWidget -from wcs.qommon.form import WidgetList -from wcs.qommon.form import WysiwygTextWidget +from wcs.qommon.form import ( + CheckboxesWidget, + CheckboxWidget, + DateTimeWidget, + DateWidget, + FileWidget, + Form, + HtmlWidget, + SingleSelectWidget, + StringWidget, + UrlWidget, + ValidatedStringWidget, + WcsExtraStringWidget, + WidgetList, + WysiwygTextWidget, +) from wcs.qommon.misc import C_ -from wcs.qommon.storage import Equal -from wcs.qommon.storage import NotEqual -from wcs.qommon.storage import Null -from wcs.roles import get_user_roles -from wcs.roles import logged_users_role +from wcs.qommon.storage import Equal, NotEqual, Null +from wcs.roles import get_user_roles, logged_users_role from wcs.workflows import Workflow from . import utils from .blocks import BlocksDirectory from .categories import CategoriesDirectory from .data_sources import NamedDataSourcesDirectory -from .fields import FieldDefPage -from .fields import FieldsDirectory +from .fields import FieldDefPage, FieldsDirectory from .logged_errors import LoggedErrorsDirectory diff --git a/wcs/admin/logged_errors.py b/wcs/admin/logged_errors.py index 0d01b0bf9..1c08c8acd 100644 --- a/wcs/admin/logged_errors.py +++ b/wcs/admin/logged_errors.py @@ -17,26 +17,13 @@ import re from django.utils.text import Truncator -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_request, get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import misc -from wcs.qommon import ngettext -from wcs.qommon import template +from wcs.qommon import N_, _, errors, misc, ngettext, template from wcs.qommon.backoffice.listing import pagination_links -from wcs.qommon.storage import Equal -from wcs.qommon.storage import NotEqual -from wcs.qommon.storage import NotNull -from wcs.qommon.storage import Null -from wcs.qommon.storage import Or +from wcs.qommon.storage import Equal, NotEqual, NotNull, Null, Or class LoggedErrorDirectory(Directory): diff --git a/wcs/admin/mail_templates.py b/wcs/admin/mail_templates.py index 549b538f7..0ba9f22aa 100644 --- a/wcs/admin/mail_templates.py +++ b/wcs/admin/mail_templates.py @@ -16,28 +16,23 @@ import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.mail_templates import MailTemplate -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import force_str -from wcs.qommon import misc -from wcs.qommon import template +from wcs.qommon import _, errors, force_str, misc, template from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import ComputedExpressionWidget -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import TextWidget -from wcs.qommon.form import WidgetList -from wcs.qommon.form import get_session +from wcs.qommon.form import ( + ComputedExpressionWidget, + FileWidget, + Form, + HtmlWidget, + StringWidget, + TextWidget, + WidgetList, + get_session, +) class MailTemplatesDirectory(Directory): diff --git a/wcs/admin/roles.py b/wcs/admin/roles.py index 86b67a65b..955e1c65b 100644 --- a/wcs/admin/roles.py +++ b/wcs/admin/roles.py @@ -14,24 +14,14 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.formdef import FormDef -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import get_cfg +from wcs.qommon import _, errors, get_cfg from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import TextWidget -from wcs.qommon.form import WidgetList +from wcs.qommon.form import CheckboxWidget, Form, HtmlWidget, StringWidget, TextWidget, WidgetList from wcs.roles import get_user_roles diff --git a/wcs/admin/root.py b/wcs/admin/root.py index 89a99c542..f4de3559e 100644 --- a/wcs/admin/root.py +++ b/wcs/admin/root.py @@ -14,8 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_request -from quixote import redirect +from quixote import get_request, redirect from quixote.directory import Directory diff --git a/wcs/admin/settings.py b/wcs/admin/settings.py index be87b7f28..3c9b6c3b3 100644 --- a/wcs/admin/settings.py +++ b/wcs/admin/settings.py @@ -28,29 +28,17 @@ import shutil import xml.etree.ElementTree as ET import zipfile -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.backoffice.studio import StudioDirectory from wcs.blocks import BlockDef from wcs.carddef import CardDef from wcs.data_sources import NamedDataSource from wcs.formdef import FormDef -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import get_cfg -from wcs.qommon import ident -from wcs.qommon import misc -from wcs.qommon import template +from wcs.qommon import N_, _, errors, get_cfg, ident, misc, template from wcs.qommon.admin.cfg import cfg_submit from wcs.qommon.admin.emails import EmailsDirectory from wcs.qommon.admin.logger import LoggerDirectory @@ -59,27 +47,27 @@ from wcs.qommon.admin.settings import SettingsDirectory as QommonSettingsDirecto from wcs.qommon.admin.texts import TextsDirectory from wcs.qommon.afterjobs import AfterJob from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxesTableWidget -from wcs.qommon.form import CheckboxesWidget -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import ComputedExpressionWidget -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import IntWidget -from wcs.qommon.form import MapWidget -from wcs.qommon.form import PasswordWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import TextWidget -from wcs.qommon.form import UrlWidget -from wcs.qommon.form import WidgetList -from wcs.workflows import Workflow -from wcs.workflows import WorkflowImportError +from wcs.qommon.form import ( + CheckboxesTableWidget, + CheckboxesWidget, + CheckboxWidget, + ComputedExpressionWidget, + FileWidget, + Form, + IntWidget, + MapWidget, + PasswordWidget, + SingleSelectWidget, + StringWidget, + TextWidget, + UrlWidget, + WidgetList, +) +from wcs.workflows import Workflow, WorkflowImportError from .api_access import ApiAccessDirectory from .data_sources import NamedDataSourcesDirectory -from .fields import FieldDefPage -from .fields import FieldsDirectory +from .fields import FieldDefPage, FieldsDirectory from .wscalls import NamedWsCallsDirectory @@ -953,8 +941,7 @@ class SettingsDirectory(QommonSettingsDirectory): return r.getvalue() def template_submit(self, form=None): - from wcs.qommon.template import DEFAULT_TEMPLATE_EZT - from wcs.qommon.template import get_default_ezt_template + from wcs.qommon.template import DEFAULT_TEMPLATE_EZT, get_default_ezt_template theme_default_template_ezt = get_default_ezt_template() diff --git a/wcs/admin/users.py b/wcs/admin/users.py index 97129a0d2..70ea271a4 100644 --- a/wcs/admin/users.py +++ b/wcs/admin/users.py @@ -14,36 +14,26 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext import wcs.qommon.storage as st -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import force_str -from wcs.qommon import get_cfg -from wcs.qommon import ident -from wcs.qommon import misc +from wcs.qommon import N_, _, errors, force_str, get_cfg, ident, misc from wcs.qommon.admin.emails import EmailsDirectory from wcs.qommon.admin.menu import error_page from wcs.qommon.backoffice.listing import pagination_links from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import EmailWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import WidgetList -from wcs.qommon.ident.idp import is_idp_managing_user_attributes -from wcs.qommon.ident.idp import is_idp_managing_user_roles +from wcs.qommon.form import ( + CheckboxWidget, + EmailWidget, + Form, + HtmlWidget, + SingleSelectWidget, + StringWidget, + WidgetList, +) +from wcs.qommon.ident.idp import is_idp_managing_user_attributes, is_idp_managing_user_roles class UserUI: diff --git a/wcs/admin/utils.py b/wcs/admin/utils.py index 0bd031296..ffdcc00f4 100644 --- a/wcs/admin/utils.py +++ b/wcs/admin/utils.py @@ -18,10 +18,8 @@ import time -from quixote import get_publisher -from quixote import get_request -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request +from quixote.html import TemplateIO, htmltext from wcs.qommon import _ from wcs.qommon.misc import localstrftime diff --git a/wcs/admin/workflows.py b/wcs/admin/workflows.py index 40e92811c..9f506909a 100644 --- a/wcs/admin/workflows.py +++ b/wcs/admin/workflows.py @@ -22,56 +22,48 @@ import io import textwrap import time import xml.etree.ElementTree as ET -from subprocess import PIPE -from subprocess import Popen +from subprocess import PIPE, Popen from django.utils.encoding import force_bytes -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.backoffice.snapshots import SnapshotsDirectory from wcs.backoffice.studio import StudioDirectory from wcs.carddef import CardDef from wcs.formdata import Evolution from wcs.formdef import FormDef -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import force_str -from wcs.qommon import get_logger -from wcs.qommon import misc +from wcs.qommon import N_, _, errors, force_str, get_logger, misc from wcs.qommon.admin.menu import command_icon from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import ColourWidget -from wcs.qommon.form import CompositeWidget -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import UrlWidget -from wcs.qommon.form import VarnameWidget -from wcs.qommon.form import WysiwygTextWidget -from wcs.workflows import DuplicateGlobalActionNameError -from wcs.workflows import DuplicateStatusNameError -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef -from wcs.workflows import WorkflowCriticalityLevel -from wcs.workflows import WorkflowImportError -from wcs.workflows import WorkflowVariablesFieldsFormDef -from wcs.workflows import item_classes +from wcs.qommon.form import ( + CheckboxWidget, + ColourWidget, + CompositeWidget, + FileWidget, + Form, + HtmlWidget, + SingleSelectWidget, + StringWidget, + UrlWidget, + VarnameWidget, + WysiwygTextWidget, +) +from wcs.workflows import ( + DuplicateGlobalActionNameError, + DuplicateStatusNameError, + Workflow, + WorkflowBackofficeFieldsFormDef, + WorkflowCriticalityLevel, + WorkflowImportError, + WorkflowVariablesFieldsFormDef, + item_classes, +) from . import utils from .data_sources import NamedDataSourcesDirectory -from .fields import FieldDefPage -from .fields import FieldsDirectory +from .fields import FieldDefPage, FieldsDirectory from .logged_errors import LoggedErrorsDirectory from .mail_templates import MailTemplatesDirectory diff --git a/wcs/admin/wscalls.py b/wcs/admin/wscalls.py index ae14cf62f..e6d28889c 100644 --- a/wcs/admin/wscalls.py +++ b/wcs/admin/wscalls.py @@ -16,30 +16,16 @@ import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.admin import utils from wcs.backoffice.snapshots import SnapshotsDirectory -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import force_str -from wcs.qommon import misc -from wcs.qommon import template +from wcs.qommon import _, errors, force_str, misc, template from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import FileWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import TextWidget -from wcs.wscalls import NamedWsCall -from wcs.wscalls import WsCallRequestWidget +from wcs.qommon.form import CheckboxWidget, FileWidget, Form, HtmlWidget, StringWidget, TextWidget +from wcs.wscalls import NamedWsCall, WsCallRequestWidget class NamedWsCallUI: diff --git a/wcs/api.py b/wcs/api.py index a1004f0d8..879d83422 100644 --- a/wcs/api.py +++ b/wcs/api.py @@ -21,27 +21,18 @@ import sys import time import urllib.parse -from django.http import HttpResponse -from django.http import HttpResponseBadRequest -from django.http import JsonResponse +from django.http import HttpResponse, HttpResponseBadRequest, JsonResponse from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session +from quixote import get_publisher, get_request, get_response, get_session from quixote.directory import Directory from quixote.errors import MethodNotAllowedError import wcs.qommon.storage as st from wcs.admin.settings import UserFieldsFormDef -from wcs.api_utils import get_query_flag -from wcs.api_utils import get_user_from_api_query_string -from wcs.api_utils import is_url_signed -from wcs.api_utils import sign_url_auto_orig +from wcs.api_utils import get_query_flag, get_user_from_api_query_string, is_url_signed, sign_url_auto_orig from wcs.carddef import CardDef from wcs.categories import Category -from wcs.conditions import Condition -from wcs.conditions import ValidationError +from wcs.conditions import Condition, ValidationError from wcs.data_sources import NamedDataSource from wcs.data_sources import get_object as get_data_source_object from wcs.formdef import FormDef @@ -53,15 +44,15 @@ from .backoffice.data_management import CardPage as BackofficeCardPage from .backoffice.management import FormPage as BackofficeFormPage from .backoffice.management import ManagementDirectory from .backoffice.submission import SubmissionDirectory -from .qommon import _ -from .qommon import misc -from .qommon.errors import AccessForbiddenError -from .qommon.errors import ConnectionError -from .qommon.errors import TraversalError -from .qommon.errors import UnknownNameIdAccessForbiddenError +from .qommon import _, misc +from .qommon.errors import ( + AccessForbiddenError, + ConnectionError, + TraversalError, + UnknownNameIdAccessForbiddenError, +) from .qommon.form import ComputedExpressionWidget -from .qommon.storage import Equal -from .qommon.storage import NotEqual +from .qommon.storage import Equal, NotEqual def posted_json_data_to_formdata_data(formdef, data): diff --git a/wcs/api_utils.py b/wcs/api_utils.py index 25f9c7d4b..01978c434 100644 --- a/wcs/api_utils.py +++ b/wcs/api_utils.py @@ -24,15 +24,11 @@ import os import random import urllib.parse -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_request from .api_access import ApiAccess -from .qommon.errors import AccessForbiddenError -from .qommon.errors import HttpResponse401Error -from .qommon.errors import UnknownNameIdAccessForbiddenError +from .qommon.errors import AccessForbiddenError, HttpResponse401Error, UnknownNameIdAccessForbiddenError from .qommon.misc import simplify DEFAULT_DURATION = 30 diff --git a/wcs/backoffice/cards.py b/wcs/backoffice/cards.py index afd3da4fd..8430c0f10 100644 --- a/wcs/backoffice/cards.py +++ b/wcs/backoffice/cards.py @@ -16,31 +16,21 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.admin import utils from wcs.admin.categories import CardDefCategoriesDirectory -from wcs.admin.forms import FormDefPage -from wcs.admin.forms import FormDefUI -from wcs.admin.forms import FormsDirectory -from wcs.admin.forms import OptionsDirectory -from wcs.admin.forms import html_top +from wcs.admin.forms import FormDefPage, FormDefUI, FormsDirectory, OptionsDirectory, html_top from wcs.admin.logged_errors import LoggedErrorsDirectory from wcs.carddef import CardDef from wcs.categories import CardDefCategory from wcs.workflows import Workflow -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ from ..qommon.misc import C_ -from ..qommon.storage import NotEqual -from ..qommon.storage import Null +from ..qommon.storage import NotEqual, Null class CardDefUI(FormDefUI): diff --git a/wcs/backoffice/data_management.py b/wcs/backoffice/data_management.py index afb3f8041..906ddebc7 100644 --- a/wcs/backoffice/data_management.py +++ b/wcs/backoffice/data_management.py @@ -18,28 +18,18 @@ import csv import datetime import io -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_request, get_response, redirect from quixote.html import htmltext from wcs import fields from wcs.carddef import CardDef from wcs.categories import CardDefCategory -from ..qommon import N_ -from ..qommon import _ -from ..qommon import errors -from ..qommon import template +from ..qommon import N_, _, errors, template from ..qommon.afterjobs import AfterJob from ..qommon.backoffice.menu import html_top -from ..qommon.form import FileWidget -from ..qommon.form import Form -from .management import FormBackOfficeStatusPage -from .management import FormFillPage -from .management import FormPage -from .management import ManagementDirectory +from ..qommon.form import FileWidget, Form +from .management import FormBackOfficeStatusPage, FormFillPage, FormPage, ManagementDirectory class DataManagementDirectory(ManagementDirectory): diff --git a/wcs/backoffice/management.py b/wcs/backoffice/management.py index 59f418ebf..1b3ecb33d 100644 --- a/wcs/backoffice/management.py +++ b/wcs/backoffice/management.py @@ -26,15 +26,9 @@ import zipfile import vobject from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmlescape -from quixote.html import htmltext +from quixote.html import TemplateIO, htmlescape, htmltext from wcs.admin.settings import UserFieldsFormDef from wcs.api_utils import get_user_from_api_query_string @@ -47,52 +41,43 @@ from wcs.forms.backoffice import FormDefUI from wcs.forms.common import FormStatusPage from wcs.roles import logged_users_role from wcs.variables import LazyFieldVar -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import template_on_formdata +from wcs.workflows import WorkflowStatusItem, template_on_formdata -from ..qommon import N_ -from ..qommon import _ -from ..qommon import emails -from ..qommon import errors -from ..qommon import ezt -from ..qommon import force_str -from ..qommon import get_cfg -from ..qommon import get_logger -from ..qommon import misc -from ..qommon import ngettext -from ..qommon import ods -from ..qommon import sms +from ..qommon import N_, _, emails, errors, ezt, force_str, get_cfg, get_logger, misc, ngettext, ods, sms from ..qommon.admin.emails import EmailsDirectory from ..qommon.admin.menu import command_icon from ..qommon.afterjobs import AfterJob from ..qommon.backoffice.listing import pagination_links from ..qommon.backoffice.menu import html_top from ..qommon.evalutils import make_datetime -from ..qommon.form import CheckboxWidget -from ..qommon.form import DateWidget -from ..qommon.form import EmailWidget -from ..qommon.form import Form -from ..qommon.form import HiddenWidget -from ..qommon.form import HtmlWidget -from ..qommon.form import MapWidget -from ..qommon.form import RadiobuttonsWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import TextWidget -from ..qommon.form import WysiwygTextWidget -from ..qommon.misc import C_ -from ..qommon.misc import ellipsize -from ..qommon.storage import Contains -from ..qommon.storage import Equal -from ..qommon.storage import FtsMatch -from ..qommon.storage import GreaterOrEqual -from ..qommon.storage import ILike -from ..qommon.storage import Intersects -from ..qommon.storage import LessOrEqual -from ..qommon.storage import NotEqual -from ..qommon.storage import NotNull -from ..qommon.storage import Null -from ..qommon.storage import Or +from ..qommon.form import ( + CheckboxWidget, + DateWidget, + EmailWidget, + Form, + HiddenWidget, + HtmlWidget, + MapWidget, + RadiobuttonsWidget, + SingleSelectWidget, + StringWidget, + TextWidget, + WysiwygTextWidget, +) +from ..qommon.misc import C_, ellipsize +from ..qommon.storage import ( + Contains, + Equal, + FtsMatch, + GreaterOrEqual, + ILike, + Intersects, + LessOrEqual, + NotEqual, + NotNull, + Null, + Or, +) from ..qommon.substitution import CompatibilityNamesDict from ..qommon.template import Template from ..qommon.upload_storage import PicklableUpload diff --git a/wcs/backoffice/root.py b/wcs/backoffice/root.py index afe4eee17..73d79292e 100644 --- a/wcs/backoffice/root.py +++ b/wcs/backoffice/root.py @@ -17,12 +17,8 @@ import os from django.utils.translation import pgettext -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import redirect -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request, get_response, redirect +from quixote.html import TemplateIO, htmltext import wcs.admin.categories import wcs.admin.forms @@ -32,12 +28,7 @@ import wcs.admin.users import wcs.admin.workflows from wcs.formdef import FormDef -from ..qommon import N_ -from ..qommon import _ -from ..qommon import errors -from ..qommon import get_cfg -from ..qommon import misc -from ..qommon import template +from ..qommon import N_, _, errors, get_cfg, misc, template from ..qommon.afterjobs import AfterJob from ..qommon.backoffice import BackofficeRootDirectory from ..qommon.backoffice.menu import html_top diff --git a/wcs/backoffice/snapshots.py b/wcs/backoffice/snapshots.py index 6bc347de0..ba3d024cc 100644 --- a/wcs/backoffice/snapshots.py +++ b/wcs/backoffice/snapshots.py @@ -14,27 +14,17 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.blocks import BlockDef from wcs.carddef import CardDef from wcs.data_sources import NamedDataSource -from wcs.formdef import FormDef -from wcs.formdef import FormdefImportError -from wcs.qommon import _ -from wcs.qommon import errors -from wcs.qommon import misc -from wcs.qommon import template +from wcs.formdef import FormDef, FormdefImportError +from wcs.qommon import _, errors, misc, template from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import Form -from wcs.qommon.form import RadiobuttonsWidget -from wcs.qommon.form import StringWidget +from wcs.qommon.form import Form, RadiobuttonsWidget, StringWidget from wcs.workflows import Workflow from wcs.wscalls import NamedWsCall diff --git a/wcs/backoffice/studio.py b/wcs/backoffice/studio.py index 7a54f0038..d8b692949 100644 --- a/wcs/backoffice/studio.py +++ b/wcs/backoffice/studio.py @@ -18,8 +18,7 @@ from quixote import get_publisher from quixote.directory import Directory from wcs.admin.logged_errors import LoggedErrorsDirectory -from wcs.qommon import _ -from wcs.qommon import template +from wcs.qommon import _, template from wcs.qommon.backoffice.menu import html_top from wcs.qommon.form import get_response diff --git a/wcs/backoffice/submission.py b/wcs/backoffice/submission.py index bca749eff..f7206ba96 100644 --- a/wcs/backoffice/submission.py +++ b/wcs/backoffice/submission.py @@ -17,14 +17,9 @@ import time from django.utils.safestring import mark_safe -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.categories import Category from wcs.formdata import FormData @@ -32,14 +27,10 @@ from wcs.formdef import FormDef from wcs.forms.common import FormStatusPage from wcs.forms.root import FormPage as PublicFormFillPage -from ..qommon import _ -from ..qommon import errors -from ..qommon import misc +from ..qommon import _, errors, misc from ..qommon.backoffice.menu import html_top -from ..qommon.form import Form -from ..qommon.form import HtmlWidget -from ..qommon.storage import Equal -from ..qommon.storage import NotEqual +from ..qommon.form import Form, HtmlWidget +from ..qommon.storage import Equal, NotEqual class RemoveDraftDirectory(Directory): diff --git a/wcs/blocks.py b/wcs/blocks.py index e75e61c6f..7934b0c08 100644 --- a/wcs/blocks.py +++ b/wcs/blocks.py @@ -17,18 +17,12 @@ import uuid import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import get_request -from quixote.html import htmltag -from quixote.html import htmltext +from quixote import get_publisher, get_request +from quixote.html import htmltag, htmltext -from . import data_sources -from . import fields -from .qommon import N_ -from .qommon import _ -from .qommon import misc -from .qommon.form import CompositeWidget -from .qommon.form import WidgetList +from . import data_sources, fields +from .qommon import N_, _, misc +from .qommon.form import CompositeWidget, WidgetList from .qommon.storage import StorableObject from .qommon.template import Template diff --git a/wcs/carddef.py b/wcs/carddef.py index 387d6c370..df39ff6ec 100644 --- a/wcs/carddef.py +++ b/wcs/carddef.py @@ -21,15 +21,10 @@ from quixote import get_publisher from wcs.carddata import CardData from wcs.categories import CardDefCategory -from wcs.formdef import FormDef -from wcs.formdef import get_formdefs_of_all_kinds +from wcs.formdef import FormDef, get_formdefs_of_all_kinds -from .qommon import N_ -from .qommon import _ -from .qommon import misc -from .qommon.storage import Equal -from .qommon.storage import ILike -from .qommon.storage import NotEqual +from .qommon import N_, _, misc +from .qommon.storage import Equal, ILike, NotEqual from .qommon.template import Template if not hasattr(types, 'ClassType'): @@ -96,9 +91,7 @@ class CardDef(FormDef): @classmethod def get_default_workflow(cls): from wcs.wf.remove import RemoveWorkflowStatusItem - from wcs.workflows import ChoiceWorkflowStatusItem - from wcs.workflows import EditableWorkflowStatusItem - from wcs.workflows import Workflow + from wcs.workflows import ChoiceWorkflowStatusItem, EditableWorkflowStatusItem, Workflow workflow = Workflow(name=_('Default (cards)')) workflow.id = '_carddef_default' diff --git a/wcs/compat.py b/wcs/compat.py index 4365f24a6..65f9c5297 100644 --- a/wcs/compat.py +++ b/wcs/compat.py @@ -20,22 +20,18 @@ from threading import Lock from django.conf import settings from django.http import HttpResponse -from django.template import TemplateDoesNotExist -from django.template import loader +from django.template import TemplateDoesNotExist, loader from django.template.response import TemplateResponse from django.utils.deprecation import MiddlewareMixin from django.views.generic.base import TemplateView -from quixote import get_publisher -from quixote import get_request +from quixote import get_publisher, get_request from quixote.errors import PublishError from quixote.http_request import Upload from .publisher import WcsPublisher -from .qommon import force_str -from .qommon import template +from .qommon import force_str, template from .qommon.http_request import HTTPRequest -from .qommon.publisher import get_cfg -from .qommon.publisher import set_publisher_class +from .qommon.publisher import get_cfg, set_publisher_class try: import sentry_sdk diff --git a/wcs/conditions.py b/wcs/conditions.py index 8d513e0c6..f31c7d630 100644 --- a/wcs/conditions.py +++ b/wcs/conditions.py @@ -15,15 +15,11 @@ # along with this program; if not, see . import django.template.smartif -from django.template import Context -from django.template import Template -from django.template import TemplateSyntaxError +from django.template import Context, Template, TemplateSyntaxError from django.utils.encoding import force_text from quixote import get_publisher -from .qommon import _ -from .qommon import force_str -from .qommon import get_logger +from .qommon import _, force_str, get_logger class ValidationError(ValueError): diff --git a/wcs/context_processors.py b/wcs/context_processors.py index 289b2e620..dfcebfb5f 100644 --- a/wcs/context_processors.py +++ b/wcs/context_processors.py @@ -14,10 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session +from quixote import get_publisher, get_request, get_response, get_session def get_global_context(): diff --git a/wcs/ctl/backup.py b/wcs/ctl/backup.py index 214b8a44d..c8d29bfb8 100644 --- a/wcs/ctl/backup.py +++ b/wcs/ctl/backup.py @@ -18,8 +18,7 @@ import os import tarfile import time -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option class CmdBackup(Command): diff --git a/wcs/ctl/check_hobos.py b/wcs/ctl/check_hobos.py index a65079d12..5c8a7d9a8 100644 --- a/wcs/ctl/check_hobos.py +++ b/wcs/ctl/check_hobos.py @@ -29,14 +29,11 @@ from django.utils.encoding import force_bytes from quixote import cleanup from wcs.admin.settings import UserFieldsFormDef -from wcs.fields import DateField -from wcs.fields import EmailField -from wcs.fields import StringField +from wcs.fields import DateField, EmailField, StringField from wcs.qommon import force_str from ..qommon import misc -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option from ..qommon.storage import atomic_write diff --git a/wcs/ctl/delete_tenant.py b/wcs/ctl/delete_tenant.py index 1eb3fa708..82a1be9e6 100644 --- a/wcs/ctl/delete_tenant.py +++ b/wcs/ctl/delete_tenant.py @@ -24,8 +24,7 @@ from shutil import rmtree import psycopg2 import psycopg2.errorcodes -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option class CmdDeleteTenant(Command): diff --git a/wcs/ctl/management/commands/__init__.py b/wcs/ctl/management/commands/__init__.py index 6040e1e90..8a056a306 100644 --- a/wcs/ctl/management/commands/__init__.py +++ b/wcs/ctl/management/commands/__init__.py @@ -16,8 +16,7 @@ import os -from django.core.management.base import BaseCommand -from django.core.management.base import CommandError +from django.core.management.base import BaseCommand, CommandError from wcs.qommon.publisher import get_publisher_class diff --git a/wcs/ctl/management/commands/convert_to_sql.py b/wcs/ctl/management/commands/convert_to_sql.py index 88cba87af..f1b639381 100644 --- a/wcs/ctl/management/commands/convert_to_sql.py +++ b/wcs/ctl/management/commands/convert_to_sql.py @@ -20,8 +20,7 @@ import sys import traceback import psycopg2 -from django.core.management.base import BaseCommand -from django.core.management.base import CommandError +from django.core.management.base import BaseCommand, CommandError from django.utils.encoding import force_bytes from wcs import sql diff --git a/wcs/ctl/rebuild_indexes.py b/wcs/ctl/rebuild_indexes.py index f6189cf37..83e1bd0b4 100644 --- a/wcs/ctl/rebuild_indexes.py +++ b/wcs/ctl/rebuild_indexes.py @@ -16,8 +16,7 @@ import os -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option def rebuild_vhost_indexes(pub, destroy=False): diff --git a/wcs/ctl/restore.py b/wcs/ctl/restore.py index 11c9d6d15..94d923819 100644 --- a/wcs/ctl/restore.py +++ b/wcs/ctl/restore.py @@ -20,8 +20,7 @@ import os import sys import tarfile -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option class CmdRestore(Command): diff --git a/wcs/ctl/runscript.py b/wcs/ctl/runscript.py index d747679e6..6b3a506dc 100644 --- a/wcs/ctl/runscript.py +++ b/wcs/ctl/runscript.py @@ -19,8 +19,7 @@ import runpy import sys import warnings -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option class CmdRunScript(Command): diff --git a/wcs/ctl/wipe_data.py b/wcs/ctl/wipe_data.py index f32d9dfda..782e06c23 100644 --- a/wcs/ctl/wipe_data.py +++ b/wcs/ctl/wipe_data.py @@ -19,8 +19,7 @@ from __future__ import print_function import os import sys -from ..qommon.ctl import Command -from ..qommon.ctl import make_option +from ..qommon.ctl import Command, make_option class CmdWipeData(Command): diff --git a/wcs/custom_views.py b/wcs/custom_views.py index 2162515aa..b087da18d 100644 --- a/wcs/custom_views.py +++ b/wcs/custom_views.py @@ -23,9 +23,7 @@ from quixote import get_publisher from wcs.carddef import CardDef from wcs.formdef import FormDef from wcs.qommon.misc import simplify -from wcs.qommon.storage import Contains -from wcs.qommon.storage import Equal -from wcs.qommon.storage import StorableObject +from wcs.qommon.storage import Contains, Equal, StorableObject from .qommon.misc import xml_node_text diff --git a/wcs/data_sources.py b/wcs/data_sources.py index bf7d2f597..459e496a2 100644 --- a/wcs/data_sources.py +++ b/wcs/data_sources.py @@ -20,27 +20,16 @@ import sys import urllib.parse import xml.etree.ElementTree as ET -from django.template import TemplateSyntaxError -from django.template import VariableDoesNotExist -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_session +from django.template import TemplateSyntaxError, VariableDoesNotExist +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_request, get_session from quixote.html import TemplateIO from .api_utils import sign_url_auto_orig -from .qommon import N_ -from .qommon import _ -from .qommon import force_str -from .qommon import get_logger -from .qommon import misc +from .qommon import N_, _, force_str, get_logger, misc from .qommon.afterjobs import AfterJob from .qommon.cron import CronJob -from .qommon.form import CompositeWidget -from .qommon.form import OptGroup -from .qommon.form import SingleSelectWidget -from .qommon.form import StringWidget +from .qommon.form import CompositeWidget, OptGroup, SingleSelectWidget, StringWidget from .qommon.humantime import seconds2humanduration from .qommon.misc import get_variadic_url from .qommon.publisher import get_publisher_class diff --git a/wcs/fields.py b/wcs/fields.py index 5b4ebbfb7..bd3bf320e 100644 --- a/wcs/fields.py +++ b/wcs/fields.py @@ -28,74 +28,63 @@ import sys import time import xml.etree.ElementTree as ET -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from django.utils.encoding import smart_text +from django.utils.encoding import force_bytes, force_text, smart_text from django.utils.formats import date_format as django_date_format from django.utils.html import urlize -from quixote import get_publisher -from quixote import get_request -from quixote import get_session -from quixote.html import TemplateIO -from quixote.html import htmlescape -from quixote.html import htmltag -from quixote.html import htmltext +from quixote import get_publisher, get_request, get_session +from quixote.html import TemplateIO, htmlescape, htmltag, htmltext -from . import data_sources -from . import portfolio -from .blocks import BlockDef -from .blocks import BlockWidget +from . import data_sources, portfolio +from .blocks import BlockDef, BlockWidget from .conditions import Condition -from .qommon import N_ -from .qommon import _ -from .qommon import evalutils -from .qommon import force_str -from .qommon import get_cfg -from .qommon import misc -from .qommon.form import AutocompleteStringWidget -from .qommon.form import CheckboxesWidget -from .qommon.form import CheckboxWidget -from .qommon.form import CommentWidget -from .qommon.form import CompositeWidget -from .qommon.form import ComputedExpressionWidget -from .qommon.form import ConditionWidget -from .qommon.form import DateWidget -from .qommon.form import EmailWidget -from .qommon.form import FileSizeWidget -from .qommon.form import FileWithPreviewWidget -from .qommon.form import HiddenWidget -from .qommon.form import HtmlWidget -from .qommon.form import IntWidget -from .qommon.form import JsonpSingleSelectWidget -from .qommon.form import MapMarkerSelectionWidget -from .qommon.form import MapWidget -from .qommon.form import PasswordEntryWidget -from .qommon.form import RadiobuttonsWidget -from .qommon.form import RankedItemsWidget -from .qommon.form import SingleSelectHintWidget -from .qommon.form import SingleSelectTableWidget -from .qommon.form import SingleSelectWidget -from .qommon.form import StringWidget -from .qommon.form import TableListRowsWidget -from .qommon.form import TableWidget -from .qommon.form import TextWidget -from .qommon.form import ValidationWidget -from .qommon.form import VarnameWidget -from .qommon.form import WcsExtraStringWidget -from .qommon.form import WidgetList -from .qommon.form import WidgetListAsTable -from .qommon.form import WysiwygTextWidget -from .qommon.misc import date_format -from .qommon.misc import ellipsize -from .qommon.misc import get_as_datetime -from .qommon.misc import get_document_type_value_options -from .qommon.misc import get_document_types -from .qommon.misc import strftime -from .qommon.misc import xml_node_text +from .qommon import N_, _, evalutils, force_str, get_cfg, misc +from .qommon.form import ( + AutocompleteStringWidget, + CheckboxesWidget, + CheckboxWidget, + CommentWidget, + CompositeWidget, + ComputedExpressionWidget, + ConditionWidget, + DateWidget, + EmailWidget, + FileSizeWidget, + FileWithPreviewWidget, + HiddenWidget, + HtmlWidget, + IntWidget, + JsonpSingleSelectWidget, + MapMarkerSelectionWidget, + MapWidget, + PasswordEntryWidget, + RadiobuttonsWidget, + RankedItemsWidget, + SingleSelectHintWidget, + SingleSelectTableWidget, + SingleSelectWidget, + StringWidget, + TableListRowsWidget, + TableWidget, + TextWidget, + ValidationWidget, + VarnameWidget, + WcsExtraStringWidget, + WidgetList, + WidgetListAsTable, + WysiwygTextWidget, +) +from .qommon.misc import ( + date_format, + ellipsize, + get_as_datetime, + get_document_type_value_options, + get_document_types, + strftime, + xml_node_text, +) from .qommon.ods import NS as OD_NS from .qommon.ods import clean_text as od_clean_text -from .qommon.template import Template -from .qommon.template import TemplateError +from .qommon.template import Template, TemplateError from .qommon.upload_storage import PicklableUpload diff --git a/wcs/formdata.py b/wcs/formdata.py index a75758c89..a0f369cfe 100644 --- a/wcs/formdata.py +++ b/wcs/formdata.py @@ -22,22 +22,14 @@ import re import sys import time -from quixote import get_publisher -from quixote import get_request -from quixote import get_session +from quixote import get_publisher, get_request, get_session from quixote.http_request import Upload -from .qommon import N_ -from .qommon import _ -from .qommon import misc +from .qommon import N_, _, misc from .qommon.evalutils import make_datetime from .qommon.publisher import get_cfg -from .qommon.storage import Contains -from .qommon.storage import Intersects -from .qommon.storage import Null -from .qommon.storage import StorableObject -from .qommon.substitution import Substitutions -from .qommon.substitution import invalidate_substitution_cache +from .qommon.storage import Contains, Intersects, Null, StorableObject +from .qommon.substitution import Substitutions, invalidate_substitution_cache from .qommon.template import Template diff --git a/wcs/formdef.py b/wcs/formdef.py index 5b969ed68..7d71d6c07 100644 --- a/wcs/formdef.py +++ b/wcs/formdef.py @@ -27,35 +27,21 @@ import time import types import xml.etree.ElementTree as ET -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_session +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_session from quixote.html import htmltext from quixote.http_request import Upload -from . import data_sources -from . import fields +from . import data_sources, fields from .categories import Category from .formdata import FormData -from .qommon import N_ -from .qommon import PICKLE_KWARGS -from .qommon import _ -from .qommon import force_str -from .qommon import get_cfg +from .qommon import N_, PICKLE_KWARGS, _, force_str, get_cfg from .qommon.admin.emails import EmailsDirectory from .qommon.cron import CronJob -from .qommon.form import Form -from .qommon.form import HtmlWidget -from .qommon.form import UploadedFile -from .qommon.misc import JSONEncoder -from .qommon.misc import get_as_datetime -from .qommon.misc import simplify -from .qommon.misc import xml_node_text +from .qommon.form import Form, HtmlWidget, UploadedFile +from .qommon.misc import JSONEncoder, get_as_datetime, simplify, xml_node_text from .qommon.publisher import get_publisher_class -from .qommon.storage import Equal -from .qommon.storage import StorableObject -from .qommon.storage import fix_key +from .qommon.storage import Equal, StorableObject, fix_key from .qommon.substitution import Substitutions from .qommon.template import Template from .roles import logged_users_role diff --git a/wcs/forms/actions.py b/wcs/forms/actions.py index 3c05a38ea..3544d25fe 100644 --- a/wcs/forms/actions.py +++ b/wcs/forms/actions.py @@ -22,11 +22,7 @@ from wcs.formdef import FormDef from wcs.forms.common import FormTemplateMixin from wcs.wf.jump import jump_and_perform -from ..qommon import N_ -from ..qommon import errors -from ..qommon import misc -from ..qommon import template -from ..qommon import tokens +from ..qommon import N_, errors, misc, template, tokens from ..qommon.form import Form diff --git a/wcs/forms/backoffice.py b/wcs/forms/backoffice.py index 8fc64edbd..6ac1bd8d0 100644 --- a/wcs/forms/backoffice.py +++ b/wcs/forms/backoffice.py @@ -16,18 +16,13 @@ import urllib.parse -from quixote import get_publisher -from quixote import get_request -from quixote import get_session -from quixote import redirect -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request, get_session, redirect +from quixote.html import TemplateIO, htmltext from wcs.qommon.storage import Null from wcs.roles import logged_users_role -from ..qommon import _ -from ..qommon import misc +from ..qommon import _, misc from ..qommon.backoffice.listing import pagination_links diff --git a/wcs/forms/common.py b/wcs/forms/common.py index ef6377645..a4ade3cd6 100644 --- a/wcs/forms/common.py +++ b/wcs/forms/common.py @@ -19,30 +19,18 @@ import os import time import urllib.parse -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from quixote.util import randbytes from wcs import data_sources -from wcs.api_utils import get_user_from_api_query_string -from wcs.api_utils import is_url_signed -from wcs.api_utils import sign_url_auto_orig -from wcs.blocks import BlockSubWidget -from wcs.blocks import BlockWidget +from wcs.api_utils import get_user_from_api_query_string, is_url_signed, sign_url_auto_orig +from wcs.blocks import BlockSubWidget, BlockWidget from wcs.qommon.admin.texts import TextsDirectory from wcs.workflows import EditableWorkflowStatusItem -from ..qommon import _ -from ..qommon import errors -from ..qommon import get_logger -from ..qommon import misc -from ..qommon import template +from ..qommon import _, errors, get_logger, misc, template class FileDirectory(Directory): diff --git a/wcs/forms/preview.py b/wcs/forms/preview.py index a9097e409..17b50c105 100644 --- a/wcs/forms/preview.py +++ b/wcs/forms/preview.py @@ -15,13 +15,10 @@ # along with this program; if not, see . from quixote import get_publisher -from quixote.directory import AccessControlled -from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.directory import AccessControlled, Directory +from quixote.html import TemplateIO, htmltext -from ..qommon import _ -from ..qommon import errors +from ..qommon import _, errors from .root import FormPage diff --git a/wcs/forms/root.py b/wcs/forms/root.py index 60ffe0caa..d17053ead 100644 --- a/wcs/forms/root.py +++ b/wcs/forms/root.py @@ -27,46 +27,25 @@ except ImportError: import ratelimit.utils from django.utils.http import quote from django.utils.safestring import mark_safe -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import get_session_manager -from quixote import redirect -from quixote.directory import AccessControlled -from quixote.directory import Directory +from quixote import get_publisher, get_request, get_response, get_session, get_session_manager, redirect +from quixote.directory import AccessControlled, Directory from quixote.errors import RequestError -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from quixote.util import randbytes from wcs.categories import Category from wcs.formdata import FormData from wcs.formdef import FormDef -from wcs.forms.common import FormStatusPage -from wcs.forms.common import FormTemplateMixin +from wcs.forms.common import FormStatusPage, FormTemplateMixin from wcs.qommon.admin.texts import TextsDirectory from wcs.qommon.form import get_selection_error_text from wcs.roles import logged_users_role from wcs.variables import LazyFormDef -from wcs.workflows import Workflow -from wcs.workflows import WorkflowBackofficeFieldsFormDef +from wcs.workflows import Workflow, WorkflowBackofficeFieldsFormDef -from ..qommon import N_ -from ..qommon import _ -from ..qommon import emails -from ..qommon import errors -from ..qommon import get_cfg -from ..qommon import get_logger -from ..qommon import misc -from ..qommon import template +from ..qommon import N_, _, emails, errors, get_cfg, get_logger, misc, template from ..qommon.admin.emails import EmailsDirectory -from ..qommon.form import CheckboxWidget -from ..qommon.form import EmailWidget -from ..qommon.form import Form -from ..qommon.form import HiddenErrorWidget -from ..qommon.form import HtmlWidget -from ..qommon.form import StringWidget +from ..qommon.form import CheckboxWidget, EmailWidget, Form, HiddenErrorWidget, HtmlWidget, StringWidget class SubmittedDraftException(Exception): diff --git a/wcs/forms/workflows.py b/wcs/forms/workflows.py index d9bdae536..38bfea737 100644 --- a/wcs/forms/workflows.py +++ b/wcs/forms/workflows.py @@ -16,15 +16,12 @@ import json -from quixote import get_request -from quixote import get_response +from quixote import get_request, get_response from quixote.directory import Directory -from wcs.api import get_user_from_api_query_string -from wcs.api import is_url_signed +from wcs.api import get_user_from_api_query_string, is_url_signed from wcs.roles import logged_users_role -from wcs.workflows import WorkflowGlobalActionWebserviceTrigger -from wcs.workflows import perform_items +from wcs.workflows import WorkflowGlobalActionWebserviceTrigger, perform_items from ..qommon import errors diff --git a/wcs/mail_templates.py b/wcs/mail_templates.py index a568b9d11..28774a0b2 100644 --- a/wcs/mail_templates.py +++ b/wcs/mail_templates.py @@ -14,8 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from wcs.qommon import get_logger -from wcs.qommon import misc +from wcs.qommon import get_logger, misc from wcs.qommon.xml_storage import XmlStorableObject diff --git a/wcs/middleware.py b/wcs/middleware.py index ed07a3c50..d43c23459 100644 --- a/wcs/middleware.py +++ b/wcs/middleware.py @@ -19,14 +19,12 @@ import threading import time import urllib.parse -from django.http import HttpResponseBadRequest -from django.http import HttpResponseRedirect +from django.http import HttpResponseBadRequest, HttpResponseRedirect from django.utils.deprecation import MiddlewareMixin from quixote import get_publisher from quixote.errors import RequestError -from .compat import CompatHTTPRequest -from .compat import CompatWcsPublisher +from .compat import CompatHTTPRequest, CompatWcsPublisher from .qommon.http_response import HTTPResponse from .qommon.publisher import ImmediateRedirectException diff --git a/wcs/myspace.py b/wcs/myspace.py index 92b1737b4..e4bbd2519 100644 --- a/wcs/myspace.py +++ b/wcs/myspace.py @@ -14,8 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_request -from quixote import redirect +from quixote import get_request, redirect from .qommon import myspace diff --git a/wcs/portfolio.py b/wcs/portfolio.py index c99db74fb..52354daf7 100644 --- a/wcs/portfolio.py +++ b/wcs/portfolio.py @@ -19,23 +19,14 @@ import json import urllib.parse from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from wcs.api_utils import get_secret_and_orig -from wcs.api_utils import sign_url +from wcs.api_utils import get_secret_and_orig, sign_url -from .qommon import N_ -from .qommon import get_logger -from .qommon.misc import http_post_request -from .qommon.misc import json_loads -from .qommon.misc import urlopen +from .qommon import N_, get_logger +from .qommon.misc import http_post_request, json_loads, urlopen def has_portfolio(): diff --git a/wcs/publisher.py b/wcs/publisher.py index de5c7dd4d..4dd588817 100644 --- a/wcs/publisher.py +++ b/wcs/publisher.py @@ -28,15 +28,12 @@ from django.utils.encoding import force_text from wcs.qommon import force_str -from . import custom_views -from . import sessions +from . import custom_views, sessions from .admin import RootDirectory as AdminRootDirectory from .backoffice import RootDirectory as BackofficeRootDirectory from .Defaults import * # noqa pylint: disable=wildcard-import from .qommon.cron import CronJob -from .qommon.publisher import QommonPublisher -from .qommon.publisher import get_request -from .qommon.publisher import set_publisher_class +from .qommon.publisher import QommonPublisher, get_request, set_publisher_class from .roles import Role from .root import RootDirectory from .tracking_code import TrackingCode @@ -397,8 +394,7 @@ class WcsPublisher(StubWcsPublisher): self.loggederror_class.record(*args, **kwargs) def apply_global_action_timeouts(self): - from wcs.workflows import Workflow - from wcs.workflows import WorkflowGlobalActionTimeoutTrigger + from wcs.workflows import Workflow, WorkflowGlobalActionTimeoutTrigger for workflow in Workflow.select(): WorkflowGlobalActionTimeoutTrigger.apply(workflow) diff --git a/wcs/qommon/admin/emails.py b/wcs/qommon/admin/emails.py index 518be1d80..6b022b2a6 100644 --- a/wcs/qommon/admin/emails.py +++ b/wcs/qommon/admin/emails.py @@ -14,22 +14,14 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from .. import _ -from .. import get_cfg +from .. import _, get_cfg from ..admin.cfg import cfg_submit from ..backoffice.menu import html_top -from ..form import CheckboxWidget -from ..form import Form -from ..form import StringWidget -from ..form import TextWidget -from ..form import WidgetList +from ..form import CheckboxWidget, Form, StringWidget, TextWidget, WidgetList class EmailsDirectory(Directory): diff --git a/wcs/qommon/admin/logger.py b/wcs/qommon/admin/logger.py index 3a163e8c2..b5f597885 100644 --- a/wcs/qommon/admin/logger.py +++ b/wcs/qommon/admin/logger.py @@ -17,16 +17,11 @@ import os import random -from quixote import get_publisher -from quixote import get_request -from quixote import get_response +from quixote import get_publisher, get_request, get_response from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from .. import _ -from .. import errors -from .. import logger +from .. import _, errors, logger from ..admin.menu import error_page from ..backoffice.menu import html_top diff --git a/wcs/qommon/admin/menu.py b/wcs/qommon/admin/menu.py index efb375a5e..7898b0605 100644 --- a/wcs/qommon/admin/menu.py +++ b/wcs/qommon/admin/menu.py @@ -16,13 +16,10 @@ import re -from quixote import get_publisher -from quixote import get_request -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request +from quixote.html import TemplateIO, htmltext -from .. import N_ -from .. import _ +from .. import N_, _ from ..backoffice.menu import html_top diff --git a/wcs/qommon/admin/settings.py b/wcs/qommon/admin/settings.py index 879125d31..9a1bac48b 100644 --- a/wcs/qommon/admin/settings.py +++ b/wcs/qommon/admin/settings.py @@ -14,23 +14,16 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_response -from quixote import redirect -from quixote.directory import AccessControlled -from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_response, redirect +from quixote.directory import AccessControlled, Directory +from quixote.html import TemplateIO, htmltext from wcs.qommon import get_cfg -from .. import N_ -from .. import _ +from .. import N_, _ from ..admin.cfg import cfg_submit from ..backoffice.menu import html_top -from ..form import CheckboxWidget -from ..form import Form -from ..form import SingleSelectWidget -from ..form import StringWidget +from ..form import CheckboxWidget, Form, SingleSelectWidget, StringWidget class SettingsDirectory(AccessControlled, Directory): diff --git a/wcs/qommon/admin/texts.py b/wcs/qommon/admin/texts.py index fb6e189d9..99ee3d8a2 100644 --- a/wcs/qommon/admin/texts.py +++ b/wcs/qommon/admin/texts.py @@ -16,19 +16,13 @@ import os -from quixote import get_publisher -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_response, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from wcs.qommon import _ -from wcs.qommon import ezt -from wcs.qommon import get_cfg +from wcs.qommon import _, ezt, get_cfg from wcs.qommon.backoffice.menu import html_top -from wcs.qommon.form import Form -from wcs.qommon.form import WysiwygTextWidget +from wcs.qommon.form import Form, WysiwygTextWidget from wcs.qommon.template import Template diff --git a/wcs/qommon/afterjobs.py b/wcs/qommon/afterjobs.py index 213d76c4b..571ba30d1 100644 --- a/wcs/qommon/afterjobs.py +++ b/wcs/qommon/afterjobs.py @@ -19,13 +19,10 @@ import time import traceback import uuid -from quixote import get_publisher -from quixote import get_response +from quixote import get_publisher, get_response from quixote.directory import Directory -from . import N_ -from . import _ -from . import errors +from . import N_, _, errors from .storage import StorableObject diff --git a/wcs/qommon/backoffice/listing.py b/wcs/qommon/backoffice/listing.py index d73c200b3..5ece59eae 100644 --- a/wcs/qommon/backoffice/listing.py +++ b/wcs/qommon/backoffice/listing.py @@ -16,11 +16,8 @@ import urllib.parse -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request, get_response +from quixote.html import TemplateIO, htmltext from .. import _ diff --git a/wcs/qommon/backoffice/menu.py b/wcs/qommon/backoffice/menu.py index c09bcc635..69c9abe24 100644 --- a/wcs/qommon/backoffice/menu.py +++ b/wcs/qommon/backoffice/menu.py @@ -14,11 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_response +from quixote import get_publisher, get_response -from .. import _ -from .. import get_cfg +from .. import _, get_cfg def generate_header_menu(selected=None): diff --git a/wcs/qommon/backoffice/root.py b/wcs/qommon/backoffice/root.py index b148b8cf1..48070a40f 100644 --- a/wcs/qommon/backoffice/root.py +++ b/wcs/qommon/backoffice/root.py @@ -14,8 +14,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote.directory import AccessControlled -from quixote.directory import Directory +from quixote.directory import AccessControlled, Directory class BackofficeRootDirectory(AccessControlled, Directory): diff --git a/wcs/qommon/emails.py b/wcs/qommon/emails.py index 30ff2d342..ce4398f3d 100644 --- a/wcs/qommon/emails.py +++ b/wcs/qommon/emails.py @@ -41,15 +41,11 @@ except ImportError: from django.template.loader import render_to_string from django.utils.safestring import mark_safe -from quixote import get_publisher -from quixote import get_request -from quixote import get_response +from quixote import get_publisher, get_request, get_response -from . import errors -from . import force_str +from . import errors, force_str from .admin.emails import EmailsDirectory -from .publisher import get_cfg -from .publisher import get_logger +from .publisher import get_cfg, get_logger from .template import Template try: diff --git a/wcs/qommon/errors.py b/wcs/qommon/errors.py index c0f351db5..0a6b53089 100644 --- a/wcs/qommon/errors.py +++ b/wcs/qommon/errors.py @@ -18,13 +18,10 @@ import urllib.parse import quixote from quixote import get_publisher -from quixote.errors import AccessError -from quixote.errors import TraversalError -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.errors import AccessError, TraversalError +from quixote.html import TemplateIO, htmltext -from . import N_ -from . import template +from . import N_, template class AccessForbiddenError(AccessError): diff --git a/wcs/qommon/ezt.py b/wcs/qommon/ezt.py index fa9db3573..27999d832 100644 --- a/wcs/qommon/ezt.py +++ b/wcs/qommon/ezt.py @@ -734,8 +734,7 @@ def _write_value(valrefs, fp, ctx, format=lambda s: s): fp.write(localstrftime(value)) elif isinstance(value, datetime.date): - from .misc import date_format - from .misc import strftime + from .misc import date_format, strftime fp.write(strftime(date_format(), value)) # plain old value, write to output diff --git a/wcs/qommon/form.py b/wcs/qommon/form.py index fd17f1423..c2a892740 100644 --- a/wcs/qommon/form.py +++ b/wcs/qommon/form.py @@ -54,47 +54,26 @@ except ImportError: import quixote import quixote.form.widget from django.conf import settings -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text +from django.utils.encoding import force_bytes, force_text from django.utils.safestring import mark_safe -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session +from quixote import get_publisher, get_request, get_response, get_session from quixote.form import CheckboxWidget as QuixoteCheckboxWidget from quixote.form import FileWidget from quixote.form import Form as QuixoteForm -from quixote.form import HiddenWidget -from quixote.form import IntWidget -from quixote.form import PasswordWidget -from quixote.form import SelectWidget +from quixote.form import HiddenWidget, IntWidget, PasswordWidget, SelectWidget from quixote.form import StringWidget as QuixoteStringWidget from quixote.form import TextWidget as QuixoteTextWidget from quixote.form import Widget -from quixote.html import TemplateIO -from quixote.html import htmlescape -from quixote.html import htmltag -from quixote.html import htmltext -from quixote.html import stringify +from quixote.html import TemplateIO, htmlescape, htmltag, htmltext, stringify -from wcs.conditions import Condition -from wcs.conditions import ValidationError +from wcs.conditions import Condition, ValidationError from ..portfolio import has_portfolio -from . import N_ -from . import _ -from . import force_str -from . import misc -from . import ngettext -from .humantime import humanduration2seconds -from .humantime import seconds2humanduration -from .humantime import timewords -from .misc import HAS_PDFTOPPM -from .misc import json_loads -from .misc import strftime +from . import N_, _, force_str, misc, ngettext +from .humantime import humanduration2seconds, seconds2humanduration, timewords +from .misc import HAS_PDFTOPPM, json_loads, strftime from .publisher import get_cfg -from .template import Template -from .template import TemplateError +from .template import Template, TemplateError from .template import render as render_template from .template_utils import render_block_to_string from .upload_storage import PicklableUpload # noqa pylint: disable=unused-import diff --git a/wcs/qommon/http_request.py b/wcs/qommon/http_request.py index b99e686b9..624234b55 100644 --- a/wcs/qommon/http_request.py +++ b/wcs/qommon/http_request.py @@ -20,10 +20,8 @@ import re import time import quixote.http_request -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_session +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_session from quixote.errors import RequestError from .http_response import HTTPResponse diff --git a/wcs/qommon/http_response.py b/wcs/qommon/http_response.py index 09fcee250..992bb59f7 100644 --- a/wcs/qommon/http_response.py +++ b/wcs/qommon/http_response.py @@ -18,8 +18,7 @@ import hashlib import quixote.http_response from django.utils.encoding import force_bytes -from quixote import get_publisher -from quixote import get_request +from quixote import get_publisher, get_request from .afterjobs import AfterJob diff --git a/wcs/qommon/humantime.py b/wcs/qommon/humantime.py index 402e1b070..50535b58c 100644 --- a/wcs/qommon/humantime.py +++ b/wcs/qommon/humantime.py @@ -16,9 +16,7 @@ import re -from . import N_ -from . import _ -from . import ngettext +from . import N_, _, ngettext _minute = 60 _hour = 60 * 60 diff --git a/wcs/qommon/ident/franceconnect.py b/wcs/qommon/ident/franceconnect.py index c53407e28..fcc062eb3 100644 --- a/wcs/qommon/ident/franceconnect.py +++ b/wcs/qommon/ident/franceconnect.py @@ -21,34 +21,25 @@ import urllib.parse import uuid from django.utils.encoding import force_bytes -from quixote import get_publisher -from quixote import get_request -from quixote import get_session -from quixote import get_session_manager -from quixote import redirect +from quixote import get_publisher, get_request, get_session, get_session_manager, redirect from quixote.directory import Directory from quixote.errors import QueryError -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.formdata import flatten_dict from wcs.workflows import WorkflowStatusItem -from .. import N_ -from .. import _ -from .. import get_cfg -from .. import get_logger -from .. import template +from .. import N_, _, get_cfg, get_logger, template from ..backoffice.menu import html_top -from ..form import CompositeWidget -from ..form import ComputedExpressionWidget -from ..form import Form -from ..form import SingleSelectWidget -from ..form import StringWidget -from ..form import WidgetListAsTable -from ..misc import http_get_page -from ..misc import http_post_request -from ..misc import json_loads +from ..form import ( + CompositeWidget, + ComputedExpressionWidget, + Form, + SingleSelectWidget, + StringWidget, + WidgetListAsTable, +) +from ..misc import http_get_page, http_post_request, json_loads from .base import AuthMethod ADMIN_TITLE = N_('FranceConnect') diff --git a/wcs/qommon/ident/idp.py b/wcs/qommon/ident/idp.py index b812cae04..1c788e2aa 100644 --- a/wcs/qommon/ident/idp.py +++ b/wcs/qommon/ident/idp.py @@ -24,37 +24,25 @@ try: except ImportError: lasso = None -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from .. import N_ -from .. import _ -from .. import errors -from .. import get_cfg -from .. import get_logger -from .. import misc -from .. import saml2utils -from .. import template -from .. import x509utils +from .. import N_, _, errors, get_cfg, get_logger, misc, saml2utils, template, x509utils from ..admin.menu import command_icon from ..backoffice.menu import html_top -from ..form import CheckboxWidget -from ..form import EmailWidget -from ..form import FileWidget -from ..form import Form -from ..form import HtmlWidget -from ..form import RadiobuttonsWidget -from ..form import SingleSelectWidget -from ..form import StringWidget -from ..form import WidgetDict +from ..form import ( + CheckboxWidget, + EmailWidget, + FileWidget, + Form, + HtmlWidget, + RadiobuttonsWidget, + SingleSelectWidget, + StringWidget, + WidgetDict, +) from ..storage import atomic_write from ..tokens import Token from .base import AuthMethod diff --git a/wcs/qommon/ident/password.py b/wcs/qommon/ident/password.py index 6025f64bc..5b12c5870 100644 --- a/wcs/qommon/ident/password.py +++ b/wcs/qommon/ident/password.py @@ -17,47 +17,34 @@ import random import time -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.qommon.admin.texts import TextsDirectory -from .. import N_ -from .. import _ -from .. import emails -from .. import errors -from .. import get_cfg -from .. import get_logger -from .. import misc -from .. import ngettext +from .. import N_, _, emails, errors, get_cfg, get_logger, misc, ngettext from .. import storage as st -from .. import template -from .. import tokens +from .. import template, tokens from ..admin.emails import EmailsDirectory from ..backoffice.menu import html_top from ..cron import CronJob -from ..form import CheckboxWidget -from ..form import CompositeWidget -from ..form import EmailWidget -from ..form import Form -from ..form import HiddenWidget -from ..form import IntWidget -from ..form import PasswordEntryWidget -from ..form import PasswordWidget -from ..form import RadiobuttonsWidget -from ..form import SingleSelectWidget -from ..form import StringWidget +from ..form import ( + CheckboxWidget, + CompositeWidget, + EmailWidget, + Form, + HiddenWidget, + IntWidget, + PasswordEntryWidget, + PasswordWidget, + RadiobuttonsWidget, + SingleSelectWidget, + StringWidget, +) from ..publisher import get_publisher_class -from .base import AuthMethod -from .base import NoSuchMethodForUserError -from .password_accounts import HASHING_ALGOS -from .password_accounts import PasswordAccount +from .base import AuthMethod, NoSuchMethodForUserError +from .password_accounts import HASHING_ALGOS, PasswordAccount def notify_admins_user_registered(account): diff --git a/wcs/qommon/ident/password_accounts.py b/wcs/qommon/ident/password_accounts.py index 3ba3b39a9..517fa9f1b 100644 --- a/wcs/qommon/ident/password_accounts.py +++ b/wcs/qommon/ident/password_accounts.py @@ -16,8 +16,7 @@ import hashlib -from django.contrib.auth.hashers import check_password -from django.contrib.auth.hashers import make_password +from django.contrib.auth.hashers import check_password, make_password from django.utils.encoding import force_bytes from quixote import get_publisher diff --git a/wcs/qommon/logger.py b/wcs/qommon/logger.py index 721196fe3..3085d9f0e 100644 --- a/wcs/qommon/logger.py +++ b/wcs/qommon/logger.py @@ -17,9 +17,7 @@ import logging import os -from quixote import get_publisher -from quixote import get_request -from quixote import get_session +from quixote import get_publisher, get_request, get_session from quixote.logger import DefaultLogger diff --git a/wcs/qommon/management/commands/cron.py b/wcs/qommon/management/commands/cron.py index b92f3d402..1313cc05b 100644 --- a/wcs/qommon/management/commands/cron.py +++ b/wcs/qommon/management/commands/cron.py @@ -21,8 +21,7 @@ import tempfile import time from django.conf import settings -from django.core.management.base import BaseCommand -from django.core.management.base import CommandError +from django.core.management.base import BaseCommand, CommandError from wcs.qommon.cron import cron_worker from wcs.qommon.publisher import get_publisher_class diff --git a/wcs/qommon/misc.py b/wcs/qommon/misc.py index c77d7f9b9..a8f1e30bc 100644 --- a/wcs/qommon/misc.py +++ b/wcs/qommon/misc.py @@ -38,25 +38,17 @@ except ImportError: Image = None from django.conf import settings -from django.template import TemplateSyntaxError -from django.template import VariableDoesNotExist +from django.template import TemplateSyntaxError, VariableDoesNotExist from django.utils import datetime_safe from django.utils.encoding import force_text from django.utils.formats import localize from django.utils.html import strip_tags from django.utils.text import Truncator -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_request, get_response, redirect from quixote.errors import RequestError from quixote.html import htmltext -from . import _ -from . import ezt -from . import force_str -from . import get_cfg -from . import get_logger +from . import _, ezt, force_str, get_cfg, get_logger from .errors import ConnectionError from .template import Template diff --git a/wcs/qommon/myspace.py b/wcs/qommon/myspace.py index 8149535fb..1a226b99f 100644 --- a/wcs/qommon/myspace.py +++ b/wcs/qommon/myspace.py @@ -14,26 +14,14 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import get_session_manager -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, get_session_manager, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from wcs.qommon.admin.texts import TextsDirectory -from . import N_ -from . import _ -from . import errors -from . import get_cfg -from . import template -from .form import Form -from .form import HtmlWidget -from .form import PasswordWidget +from . import N_, _, errors, get_cfg, template +from .form import Form, HtmlWidget, PasswordWidget from .ident.password import check_password from .ident.password_accounts import PasswordAccount diff --git a/wcs/qommon/ods.py b/wcs/qommon/ods.py index 09684a2c9..4c18efe94 100644 --- a/wcs/qommon/ods.py +++ b/wcs/qommon/ods.py @@ -22,11 +22,8 @@ import zipfile from django.utils.encoding import force_text -from .evalutils import make_date -from .evalutils import make_datetime -from .misc import date_format -from .misc import datetime_format -from .misc import strftime +from .evalutils import make_date, make_datetime +from .misc import date_format, datetime_format, strftime NS = { 'fo': 'urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0', diff --git a/wcs/qommon/pages.py b/wcs/qommon/pages.py index a46fac292..f13922a33 100644 --- a/wcs/qommon/pages.py +++ b/wcs/qommon/pages.py @@ -16,13 +16,11 @@ import os -from quixote import get_publisher -from quixote import redirect +from quixote import get_publisher, redirect from quixote.directory import Directory from quixote.util import StaticDirectory -from . import errors -from . import template +from . import errors, template class PagesDirectory(Directory): diff --git a/wcs/qommon/publisher.py b/wcs/qommon/publisher.py index 109c40e2d..5460af0b9 100644 --- a/wcs/qommon/publisher.py +++ b/wcs/qommon/publisher.py @@ -44,26 +44,14 @@ from decimal import Decimal from django.conf import settings from django.http import Http404 from django.utils import translation -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote.publish import Publisher -from quixote.publish import get_publisher -from quixote.publish import get_request -from quixote.publish import get_response +from django.utils.encoding import force_bytes, force_text +from quixote.publish import Publisher, get_publisher, get_request, get_response -from . import N_ -from . import _ -from . import errors -from . import force_str -from . import logger -from . import storage -from . import template +from . import N_, _, errors, force_str, logger, storage, template from .cron import CronJob from .http_request import HTTPRequest -from .http_response import AfterJob -from .http_response import HTTPResponse -from .substitution import CompatibilityNamesDict -from .substitution import Substitutions +from .http_response import AfterJob, HTTPResponse +from .substitution import CompatibilityNamesDict, Substitutions from .vendor import locket diff --git a/wcs/qommon/saml2.py b/wcs/qommon/saml2.py index 467ef3a2e..a162d29b7 100644 --- a/wcs/qommon/saml2.py +++ b/wcs/qommon/saml2.py @@ -26,23 +26,21 @@ except ImportError: lasso = None from django.utils.encoding import force_text -from quixote import get_field -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import get_session_manager -from quixote import redirect +from quixote import ( + get_field, + get_publisher, + get_request, + get_response, + get_session, + get_session_manager, + redirect, +) from quixote.directory import Directory from quixote.errors import RequestError from quixote.http_request import parse_header -from . import _ -from . import errors -from . import force_str -from . import misc -from .publisher import get_cfg -from .publisher import get_logger +from . import _, errors, force_str, misc +from .publisher import get_cfg, get_logger from .template import error_page diff --git a/wcs/qommon/saml2utils.py b/wcs/qommon/saml2utils.py index 9eafd5c3b..1ab9ce791 100644 --- a/wcs/qommon/saml2utils.py +++ b/wcs/qommon/saml2utils.py @@ -16,8 +16,7 @@ import os -from . import force_str -from . import x509utils +from . import force_str, x509utils def bool2xs(boolean): diff --git a/wcs/qommon/sessions.py b/wcs/qommon/sessions.py index 17ae0b03c..3729d5c69 100644 --- a/wcs/qommon/sessions.py +++ b/wcs/qommon/sessions.py @@ -21,14 +21,10 @@ import os import time from django.conf import settings -from django.core.signing import BadSignature -from django.core.signing import Signer -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text +from django.core.signing import BadSignature, Signer +from django.utils.encoding import force_bytes, force_text from quixote import get_publisher -from quixote.publish import get_request -from quixote.publish import get_session -from quixote.publish import get_session_manager +from quixote.publish import get_request, get_session, get_session_manager from quixote.session import Session as QuixoteSession from quixote.session import SessionManager as QuixoteSessionManager from quixote.util import randbytes diff --git a/wcs/qommon/sms.py b/wcs/qommon/sms.py index 94f45ed54..3f5296dfa 100644 --- a/wcs/qommon/sms.py +++ b/wcs/qommon/sms.py @@ -16,8 +16,7 @@ from wcs.wscalls import call_webservice -from . import get_cfg -from . import get_logger +from . import get_cfg, get_logger class PasserelleSMS: diff --git a/wcs/qommon/storage.py b/wcs/qommon/storage.py index 3e7dfaede..2a732c39d 100644 --- a/wcs/qommon/storage.py +++ b/wcs/qommon/storage.py @@ -30,8 +30,7 @@ import time from django.utils.encoding import force_bytes from quixote import get_publisher -from . import PICKLE_KWARGS -from . import force_str +from . import PICKLE_KWARGS, force_str from .vendor import locket # add compatibility names in case those were stored in pickles diff --git a/wcs/qommon/substitution.py b/wcs/qommon/substitution.py index a83439860..09aea0e0c 100644 --- a/wcs/qommon/substitution.py +++ b/wcs/qommon/substitution.py @@ -17,8 +17,7 @@ from contextlib import contextmanager from quixote import get_publisher -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext def invalidate_substitution_cache(func): @@ -44,8 +43,7 @@ class Substitutions: def set_empty(self): from wcs.data_sources import NamedDataSource from wcs.scripts import Script - from wcs.variables import CardsSource - from wcs.variables import FormsSource + from wcs.variables import CardsSource, FormsSource from wcs.wscalls import NamedWsCall self.sources = [NamedDataSource, NamedWsCall, CardsSource, FormsSource, Script] diff --git a/wcs/qommon/template.py b/wcs/qommon/template.py index 12bc38558..4214abd3a 100644 --- a/wcs/qommon/template.py +++ b/wcs/qommon/template.py @@ -25,21 +25,13 @@ from django.template import TemplateSyntaxError as DjangoTemplateSyntaxError from django.template import VariableDoesNotExist as DjangoVariableDoesNotExist from django.template import engines from django.template.loader import render_to_string -from django.utils.encoding import force_text -from django.utils.encoding import smart_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session +from django.utils.encoding import force_text, smart_text +from quixote import get_publisher, get_request, get_response, get_session from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmlescape -from quixote.html import htmltext -from quixote.util import StaticDirectory -from quixote.util import StaticFile +from quixote.html import TemplateIO, htmlescape, htmltext +from quixote.util import StaticDirectory, StaticFile -from . import ezt -from . import force_str +from . import ezt, force_str def get_template_from_script(filename): diff --git a/wcs/qommon/template_utils.py b/wcs/qommon/template_utils.py index fa24c06ee..1cd792258 100644 --- a/wcs/qommon/template_utils.py +++ b/wcs/qommon/template_utils.py @@ -21,13 +21,9 @@ from __future__ import absolute_import -from django.template import Context -from django.template import loader +from django.template import Context, loader from django.template.base import TextNode -from django.template.loader_tags import BLOCK_CONTEXT_KEY -from django.template.loader_tags import BlockContext -from django.template.loader_tags import BlockNode -from django.template.loader_tags import ExtendsNode +from django.template.loader_tags import BLOCK_CONTEXT_KEY, BlockContext, BlockNode, ExtendsNode class BlockNotFound(Exception): diff --git a/wcs/qommon/templatetags/qommon.py b/wcs/qommon/templatetags/qommon.py index c89a9ae40..97e3d6ec6 100644 --- a/wcs/qommon/templatetags/qommon.py +++ b/wcs/qommon/templatetags/qommon.py @@ -38,15 +38,11 @@ except ImportError: from django import template from django.template import defaultfilters from django.utils import dateparse -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text +from django.utils.encoding import force_bytes, force_text from django.utils.safestring import mark_safe -from django.utils.timezone import is_naive -from django.utils.timezone import make_aware +from django.utils.timezone import is_naive, make_aware -from wcs.qommon import calendar -from wcs.qommon import evalutils -from wcs.qommon import tokens +from wcs.qommon import calendar, evalutils, tokens from wcs.qommon.admin.texts import TextsDirectory register = template.Library() @@ -769,8 +765,7 @@ def phonenumber_fr(value, separator=' '): @register.filter def is_empty(value): - from wcs.variables import LazyFormDefObjectsManager - from wcs.variables import LazyList + from wcs.variables import LazyFormDefObjectsManager, LazyList if isinstance(value, (str, list, dict)): return not value diff --git a/wcs/qommon/upload_storage.py b/wcs/qommon/upload_storage.py index 05b09e06d..c2524bc1c 100644 --- a/wcs/qommon/upload_storage.py +++ b/wcs/qommon/upload_storage.py @@ -24,9 +24,7 @@ from quixote import get_publisher from quixote.http_request import Upload from .errors import ConnectionError -from .misc import can_thumbnail -from .misc import file_digest -from .misc import json_loads +from .misc import can_thumbnail, file_digest, json_loads from .storage import atomic_write diff --git a/wcs/qommon/xml_storage.py b/wcs/qommon/xml_storage.py index 0c454aa8f..fad238db6 100644 --- a/wcs/qommon/xml_storage.py +++ b/wcs/qommon/xml_storage.py @@ -20,8 +20,7 @@ import xml.etree.ElementTree as ET from django.utils.encoding import force_text from quixote import get_publisher -from .misc import indent_xml -from .misc import xml_node_text +from .misc import indent_xml, xml_node_text from .storage import StorableObject diff --git a/wcs/roles.py b/wcs/roles.py index 79d5e7cda..b0ded6892 100644 --- a/wcs/roles.py +++ b/wcs/roles.py @@ -19,8 +19,7 @@ import xml.etree.ElementTree as ET from django.utils.encoding import force_text from quixote import get_publisher -from .qommon import _ -from .qommon import misc +from .qommon import _, misc from .qommon.storage import StorableObject diff --git a/wcs/root.py b/wcs/root.py index 03a993232..6c370e51e 100644 --- a/wcs/root.py +++ b/wcs/root.py @@ -20,15 +20,9 @@ import re import urllib.parse from importlib import import_module -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session -from quixote import get_session_manager -from quixote import redirect +from quixote import get_publisher, get_request, get_response, get_session, get_session_manager, redirect from quixote.directory import Directory -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext from quixote.util import StaticDirectory from . import portfolio @@ -39,16 +33,9 @@ from .forms import root from .forms.actions import ActionsDirectory from .forms.preview import PreviewDirectory from .myspace import MyspaceDirectory -from .qommon import _ -from .qommon import errors -from .qommon import get_cfg -from .qommon import get_logger -from .qommon import ident -from .qommon import saml2 -from .qommon import template +from .qommon import _, errors, get_cfg, get_logger, ident, saml2, template from .qommon.afterjobs import AfterJobStatusDirectory -from .qommon.form import Form -from .qommon.form import RadiobuttonsWidget +from .qommon.form import Form, RadiobuttonsWidget from .qommon.pages import PagesDirectory from .qommon.upload_storage import UploadStorageError diff --git a/wcs/snapshots.py b/wcs/snapshots.py index 774c87a07..725f8a4fe 100644 --- a/wcs/snapshots.py +++ b/wcs/snapshots.py @@ -17,11 +17,9 @@ import xml.etree.ElementTree as ET from django.utils.timezone import now -from quixote import get_publisher -from quixote import get_session +from quixote import get_publisher, get_session -from wcs.qommon import _ -from wcs.qommon import misc +from wcs.qommon import _, misc from wcs.qommon.storage import Null diff --git a/wcs/sql.py b/wcs/sql.py index 288e58859..d08e8472d 100644 --- a/wcs/sql.py +++ b/wcs/sql.py @@ -30,8 +30,7 @@ try: except ImportError: import pickle -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text +from django.utils.encoding import force_bytes, force_text from quixote import get_publisher import wcs.carddata @@ -43,15 +42,13 @@ import wcs.roles import wcs.snapshots import wcs.tracking_code import wcs.users -from wcs.qommon import PICKLE_KWARGS -from wcs.qommon import force_str +from wcs.qommon import PICKLE_KWARGS, force_str from . import qommon from .publisher import UnpicklerClass from .qommon import get_cfg from .qommon.misc import strftime -from .qommon.storage import _take -from .qommon.storage import deep_bytes2str +from .qommon.storage import _take, deep_bytes2str from .qommon.storage import parse_clause as parse_storage_clause from .qommon.substitution import invalidate_substitution_cache from .qommon.upload_storage import PicklableUpload diff --git a/wcs/urls.py b/wcs/urls.py index a4873557d..7e7528d24 100644 --- a/wcs/urls.py +++ b/wcs/urls.py @@ -16,9 +16,7 @@ from django.conf.urls import url -from . import api -from . import compat -from . import views +from . import api, compat, views urlpatterns = [ url(r'^robots.txt$', views.robots_txt), diff --git a/wcs/users.py b/wcs/users.py index 295193e1b..0f63dd0a6 100644 --- a/wcs/users.py +++ b/wcs/users.py @@ -20,13 +20,10 @@ from quixote import get_publisher import wcs.qommon.storage as st -from .qommon import N_ -from .qommon import _ -from .qommon import get_cfg +from .qommon import N_, _, get_cfg from .qommon.misc import simplify from .qommon.storage import StorableObject -from .qommon.substitution import Substitutions -from .qommon.substitution import invalidate_substitution_cache +from .qommon.substitution import Substitutions, invalidate_substitution_cache class User(StorableObject): diff --git a/wcs/utils.py b/wcs/utils.py index ccf065cbd..8bb0822f0 100644 --- a/wcs/utils.py +++ b/wcs/utils.py @@ -18,8 +18,7 @@ import os import django.template.loaders.filesystem -from .qommon.publisher import get_cfg -from .qommon.publisher import get_publisher +from .qommon.publisher import get_cfg, get_publisher from .qommon.template import get_theme_directory diff --git a/wcs/variables.py b/wcs/variables.py index 5fa07a7b3..965fe5fa0 100644 --- a/wcs/variables.py +++ b/wcs/variables.py @@ -19,19 +19,13 @@ import warnings from django.utils.encoding import force_text from django.utils.functional import SimpleLazyObject from pyproj import Geod -from quixote import get_publisher -from quixote import get_request +from quixote import get_publisher, get_request from .carddef import CardDef from .formdef import FormDef -from .qommon import _ -from .qommon import force_str -from .qommon import misc +from .qommon import _, force_str, misc from .qommon.evalutils import make_datetime -from .qommon.storage import Equal -from .qommon.storage import NotEqual -from .qommon.storage import Null -from .qommon.storage import Or +from .qommon.storage import Equal, NotEqual, Null, Or from .qommon.substitution import CompatibilityNamesDict from .qommon.templatetags.qommon import parse_datetime diff --git a/wcs/views.py b/wcs/views.py index 55d595418..8c9ed2c46 100644 --- a/wcs/views.py +++ b/wcs/views.py @@ -15,9 +15,7 @@ # along with this program; if not, see . from django.http import HttpResponse -from quixote import get_publisher -from quixote import get_request -from quixote import get_response +from quixote import get_publisher, get_request, get_response from . import compat from .qommon import template diff --git a/wcs/wf/aggregation_email.py b/wcs/wf/aggregation_email.py index f2dc5f425..daf1af5c0 100644 --- a/wcs/wf/aggregation_email.py +++ b/wcs/wf/aggregation_email.py @@ -16,15 +16,11 @@ from quixote import get_publisher -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon import emails +from ..qommon import N_, _, emails from ..qommon.cron import CronJob -from ..qommon.form import SingleSelectWidget -from ..qommon.form import WidgetList +from ..qommon.form import SingleSelectWidget, WidgetList from ..qommon.publisher import get_publisher_class from ..qommon.storage import StorableObject diff --git a/wcs/wf/anonymise.py b/wcs/wf/anonymise.py index 15bed1566..5db0e149f 100644 --- a/wcs/wf/anonymise.py +++ b/wcs/wf/anonymise.py @@ -15,8 +15,7 @@ # along with this program; if not, see . from wcs.qommon import N_ -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class class AnonymiseWorkflowStatusItem(WorkflowStatusItem): diff --git a/wcs/wf/attachment.py b/wcs/wf/attachment.py index 2d6a56c2c..4b41d1da3 100644 --- a/wcs/wf/attachment.py +++ b/wcs/wf/attachment.py @@ -18,30 +18,25 @@ import os import urllib.parse import xml.etree.ElementTree as ET -from quixote import get_request -from quixote import redirect +from quixote import get_request, redirect -from wcs.forms.common import FileDirectory -from wcs.forms.common import FormStatusPage -from wcs.portfolio import has_portfolio -from wcs.portfolio import push_document -from wcs.workflows import AttachmentEvolutionPart -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.forms.common import FileDirectory, FormStatusPage +from wcs.portfolio import has_portfolio, push_document +from wcs.workflows import AttachmentEvolutionPart, WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ from ..qommon.errors import TraversalError -from ..qommon.form import CheckboxWidget -from ..qommon.form import FileSizeWidget -from ..qommon.form import FileWithPreviewWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import VarnameWidget -from ..qommon.form import WidgetList -from ..qommon.form import WysiwygTextWidget -from ..qommon.misc import get_document_type_value_options -from ..qommon.misc import xml_node_text +from ..qommon.form import ( + CheckboxWidget, + FileSizeWidget, + FileWithPreviewWidget, + SingleSelectWidget, + StringWidget, + VarnameWidget, + WidgetList, + WysiwygTextWidget, +) +from ..qommon.misc import get_document_type_value_options, xml_node_text def lookup_wf_attachment(self, filename): diff --git a/wcs/wf/backoffice_fields.py b/wcs/wf/backoffice_fields.py index f7458f6a2..c9a0e9728 100644 --- a/wcs/wf/backoffice_fields.py +++ b/wcs/wf/backoffice_fields.py @@ -21,16 +21,16 @@ from quixote.html import htmltext from wcs.fields import WidgetField from wcs.wf.profile import FieldNode -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon.form import CompositeWidget -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import WidgetListAsTable +from ..qommon import N_, _ +from ..qommon.form import ( + CompositeWidget, + ComputedExpressionWidget, + SingleSelectWidget, + StringWidget, + WidgetListAsTable, +) class SetBackofficeFieldRowWidget(CompositeWidget): diff --git a/wcs/wf/create_carddata.py b/wcs/wf/create_carddata.py index 04773b4d3..69e7900d6 100644 --- a/wcs/wf/create_carddata.py +++ b/wcs/wf/create_carddata.py @@ -18,8 +18,7 @@ from quixote import get_publisher from wcs.carddef import CardDef from wcs.qommon import N_ -from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem -from wcs.wf.create_formdata import LinkedFormdataEvolutionPart +from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, LinkedFormdataEvolutionPart from wcs.workflows import register_item_class diff --git a/wcs/wf/create_formdata.py b/wcs/wf/create_formdata.py index 668a9da7d..84388b5fe 100644 --- a/wcs/wf/create_formdata.py +++ b/wcs/wf/create_formdata.py @@ -18,25 +18,23 @@ import time import xml.etree.ElementTree as ET from django.utils.functional import cached_property -from quixote import get_publisher -from quixote import get_request -from quixote import get_session +from quixote import get_publisher, get_request, get_session from quixote.html import htmltext from wcs.formdef import FormDef -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon.form import CheckboxWidget -from wcs.qommon.form import CompositeWidget -from wcs.qommon.form import ComputedExpressionWidget -from wcs.qommon.form import Form -from wcs.qommon.form import HtmlWidget -from wcs.qommon.form import RadiobuttonsWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import VarnameWidget -from wcs.qommon.form import WidgetListAsTable -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.qommon import N_, _ +from wcs.qommon.form import ( + CheckboxWidget, + CompositeWidget, + ComputedExpressionWidget, + Form, + HtmlWidget, + RadiobuttonsWidget, + SingleSelectWidget, + VarnameWidget, + WidgetListAsTable, +) +from wcs.workflows import WorkflowStatusItem, register_item_class class Mapping: diff --git a/wcs/wf/criticality.py b/wcs/wf/criticality.py index 442811050..8a6531c90 100644 --- a/wcs/wf/criticality.py +++ b/wcs/wf/criticality.py @@ -15,11 +15,9 @@ # along with this program; if not, see . from wcs.qommon.form import SingleSelectWidget -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ MODE_INC = '1' MODE_DEC = '2' diff --git a/wcs/wf/dispatch.py b/wcs/wf/dispatch.py index c3ff49712..b5c32c1c4 100644 --- a/wcs/wf/dispatch.py +++ b/wcs/wf/dispatch.py @@ -21,19 +21,17 @@ from quixote import get_publisher from quixote.html import htmltext from wcs.roles import get_user_roles -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import XmlSerialisable -from wcs.workflows import get_role_name -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, XmlSerialisable, get_role_name, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon.form import CompositeWidget -from ..qommon.form import RadiobuttonsWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import SingleSelectWidgetWithOther -from ..qommon.form import StringWidget -from ..qommon.form import WidgetListAsTable +from ..qommon import N_, _ +from ..qommon.form import ( + CompositeWidget, + RadiobuttonsWidget, + SingleSelectWidget, + SingleSelectWidgetWithOther, + StringWidget, + WidgetListAsTable, +) from ..qommon.template import Template diff --git a/wcs/wf/edit_carddata.py b/wcs/wf/edit_carddata.py index 3f3085b5c..1edaa85c6 100644 --- a/wcs/wf/edit_carddata.py +++ b/wcs/wf/edit_carddata.py @@ -16,8 +16,7 @@ from quixote import get_publisher -from wcs.qommon import N_ -from wcs.qommon import _ +from wcs.qommon import N_, _ from wcs.wf.create_carddata import CreateCarddataWorkflowStatusItem from wcs.wf.external_workflow import ExternalWorkflowGlobalAction from wcs.workflows import register_item_class diff --git a/wcs/wf/export_to_model.py b/wcs/wf/export_to_model.py index 8e8c4e61e..bc2253e55 100644 --- a/wcs/wf/export_to_model.py +++ b/wcs/wf/export_to_model.py @@ -26,46 +26,38 @@ import time import zipfile from xml.etree import ElementTree as ET -from django.utils.encoding import force_bytes -from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response +from django.utils.encoding import force_bytes, force_text +from quixote import get_publisher, get_request, get_response from quixote.directory import Directory from quixote.errors import PublishError from quixote.html import htmltext from quixote.http_request import Upload -from wcs.fields import CommentField -from wcs.fields import PageField -from wcs.fields import SubtitleField -from wcs.fields import TitleField -from wcs.portfolio import has_portfolio -from wcs.portfolio import push_document -from wcs.workflows import AttachmentEvolutionPart -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import get_formdata_template_context -from wcs.workflows import register_item_class -from wcs.workflows import template_on_context -from wcs.workflows import template_on_formdata +from wcs.fields import CommentField, PageField, SubtitleField, TitleField +from wcs.portfolio import has_portfolio, push_document +from wcs.workflows import ( + AttachmentEvolutionPart, + WorkflowStatusItem, + get_formdata_template_context, + register_item_class, + template_on_context, + template_on_formdata, +) -from ..qommon import N_ -from ..qommon import _ -from ..qommon import ezt -from ..qommon import force_str -from ..qommon import get_logger -from ..qommon import misc -from ..qommon.form import CheckboxWidget -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import RadiobuttonsWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import UploadedFile -from ..qommon.form import UploadValidationError -from ..qommon.form import UploadWidget -from ..qommon.form import VarnameWidget -from ..qommon.form import WidgetList -from ..qommon.form import WysiwygTextWidget +from ..qommon import N_, _, ezt, force_str, get_logger, misc +from ..qommon.form import ( + CheckboxWidget, + ComputedExpressionWidget, + RadiobuttonsWidget, + SingleSelectWidget, + StringWidget, + UploadedFile, + UploadValidationError, + UploadWidget, + VarnameWidget, + WidgetList, + WysiwygTextWidget, +) from ..qommon.template import TemplateError OO_TEXT_NS = 'urn:oasis:names:tc:opendocument:xmlns:text:1.0' diff --git a/wcs/wf/external_workflow.py b/wcs/wf/external_workflow.py index 345b6337f..1f8e18ec6 100644 --- a/wcs/wf/external_workflow.py +++ b/wcs/wf/external_workflow.py @@ -18,17 +18,15 @@ from quixote import get_publisher from wcs.carddef import CardDef from wcs.formdef import FormDef -from wcs.qommon import N_ -from wcs.qommon import _ -from wcs.qommon.form import ComputedExpressionWidget -from wcs.qommon.form import Form -from wcs.qommon.form import RadiobuttonsWidget -from wcs.qommon.form import SingleSelectWidget -from wcs.workflows import Workflow -from wcs.workflows import WorkflowGlobalActionWebserviceTrigger -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import perform_items -from wcs.workflows import register_item_class +from wcs.qommon import N_, _ +from wcs.qommon.form import ComputedExpressionWidget, Form, RadiobuttonsWidget, SingleSelectWidget +from wcs.workflows import ( + Workflow, + WorkflowGlobalActionWebserviceTrigger, + WorkflowStatusItem, + perform_items, + register_item_class, +) class ExternalWorkflowGlobalAction(WorkflowStatusItem): diff --git a/wcs/wf/form.py b/wcs/wf/form.py index 9a3861da3..764bed353 100644 --- a/wcs/wf/form.py +++ b/wcs/wf/form.py @@ -17,24 +17,17 @@ import xml.etree.ElementTree as ET from quixote import get_publisher -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote.html import TemplateIO, htmltext -from wcs.admin.fields import FieldDefPage -from wcs.admin.fields import FieldsDirectory +from wcs.admin.fields import FieldDefPage, FieldsDirectory from wcs.formdata import get_dict_with_varnames -from wcs.formdef import FormDef -from wcs.formdef import lax_int +from wcs.formdef import FormDef, lax_int from wcs.forms.common import FileDirectory from wcs.forms.root import FormPage -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon.form import SingleSelectWidget -from ..qommon.form import VarnameWidget -from ..qommon.form import WidgetList +from ..qommon import N_, _ +from ..qommon.form import SingleSelectWidget, VarnameWidget, WidgetList def lookup_wf_form_file(self, filename): diff --git a/wcs/wf/geolocate.py b/wcs/wf/geolocate.py index 8830457c7..5a761a058 100644 --- a/wcs/wf/geolocate.py +++ b/wcs/wf/geolocate.py @@ -26,19 +26,12 @@ except ImportError: from quixote import get_publisher -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon import force_str -from ..qommon import get_logger +from ..qommon import N_, _, force_str, get_logger from ..qommon.errors import ConnectionError -from ..qommon.form import CheckboxWidget -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import RadiobuttonsWidget -from ..qommon.misc import http_get_page -from ..qommon.misc import normalize_geolocation +from ..qommon.form import CheckboxWidget, ComputedExpressionWidget, RadiobuttonsWidget +from ..qommon.misc import http_get_page, normalize_geolocation class GeolocateWorkflowStatusItem(WorkflowStatusItem): diff --git a/wcs/wf/jump.py b/wcs/wf/jump.py index 3711e5446..9370a66f9 100644 --- a/wcs/wf/jump.py +++ b/wcs/wf/jump.py @@ -19,33 +19,18 @@ import json import os import time -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import redirect +from quixote import get_publisher, get_request, get_response, redirect from quixote.directory import Directory from quixote.html import htmltext -from wcs.api import get_user_from_api_query_string -from wcs.api import is_url_signed +from wcs.api import get_user_from_api_query_string, is_url_signed from wcs.conditions import Condition -from wcs.workflows import Workflow -from wcs.workflows import WorkflowGlobalAction -from wcs.workflows import WorkflowStatusJumpItem -from wcs.workflows import register_item_class +from wcs.workflows import Workflow, WorkflowGlobalAction, WorkflowStatusJumpItem, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon import errors -from ..qommon import force_str +from ..qommon import N_, _, errors, force_str from ..qommon.cron import CronJob -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import WidgetList -from ..qommon.humantime import humanduration2seconds -from ..qommon.humantime import seconds2humanduration -from ..qommon.humantime import timewords +from ..qommon.form import ComputedExpressionWidget, SingleSelectWidget, StringWidget, WidgetList +from ..qommon.humantime import humanduration2seconds, seconds2humanduration, timewords from ..qommon.publisher import get_publisher_class JUMP_TIMEOUT_INTERVAL = max((60 // int(os.environ.get('WCS_JUMP_TIMEOUT_CHECKS', '3')), 1)) diff --git a/wcs/wf/notification.py b/wcs/wf/notification.py index 0e8551bfb..a00995944 100644 --- a/wcs/wf/notification.py +++ b/wcs/wf/notification.py @@ -18,18 +18,10 @@ import urllib.parse from quixote import get_publisher -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class -from wcs.workflows import template_on_formdata +from wcs.workflows import WorkflowStatusItem, register_item_class, template_on_formdata -from ..qommon import N_ -from ..qommon import _ -from ..qommon import get_logger -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import TextWidget -from ..qommon.form import WidgetList +from ..qommon import N_, _, get_logger +from ..qommon.form import ComputedExpressionWidget, SingleSelectWidget, StringWidget, TextWidget, WidgetList from ..qommon.template import TemplateError from .wscall import WebserviceCallStatusItem diff --git a/wcs/wf/profile.py b/wcs/wf/profile.py index 18c2628d6..f8bdeda75 100644 --- a/wcs/wf/profile.py +++ b/wcs/wf/profile.py @@ -21,28 +21,16 @@ import time import urllib.parse import xml.etree.ElementTree as ET -from quixote import get_publisher -from quixote import get_request -from quixote import get_response +from quixote import get_publisher, get_request, get_response -from wcs.api_utils import MissingSecret -from wcs.api_utils import get_secret_and_orig -from wcs.api_utils import sign_url -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import XmlSerialisable -from wcs.workflows import register_item_class +from wcs.api_utils import MissingSecret, get_secret_and_orig, sign_url +from wcs.workflows import WorkflowStatusItem, XmlSerialisable, register_item_class -from ..qommon import N_ -from ..qommon import _ -from ..qommon.form import CompositeWidget -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import WidgetListAsTable +from ..qommon import N_, _ +from ..qommon.form import CompositeWidget, ComputedExpressionWidget, SingleSelectWidget, WidgetListAsTable from ..qommon.ident.idp import is_idp_managing_user_attributes -from ..qommon.misc import JSONEncoder -from ..qommon.misc import http_patch_request -from ..qommon.publisher import get_cfg -from ..qommon.publisher import get_logger +from ..qommon.misc import JSONEncoder, http_patch_request +from ..qommon.publisher import get_cfg, get_logger def user_ws_url(user_uuid): diff --git a/wcs/wf/redirect_to_url.py b/wcs/wf/redirect_to_url.py index 0f4d90f0b..a7d3006d8 100644 --- a/wcs/wf/redirect_to_url.py +++ b/wcs/wf/redirect_to_url.py @@ -14,11 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ from ..qommon.form import ComputedExpressionWidget diff --git a/wcs/wf/register_comment.py b/wcs/wf/register_comment.py index 91fd99b4d..8549713ec 100644 --- a/wcs/wf/register_comment.py +++ b/wcs/wf/register_comment.py @@ -19,18 +19,15 @@ import sys from quixote import get_publisher from quixote.html import htmltext -from wcs.workflows import AttachmentEvolutionPart -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class -from wcs.workflows import template_on_formdata +from wcs.workflows import ( + AttachmentEvolutionPart, + WorkflowStatusItem, + register_item_class, + template_on_formdata, +) -from ..qommon import N_ -from ..qommon import _ -from ..qommon import ezt -from ..qommon import get_logger -from ..qommon.form import SingleSelectWidget -from ..qommon.form import TextWidget -from ..qommon.form import WidgetList +from ..qommon import N_, _, ezt, get_logger +from ..qommon.form import SingleSelectWidget, TextWidget, WidgetList from ..qommon.template import TemplateError diff --git a/wcs/wf/remove.py b/wcs/wf/remove.py index 5a7d9bea2..ea0b89c49 100644 --- a/wcs/wf/remove.py +++ b/wcs/wf/remove.py @@ -14,16 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote import get_session +from quixote import get_publisher, get_request, get_response, get_session -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ class RemoveWorkflowStatusItem(WorkflowStatusItem): diff --git a/wcs/wf/resubmit.py b/wcs/wf/resubmit.py index bdd588062..b36fa59ac 100644 --- a/wcs/wf/resubmit.py +++ b/wcs/wf/resubmit.py @@ -14,20 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, see . -from quixote import get_publisher -from quixote import get_request -from quixote import get_session +from quixote import get_publisher, get_request, get_session from wcs.formdef import FormDef -from wcs.qommon.form import SingleSelectWidget -from wcs.qommon.form import StringWidget -from wcs.qommon.form import WidgetList -from wcs.qommon.form import WysiwygTextWidget -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.qommon.form import SingleSelectWidget, StringWidget, WidgetList, WysiwygTextWidget +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ class ResubmitWorkflowStatusItem(WorkflowStatusItem): diff --git a/wcs/wf/roles.py b/wcs/wf/roles.py index 96a6a5023..c1463c8e0 100644 --- a/wcs/wf/roles.py +++ b/wcs/wf/roles.py @@ -17,25 +17,17 @@ import sys import urllib.parse -from quixote import get_publisher -from quixote import get_request -from quixote import get_response +from quixote import get_publisher, get_request, get_response -from wcs.api_utils import MissingSecret -from wcs.api_utils import get_secret_and_orig -from wcs.api_utils import sign_url +from wcs.api_utils import MissingSecret, get_secret_and_orig, sign_url from wcs.roles import get_user_roles -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class +from wcs.workflows import WorkflowStatusItem, register_item_class -from ..qommon import N_ -from ..qommon import _ +from ..qommon import N_, _ from ..qommon.form import SingleSelectWidgetWithOther from ..qommon.ident.idp import is_idp_managing_user_attributes -from ..qommon.misc import http_delete_request -from ..qommon.misc import http_post_request -from ..qommon.publisher import get_cfg -from ..qommon.publisher import get_logger +from ..qommon.misc import http_delete_request, http_post_request +from ..qommon.publisher import get_cfg, get_logger def roles_ws_url(role_uuid, user_uuid): diff --git a/wcs/wf/timeout_jump.py b/wcs/wf/timeout_jump.py index 9bca40017..1c69e82f0 100644 --- a/wcs/wf/timeout_jump.py +++ b/wcs/wf/timeout_jump.py @@ -16,8 +16,7 @@ from wcs.qommon import N_ -from .jump import JumpWorkflowStatusItem -from .jump import register_item_class +from .jump import JumpWorkflowStatusItem, register_item_class class TimeoutWorkflowStatusItem(JumpWorkflowStatusItem): diff --git a/wcs/wf/wscall.py b/wcs/wf/wscall.py index c66ddd8e7..6fd8d792c 100644 --- a/wcs/wf/wscall.py +++ b/wcs/wf/wscall.py @@ -23,30 +23,29 @@ import traceback import xml.etree.ElementTree as ET from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request +from quixote.html import TemplateIO, htmltext -from wcs.workflows import AbortActionException -from wcs.workflows import AttachmentEvolutionPart -from wcs.workflows import WorkflowStatusItem -from wcs.workflows import register_item_class -from wcs.wscalls import call_webservice -from wcs.wscalls import get_app_error_code +from wcs.workflows import ( + AbortActionException, + AttachmentEvolutionPart, + WorkflowStatusItem, + register_item_class, +) +from wcs.wscalls import call_webservice, get_app_error_code -from ..qommon import N_ -from ..qommon import _ -from ..qommon import force_str +from ..qommon import N_, _, force_str from ..qommon.errors import ConnectionError -from ..qommon.form import CheckboxWidget -from ..qommon.form import ComputedExpressionWidget -from ..qommon.form import HtmlWidget -from ..qommon.form import RadiobuttonsWidget -from ..qommon.form import SingleSelectWidget -from ..qommon.form import StringWidget -from ..qommon.form import VarnameWidget -from ..qommon.form import WidgetDict +from ..qommon.form import ( + CheckboxWidget, + ComputedExpressionWidget, + HtmlWidget, + RadiobuttonsWidget, + SingleSelectWidget, + StringWidget, + VarnameWidget, + WidgetDict, +) from ..qommon.misc import json_loads diff --git a/wcs/workflows.py b/wcs/workflows.py index fd19d29c8..154b8c553 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -26,57 +26,36 @@ import uuid import xml.etree.ElementTree as ET from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request -from quixote import get_response -from quixote.html import TemplateIO -from quixote.html import htmltext +from quixote import get_publisher, get_request, get_response +from quixote.html import TemplateIO, htmltext from .carddef import CardDef from .conditions import Condition from .fields import FileField from .formdata import Evolution -from .formdef import FormDef -from .formdef import FormdefImportError +from .formdef import FormDef, FormdefImportError from .mail_templates import MailTemplate -from .qommon import N_ -from .qommon import _ -from .qommon import emails -from .qommon import errors -from .qommon import ezt -from .qommon import force_str -from .qommon import get_cfg -from .qommon import get_logger -from .qommon import misc -from .qommon.form import CheckboxWidget -from .qommon.form import ComputedExpressionWidget -from .qommon.form import ConditionWidget -from .qommon.form import Form -from .qommon.form import SingleSelectWidget -from .qommon.form import SingleSelectWidgetWithOther -from .qommon.form import StringWidget -from .qommon.form import TextWidget -from .qommon.form import ValidatedStringWidget -from .qommon.form import VarnameWidget -from .qommon.form import WidgetList -from .qommon.form import WysiwygTextWidget +from .qommon import N_, _, emails, errors, ezt, force_str, get_cfg, get_logger, misc +from .qommon.form import ( + CheckboxWidget, + ComputedExpressionWidget, + ConditionWidget, + Form, + SingleSelectWidget, + SingleSelectWidgetWithOther, + StringWidget, + TextWidget, + ValidatedStringWidget, + VarnameWidget, + WidgetList, + WysiwygTextWidget, +) from .qommon.humantime import seconds2humanduration -from .qommon.misc import C_ -from .qommon.misc import file_digest -from .qommon.misc import get_as_datetime -from .qommon.misc import xml_node_text -from .qommon.storage import Contains -from .qommon.storage import NotEqual -from .qommon.storage import Null -from .qommon.storage import StorableObject -from .qommon.storage import atomic_write -from .qommon.storage import pickle_2to3_conversion -from .qommon.template import Template -from .qommon.template import TemplateError -from .qommon.upload_storage import PicklableUpload -from .qommon.upload_storage import get_storage_object -from .roles import get_user_roles -from .roles import logged_users_role +from .qommon.misc import C_, file_digest, get_as_datetime, xml_node_text +from .qommon.storage import Contains, NotEqual, Null, StorableObject, atomic_write, pickle_2to3_conversion +from .qommon.template import Template, TemplateError +from .qommon.upload_storage import PicklableUpload, get_storage_object +from .roles import get_user_roles, logged_users_role if not __name__.startswith('wcs.') and __name__ != "__main__": raise ImportError('Import of workflows module must be absolute (import wcs.workflows)') diff --git a/wcs/wscalls.py b/wcs/wscalls.py index 96447dfea..0aa3243a1 100644 --- a/wcs/wscalls.py +++ b/wcs/wscalls.py @@ -21,27 +21,21 @@ import urllib.parse import xml.etree.ElementTree as ET from django.utils.encoding import force_text -from quixote import get_publisher -from quixote import get_request +from quixote import get_publisher, get_request -from wcs.api_utils import MissingSecret -from wcs.api_utils import get_secret_and_orig -from wcs.api_utils import sign_url +from wcs.api_utils import MissingSecret, get_secret_and_orig, sign_url from wcs.workflows import WorkflowStatusItem -from .qommon import _ -from .qommon import force_str -from .qommon import misc -from .qommon.form import CheckboxWidget -from .qommon.form import CompositeWidget -from .qommon.form import ComputedExpressionWidget -from .qommon.form import RadiobuttonsWidget -from .qommon.form import StringWidget -from .qommon.form import WidgetDict -from .qommon.misc import JSONEncoder -from .qommon.misc import get_variadic_url -from .qommon.misc import json_loads -from .qommon.misc import simplify +from .qommon import _, force_str, misc +from .qommon.form import ( + CheckboxWidget, + CompositeWidget, + ComputedExpressionWidget, + RadiobuttonsWidget, + StringWidget, + WidgetDict, +) +from .qommon.misc import JSONEncoder, get_variadic_url, json_loads, simplify from .qommon.template import Template from .qommon.xml_storage import XmlStorableObject