diff --git a/.travis.yml b/.travis.yml index cc1a0fed1b..33ecacd249 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,9 +16,6 @@ matrix: - python: "3.8-dev" env: TOXENV=py38 dist: xenial - allow_failures: - - python: "3.6" - env: TOXENV=lint-py36 install: - travis_retry pip install -U pip setuptools diff --git a/CHANGES.rst b/CHANGES.rst index 1c4d0d833c..0ce219bc08 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -20,7 +20,7 @@ Features Other changes +++++++++++++ -- full PEP-8 compliance with the exception of import sorting +- full PEP-8 compliance 4.0b10 (2019-03-08) diff --git a/setup.cfg b/setup.cfg index ccd2d54ff2..d057b8c61e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,12 +11,14 @@ ignore = .travis.yml [isort] -force_alphabetical_sort = True force_single_line = True - -line_length = 200 +combine_as_imports = True +sections = FUTURE,STDLIB,THIRDPARTY,ZOPE,FIRSTPARTY,LOCALFOLDER +known_third_party = ipaddress, PasteDeploy, six, waitress, chameleon +known_zope = AccessControl, Acquisition, DateTime, DocumentTemplate, ExtensionClass, MultiMapping, Persistence, persistent, RestrictedPython, Testing, transaction, ZConfig, zExceptions, ZODB, zope, Zope2 +default_section = ZOPE +line_length = 79 lines_after_imports = 2 - not_skip = __init__.py diff --git a/setup.py b/setup.py index f894b80eea..4ea2e75680 100644 --- a/setup.py +++ b/setup.py @@ -12,11 +12,11 @@ # ############################################################################## +import os + from setuptools import find_packages from setuptools import setup -import os - HERE = os.path.abspath(os.path.dirname(__file__)) diff --git a/src/App/ApplicationManager.py b/src/App/ApplicationManager.py index 5c70e9bda4..1f7c6f2606 100644 --- a/src/App/ApplicationManager.py +++ b/src/App/ApplicationManager.py @@ -14,11 +14,11 @@ import os import sys +from six.moves.urllib import parse + from AccessControl.class_init import InitializeClass from AccessControl.requestmethod import requestmethod from Acquisition import Implicit -from six.moves.urllib import parse - from App.config import getConfiguration from App.Management import Tabs from App.special_dtml import DTMLFile diff --git a/src/App/Common.py b/src/App/Common.py index 7649789004..7b529af4ff 100644 --- a/src/App/Common.py +++ b/src/App/Common.py @@ -15,11 +15,13 @@ import os import sys import time - -from Acquisition import aq_base, aq_parent - # BBB from os.path import realpath # NOQA + +from Acquisition import aq_base +from Acquisition import aq_parent + + attrget = getattr # These are needed because the various date formats below must diff --git a/src/App/Dialogs.py b/src/App/Dialogs.py index c5123b1813..500d9b0eda 100644 --- a/src/App/Dialogs.py +++ b/src/App/Dialogs.py @@ -33,6 +33,7 @@ from App.special_dtml import HTML + MessageDialog = HTML("""
diff --git a/src/App/Extensions.py b/src/App/Extensions.py index 68b256b67f..ada1f3f065 100644 --- a/src/App/Extensions.py +++ b/src/App/Extensions.py @@ -14,8 +14,8 @@ Extensions currently include external methods. """ -from functools import total_ordering import os +from functools import total_ordering from six import exec_ diff --git a/src/App/FactoryDispatcher.py b/src/App/FactoryDispatcher.py index 74da480890..fb090afa9e 100644 --- a/src/App/FactoryDispatcher.py +++ b/src/App/FactoryDispatcher.py @@ -18,13 +18,12 @@ from AccessControl.class_init import InitializeClass from AccessControl.owner import UnownableOwner -from AccessControl.SecurityInfo import ClassSecurityInfo from AccessControl.PermissionMapping import aqwrap +from AccessControl.SecurityInfo import ClassSecurityInfo from Acquisition import Acquired -from Acquisition import aq_base from Acquisition import Implicit +from Acquisition import aq_base from ExtensionClass import Base - from OFS.metaconfigure import get_registered_packages diff --git a/src/App/FindHomes.py b/src/App/FindHomes.py index 6fff1671d3..565ebcb50a 100644 --- a/src/App/FindHomes.py +++ b/src/App/FindHomes.py @@ -13,6 +13,7 @@ import os + try: chome = os.environ['INSTANCE_HOME'] except KeyError: diff --git a/src/App/ImageFile.py b/src/App/ImageFile.py index 92bfcc31cd..a3d61303b0 100644 --- a/src/App/ImageFile.py +++ b/src/App/ImageFile.py @@ -17,6 +17,7 @@ import time import warnings +import Zope2 from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from Acquisition import Explicit @@ -28,7 +29,7 @@ from zope.contenttype import guess_content_type from ZPublisher.Iterators import filestream_iterator -import Zope2 + PREFIX = os.path.realpath( os.path.join(os.path.dirname(Zope2.__file__), os.path.pardir)) diff --git a/src/App/Management.py b/src/App/Management.py index 98bf6701d7..c840c1a93b 100644 --- a/src/App/Management.py +++ b/src/App/Management.py @@ -13,20 +13,24 @@ """Standard management interface support """ -from AccessControl import Unauthorized +import itertools + +import six +from six.moves.urllib.parse import quote +from six.moves.urllib.parse import unquote + +import zope.event from AccessControl import ClassSecurityInfo +from AccessControl import Unauthorized from AccessControl.class_init import InitializeClass from AccessControl.Permissions import view_management_screens -from App.interfaces import INavigation from App.interfaces import ICSSPaths from App.interfaces import IJSPaths +from App.interfaces import INavigation from App.special_dtml import DTMLFile from ExtensionClass import Base -from six.moves.urllib.parse import quote, unquote from zope.interface import implementer -import itertools -import six -import zope.event + try: from html import escape diff --git a/src/App/ProductContext.py b/src/App/ProductContext.py index 6a9745b4f8..341041771a 100644 --- a/src/App/ProductContext.py +++ b/src/App/ProductContext.py @@ -13,20 +13,19 @@ """Objects providing context for product initialization """ -from logging import getLogger import os import sys +from logging import getLogger +# Waaaa +import Products from AccessControl.Permission import registerPermissions from AccessControl.PermissionRole import PermissionRole +from App.FactoryDispatcher import FactoryDispatcher from OFS.ObjectManager import ObjectManager - from zope.interface import implementedBy -from App.FactoryDispatcher import FactoryDispatcher -# Waaaa -import Products if not hasattr(Products, 'meta_types'): Products.meta_types = () if not hasattr(Products, 'meta_classes'): diff --git a/src/App/Undo.py b/src/App/Undo.py index c0f0ebff86..ac6150daa8 100644 --- a/src/App/Undo.py +++ b/src/App/Undo.py @@ -15,15 +15,14 @@ import binascii -from Acquisition import Implicit +import transaction from AccessControl import ClassSecurityInfo from AccessControl.class_init import InitializeClass from AccessControl.Permissions import undo_changes -from DateTime.DateTime import DateTime -import transaction - +from Acquisition import Implicit from App.Management import Tabs from App.special_dtml import DTMLFile +from DateTime.DateTime import DateTime class UndoSupport(Tabs, Implicit): diff --git a/src/App/ZApplication.py b/src/App/ZApplication.py index 7c92fc0075..c9c49cd2fd 100644 --- a/src/App/ZApplication.py +++ b/src/App/ZApplication.py @@ -19,6 +19,7 @@ import sys + if sys.version_info >= (3, ): basestring = str diff --git a/src/App/bbb.py b/src/App/bbb.py index 0c1f5fb089..76af05084b 100644 --- a/src/App/bbb.py +++ b/src/App/bbb.py @@ -13,6 +13,7 @@ import pkg_resources + HAS_ZSERVER = True try: dist = pkg_resources.get_distribution('ZServer') diff --git a/src/App/class_init.py b/src/App/class_init.py index 9d73e4321e..97525928da 100644 --- a/src/App/class_init.py +++ b/src/App/class_init.py @@ -15,6 +15,7 @@ from zope.deferredimport import deprecated + # BBB Zope 5.0 deprecated( 'Please import from AccessControl.Permission.', diff --git a/src/App/config.py b/src/App/config.py index 23c109946d..2f5cda9ec4 100644 --- a/src/App/config.py +++ b/src/App/config.py @@ -14,6 +14,7 @@ import os + _config = None diff --git a/src/App/special_dtml.py b/src/App/special_dtml.py index b4d1f2eb50..4ff42ca50b 100644 --- a/src/App/special_dtml.py +++ b/src/App/special_dtml.py @@ -17,16 +17,22 @@ import DocumentTemplate import MethodObject import Persistence -from App import Common -from App.config import getConfiguration import Zope2 - -from Shared.DC.Scripts.Bindings import Bindings -from Acquisition import Explicit, aq_inner, aq_parent, aq_acquire -from DocumentTemplate.DT_String import _marker, DTReturn, render_blocks -from DocumentTemplate.DT_Util import TemplateDict, InstanceDict from AccessControl import getSecurityManager +from Acquisition import Explicit +from Acquisition import aq_acquire +from Acquisition import aq_inner +from Acquisition import aq_parent +from App import Common +from App.config import getConfiguration from ComputedAttribute import ComputedAttribute +from DocumentTemplate.DT_String import DTReturn +from DocumentTemplate.DT_String import _marker +from DocumentTemplate.DT_String import render_blocks +from DocumentTemplate.DT_Util import InstanceDict +from DocumentTemplate.DT_Util import TemplateDict +from Shared.DC.Scripts.Bindings import Bindings + LOG = getLogger('special_dtml') diff --git a/src/App/tests/testImageFile.py b/src/App/tests/testImageFile.py index 8b3b083d78..86a513ae02 100644 --- a/src/App/tests/testImageFile.py +++ b/src/App/tests/testImageFile.py @@ -1,7 +1,7 @@ import io import os.path -from io import BytesIO import unittest +from io import BytesIO import App from Testing.ZopeTestCase.warnhook import WarningsHook diff --git a/src/App/tests/test_ApplicationManager.py b/src/App/tests/test_ApplicationManager.py index dea1e82747..a8e35afba1 100644 --- a/src/App/tests/test_ApplicationManager.py +++ b/src/App/tests/test_ApplicationManager.py @@ -1,10 +1,11 @@ -import Testing.ZopeTestCase import os import shutil import sys import tempfile import unittest +import Testing.ZopeTestCase + class DummyConnection(object): diff --git a/src/App/tests/test_class_init.py b/src/App/tests/test_class_init.py index f6eb98e57c..88633c9fe3 100644 --- a/src/App/tests/test_class_init.py +++ b/src/App/tests/test_class_init.py @@ -16,8 +16,8 @@ import unittest -from AccessControl.class_init import InitializeClass import ExtensionClass +from AccessControl.class_init import InitializeClass class TestInitializeClass(unittest.TestCase): diff --git a/src/App/tests/test_getZopeVersion.py b/src/App/tests/test_getZopeVersion.py index f8c76b29d6..76bab71c4f 100644 --- a/src/App/tests/test_getZopeVersion.py +++ b/src/App/tests/test_getZopeVersion.py @@ -16,6 +16,7 @@ import unittest from pkg_resources import get_distribution + from App.version_txt import getZopeVersion diff --git a/src/App/version_txt.py b/src/App/version_txt.py index 3ed05d43cc..50e02cdf2c 100644 --- a/src/App/version_txt.py +++ b/src/App/version_txt.py @@ -16,6 +16,7 @@ import pkg_resources + _version_string = None _zope_version = None diff --git a/src/OFS/Application.py b/src/OFS/Application.py index d6fa7ccc61..72b30f3575 100644 --- a/src/OFS/Application.py +++ b/src/OFS/Application.py @@ -13,10 +13,12 @@ """Application support """ -from . import Folder -from . import misc_ -from .interfaces import IApplication -from .misc_ import Misc_ +import os +import sys +from logging import getLogger + +import Products +import transaction from AccessControl import ClassSecurityInfo from AccessControl.class_init import InitializeClass from AccessControl.Permission import ApplicationDefaultPermissions @@ -25,7 +27,6 @@ from App.ApplicationManager import ApplicationManager from App.ProductContext import ProductContext from DateTime import DateTime -from logging import getLogger from OFS import bbb from OFS.FindSupport import FindSupport from OFS.metaconfigure import get_packages_to_initialize @@ -35,10 +36,10 @@ from zExceptions import Redirect as RedirectException from zope.interface import implementer -import os -import Products -import sys -import transaction +from . import Folder +from . import misc_ +from .interfaces import IApplication +from .misc_ import Misc_ if bbb.HAS_ZSERVER: diff --git a/src/OFS/Cache.py b/src/OFS/Cache.py index 47ac350bf7..7fd34551b0 100644 --- a/src/OFS/Cache.py +++ b/src/OFS/Cache.py @@ -13,6 +13,10 @@ """Cacheable object and cache management base classes. """ +import sys +import time +from logging import getLogger + from AccessControl.class_init import InitializeClass from AccessControl.Permissions import view_management_screens from AccessControl.SecurityInfo import ClassSecurityInfo @@ -24,10 +28,6 @@ from Acquisition import aq_inner from Acquisition import aq_parent from App.special_dtml import DTMLFile -from logging import getLogger - -import sys -import time ZCM_MANAGERS = '__ZCacheManager_ids__' diff --git a/src/OFS/CopySupport.py b/src/OFS/CopySupport.py index 6dbaa1c0f2..09003eccdd 100644 --- a/src/OFS/CopySupport.py +++ b/src/OFS/CopySupport.py @@ -13,6 +13,20 @@ """Copy interface """ +import logging +import re +import tempfile +import warnings +from json import dumps +from json import loads +from zlib import compress +from zlib import decompressobj + +import six +from six.moves.urllib.parse import quote +from six.moves.urllib.parse import unquote + +import transaction from AccessControl import ClassSecurityInfo from AccessControl import getSecurityManager from AccessControl.class_init import InitializeClass @@ -24,22 +38,16 @@ from Acquisition import aq_parent from App.special_dtml import DTMLFile from ExtensionClass import Base -from json import dumps -from json import loads from OFS.event import ObjectClonedEvent from OFS.event import ObjectWillBeMovedEvent from OFS.interfaces import ICopyContainer from OFS.interfaces import ICopySource -from OFS.Moniker import loadMoniker from OFS.Moniker import Moniker +from OFS.Moniker import loadMoniker from OFS.subscribers import compatibilityCall -from six.moves.urllib.parse import quote -from six.moves.urllib.parse import unquote from zExceptions import BadRequest from zExceptions import ResourceLockedError from zExceptions import Unauthorized -from zlib import compress -from zlib import decompressobj from ZODB.POSException import ConflictError from zope.container.contained import notifyContainerModified from zope.event import notify @@ -47,13 +55,6 @@ from zope.lifecycleevent import ObjectCopiedEvent from zope.lifecycleevent import ObjectMovedEvent -import logging -import re -import six -import tempfile -import transaction -import warnings - class CopyError(Exception): pass diff --git a/src/OFS/DTMLDocument.py b/src/OFS/DTMLDocument.py index 2338cdd8fb..4e3ca1d0ef 100644 --- a/src/OFS/DTMLDocument.py +++ b/src/OFS/DTMLDocument.py @@ -13,18 +13,19 @@ """DTML Document objects. """ +from six import binary_type +from six.moves.urllib.parse import quote + from AccessControl import getSecurityManager from AccessControl.class_init import InitializeClass -from App.special_dtml import DTMLFile from App.special_dtml import HTML +from App.special_dtml import DTMLFile from DocumentTemplate.permissions import change_dtml_documents from DocumentTemplate.permissions import change_dtml_methods -from OFS.DTMLMethod import decapitate from OFS.DTMLMethod import DTMLMethod +from OFS.DTMLMethod import decapitate from OFS.DTMLMethod import safe_file_data from OFS.PropertyManager import PropertyManager -from six import binary_type -from six.moves.urllib.parse import quote from zExceptions.TracebackSupplement import PathTracebackSupplement from zope.contenttype import guess_content_type diff --git a/src/OFS/DTMLMethod.py b/src/OFS/DTMLMethod.py index ebd7043e08..e346dafe4a 100644 --- a/src/OFS/DTMLMethod.py +++ b/src/OFS/DTMLMethod.py @@ -12,18 +12,26 @@ ############################################################################## """DTML Method objects. """ +import re + +from six import PY2 +from six import PY3 +from six import binary_type +from six import text_type +from six.moves.urllib.parse import quote + from AccessControl import getSecurityManager from AccessControl.class_init import InitializeClass -from AccessControl.Permissions import change_proxy_roles +from AccessControl.Permissions import change_proxy_roles # NOQA from AccessControl.Permissions import ftp_access -from AccessControl.Permissions import view as View # NOQA +from AccessControl.Permissions import view as View from AccessControl.Permissions import view_management_screens from AccessControl.requestmethod import requestmethod from AccessControl.SecurityInfo import ClassSecurityInfo from AccessControl.tainted import TaintedString from Acquisition import Implicit -from App.special_dtml import DTMLFile from App.special_dtml import HTML +from App.special_dtml import DTMLFile from DocumentTemplate.DT_Util import ParseError from DocumentTemplate.permissions import change_dtml_methods from DocumentTemplate.security import RestrictedDTML @@ -32,19 +40,12 @@ from OFS.role import RoleManager from OFS.SimpleItem import Item_w__name__ from OFS.SimpleItem import PathReprProvider -from six import binary_type -from six import PY2 -from six import PY3 -from six import text_type -from six.moves.urllib.parse import quote from zExceptions import Forbidden from zExceptions import ResourceLockedError from zExceptions.TracebackSupplement import PathTracebackSupplement from zope.contenttype import guess_content_type from ZPublisher.Iterators import IStreamIterator -import re - _marker = [] # Create a new marker object. diff --git a/src/OFS/EtagSupport.py b/src/OFS/EtagSupport.py index 0066fbec08..7700081543 100644 --- a/src/OFS/EtagSupport.py +++ b/src/OFS/EtagSupport.py @@ -11,12 +11,12 @@ # ############################################################################## +import time + from Acquisition import aq_acquire from zExceptions import HTTPPreconditionFailed -from zope.interface import implementer from zope.interface import Interface - -import time +from zope.interface import implementer class EtagBaseInterface(Interface): diff --git a/src/OFS/Image.py b/src/OFS/Image.py index bc3ccf76dc..60978f8f3c 100644 --- a/src/OFS/Image.py +++ b/src/OFS/Image.py @@ -13,18 +13,25 @@ """Image object """ +import struct +from email.generator import _make_boundary +from io import BytesIO + +from six import PY2 +from six import binary_type +from six import text_type + +import ZPublisher.HTTPRequest from AccessControl.class_init import InitializeClass -from AccessControl.Permissions import change_images_and_files +from AccessControl.Permissions import change_images_and_files # NOQA from AccessControl.Permissions import ftp_access -from AccessControl.Permissions import view as View # NOQA +from AccessControl.Permissions import view as View from AccessControl.Permissions import view_management_screens from AccessControl.SecurityInfo import ClassSecurityInfo from Acquisition import Implicit from App.Common import rfc1123_date from App.special_dtml import DTMLFile from DateTime.DateTime import DateTime -from email.generator import _make_boundary -from io import BytesIO from OFS import bbb from OFS.Cache import Cacheable from OFS.interfaces import IWriteLock @@ -33,9 +40,6 @@ from OFS.SimpleItem import Item_w__name__ from OFS.SimpleItem import PathReprProvider from Persistence import Persistent -from six import binary_type -from six import PY2 -from six import text_type from zExceptions import Redirect from zExceptions import ResourceLockedError from zope.contenttype import guess_content_type @@ -46,9 +50,6 @@ from ZPublisher import HTTPRangeSupport from ZPublisher.HTTPRequest import FileUpload -import struct -import ZPublisher.HTTPRequest - try: from html import escape diff --git a/src/OFS/LockItem.py b/src/OFS/LockItem.py index fd05802ccc..9375d923b6 100644 --- a/src/OFS/LockItem.py +++ b/src/OFS/LockItem.py @@ -11,6 +11,9 @@ # ############################################################################## +import random +import time + from AccessControl.class_init import InitializeClass from AccessControl.owner import ownerInfo from AccessControl.SecurityInfo import ClassSecurityInfo @@ -18,9 +21,6 @@ from Persistence import Persistent from zope.interface import implementer -import random -import time - _randGen = random.Random(time.time()) MAXTIMEOUT = (2**32) - 1 # Maximum timeout time diff --git a/src/OFS/ObjectManager.py b/src/OFS/ObjectManager.py index d5d50b8d6e..05a7adc80a 100644 --- a/src/OFS/ObjectManager.py +++ b/src/OFS/ObjectManager.py @@ -13,6 +13,22 @@ """Object Manager """ +import copy +import fnmatch +import marshal +import os +import re +import sys +import time +from io import BytesIO +from logging import getLogger +from operator import itemgetter + +from six import string_types +from six import text_type +from six.moves.urllib.parse import quote + +import zope.sequencesort from AccessControl import ClassSecurityInfo from AccessControl import getSecurityManager from AccessControl.class_init import InitializeClass @@ -23,10 +39,10 @@ from AccessControl.Permissions import import_export_objects from AccessControl.Permissions import view_management_screens from AccessControl.ZopeSecurityPolicy import getRoles +from Acquisition import Implicit from Acquisition import aq_acquire from Acquisition import aq_base from Acquisition import aq_parent -from Acquisition import Implicit from App.Common import is_acquired from App.config import getConfiguration from App.FactoryDispatcher import ProductDispatcher @@ -35,8 +51,6 @@ from App.special_dtml import DTMLFile from DateTime import DateTime from DateTime.interfaces import DateTimeError -from io import BytesIO -from logging import getLogger from OFS import bbb from OFS.CopySupport import CopyContainer from OFS.event import ObjectWillBeAddedEvent @@ -45,12 +59,8 @@ from OFS.Lockable import LockableItem from OFS.subscribers import compatibilityCall from OFS.Traversable import Traversable -from operator import itemgetter from Persistence import Persistent from Products.PageTemplates.PageTemplateFile import PageTemplateFile -from six import string_types -from six import text_type -from six.moves.urllib.parse import quote from zExceptions import BadRequest from zExceptions import ResourceLockedError from zope.container.contained import notifyContainerModified @@ -60,15 +70,6 @@ from zope.lifecycleevent import ObjectAddedEvent from zope.lifecycleevent import ObjectRemovedEvent -import copy -import fnmatch -import marshal -import os -import re -import sys -import time -import zope.sequencesort - try: from html import escape diff --git a/src/OFS/OrderSupport.py b/src/OFS/OrderSupport.py index 7dbed8a298..ec2a12541a 100644 --- a/src/OFS/OrderSupport.py +++ b/src/OFS/OrderSupport.py @@ -13,6 +13,8 @@ """ Order support for 'Object Manager'. """ +import sys + from AccessControl.class_init import InitializeClass from AccessControl.Permissions import access_contents_information from AccessControl.Permissions import manage_properties @@ -23,8 +25,6 @@ from zope.container.contained import notifyContainerModified from zope.interface import implementer -import sys - if sys.version_info >= (3, ): basestring = str diff --git a/src/OFS/PropertyManager.py b/src/OFS/PropertyManager.py index 52a126e687..ca001527b6 100644 --- a/src/OFS/PropertyManager.py +++ b/src/OFS/PropertyManager.py @@ -13,6 +13,8 @@ """Property management """ +import six + from AccessControl.class_init import InitializeClass from AccessControl.Permissions import access_contents_information from AccessControl.Permissions import manage_properties @@ -27,8 +29,6 @@ from zope.interface import implementer from ZPublisher.Converters import type_converters -import six - try: from html import escape diff --git a/src/OFS/PropertySheets.py b/src/OFS/PropertySheets.py index f66e4afbbc..69854969ca 100644 --- a/src/OFS/PropertySheets.py +++ b/src/OFS/PropertySheets.py @@ -13,14 +13,16 @@ """Property sheets """ +import six + from AccessControl.class_init import InitializeClass from AccessControl.Permissions import access_contents_information from AccessControl.Permissions import manage_properties from AccessControl.Permissions import view_management_screens from AccessControl.SecurityInfo import ClassSecurityInfo +from Acquisition import Implicit from Acquisition import aq_base from Acquisition import aq_parent -from Acquisition import Implicit from App.Management import Tabs from App.special_dtml import DTMLFile from ExtensionClass import Base @@ -30,8 +32,6 @@ from zExceptions import BadRequest from ZPublisher.Converters import type_converters -import six - try: from html import escape diff --git a/src/OFS/SimpleItem.py b/src/OFS/SimpleItem.py index f873347558..1b6e389989 100644 --- a/src/OFS/SimpleItem.py +++ b/src/OFS/SimpleItem.py @@ -18,6 +18,14 @@ item types. """ +import logging +import marshal +import re +import sys +import time + +from six import reraise + from AccessControl.class_init import InitializeClass from AccessControl.Permissions import access_contents_information from AccessControl.Permissions import ftp_access @@ -27,15 +35,15 @@ from AccessControl.unauthorized import Unauthorized from AccessControl.ZopeSecurityPolicy import getRoles from Acquisition import Acquired +from Acquisition import Implicit from Acquisition import aq_acquire from Acquisition import aq_base from Acquisition import aq_inner from Acquisition import aq_parent -from Acquisition import Implicit from App.Management import Navigation from App.Management import Tabs -from App.special_dtml import DTMLFile from App.special_dtml import HTML +from App.special_dtml import DTMLFile from ComputedAttribute import ComputedAttribute from DateTime import DateTime from DocumentTemplate.html_quote import html_quote @@ -51,17 +59,10 @@ from OFS.role import RoleManager from OFS.Traversable import Traversable from Persistence import Persistent -from six import reraise from zExceptions import Redirect from zExceptions.ExceptionFormatter import format_exception from zope.interface import implementer -import logging -import marshal -import re -import sys -import time - if bbb.HAS_ZSERVER: from webdav.Resource import Resource diff --git a/src/OFS/Traversable.py b/src/OFS/Traversable.py index 2e0ee526b7..fefdc04922 100644 --- a/src/OFS/Traversable.py +++ b/src/OFS/Traversable.py @@ -13,6 +13,8 @@ """This module implements a mix-in for traversable objects. """ +from six.moves.urllib.parse import quote + from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from AccessControl.SecurityManagement import getSecurityManager @@ -27,12 +29,11 @@ from OFS import bbb from OFS.interfaces import IApplication from OFS.interfaces import ITraversable -from six.moves.urllib.parse import quote from zExceptions import NotFound from ZODB.POSException import ConflictError from zope.component import queryMultiAdapter -from zope.interface import implementer from zope.interface import Interface +from zope.interface import implementer from zope.location.interfaces import LocationError from zope.traversing.namespace import namespaceLookup from zope.traversing.namespace import nsParse diff --git a/src/OFS/Uninstalled.py b/src/OFS/Uninstalled.py index 2012318ec9..072f0874fe 100644 --- a/src/OFS/Uninstalled.py +++ b/src/OFS/Uninstalled.py @@ -13,14 +13,16 @@ """ Objects for packages that have been uninstalled. """ +from logging import getLogger + +from six import exec_ +from six.moves._thread import allocate_lock + from Acquisition import Acquired from Acquisition import Explicit from App.special_dtml import DTMLFile -from logging import getLogger from OFS.SimpleItem import Item from Persistence import Overridable -from six import exec_ -from six.moves._thread import allocate_lock from ZODB.broken import Broken as ZODB_Broken from ZODB.broken import persistentBroken diff --git a/src/OFS/absoluteurl.py b/src/OFS/absoluteurl.py index 197d464bb0..5a2a151725 100644 --- a/src/OFS/absoluteurl.py +++ b/src/OFS/absoluteurl.py @@ -12,10 +12,11 @@ # ############################################################################## -from Acquisition import aq_parent -from OFS.interfaces import ITraversable from six.moves.urllib.parse import quote from six.moves.urllib.parse import unquote + +from Acquisition import aq_parent +from OFS.interfaces import ITraversable from zope.component import getMultiAdapter from zope.interface import implementer from zope.publisher.browser import BrowserView diff --git a/src/OFS/event.py b/src/OFS/event.py index 1986344065..9e5dc2d34a 100644 --- a/src/OFS/event.py +++ b/src/OFS/event.py @@ -15,11 +15,10 @@ OFS event definitions. """ +import OFS.interfaces from zope.interface import implementer from zope.interface.interfaces import ObjectEvent -import OFS.interfaces - @implementer(OFS.interfaces.IObjectWillBeMovedEvent) class ObjectWillBeMovedEvent(ObjectEvent): diff --git a/src/OFS/metaconfigure.py b/src/OFS/metaconfigure.py index 364ea97783..ba87573191 100644 --- a/src/OFS/metaconfigure.py +++ b/src/OFS/metaconfigure.py @@ -1,3 +1,8 @@ +import logging +import os + +import App.config +import Products from OFS.subscribers import deprecatedManageAddDeleteClasses from zope.component import getUtility from zope.configuration import xmlconfig @@ -5,11 +10,6 @@ from zope.security.interfaces import IPermission from zope.testing.cleanup import addCleanUp # NOQA -import App.config -import logging -import os -import Products - debug_mode = App.config.getConfiguration().debug_mode logger = logging.getLogger('OFS') diff --git a/src/OFS/misc_.py b/src/OFS/misc_.py index caeb525d76..5444d6fbc4 100644 --- a/src/OFS/misc_.py +++ b/src/OFS/misc_.py @@ -11,12 +11,12 @@ # ############################################################################## -from AccessControl.class_init import InitializeClass -from AccessControl.SecurityInfo import ClassSecurityInfo -from App.ImageFile import ImageFile from os.path import dirname import App +from AccessControl.class_init import InitializeClass +from AccessControl.SecurityInfo import ClassSecurityInfo +from App.ImageFile import ImageFile class misc_(object): diff --git a/src/OFS/owner.py b/src/OFS/owner.py index 81fe4389cc..63eebb138f 100644 --- a/src/OFS/owner.py +++ b/src/OFS/owner.py @@ -13,10 +13,12 @@ """Support for owned objects """ +from six.moves.urllib import parse + from AccessControl.class_init import InitializeClass -from AccessControl.owner import ownableFilter from AccessControl.owner import Owned as BaseOwned from AccessControl.owner import UnownableOwner +from AccessControl.owner import ownableFilter from AccessControl.Permissions import take_ownership from AccessControl.Permissions import view_management_screens from AccessControl.requestmethod import requestmethod @@ -26,7 +28,6 @@ from Acquisition import aq_get from Acquisition import aq_parent from App.special_dtml import DTMLFile -from six.moves.urllib import parse class Owned(BaseOwned): diff --git a/src/OFS/role.py b/src/OFS/role.py index b47eda112f..a8f81d6d53 100644 --- a/src/OFS/role.py +++ b/src/OFS/role.py @@ -18,9 +18,9 @@ from AccessControl.Permission import Permission from AccessControl.Permissions import change_permissions from AccessControl.requestmethod import requestmethod +from AccessControl.rolemanager import RoleManager as BaseRoleManager from AccessControl.rolemanager import _string_hash from AccessControl.rolemanager import reqattr -from AccessControl.rolemanager import RoleManager as BaseRoleManager from App.special_dtml import DTMLFile from zExceptions import BadRequest diff --git a/src/OFS/subscribers.py b/src/OFS/subscribers.py index da0b020171..feff53119c 100644 --- a/src/OFS/subscribers.py +++ b/src/OFS/subscribers.py @@ -15,20 +15,20 @@ Subscriber definitions. """ +from logging import getLogger + +import OFS.interfaces +import zope.component +import zope.interface +import zope.location.interfaces from AccessControl import getSecurityManager from Acquisition import aq_base from App.config import getConfiguration -from logging import getLogger from ZODB.POSException import ConflictError from zope.container.contained import dispatchToSublocations from zope.lifecycleevent.interfaces import IObjectCopiedEvent from zope.lifecycleevent.interfaces import IObjectMovedEvent -import OFS.interfaces -import zope.component -import zope.interface -import zope.location.interfaces - deprecatedManageAddDeleteClasses = [] diff --git a/src/OFS/tests/testAcquisition.py b/src/OFS/tests/testAcquisition.py index aafe3b437e..b8fc9d5ec6 100644 --- a/src/OFS/tests/testAcquisition.py +++ b/src/OFS/tests/testAcquisition.py @@ -11,6 +11,9 @@ # ############################################################################## +import unittest + +import Zope2 from AccessControl import ClassSecurityInfo from AccessControl.class_init import InitializeClass from AccessControl.Permissions import view_management_screens @@ -20,9 +23,6 @@ from OFS.SimpleItem import SimpleItem from Testing.makerequest import makerequest -import unittest -import Zope2 - Zope2.startup_wsgi() diff --git a/src/OFS/tests/testAppInitializer.py b/src/OFS/tests/testAppInitializer.py index bead4b97fd..ffb7c941e8 100644 --- a/src/OFS/tests/testAppInitializer.py +++ b/src/OFS/tests/testAppInitializer.py @@ -12,17 +12,17 @@ # ############################################################################## +import os +import shutil +import tempfile +import unittest + from App.config import getConfiguration from App.config import setConfiguration from OFS.Application import AppInitializer from OFS.Application import Application from Zope2.Startup.options import ZopeWSGIOptions -import os -import shutil -import tempfile -import unittest - TEMPNAME = tempfile.mktemp() TEMPPRODUCTS = os.path.join(TEMPNAME, "Products") diff --git a/src/OFS/tests/testApplication.py b/src/OFS/tests/testApplication.py index 824360cd11..7ada57e7f8 100644 --- a/src/OFS/tests/testApplication.py +++ b/src/OFS/tests/testApplication.py @@ -1,7 +1,7 @@ -from Testing.ZopeTestCase import FunctionalTestCase - import unittest +from Testing.ZopeTestCase import FunctionalTestCase + class ApplicationTests(unittest.TestCase): diff --git a/src/OFS/tests/testCache.py b/src/OFS/tests/testCache.py index fe3ca73706..799467eb75 100644 --- a/src/OFS/tests/testCache.py +++ b/src/OFS/tests/testCache.py @@ -1,10 +1,10 @@ +import unittest + from OFS.Cache import CacheManager from OFS.Folder import Folder from OFS.metaconfigure import setDeprecatedManageAddDelete from OFS.SimpleItem import SimpleItem -import unittest - class DummyCacheManager(CacheManager, SimpleItem): def __init__(self, id, *args, **kw): diff --git a/src/OFS/tests/testChownRecursive.py b/src/OFS/tests/testChownRecursive.py index 5f206a91d8..ab540669f7 100644 --- a/src/OFS/tests/testChownRecursive.py +++ b/src/OFS/tests/testChownRecursive.py @@ -11,10 +11,10 @@ # FOR A PARTICULAR PURPOSE. # ############################################################################## -from Testing import ZopeTestCase - import unittest +from Testing import ZopeTestCase + class TestRecursiveChangeOwnership(ZopeTestCase.ZopeTestCase): user_name2 = "dumdidum" diff --git a/src/OFS/tests/testCopySupport.py b/src/OFS/tests/testCopySupport.py index 8b0e43b4ef..0e0c236ef9 100644 --- a/src/OFS/tests/testCopySupport.py +++ b/src/OFS/tests/testCopySupport.py @@ -1,17 +1,17 @@ +import io +import unittest + +import transaction from AccessControl import SecurityManager from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager -from Acquisition import aq_base from Acquisition import Implicit +from Acquisition import aq_base from OFS.Application import Application from OFS.Folder import manage_addFolder from OFS.Image import manage_addFile from Testing.makerequest import makerequest -import io -import transaction -import unittest - ADD_IMAGES_AND_FILES = 'Add images and files' FILE_META_TYPES = ({ diff --git a/src/OFS/tests/testCopySupportEvents.py b/src/OFS/tests/testCopySupportEvents.py index 363486efff..bdae631557 100644 --- a/src/OFS/tests/testCopySupportEvents.py +++ b/src/OFS/tests/testCopySupportEvents.py @@ -1,3 +1,7 @@ +import unittest + +import transaction +import Zope2 from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager from OFS.Folder import Folder @@ -9,10 +13,6 @@ from zope.interface.interfaces import IObjectEvent from zope.testing import cleanup -import transaction -import unittest -import Zope2 - Zope2.startup_wsgi() diff --git a/src/OFS/tests/testCopySupportHooks.py b/src/OFS/tests/testCopySupportHooks.py index a80055fd19..f033608aec 100644 --- a/src/OFS/tests/testCopySupportHooks.py +++ b/src/OFS/tests/testCopySupportHooks.py @@ -1,3 +1,7 @@ +import unittest + +import transaction +import Zope2 from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager from OFS.Folder import Folder @@ -7,10 +11,6 @@ from Zope2.App import zcml from zope.testing import cleanup -import transaction -import unittest -import Zope2 - Zope2.startup_wsgi() diff --git a/src/OFS/tests/testFileAndImage.py b/src/OFS/tests/testFileAndImage.py index f67e2062d1..7958e3abaa 100644 --- a/src/OFS/tests/testFileAndImage.py +++ b/src/OFS/tests/testFileAndImage.py @@ -1,12 +1,24 @@ # -*- coding: utf-8 -*- +import os +import sys +import time +import unittest +from io import BytesIO + +import six +from six import PY3 + +import OFS.Image +import Testing.testbrowser +import Testing.ZopeTestCase +import transaction +import Zope2 from Acquisition import aq_base from App.Common import rfc1123_date -from io import BytesIO from OFS.Application import Application from OFS.Cache import ZCM_MANAGERS from OFS.Image import Pdata from OFS.SimpleItem import SimpleItem -from six import PY3 from Testing.makerequest import makerequest from zExceptions import Redirect from zope.component import adapter @@ -15,17 +27,6 @@ from ZPublisher.HTTPRequest import HTTPRequest from ZPublisher.HTTPResponse import HTTPResponse -import OFS.Image -import os -import six -import sys -import Testing.testbrowser -import Testing.ZopeTestCase -import time -import transaction -import unittest -import Zope2 - here = os.path.dirname(os.path.abspath(__file__)) filedata = os.path.join(here, 'test.gif') diff --git a/src/OFS/tests/testFindSupport.py b/src/OFS/tests/testFindSupport.py index 2ae86745fe..9bbbf75d77 100644 --- a/src/OFS/tests/testFindSupport.py +++ b/src/OFS/tests/testFindSupport.py @@ -1,7 +1,8 @@ -from OFS.FindSupport import FindSupport +import unittest import six -import unittest + +from OFS.FindSupport import FindSupport class DummyItem(FindSupport): diff --git a/src/OFS/tests/testLockable.py b/src/OFS/tests/testLockable.py index bce758abe9..07cda7f4ec 100644 --- a/src/OFS/tests/testLockable.py +++ b/src/OFS/tests/testLockable.py @@ -1,8 +1,8 @@ +import unittest + from OFS.interfaces import IWriteLock from zope.interface import implementer -import unittest - @implementer(IWriteLock) class LockableResource(object): diff --git a/src/OFS/tests/testObjectManager.py b/src/OFS/tests/testObjectManager.py index 31e4c8c550..57ca171780 100644 --- a/src/OFS/tests/testObjectManager.py +++ b/src/OFS/tests/testObjectManager.py @@ -1,5 +1,10 @@ # -*- coding: utf-8 -*- import os +import unittest +from logging import getLogger + +from six import PY2 +from six.moves.urllib.parse import quote from AccessControl.owner import EmergencyUserCannotOwn from AccessControl.SecurityManagement import newSecurityManager @@ -9,23 +14,18 @@ from AccessControl.SpecialUsers import nobody from AccessControl.SpecialUsers import system from AccessControl.User import User # before SpecialUsers -from Acquisition import aq_self from Acquisition import Implicit +from Acquisition import aq_self from App.config import getConfiguration -from logging import getLogger from OFS.interfaces import IItem from OFS.metaconfigure import setDeprecatedManageAddDelete from OFS.ObjectManager import ObjectManager from OFS.SimpleItem import SimpleItem -from six import PY2 -from six.moves.urllib.parse import quote from zExceptions import BadRequest from Zope2.App import zcml from zope.component.testing import PlacelessSetup from zope.interface import implementer -import unittest - logger = getLogger('OFS.subscribers') diff --git a/src/OFS/tests/testOrderSupport.py b/src/OFS/tests/testOrderSupport.py index 3f239e4173..2d3e318006 100644 --- a/src/OFS/tests/testOrderSupport.py +++ b/src/OFS/tests/testOrderSupport.py @@ -1,8 +1,8 @@ +import unittest + from OFS.CopySupport import CopySource from OFS.ObjectManager import ObjectManager -import unittest - class DummyObject(CopySource): def __init__(self, id, meta_type): diff --git a/src/OFS/tests/testProperties.py b/src/OFS/tests/testProperties.py index 00f14b37c1..937b54e731 100644 --- a/src/OFS/tests/testProperties.py +++ b/src/OFS/tests/testProperties.py @@ -13,9 +13,10 @@ """Properties unit tests. """ -import six import unittest +import six + class TestPropertyManager(unittest.TestCase): diff --git a/src/OFS/tests/test_DTMLMethod.py b/src/OFS/tests/test_DTMLMethod.py index f8dd977b14..b304218bc8 100644 --- a/src/OFS/tests/test_DTMLMethod.py +++ b/src/OFS/tests/test_DTMLMethod.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- -import Testing.ZopeTestCase -import Testing.testbrowser -import Zope2.App.zcml import io import unittest + +import Testing.testbrowser +import Testing.ZopeTestCase import zExceptions +import Zope2.App.zcml def _lock_item(item): diff --git a/src/OFS/tests/test_Uninstalled.py b/src/OFS/tests/test_Uninstalled.py index c5df2e73a6..f720b26349 100644 --- a/src/OFS/tests/test_Uninstalled.py +++ b/src/OFS/tests/test_Uninstalled.py @@ -11,11 +11,11 @@ # ############################################################################## +import unittest + from OFS.SimpleItem import SimpleItem from Testing.ZopeTestCase import base -import unittest - class ToBreak(SimpleItem): pass diff --git a/src/OFS/tests/test_registerclass.py b/src/OFS/tests/test_registerclass.py index 49053828e6..cdb590ab89 100644 --- a/src/OFS/tests/test_registerclass.py +++ b/src/OFS/tests/test_registerclass.py @@ -17,8 +17,8 @@ from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from OFS.SimpleItem import SimpleItem -from zope.interface import implementer from zope.interface import Interface +from zope.interface import implementer class ISimpleContent(Interface): diff --git a/src/OFS/tests/test_registerpackage.py b/src/OFS/tests/test_registerpackage.py index 37f8c5f604..8daf6c0d28 100644 --- a/src/OFS/tests/test_registerpackage.py +++ b/src/OFS/tests/test_registerpackage.py @@ -14,12 +14,12 @@ """Unit tests for the registerPackage directive. """ +import sys + # need to add the testing package to the pythonpath in order to # test python-packages-as-products from Products.Five.tests import testing -import sys - sys.path.append(testing.__path__[0]) diff --git a/src/OFS/tests/test_subscribers.py b/src/OFS/tests/test_subscribers.py index ee857e7389..78aa179cf4 100644 --- a/src/OFS/tests/test_subscribers.py +++ b/src/OFS/tests/test_subscribers.py @@ -13,11 +13,11 @@ ############################################################################## -from six import StringIO - import logging import unittest +from six import StringIO + class TestMaybeWarnDeprecated(unittest.TestCase): diff --git a/src/OFS/tests/test_userfolder.py b/src/OFS/tests/test_userfolder.py index 3f289db333..b9217a2dbc 100644 --- a/src/OFS/tests/test_userfolder.py +++ b/src/OFS/tests/test_userfolder.py @@ -13,10 +13,10 @@ """ Unit tests for OFS.userfolder """ -from ZPublisher.utils import basic_auth_encode - import unittest +from ZPublisher.utils import basic_auth_encode + # TODO class Test_readUserAccessFile(unittest.TestCase) diff --git a/src/OFS/userfolder.py b/src/OFS/userfolder.py index 629705b703..c3e3bf1b8a 100644 --- a/src/OFS/userfolder.py +++ b/src/OFS/userfolder.py @@ -13,6 +13,8 @@ """User folders """ +import os + from AccessControl import ClassSecurityInfo from AccessControl import userfolder as accesscontrol_userfolder from AccessControl.class_init import InitializeClass @@ -31,8 +33,6 @@ from OFS.SimpleItem import Item from zExceptions import BadRequest -import os - class BasicUserFolder( Navigation, diff --git a/src/Products/Five/browser/adding.py b/src/Products/Five/browser/adding.py index 72a117af3d..407d6022ec 100644 --- a/src/Products/Five/browser/adding.py +++ b/src/Products/Five/browser/adding.py @@ -22,6 +22,10 @@ import operator from six import PY2 + +from OFS.SimpleItem import SimpleItem +from Products.Five import BrowserView +from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile from zExceptions import BadRequest from zope.browser.interfaces import IAdding from zope.browsermenu.menu import getMenu @@ -42,10 +46,6 @@ from zope.publisher.interfaces import IPublishTraverse from zope.traversing.browser.absoluteurl import absoluteURL -from OFS.SimpleItem import SimpleItem -from Products.Five import BrowserView -from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile - @implementer(IAdding, IPublishTraverse) class Adding(BrowserView): diff --git a/src/Products/Five/browser/decode.py b/src/Products/Five/browser/decode.py index 9f2729f5af..c2aa1839be 100644 --- a/src/Products/Five/browser/decode.py +++ b/src/Products/Five/browser/decode.py @@ -17,10 +17,11 @@ from warnings import warn -from ZPublisher.HTTPRequest import isCGI_NAMEs -from zope.i18n.interfaces import IUserPreferredCharsets +from six import binary_type +from six import text_type -from six import text_type, binary_type +from zope.i18n.interfaces import IUserPreferredCharsets +from ZPublisher.HTTPRequest import isCGI_NAMEs def _decode(text, charsets): diff --git a/src/Products/Five/browser/metaconfigure.py b/src/Products/Five/browser/metaconfigure.py index 86fa998244..4e2fee127a 100644 --- a/src/Products/Five/browser/metaconfigure.py +++ b/src/Products/Five/browser/metaconfigure.py @@ -22,40 +22,37 @@ from inspect import isfunction from inspect import ismethod +import zope.browserpage.metaconfigure +import zope.browserpage.simpleviewclass +from AccessControl.class_init import InitializeClass +from AccessControl.security import CheckerPrivateId +from AccessControl.security import getSecurityInfo +from AccessControl.security import protectClass +from AccessControl.security import protectName +from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile +from Products.Five.browser.resource import DirectoryResourceFactory +from Products.Five.browser.resource import FileResourceFactory +from Products.Five.browser.resource import ImageResourceFactory +from Products.Five.browser.resource import PageTemplateResourceFactory +from zope.browserpage.metaconfigure import _handle_allowed_attributes +from zope.browserpage.metaconfigure import _handle_allowed_interface +from zope.browserpage.metaconfigure import _handle_for +from zope.browserpage.metaconfigure import _handle_menu +from zope.browserpage.metaconfigure import _handle_permission +from zope.browserpage.metaconfigure import providesCallable +from zope.browserpage.metadirectives import IViewDirective from zope.component import queryMultiAdapter from zope.component.interface import provideInterface from zope.component.zcml import handler from zope.configuration.exceptions import ConfigurationError -from zope.interface import classImplements from zope.interface import Interface +from zope.interface import classImplements from zope.publisher.interfaces import NotFound from zope.publisher.interfaces.browser import IBrowserPublisher from zope.publisher.interfaces.browser import IBrowserRequest from zope.publisher.interfaces.browser import IDefaultBrowserLayer from zope.security.zcml import Permission -import zope.browserpage.metaconfigure -import zope.browserpage.simpleviewclass -from zope.browserpage.metaconfigure import _handle_allowed_attributes -from zope.browserpage.metaconfigure import _handle_allowed_interface -from zope.browserpage.metaconfigure import _handle_for -from zope.browserpage.metaconfigure import _handle_menu -from zope.browserpage.metaconfigure import _handle_permission -from zope.browserpage.metaconfigure import providesCallable -from zope.browserpage.metadirectives import IViewDirective - -from AccessControl.class_init import InitializeClass -from AccessControl.security import getSecurityInfo -from AccessControl.security import protectClass -from AccessControl.security import protectName -from AccessControl.security import CheckerPrivateId - -from Products.Five.browser.resource import FileResourceFactory -from Products.Five.browser.resource import ImageResourceFactory -from Products.Five.browser.resource import PageTemplateResourceFactory -from Products.Five.browser.resource import DirectoryResourceFactory -from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile - def is_method(func): # Under Python 3, there are no unbound methods diff --git a/src/Products/Five/browser/pagetemplatefile.py b/src/Products/Five/browser/pagetemplatefile.py index 3a6032ef5f..8f0606a40f 100644 --- a/src/Products/Five/browser/pagetemplatefile.py +++ b/src/Products/Five/browser/pagetemplatefile.py @@ -15,14 +15,15 @@ """ from os.path import basename -from zope.component import getMultiAdapter -from zope.pagetemplate.pagetemplatefile import PageTemplateFile -from zope.pagetemplate.engine import TrustedAppPT -from Acquisition import aq_get from AccessControl import getSecurityManager +from Acquisition import aq_get from Products.PageTemplates.Expressions import SecureModuleImporter from Products.PageTemplates.Expressions import createTrustedZopeEngine +from zope.component import getMultiAdapter +from zope.pagetemplate.engine import TrustedAppPT +from zope.pagetemplate.pagetemplatefile import PageTemplateFile + _engine = createTrustedZopeEngine() diff --git a/src/Products/Five/browser/resource.py b/src/Products/Five/browser/resource.py index 2bfef4737d..7aa5a2bb4f 100644 --- a/src/Products/Five/browser/resource.py +++ b/src/Products/Five/browser/resource.py @@ -17,16 +17,16 @@ import os from six.moves.urllib.parse import unquote + import zope.browserresource.directory import zope.browserresource.file +from Products.Five.browser import BrowserView from zope.browserresource.file import File from zope.interface import implementer -from zope.traversing.browser import absoluteURL +from zope.ptresource.ptresource import PageTemplate from zope.publisher.interfaces import NotFound from zope.publisher.interfaces.browser import IBrowserPublisher -from zope.ptresource.ptresource import PageTemplate - -from Products.Five.browser import BrowserView +from zope.traversing.browser import absoluteURL _marker = object() diff --git a/src/Products/Five/browser/tests/classes.py b/src/Products/Five/browser/tests/classes.py index 9aff55a221..e5ee185ecd 100644 --- a/src/Products/Five/browser/tests/classes.py +++ b/src/Products/Five/browser/tests/classes.py @@ -14,8 +14,9 @@ """Test fixtures """ -from zope.interface import Interface, implementer from Products.Five import BrowserView +from zope.interface import Interface +from zope.interface import implementer class IOne(Interface): diff --git a/src/Products/Five/browser/tests/i18n.py b/src/Products/Five/browser/tests/i18n.py index 508f3db7e3..db5e87c348 100644 --- a/src/Products/Five/browser/tests/i18n.py +++ b/src/Products/Five/browser/tests/i18n.py @@ -14,8 +14,9 @@ """Test i18n. """ -from zope.i18nmessageid import MessageFactory from Products.Five import BrowserView +from zope.i18nmessageid import MessageFactory + _ = MessageFactory('fivetest') diff --git a/src/Products/Five/component/__init__.py b/src/Products/Five/component/__init__.py index e4cfc7a88f..2a3f1a8ac0 100644 --- a/src/Products/Five/component/__init__.py +++ b/src/Products/Five/component/__init__.py @@ -14,23 +14,23 @@ """Five local component look-up support """ +import ExtensionClass import zope.component import zope.event import zope.interface +from Acquisition import aq_base +from Acquisition import aq_inner +from Acquisition import aq_parent +# Hook up custom component architecture calls +from zope.component.hooks import setHooks from zope.component.interfaces import IPossibleSite from zope.component.interfaces import ISite from zope.interface.interfaces import IComponentLookup from zope.traversing.interfaces import BeforeTraverseEvent - -import ExtensionClass -from Acquisition import aq_base, aq_inner, aq_parent from ZPublisher.BeforeTraverse import NameCaller from ZPublisher.BeforeTraverse import registerBeforeTraverse from ZPublisher.BeforeTraverse import unregisterBeforeTraverse -# Hook up custom component architecture calls -from zope.component.hooks import setHooks - setHooks() diff --git a/src/Products/Five/component/browser.py b/src/Products/Five/component/browser.py index 87d2dc71cc..2d48f0cae1 100644 --- a/src/Products/Five/component/browser.py +++ b/src/Products/Five/component/browser.py @@ -15,9 +15,9 @@ """ from Products.Five.browser import BrowserView -from Products.Five.component import enableSite, disableSite +from Products.Five.component import disableSite +from Products.Five.component import enableSite from Products.Five.component.interfaces import IObjectManagerSite - from zope.component.globalregistry import getGlobalSiteManager from zope.component.hooks import setSite from zope.component.persistentregistry import PersistentComponents diff --git a/src/Products/Five/component/interfaces.py b/src/Products/Five/component/interfaces.py index e2394f279c..00d3d20818 100644 --- a/src/Products/Five/component/interfaces.py +++ b/src/Products/Five/component/interfaces.py @@ -14,8 +14,8 @@ """Component interfaces """ -from zope.component.interfaces import ISite from OFS.interfaces import IObjectManager +from zope.component.interfaces import ISite class IObjectManagerSite(IObjectManager, ISite): diff --git a/src/Products/Five/component/tests.py b/src/Products/Five/component/tests.py index e6a6bd3fd8..7c50f4d6ee 100644 --- a/src/Products/Five/component/tests.py +++ b/src/Products/Five/component/tests.py @@ -16,6 +16,7 @@ import unittest from doctest import DocFileSuite + from Testing.ZopeTestCase import FunctionalDocFileSuite diff --git a/src/Products/Five/fiveconfigure.py b/src/Products/Five/fiveconfigure.py index 3946b86c7f..4ea258caec 100644 --- a/src/Products/Five/fiveconfigure.py +++ b/src/Products/Five/fiveconfigure.py @@ -16,16 +16,16 @@ These directives are specific to Five and have no equivalents outside of it. """ +import glob import logging import os -import glob import sys from App.config import getConfiguration +from Products.Five.browser.metaconfigure import page from zope.configuration.exceptions import ConfigurationError from zope.publisher.interfaces.browser import IDefaultBrowserLayer -from Products.Five.browser.metaconfigure import page if sys.version_info >= (3, ): basestring = str diff --git a/src/Products/Five/fivedirectives.py b/src/Products/Five/fivedirectives.py index 82c25a52b5..2e153e5fbc 100644 --- a/src/Products/Five/fivedirectives.py +++ b/src/Products/Five/fivedirectives.py @@ -14,9 +14,9 @@ """Five ZCML directive schemas """ -from zope.interface import Interface from zope.browserresource.metadirectives import IBasicResourceInformation from zope.configuration.fields import GlobalObject +from zope.interface import Interface from zope.schema import TextLine diff --git a/src/Products/Five/metaconfigure.py b/src/Products/Five/metaconfigure.py index a318509229..9f801c03e0 100644 --- a/src/Products/Five/metaconfigure.py +++ b/src/Products/Five/metaconfigure.py @@ -2,6 +2,7 @@ from zope.deferredimport import deprecated + deprecated( 'Please import from AccessControl.metaconfigure', ClassDirective='AccessControl.metaconfigure:ClassDirective', diff --git a/src/Products/Five/sizeconfigure.py b/src/Products/Five/sizeconfigure.py index a3a3463084..d61343b673 100644 --- a/src/Products/Five/sizeconfigure.py +++ b/src/Products/Five/sizeconfigure.py @@ -15,8 +15,11 @@ Zope 2 objects. """ +from Products.Five import fivemethod +from Products.Five import isFiveMethod from zope.size.interfaces import ISized -from Products.Five import fivemethod, isFiveMethod +from zope.testing.cleanup import addCleanUp # NOQA + # holds classes that were monkeyed with; for clean up _monkied = [] @@ -84,6 +87,5 @@ def cleanUp(): unsizable(class_) -from zope.testing.cleanup import addCleanUp # NOQA addCleanUp(cleanUp) del addCleanUp diff --git a/src/Products/Five/skin/standardmacros.py b/src/Products/Five/skin/standardmacros.py index 9188c9227a..95829001d7 100644 --- a/src/Products/Five/skin/standardmacros.py +++ b/src/Products/Five/skin/standardmacros.py @@ -14,8 +14,8 @@ """Mimick the zope.app.basicskin skinning system. """ -import zope.interface import zope.component +import zope.interface from Products.Five.browser import BrowserView diff --git a/src/Products/Five/tests/adapters.py b/src/Products/Five/tests/adapters.py index dcc58c0e0a..b8d890d328 100644 --- a/src/Products/Five/tests/adapters.py +++ b/src/Products/Five/tests/adapters.py @@ -15,7 +15,8 @@ """ from zope.component import adapter -from zope.interface import implementer, Interface +from zope.interface import Interface +from zope.interface import implementer class IAdaptable(Interface): diff --git a/src/Products/Five/tests/metaconfigure.py b/src/Products/Five/tests/metaconfigure.py index 8cd2b3e5b8..001f2c9b90 100644 --- a/src/Products/Five/tests/metaconfigure.py +++ b/src/Products/Five/tests/metaconfigure.py @@ -14,8 +14,8 @@ """Parrot directive and support classes """ -from zope.interface import Interface from zope.configuration.fields import GlobalObject +from zope.interface import Interface from zope.schema import TextLine diff --git a/src/Products/Five/tests/testing/__init__.py b/src/Products/Five/tests/testing/__init__.py index 374b717774..8bd5032ef6 100644 --- a/src/Products/Five/tests/testing/__init__.py +++ b/src/Products/Five/tests/testing/__init__.py @@ -14,9 +14,7 @@ """Test helpers """ -from Products.Five.tests.testing.folder import ( # NOQA - FiveTraversableFolder, - manage_addFiveTraversableFolder, - manage_addNoVerifyPasteFolder, - NoVerifyPasteFolder, -) +from .folder import FiveTraversableFolder # NOQA: F401 +from .folder import NoVerifyPasteFolder # NOQA: F401 +from .folder import manage_addFiveTraversableFolder # NOQA: F401 +from .folder import manage_addNoVerifyPasteFolder # NOQA: F401 diff --git a/src/Products/Five/tests/testing/fancycontent.py b/src/Products/Five/tests/testing/fancycontent.py index a6bf20622c..dc1971960b 100644 --- a/src/Products/Five/tests/testing/fancycontent.py +++ b/src/Products/Five/tests/testing/fancycontent.py @@ -18,9 +18,8 @@ from AccessControl.SecurityInfo import ClassSecurityInfo from Acquisition import Explicit from OFS.SimpleItem import SimpleItem - -from zope.interface import implementer from zope.interface import Interface +from zope.interface import implementer class IFancyContent(Interface): diff --git a/src/Products/Five/tests/testing/simplecontent.py b/src/Products/Five/tests/testing/simplecontent.py index 43e5008b7d..6845656fbd 100644 --- a/src/Products/Five/tests/testing/simplecontent.py +++ b/src/Products/Five/tests/testing/simplecontent.py @@ -17,9 +17,8 @@ from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from OFS.SimpleItem import SimpleItem - -from zope.interface import implementer from zope.interface import Interface +from zope.interface import implementer class ISimpleContent(Interface): diff --git a/src/Products/Five/utilities/marker.py b/src/Products/Five/utilities/marker.py index 23ec165617..6bfef2463c 100644 --- a/src/Products/Five/utilities/marker.py +++ b/src/Products/Five/utilities/marker.py @@ -16,11 +16,15 @@ Allows for arbitrary application of marker interfaces to objects. """ -from zope.interface import implementer, implementedBy, providedBy -from zope.interface import directlyProvides, directlyProvidedBy -from zope.interface.interfaces import IInterface -from zope.component.interface import getInterface, interfaceToName +from zope.component.interface import getInterface +from zope.component.interface import interfaceToName from zope.component.interface import searchInterface +from zope.interface import directlyProvidedBy +from zope.interface import directlyProvides +from zope.interface import implementedBy +from zope.interface import implementer +from zope.interface import providedBy +from zope.interface.interfaces import IInterface from .interfaces import IMarkerInterfaces diff --git a/src/Products/Five/viewlet/manager.py b/src/Products/Five/viewlet/manager.py index ac39f776bb..5173a0e0aa 100644 --- a/src/Products/Five/viewlet/manager.py +++ b/src/Products/Five/viewlet/manager.py @@ -16,14 +16,13 @@ from operator import itemgetter -from AccessControl.ZopeGuards import guarded_hasattr import zope.interface import zope.security +from AccessControl.ZopeGuards import guarded_hasattr +from Products.Five.browser.pagetemplatefile import ZopeTwoPageTemplateFile from zope.viewlet import interfaces from zope.viewlet.manager import ViewletManagerBase as origManagerBase -from Products.Five.browser.pagetemplatefile import ZopeTwoPageTemplateFile - class ViewletManagerBase(origManagerBase): """A base class for Viewlet managers to work in Zope2""" diff --git a/src/Products/Five/viewlet/metaconfigure.py b/src/Products/Five/viewlet/metaconfigure.py index c814e27ab6..0b4269184a 100644 --- a/src/Products/Five/viewlet/metaconfigure.py +++ b/src/Products/Five/viewlet/metaconfigure.py @@ -16,21 +16,19 @@ import os +from AccessControl.class_init import InitializeClass +from AccessControl.security import protectClass +from AccessControl.security import protectName +from Products.Five.viewlet import manager +from Products.Five.viewlet import viewlet +from zope.browser.interfaces import IBrowserView from zope.browserpage.metaconfigure import _handle_for from zope.component import zcml from zope.configuration.exceptions import ConfigurationError from zope.interface import Interface -from zope.browser.interfaces import IBrowserView from zope.publisher.interfaces.browser import IDefaultBrowserLayer from zope.viewlet import interfaces -from AccessControl.class_init import InitializeClass -from AccessControl.security import protectClass -from AccessControl.security import protectName - -from Products.Five.viewlet import manager -from Products.Five.viewlet import viewlet - def viewletManagerDirective( _context, name, permission, diff --git a/src/Products/Five/viewlet/tests.py b/src/Products/Five/viewlet/tests.py index dfd59dd0ba..bf68c2bcfc 100644 --- a/src/Products/Five/viewlet/tests.py +++ b/src/Products/Five/viewlet/tests.py @@ -15,11 +15,12 @@ """ import unittest + +from OFS.SimpleItem import SimpleItem from Testing.ZopeTestCase import FunctionalDocFileSuite from zope.interface import Interface from zope.interface import implementer from zope.viewlet import interfaces -from OFS.SimpleItem import SimpleItem @implementer(Interface) diff --git a/src/Products/OFSP/__init__.py b/src/Products/OFSP/__init__.py index ac51124b8c..69d0419531 100644 --- a/src/Products/OFSP/__init__.py +++ b/src/Products/OFSP/__init__.py @@ -11,15 +11,15 @@ # ############################################################################## -from AccessControl.Permissions import add_documents_images_and_files -from AccessControl.Permissions import add_folders -import OFS.DTMLMethod import OFS.DTMLDocument +import OFS.DTMLMethod import OFS.Folder import OFS.Image import OFS.OrderedFolder import OFS.PropertySheets import OFS.userfolder +from AccessControl.Permissions import add_documents_images_and_files +from AccessControl.Permissions import add_folders def initialize(context): diff --git a/src/Products/PageTemplates/DeferExpr.py b/src/Products/PageTemplates/DeferExpr.py index 011c11d8d4..28f0cffc45 100644 --- a/src/Products/PageTemplates/DeferExpr.py +++ b/src/Products/PageTemplates/DeferExpr.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + # BBB Zope 5.0 deprecated( 'Please import from zope.tales.expressions.', diff --git a/src/Products/PageTemplates/Expressions.py b/src/Products/PageTemplates/Expressions.py index 759f4d8b52..2d64302d43 100644 --- a/src/Products/PageTemplates/Expressions.py +++ b/src/Products/PageTemplates/Expressions.py @@ -17,9 +17,19 @@ """ import logging -from six import text_type, binary_type +from six import binary_type +from six import text_type + +import OFS.interfaces +from Acquisition import aq_base +from MultiMapping import MultiMapping +from Products.PageTemplates import ZRPythonExpr +from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver +from zExceptions import NotFound +from zExceptions import Unauthorized from zope.component import queryUtility +from zope.contentprovider.tales import TALESProviderExpression from zope.i18n import translate from zope.interface import implementer from zope.pagetemplate.engine import ZopeEngine as Z3Engine @@ -34,18 +44,8 @@ from zope.tales.tales import Context from zope.tales.tales import ErrorInfo as BaseErrorInfo from zope.tales.tales import Iterator -from zope.traversing.interfaces import ITraversable from zope.traversing.adapters import traversePathElement - -import OFS.interfaces -from MultiMapping import MultiMapping -from Acquisition import aq_base -from zExceptions import NotFound -from zExceptions import Unauthorized - -from zope.contentprovider.tales import TALESProviderExpression -from Products.PageTemplates import ZRPythonExpr -from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver +from zope.traversing.interfaces import ITraversable SecureModuleImporter = ZRPythonExpr._SecureModuleImporter() diff --git a/src/Products/PageTemplates/PageTemplate.py b/src/Products/PageTemplates/PageTemplate.py index e7cfc14534..75ecc6ba96 100644 --- a/src/Products/PageTemplates/PageTemplate.py +++ b/src/Products/PageTemplates/PageTemplate.py @@ -15,13 +15,15 @@ import sys -from Acquisition import aq_base, aq_inner, aq_parent import ExtensionClass import zope.pagetemplate.pagetemplate -from zope.pagetemplate.pagetemplate import PTRuntimeError +from Acquisition import aq_base +from Acquisition import aq_inner +from Acquisition import aq_parent +from Products.PageTemplates.Expressions import getEngine from zope.pagetemplate.pagetemplate import PageTemplateTracebackSupplement +from zope.pagetemplate.pagetemplate import PTRuntimeError from zope.tales.expressions import SimpleModuleImporter -from Products.PageTemplates.Expressions import getEngine class PageTemplate(ExtensionClass.Base, diff --git a/src/Products/PageTemplates/PageTemplateFile.py b/src/Products/PageTemplates/PageTemplateFile.py index fab0e6b020..b1ed4bd07f 100644 --- a/src/Products/PageTemplates/PageTemplateFile.py +++ b/src/Products/PageTemplates/PageTemplateFile.py @@ -12,13 +12,16 @@ ############################################################################## import os -import six from logging import getLogger +import six + from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo from AccessControl.SecurityManagement import getSecurityManager -from Acquisition import aq_parent, aq_inner, aq_get +from Acquisition import aq_get +from Acquisition import aq_inner +from Acquisition import aq_parent from App.Common import package_home from App.config import getConfiguration from ComputedAttribute import ComputedAttribute @@ -30,12 +33,11 @@ from Shared.DC.Scripts.Script import Script from Shared.DC.Scripts.Signature import FuncCode from zope.contenttype import guess_content_type -from zope.pagetemplate.pagetemplatefile import ( - sniff_type, - XML_PREFIX_MAX_LENGTH, - DEFAULT_ENCODING, - meta_pattern, -) +from zope.pagetemplate.pagetemplatefile import DEFAULT_ENCODING +from zope.pagetemplate.pagetemplatefile import XML_PREFIX_MAX_LENGTH +from zope.pagetemplate.pagetemplatefile import meta_pattern +from zope.pagetemplate.pagetemplatefile import sniff_type + LOG = getLogger('PageTemplateFile') @@ -74,7 +76,7 @@ class PageTemplateFile(SimpleItem, Script, PageTemplate, Traversable): _default_bindings = {'name_subpath': 'traverse_subpath'} security = ClassSecurityInfo() - security.declareProtected( + security.declareProtected( # NOQA: D001 'View management screens', 'read', 'document_src') def __init__( diff --git a/src/Products/PageTemplates/ZRPythonExpr.py b/src/Products/PageTemplates/ZRPythonExpr.py index 4ab3ffeea1..84e9d74fb7 100644 --- a/src/Products/PageTemplates/ZRPythonExpr.py +++ b/src/Products/PageTemplates/ZRPythonExpr.py @@ -16,8 +16,10 @@ """ from AccessControl import safe_builtins -from AccessControl.ZopeGuards import guarded_getattr, get_safe_globals -from DocumentTemplate.DT_Util import TemplateDict, InstanceDict +from AccessControl.ZopeGuards import get_safe_globals +from AccessControl.ZopeGuards import guarded_getattr +from DocumentTemplate.DT_Util import InstanceDict +from DocumentTemplate.DT_Util import TemplateDict from DocumentTemplate.security import RestrictedDTML from RestrictedPython import compile_restricted_eval from zope.tales.pythonexpr import PythonExpr diff --git a/src/Products/PageTemplates/ZopePageTemplate.py b/src/Products/PageTemplates/ZopePageTemplate.py index afeb63a53b..0c24bc6c12 100644 --- a/src/Products/PageTemplates/ZopePageTemplate.py +++ b/src/Products/PageTemplates/ZopePageTemplate.py @@ -15,33 +15,33 @@ import os +from six import binary_type +from six import text_type + from AccessControl.class_init import InitializeClass from AccessControl.Permissions import change_page_templates from AccessControl.Permissions import ftp_access from AccessControl.Permissions import view from AccessControl.Permissions import view_management_screens -from AccessControl.SecurityManagement import getSecurityManager from AccessControl.SecurityInfo import ClassSecurityInfo +from AccessControl.SecurityManagement import getSecurityManager from Acquisition import Acquired -from Acquisition import aq_get from Acquisition import Explicit -from zExceptions import ResourceLockedError - +from Acquisition import aq_get from App.Common import package_home from OFS.Cache import Cacheable -from OFS.SimpleItem import SimpleItem from OFS.PropertyManager import PropertyManager +from OFS.SimpleItem import SimpleItem from OFS.Traversable import Traversable -from Shared.DC.Scripts.Script import Script -from Shared.DC.Scripts.Signature import FuncCode from Products.PageTemplates import bbb from Products.PageTemplates.Expressions import SecureModuleImporter from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplateFile import guess_type from Products.PageTemplates.utils import convertToUnicode - -from six import text_type, binary_type +from Shared.DC.Scripts.Script import Script +from Shared.DC.Scripts.Signature import FuncCode +from zExceptions import ResourceLockedError preferred_encodings = ['utf-8', 'iso-8859-15'] diff --git a/src/Products/PageTemplates/bbb.py b/src/Products/PageTemplates/bbb.py index 0da8cf69a7..285307346c 100644 --- a/src/Products/PageTemplates/bbb.py +++ b/src/Products/PageTemplates/bbb.py @@ -13,6 +13,7 @@ import pkg_resources + HAS_ZSERVER = True try: dist = pkg_resources.get_distribution('ZServer') diff --git a/src/Products/PageTemplates/engine.py b/src/Products/PageTemplates/engine.py index 12168c3ae7..3ff83f7c15 100644 --- a/src/Products/PageTemplates/engine.py +++ b/src/Products/PageTemplates/engine.py @@ -1,32 +1,30 @@ -import re import logging +import re -from zope.interface import implementer -from zope.interface import provider - -from zope.pagetemplate.interfaces import IPageTemplateEngine -from zope.pagetemplate.interfaces import IPageTemplateProgram - -from z3c.pt.pagetemplate import PageTemplate as ChameleonPageTemplate +from chameleon.tal import RepeatDict +from chameleon.tales import NotExpr +from chameleon.tales import StringExpr +from chameleon.zpt.template import Macros from AccessControl.class_init import InitializeClass from AccessControl.SecurityInfo import ClassSecurityInfo -from Products.PageTemplates.Expressions import getEngine from Products.PageTemplates import ZRPythonExpr +from Products.PageTemplates.Expressions import getEngine +from z3c.pt.expressions import ProviderExpr +from z3c.pt.expressions import PythonExpr +from z3c.pt.pagetemplate import PageTemplate as ChameleonPageTemplate +from zope.interface import implementer +from zope.interface import provider +from zope.pagetemplate.interfaces import IPageTemplateEngine +from zope.pagetemplate.interfaces import IPageTemplateProgram -from chameleon.tales import StringExpr -from chameleon.tales import NotExpr -from chameleon.tal import RepeatDict -from chameleon.zpt.template import Macros - -from z3c.pt.expressions import PythonExpr, ProviderExpr - +from .expression import ExistsExpr +from .expression import NocallExpr from .expression import PathExpr from .expression import TrustedPathExpr -from .expression import NocallExpr -from .expression import ExistsExpr from .expression import UntrustedPythonExpr + # Declare Chameleon's repeat dictionary public RepeatDict.security = ClassSecurityInfo() RepeatDict.security.declareObjectPublic() diff --git a/src/Products/PageTemplates/expression.py b/src/Products/PageTemplates/expression.py index 158008f4eb..06c436190c 100644 --- a/src/Products/PageTemplates/expression.py +++ b/src/Products/PageTemplates/expression.py @@ -1,30 +1,26 @@ from ast import NodeTransformer from ast import parse + +from chameleon.astutil import Static +from chameleon.astutil import Symbol +from chameleon.codegen import template from six import class_types +from AccessControl.ZopeGuards import guarded_apply +from AccessControl.ZopeGuards import guarded_getattr +from AccessControl.ZopeGuards import guarded_getitem +from AccessControl.ZopeGuards import guarded_iter +from AccessControl.ZopeGuards import protected_inplacevar from OFS.interfaces import ITraversable +from Products.PageTemplates.Expressions import render +from RestrictedPython import RestrictingNodeTransformer +from RestrictedPython.Utilities import utility_builtins +from z3c.pt import expressions from zExceptions import NotFound from zExceptions import Unauthorized - from zope.traversing.adapters import traversePathElement from zope.traversing.interfaces import TraversalError -from RestrictedPython.Utilities import utility_builtins -from RestrictedPython import RestrictingNodeTransformer - -from Products.PageTemplates.Expressions import render - -from AccessControl.ZopeGuards import guarded_getattr -from AccessControl.ZopeGuards import guarded_getitem -from AccessControl.ZopeGuards import guarded_apply -from AccessControl.ZopeGuards import guarded_iter -from AccessControl.ZopeGuards import protected_inplacevar - -from chameleon.astutil import Symbol -from chameleon.astutil import Static -from chameleon.codegen import template - -from z3c.pt import expressions _marker = object() diff --git a/src/Products/PageTemplates/tests/batch.py b/src/Products/PageTemplates/tests/batch.py index 8dea8b9202..42454f9871 100644 --- a/src/Products/PageTemplates/tests/batch.py +++ b/src/Products/PageTemplates/tests/batch.py @@ -16,6 +16,7 @@ from . import util + __allow_access_to_unprotected_subobjects__ = {'batch': 1} __roles__ = None diff --git a/src/Products/PageTemplates/tests/testDTMLTests.py b/src/Products/PageTemplates/tests/testDTMLTests.py index ead915016e..b7c3b551ef 100644 --- a/src/Products/PageTemplates/tests/testDTMLTests.py +++ b/src/Products/PageTemplates/tests/testDTMLTests.py @@ -14,16 +14,16 @@ import unittest import zope.component.testing -from zope.component import provideUtility -from zope.traversing.adapters import DefaultTraversable -from Products.PageTemplates.tests import util -from Products.PageTemplates.PageTemplate import PageTemplate +from AccessControl import SecurityManager +from AccessControl.SecurityManagement import noSecurityManager +from Acquisition import Implicit from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver +from Products.PageTemplates.PageTemplate import PageTemplate +from Products.PageTemplates.tests import util from Products.PageTemplates.unicodeconflictresolver import \ DefaultUnicodeEncodingConflictResolver -from Acquisition import Implicit -from AccessControl import SecurityManager -from AccessControl.SecurityManagement import noSecurityManager +from zope.component import provideUtility +from zope.traversing.adapters import DefaultTraversable class AqPageTemplate(Implicit, PageTemplate): diff --git a/src/Products/PageTemplates/tests/testExpressions.py b/src/Products/PageTemplates/tests/testExpressions.py index af1c7e20d4..e0404efe40 100644 --- a/src/Products/PageTemplates/tests/testExpressions.py +++ b/src/Products/PageTemplates/tests/testExpressions.py @@ -1,6 +1,7 @@ # *-* coding: iso-8859-1 -*- import unittest + from six import text_type from zope.component.testing import PlacelessSetup diff --git a/src/Products/PageTemplates/tests/testHTMLTests.py b/src/Products/PageTemplates/tests/testHTMLTests.py index 25ab67c345..9847f8d090 100644 --- a/src/Products/PageTemplates/tests/testHTMLTests.py +++ b/src/Products/PageTemplates/tests/testHTMLTests.py @@ -13,19 +13,19 @@ import unittest +from six import text_type + +import zope.component.testing from AccessControl import SecurityManager from AccessControl.SecurityManagement import noSecurityManager from Acquisition import Implicit -from six import text_type -import zope.component.testing -from zope.component import provideUtility -from zope.traversing.adapters import DefaultTraversable - -from Products.PageTemplates.tests import util -from Products.PageTemplates.PageTemplate import PageTemplate from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver +from Products.PageTemplates.PageTemplate import PageTemplate +from Products.PageTemplates.tests import util from Products.PageTemplates.unicodeconflictresolver import \ DefaultUnicodeEncodingConflictResolver +from zope.component import provideUtility +from zope.traversing.adapters import DefaultTraversable class AqPageTemplate(Implicit, PageTemplate): diff --git a/src/Products/PageTemplates/tests/testZopePageTemplate.py b/src/Products/PageTemplates/tests/testZopePageTemplate.py index d597305b02..25ad7e91b1 100644 --- a/src/Products/PageTemplates/tests/testZopePageTemplate.py +++ b/src/Products/PageTemplates/tests/testZopePageTemplate.py @@ -6,30 +6,29 @@ """ import unittest -import transaction -import zope.component.testing -from zope.traversing.adapters import DefaultTraversable -from zope.publisher.http import HTTPCharsets +from six import text_type +import transaction +import Zope2 +import zope.component.testing +from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver +from Products.PageTemplates.PageTemplateFile import guess_type +from Products.PageTemplates.unicodeconflictresolver import \ + PreferredCharsetResolver +from Products.PageTemplates.utils import charsetFromMetaEquiv +from Products.PageTemplates.utils import encodingFromXMLPreamble +from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate +from Products.PageTemplates.ZopePageTemplate import manage_addPageTemplate from Testing.makerequest import makerequest from Testing.testbrowser import Browser from Testing.ZopeTestCase import FunctionalTestCase -from Testing.ZopeTestCase import installProduct from Testing.ZopeTestCase import ZopeTestCase -from Products.PageTemplates.PageTemplateFile import guess_type -from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate -from Products.PageTemplates.ZopePageTemplate import manage_addPageTemplate -from Products.PageTemplates.utils import encodingFromXMLPreamble -from Products.PageTemplates.utils import charsetFromMetaEquiv +from Testing.ZopeTestCase import installProduct from zope.component import provideUtility from zope.pagetemplate.pagetemplatefile import DEFAULT_ENCODING -from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver -from Products.PageTemplates.unicodeconflictresolver \ - import PreferredCharsetResolver -import Zope2 - -from six import text_type +from zope.publisher.http import HTTPCharsets +from zope.traversing.adapters import DefaultTraversable ascii_binary = b'hello world' diff --git a/src/Products/PageTemplates/tests/test_engine.py b/src/Products/PageTemplates/tests/test_engine.py index 529bf18ffc..300b97b8d1 100644 --- a/src/Products/PageTemplates/tests/test_engine.py +++ b/src/Products/PageTemplates/tests/test_engine.py @@ -4,6 +4,7 @@ from Testing.ZopeTestCase import ZopeTestCase from Testing.ZopeTestCase.sandbox import Sandboxed + path = os.path.dirname(__file__) diff --git a/src/Products/PageTemplates/tests/test_pagetemplate.py b/src/Products/PageTemplates/tests/test_pagetemplate.py index 2bb11bfed5..a3fd1d2b62 100644 --- a/src/Products/PageTemplates/tests/test_pagetemplate.py +++ b/src/Products/PageTemplates/tests/test_pagetemplate.py @@ -6,6 +6,7 @@ from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Testing.ZopeTestCase import ZopeTestCase + path = os.path.dirname(__file__) diff --git a/src/Products/PageTemplates/tests/test_persistenttemplate.py b/src/Products/PageTemplates/tests/test_persistenttemplate.py index 3cfe711890..ec641584da 100644 --- a/src/Products/PageTemplates/tests/test_persistenttemplate.py +++ b/src/Products/PageTemplates/tests/test_persistenttemplate.py @@ -4,6 +4,7 @@ from Products.PageTemplates.ZopePageTemplate import manage_addPageTemplate from Testing.ZopeTestCase import ZopeTestCase + try: from html import escape except ImportError: # PY2 diff --git a/src/Products/PageTemplates/tests/test_ptfile.py b/src/Products/PageTemplates/tests/test_ptfile.py index ed64d5789e..409835292b 100644 --- a/src/Products/PageTemplates/tests/test_ptfile.py +++ b/src/Products/PageTemplates/tests/test_ptfile.py @@ -5,12 +5,11 @@ import os.path import tempfile import unittest -import Zope2 -import transaction - -from Testing.makerequest import makerequest +import transaction +import Zope2 from Products.PageTemplates.PageTemplateFile import PageTemplateFile +from Testing.makerequest import makerequest class TypeSniffingTestCase(unittest.TestCase): diff --git a/src/Products/PageTemplates/unicodeconflictresolver.py b/src/Products/PageTemplates/unicodeconflictresolver.py index 4284091caa..d651162804 100644 --- a/src/Products/PageTemplates/unicodeconflictresolver.py +++ b/src/Products/PageTemplates/unicodeconflictresolver.py @@ -15,13 +15,14 @@ import sys +from six import text_type + +import ZPublisher from Acquisition import aq_get from Products.PageTemplates.interfaces import IUnicodeEncodingConflictResolver -from zope.interface import implementer from zope.i18n.interfaces import IUserPreferredCharsets -import ZPublisher +from zope.interface import implementer -from six import text_type default_encoding = sys.getdefaultencoding() diff --git a/src/Products/PageTemplates/utils.py b/src/Products/PageTemplates/utils.py index c2d2837a43..b4c8824546 100644 --- a/src/Products/PageTemplates/utils.py +++ b/src/Products/PageTemplates/utils.py @@ -17,6 +17,7 @@ from zope.pagetemplate.pagetemplatefile import DEFAULT_ENCODING + xml_preamble_reg = re.compile( br'^<\?xml.*?encoding="(.*?)".*?\?>', re.M) http_equiv_reg = re.compile( diff --git a/src/Products/SiteAccess/VirtualHostMonster.py b/src/Products/SiteAccess/VirtualHostMonster.py index 4ca84bab60..4531b10223 100644 --- a/src/Products/SiteAccess/VirtualHostMonster.py +++ b/src/Products/SiteAccess/VirtualHostMonster.py @@ -9,13 +9,13 @@ from App.special_dtml import DTMLFile from OFS.SimpleItem import Item from Persistence import Persistent +from zExceptions import BadRequest +from ZPublisher.BaseRequest import quote from ZPublisher.BeforeTraverse import NameCaller from ZPublisher.BeforeTraverse import queryBeforeTraverse from ZPublisher.BeforeTraverse import registerBeforeTraverse from ZPublisher.BeforeTraverse import unregisterBeforeTraverse -from ZPublisher.BaseRequest import quote from ZPublisher.HTTPRequest import splitport -from zExceptions import BadRequest class VirtualHostMonster(Persistent, Item, Implicit): diff --git a/src/Shared/DC/Scripts/Bindings.py b/src/Shared/DC/Scripts/Bindings.py index a8a873ed03..419d65b253 100644 --- a/src/Shared/DC/Scripts/Bindings.py +++ b/src/Shared/DC/Scripts/Bindings.py @@ -16,13 +16,16 @@ from six import exec_ from AccessControl.class_init import InitializeClass +from AccessControl.PermissionRole import _what_not_even_god_should_do +from AccessControl.Permissions import view_management_screens from AccessControl.SecurityInfo import ClassSecurityInfo from AccessControl.SecurityManagement import getSecurityManager -from AccessControl.Permissions import view_management_screens -from AccessControl.PermissionRole import _what_not_even_god_should_do from AccessControl.unauthorized import Unauthorized from AccessControl.ZopeGuards import guarded_getattr -from Acquisition import aq_base, aq_inner, aq_parent +from Acquisition import aq_base +from Acquisition import aq_inner +from Acquisition import aq_parent + defaultBindings = {'name_context': 'context', 'name_container': 'container', diff --git a/src/Shared/DC/Scripts/Script.py b/src/Shared/DC/Scripts/Script.py index e517eaeb66..2dc8cd4085 100644 --- a/src/Shared/DC/Scripts/Script.py +++ b/src/Shared/DC/Scripts/Script.py @@ -23,12 +23,10 @@ from App.special_dtml import DTMLFile from DocumentTemplate.DT_Util import TemplateDict from OFS.SimpleItem import SimpleItem -from zExceptions import Redirect - -from Shared.DC.Scripts.BindingsUI import BindingsUI - from Shared.DC.Scripts.Bindings import defaultBindings # NOQA +from Shared.DC.Scripts.BindingsUI import BindingsUI from Shared.DC.Scripts.Signature import FuncCode # NOQA +from zExceptions import Redirect class Script(SimpleItem, BindingsUI): diff --git a/src/Testing/ZODButil.py b/src/Testing/ZODButil.py index d3e23db661..5f35f78fcd 100644 --- a/src/Testing/ZODButil.py +++ b/src/Testing/ZODButil.py @@ -1,5 +1,6 @@ import os from glob import glob + import ZODB from ZODB.FileStorage import FileStorage diff --git a/src/Testing/ZopeTestCase/PortalTestCase.py b/src/Testing/ZopeTestCase/PortalTestCase.py index b854507be0..da985836e4 100644 --- a/src/Testing/ZopeTestCase/PortalTestCase.py +++ b/src/Testing/ZopeTestCase/PortalTestCase.py @@ -25,19 +25,19 @@ getPortal() returns a usable portal object to the setup code. """ -from . import base -from . import interfaces -from . import utils - -from zope.interface import implementer from AccessControl import getSecurityManager from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager from Acquisition import aq_base +from zope.interface import implementer +from . import base +from . import interfaces +from . import utils from .ZopeTestCase import user_name from .ZopeTestCase import user_password + portal_name = 'portal' diff --git a/src/Testing/ZopeTestCase/ZopeLite.py b/src/Testing/ZopeTestCase/ZopeLite.py index bca57b73d6..19f3610189 100644 --- a/src/Testing/ZopeTestCase/ZopeLite.py +++ b/src/Testing/ZopeTestCase/ZopeLite.py @@ -27,10 +27,30 @@ import sys import time -from six import exec_ from six import PY2 +from six import exec_ +import App.ProductContext # NOQA +import OFS.Application # NOQA +import OFS.ObjectManager # NOQA +import OFS.SimpleItem # NOQA +import Products # NOQA +import ZODB # NOQA +import Zope2 # NOQA +import Zope2.Startup.run # NOQA +from OFS.Application import get_products +from OFS.Application import install_package +from OFS.Application import install_product +from OFS.Folder import Folder # NOQA from Testing.ZopeTestCase import layer +# ZODB sandbox factory +from ZODB.DemoStorage import DemoStorage # NOQA + + +# Allow test authors to install Zope products into the test environment. Note +# that installProduct() must be called at module level -- never from tests. +from OFS.Application import get_folder_permissions # NOQA; NOQA + # Allow code to tell it is run by the test framework os.environ['ZOPETESTCASE'] = '1' @@ -101,21 +121,14 @@ def _configure_client_cache(): _configure_client_cache() _exec('import Zope2') -import Zope2 # NOQA -import Zope2.Startup.run # NOQA _exec('import ZODB') -import ZODB # NOQA _write('.') _exec('import OFS.SimpleItem') -import OFS.SimpleItem # NOQA _exec('import OFS.ObjectManager') -import OFS.ObjectManager # NOQA _write('.') _exec('import OFS.Application') -import OFS.Application # NOQA -import App.ProductContext # NOQA _write('.') _patched = False @@ -163,12 +176,6 @@ def _startup(): # Start ZopeLite _startup() -# Allow test authors to install Zope products into the test environment. Note -# that installProduct() must be called at module level -- never from tests. -from OFS.Application import get_folder_permissions, get_products # NOQA -from OFS.Application import install_product, install_package # NOQA -from OFS.Folder import Folder # NOQA -import Products # NOQA _installedProducts = {} _installedPackages = {} @@ -257,9 +264,6 @@ def startup(): Zope = Zope2 active = _patched -# ZODB sandbox factory -from ZODB.DemoStorage import DemoStorage # NOQA - def sandbox(base=None): '''Returns a sandbox copy of the base ZODB.''' diff --git a/src/Testing/ZopeTestCase/ZopeTestCase.py b/src/Testing/ZopeTestCase/ZopeTestCase.py index 0061beda17..5386111f1c 100644 --- a/src/Testing/ZopeTestCase/ZopeTestCase.py +++ b/src/Testing/ZopeTestCase/ZopeTestCase.py @@ -22,20 +22,20 @@ and 'View' permissions given to his role. """ -from zope.interface import implementer from AccessControl import getSecurityManager -from AccessControl.SecurityManagement import newSecurityManager -from AccessControl.SecurityManagement import noSecurityManager from AccessControl.Permissions import access_contents_information from AccessControl.Permissions import view - +from AccessControl.SecurityManagement import newSecurityManager +from AccessControl.SecurityManagement import noSecurityManager from Testing.ZopeTestCase import base -from Testing.ZopeTestCase.base import app # NOQA -from Testing.ZopeTestCase.base import close # NOQA +from Testing.ZopeTestCase import connections from Testing.ZopeTestCase import functional from Testing.ZopeTestCase import interfaces from Testing.ZopeTestCase import utils -from Testing.ZopeTestCase import connections +from Testing.ZopeTestCase.base import app # NOQA +from Testing.ZopeTestCase.base import close # NOQA +from zope.interface import implementer + folder_name = 'test_folder_1_' user_name = 'test_user_1_' diff --git a/src/Testing/ZopeTestCase/base.py b/src/Testing/ZopeTestCase/base.py index 14725af15b..3e250618b2 100644 --- a/src/Testing/ZopeTestCase/base.py +++ b/src/Testing/ZopeTestCase/base.py @@ -14,16 +14,15 @@ """ import unittest -import transaction -from zope.interface import implementer +import transaction from AccessControl.SecurityManagement import noSecurityManager - from Testing.makerequest import makerequest +from Testing.ZopeTestCase import ZopeLite as Zope2 from Testing.ZopeTestCase import connections from Testing.ZopeTestCase import interfaces from Testing.ZopeTestCase import layer -from Testing.ZopeTestCase import ZopeLite as Zope2 +from zope.interface import implementer def app(): diff --git a/src/Testing/ZopeTestCase/functional.py b/src/Testing/ZopeTestCase/functional.py index 2f340afe28..24e6fbbcf7 100644 --- a/src/Testing/ZopeTestCase/functional.py +++ b/src/Testing/ZopeTestCase/functional.py @@ -15,15 +15,15 @@ After Marius Gedminas' functional.py module for Zope3. """ -from functools import partial import sys +from functools import partial from six import PY2 -import transaction -from zope.interface import implementer +import transaction from Testing.ZopeTestCase import interfaces from Testing.ZopeTestCase import sandbox +from zope.interface import implementer from ZPublisher.httpexceptions import HTTPExceptionHandler from ZPublisher.utils import basic_auth_encode diff --git a/src/Testing/ZopeTestCase/placeless.py b/src/Testing/ZopeTestCase/placeless.py index 795074e88c..e175a7ce94 100644 --- a/src/Testing/ZopeTestCase/placeless.py +++ b/src/Testing/ZopeTestCase/placeless.py @@ -13,15 +13,14 @@ """Placeless setup """ -from zope.component.testing import PlacelessSetup as CAPlacelessSetup +from AccessControl.security import newInteraction +# For convenience +from Zope2.App import zcml # NOQA from zope.component.eventtesting import PlacelessSetup as EventPlacelessSetup +from zope.component.testing import PlacelessSetup as CAPlacelessSetup from zope.container.testing import PlacelessSetup as ContainerPlacelessSetup from zope.i18n.testing import PlacelessSetup as I18nPlacelessSetup from zope.security.testing import addCheckerPublic -from AccessControl.security import newInteraction - -# For convenience -from Zope2.App import zcml # NOQA class PlacelessSetup(CAPlacelessSetup, diff --git a/src/Testing/ZopeTestCase/sandbox.py b/src/Testing/ZopeTestCase/sandbox.py index 112cc752d0..f41e177758 100644 --- a/src/Testing/ZopeTestCase/sandbox.py +++ b/src/Testing/ZopeTestCase/sandbox.py @@ -14,12 +14,12 @@ """ import contextlib -import transaction +import transaction import ZPublisher.WSGIPublisher from Testing.makerequest import makerequest -from Testing.ZopeTestCase import connections from Testing.ZopeTestCase import ZopeLite as Zope2 +from Testing.ZopeTestCase import connections class Sandboxed(object): diff --git a/src/Testing/ZopeTestCase/testBaseTestCase.py b/src/Testing/ZopeTestCase/testBaseTestCase.py index 4a01000b82..551ccae99c 100644 --- a/src/Testing/ZopeTestCase/testBaseTestCase.py +++ b/src/Testing/ZopeTestCase/testBaseTestCase.py @@ -22,15 +22,13 @@ import gc import transaction - +from AccessControl import getSecurityManager +from AccessControl.SecurityManagement import newSecurityManager +from Acquisition import aq_base from Testing.ZopeTestCase import base -from Testing.ZopeTestCase import utils from Testing.ZopeTestCase import connections from Testing.ZopeTestCase import sandbox - -from Acquisition import aq_base -from AccessControl import getSecurityManager -from AccessControl.SecurityManagement import newSecurityManager +from Testing.ZopeTestCase import utils class HookTest(base.TestCase): diff --git a/src/Testing/ZopeTestCase/testFunctional.py b/src/Testing/ZopeTestCase/testFunctional.py index 02d7faeaa7..86e7bbedbc 100644 --- a/src/Testing/ZopeTestCase/testFunctional.py +++ b/src/Testing/ZopeTestCase/testFunctional.py @@ -18,11 +18,11 @@ from io import BytesIO -from AccessControl import getSecurityManager -from AccessControl.Permissions import view -from AccessControl.Permissions import manage_properties from six.moves.urllib.parse import urlencode +from AccessControl import getSecurityManager +from AccessControl.Permissions import manage_properties +from AccessControl.Permissions import view from Testing import ZopeTestCase from Testing.ZopeTestCase import user_name from Testing.ZopeTestCase import user_password diff --git a/src/Testing/ZopeTestCase/testInterfaces.py b/src/Testing/ZopeTestCase/testInterfaces.py index add55a1533..6beaef5330 100644 --- a/src/Testing/ZopeTestCase/testInterfaces.py +++ b/src/Testing/ZopeTestCase/testInterfaces.py @@ -13,21 +13,16 @@ """Interface tests """ -from Testing.ZopeTestCase import ( - Functional, - FunctionalTestCase, - PortalTestCase, - TestCase, - ZopeTestCase, -) -from Testing.ZopeTestCase.interfaces import ( - IFunctional, - IPortalSecurity, - IPortalTestCase, - IZopeSecurity, - IZopeTestCase, -) - +from Testing.ZopeTestCase import Functional +from Testing.ZopeTestCase import FunctionalTestCase +from Testing.ZopeTestCase import PortalTestCase +from Testing.ZopeTestCase import TestCase +from Testing.ZopeTestCase import ZopeTestCase +from Testing.ZopeTestCase.interfaces import IFunctional +from Testing.ZopeTestCase.interfaces import IPortalSecurity +from Testing.ZopeTestCase.interfaces import IPortalTestCase +from Testing.ZopeTestCase.interfaces import IZopeSecurity +from Testing.ZopeTestCase.interfaces import IZopeTestCase from zope.interface.verify import verifyClass from zope.interface.verify import verifyObject diff --git a/src/Testing/ZopeTestCase/testPlaceless.py b/src/Testing/ZopeTestCase/testPlaceless.py index 4258b7b6f7..6975428226 100644 --- a/src/Testing/ZopeTestCase/testPlaceless.py +++ b/src/Testing/ZopeTestCase/testPlaceless.py @@ -13,14 +13,14 @@ """Placeless setup tests """ -from zope.component import adapter -from zope.interface import implementer, Interface - from Testing import ZopeTestCase - -from Testing.ZopeTestCase.placeless import setUp, tearDown -from Testing.ZopeTestCase.placeless import zcml +from Testing.ZopeTestCase.placeless import setUp +from Testing.ZopeTestCase.placeless import tearDown from Testing.ZopeTestCase.placeless import temporaryPlacelessSetUp +from Testing.ZopeTestCase.placeless import zcml +from zope.component import adapter +from zope.interface import Interface +from zope.interface import implementer def setupZCML(): diff --git a/src/Testing/ZopeTestCase/testPortalTestCase.py b/src/Testing/ZopeTestCase/testPortalTestCase.py index 21938e67ad..13293517f3 100644 --- a/src/Testing/ZopeTestCase/testPortalTestCase.py +++ b/src/Testing/ZopeTestCase/testPortalTestCase.py @@ -20,15 +20,15 @@ way of getting started. """ -from Testing import ZopeTestCase - -from Acquisition import aq_base, aq_inner +import transaction from AccessControl import getSecurityManager -from OFS.SimpleItem import SimpleItem +from Acquisition import aq_base +from Acquisition import aq_inner from OFS.Folder import Folder +from OFS.SimpleItem import SimpleItem from OFS.userfolder import UserFolder +from Testing import ZopeTestCase -import transaction portal_name = 'dummy_1_' user_name = ZopeTestCase.user_name diff --git a/src/Testing/ZopeTestCase/testSkeleton.py b/src/Testing/ZopeTestCase/testSkeleton.py index f43fcc8442..6b93b0843e 100644 --- a/src/Testing/ZopeTestCase/testSkeleton.py +++ b/src/Testing/ZopeTestCase/testSkeleton.py @@ -15,6 +15,7 @@ from Testing import ZopeTestCase + ZopeTestCase.installProduct('SomeProduct') diff --git a/src/Testing/ZopeTestCase/testZODBCompat.py b/src/Testing/ZopeTestCase/testZODBCompat.py index ed6ad32b11..8160c70460 100644 --- a/src/Testing/ZopeTestCase/testZODBCompat.py +++ b/src/Testing/ZopeTestCase/testZODBCompat.py @@ -17,17 +17,16 @@ """ import os +import tempfile +from AccessControl.Permissions import add_documents_images_and_files +from AccessControl.Permissions import delete_objects +from OFS.SimpleItem import SimpleItem from Testing import ZopeTestCase - from Testing.ZopeTestCase import layer -from Testing.ZopeTestCase import utils from Testing.ZopeTestCase import transaction +from Testing.ZopeTestCase import utils -from AccessControl.Permissions import add_documents_images_and_files -from AccessControl.Permissions import delete_objects -from OFS.SimpleItem import SimpleItem -import tempfile folder_name = ZopeTestCase.folder_name cutpaste_permissions = [add_documents_images_and_files, delete_objects] diff --git a/src/Testing/ZopeTestCase/testZopeTestCase.py b/src/Testing/ZopeTestCase/testZopeTestCase.py index 00d42f8d07..3f5dbe7eba 100644 --- a/src/Testing/ZopeTestCase/testZopeTestCase.py +++ b/src/Testing/ZopeTestCase/testZopeTestCase.py @@ -21,16 +21,14 @@ """ import transaction - from AccessControl import getSecurityManager from Acquisition import aq_base from OFS.userfolder import UserFolder - from Testing import ZopeTestCase from Testing.ZopeTestCase import folder_name +from Testing.ZopeTestCase import standard_permissions from Testing.ZopeTestCase import user_name from Testing.ZopeTestCase import user_role -from Testing.ZopeTestCase import standard_permissions def hasattr_(ob, attr): diff --git a/src/Testing/ZopeTestCase/threadutils.py b/src/Testing/ZopeTestCase/threadutils.py index 7f21408e9a..a1820ea905 100644 --- a/src/Testing/ZopeTestCase/threadutils.py +++ b/src/Testing/ZopeTestCase/threadutils.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + # BBB Zope 5.0 deprecated( 'Please import from ZServer.Testing.threadutils.', diff --git a/src/Testing/ZopeTestCase/utils.py b/src/Testing/ZopeTestCase/utils.py index 2f5d3fab9c..be75cfaed4 100644 --- a/src/Testing/ZopeTestCase/utils.py +++ b/src/Testing/ZopeTestCase/utils.py @@ -14,6 +14,7 @@ import transaction from zope.deferredimport import deprecated + # BBB Zope 5.0 deprecated( 'Please import from ZServer.Testing.utils.', diff --git a/src/Testing/ZopeTestCase/zopedoctest/__init__.py b/src/Testing/ZopeTestCase/zopedoctest/__init__.py index 190d9d13f6..9b2dc6461a 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/__init__.py +++ b/src/Testing/ZopeTestCase/zopedoctest/__init__.py @@ -14,4 +14,5 @@ """ from doctest import * # NOQA + from Testing.ZopeTestCase.zopedoctest.functional import * # NOQA diff --git a/src/Testing/ZopeTestCase/zopedoctest/functional.py b/src/Testing/ZopeTestCase/zopedoctest/functional.py index 576517cb6b..428eb8f643 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/functional.py +++ b/src/Testing/ZopeTestCase/zopedoctest/functional.py @@ -15,29 +15,29 @@ import doctest import email.parser +import re +import sys +import warnings from doctest import ELLIPSIS -from doctest import REPORT_NDIFF from doctest import NORMALIZE_WHITESPACE +from doctest import REPORT_NDIFF from functools import partial from io import BytesIO -import re -import sys -import warnings from six import text_type -import transaction -from Testing.ZopeTestCase import ZopeTestCase -from Testing.ZopeTestCase import FunctionalTestCase +import transaction from Testing.ZopeTestCase import Functional +from Testing.ZopeTestCase import FunctionalTestCase +from Testing.ZopeTestCase import ZopeTestCase from Testing.ZopeTestCase import folder_name +from Testing.ZopeTestCase import standard_permissions from Testing.ZopeTestCase import user_name from Testing.ZopeTestCase import user_password from Testing.ZopeTestCase import user_role -from Testing.ZopeTestCase import standard_permissions -from Testing.ZopeTestCase.sandbox import AppZapper from Testing.ZopeTestCase.functional import ResponseWrapper from Testing.ZopeTestCase.functional import savestate +from Testing.ZopeTestCase.sandbox import AppZapper from ZPublisher.httpexceptions import HTTPExceptionHandler from ZPublisher.utils import basic_auth_encode diff --git a/src/Testing/ZopeTestCase/zopedoctest/testAuthHeaderTest.py b/src/Testing/ZopeTestCase/zopedoctest/testAuthHeaderTest.py index 54f3b3a119..c5d91fa299 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/testAuthHeaderTest.py +++ b/src/Testing/ZopeTestCase/zopedoctest/testAuthHeaderTest.py @@ -13,10 +13,13 @@ """Test for auth_header """ -from unittest import TestSuite, makeSuite +from unittest import TestSuite +from unittest import makeSuite + from Testing.ZopeTestCase import TestCase from Testing.ZopeTestCase import zopedoctest + auth_header = zopedoctest.functional.auth_header diff --git a/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py b/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py index 74d72ddd68..cb4507f992 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py +++ b/src/Testing/ZopeTestCase/zopedoctest/testFunctionalDocTest.py @@ -14,8 +14,8 @@ """ import unittest -from Testing.ZopeTestCase import FunctionalDocTestSuite from Testing.ZopeTestCase import FunctionalDocFileSuite +from Testing.ZopeTestCase import FunctionalDocTestSuite class HTTPHeaderOutputTests(unittest.TestCase): diff --git a/src/Testing/ZopeTestCase/zopedoctest/testLayerExtraction.py b/src/Testing/ZopeTestCase/zopedoctest/testLayerExtraction.py index 32717cc00a..6c652ce142 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/testLayerExtraction.py +++ b/src/Testing/ZopeTestCase/zopedoctest/testLayerExtraction.py @@ -14,11 +14,12 @@ """ from unittest import TestSuite + from Testing import ZopeTestCase from Testing.ZopeTestCase import ZopeDocFileSuite from Testing.ZopeTestCase import ZopeDocTestSuite -from Testing.ZopeTestCase import transaction from Testing.ZopeTestCase import layer +from Testing.ZopeTestCase import transaction class TestLayer(layer.ZopeLite): diff --git a/src/Testing/ZopeTestCase/zopedoctest/testPackageAsProduct.py b/src/Testing/ZopeTestCase/zopedoctest/testPackageAsProduct.py index e1d399a2a4..8343ee4c97 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/testPackageAsProduct.py +++ b/src/Testing/ZopeTestCase/zopedoctest/testPackageAsProduct.py @@ -17,8 +17,8 @@ from unittest import TestSuite from Testing import ZopeTestCase -from Testing.ZopeTestCase import ZopeLite from Testing.ZopeTestCase import ZopeDocTestSuite +from Testing.ZopeTestCase import ZopeLite from Zope2.App import zcml from zope.testing import cleanup diff --git a/src/Testing/ZopeTestCase/zopedoctest/testWarningsTest.py b/src/Testing/ZopeTestCase/zopedoctest/testWarningsTest.py index cef68ea39f..a4105bff42 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/testWarningsTest.py +++ b/src/Testing/ZopeTestCase/zopedoctest/testWarningsTest.py @@ -14,6 +14,7 @@ """ from unittest import TestSuite + from Testing.ZopeTestCase import ZopeDocFileSuite diff --git a/src/Testing/ZopeTestCase/zopedoctest/testZopeDocTest.py b/src/Testing/ZopeTestCase/zopedoctest/testZopeDocTest.py index e525fa2d0f..5118e7de35 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/testZopeDocTest.py +++ b/src/Testing/ZopeTestCase/zopedoctest/testZopeDocTest.py @@ -14,8 +14,9 @@ """ from unittest import TestSuite -from Testing.ZopeTestCase import ZopeDocTestSuite + from Testing.ZopeTestCase import ZopeDocFileSuite +from Testing.ZopeTestCase import ZopeDocTestSuite def setUp(self): diff --git a/src/Testing/ZopeTestCase/zopedoctest/tests.py b/src/Testing/ZopeTestCase/zopedoctest/tests.py index 33362ac39e..50f059cce0 100644 --- a/src/Testing/ZopeTestCase/zopedoctest/tests.py +++ b/src/Testing/ZopeTestCase/zopedoctest/tests.py @@ -13,10 +13,12 @@ """Test runner that works with zope.testrunner """ -import unittest import os +import unittest + import Testing.ZopeTestCase.zopedoctest + suite = unittest.TestSuite() names = os.listdir(os.path.dirname(__file__)) diff --git a/src/Testing/__init__.py b/src/Testing/__init__.py index 5c58961e10..b9953bd6bf 100644 --- a/src/Testing/__init__.py +++ b/src/Testing/__init__.py @@ -18,6 +18,7 @@ import App.config + cfg = App.config.getConfiguration() # Set testinghome to the Testing package directory diff --git a/src/Testing/makerequest.py b/src/Testing/makerequest.py index 0f3aaef082..c2526d98a9 100644 --- a/src/Testing/makerequest.py +++ b/src/Testing/makerequest.py @@ -17,9 +17,9 @@ from io import BytesIO +from ZPublisher.BaseRequest import RequestContainer from ZPublisher.HTTPRequest import HTTPRequest from ZPublisher.HTTPResponse import HTTPResponse -from ZPublisher.BaseRequest import RequestContainer def makerequest(app, stdout=None, environ=None): diff --git a/src/Testing/testbrowser.py b/src/Testing/testbrowser.py index 470b2b51a1..8d791cce37 100644 --- a/src/Testing/testbrowser.py +++ b/src/Testing/testbrowser.py @@ -15,12 +15,12 @@ """ import codecs -import transaction -from zope.testbrowser import browser +import transaction from Testing.ZopeTestCase.functional import savestate from Testing.ZopeTestCase.sandbox import AppZapper from Testing.ZopeTestCase.zopedoctest.functional import auth_header +from zope.testbrowser import browser from ZPublisher.httpexceptions import HTTPExceptionHandler from ZPublisher.WSGIPublisher import publish_module diff --git a/src/Testing/tests/test_makerequest.py b/src/Testing/tests/test_makerequest.py index d80205c294..91d187c728 100644 --- a/src/Testing/tests/test_makerequest.py +++ b/src/Testing/tests/test_makerequest.py @@ -16,8 +16,8 @@ import unittest from Acquisition import Implicit -from Testing.makerequest import makerequest from OFS.SimpleItem import SimpleItem +from Testing.makerequest import makerequest class MakerequestTests(unittest.TestCase): diff --git a/src/Testing/tests/test_testbrowser.py b/src/Testing/tests/test_testbrowser.py index d885b523d0..b3d36f041c 100644 --- a/src/Testing/tests/test_testbrowser.py +++ b/src/Testing/tests/test_testbrowser.py @@ -14,20 +14,18 @@ """Tests for the testbrowser module. """ -from AccessControl.Permissions import view -from ZPublisher.WSGIPublisher import publish_module -from ZPublisher.httpexceptions import HTTPExceptionHandler from six.moves.urllib.error import HTTPError -from zExceptions import NotFound -import transaction +import transaction +from AccessControl.Permissions import view from OFS.SimpleItem import Item from Testing.testbrowser import Browser -from Testing.ZopeTestCase import ( - FunctionalTestCase, - user_name, - user_password, -) +from Testing.ZopeTestCase import FunctionalTestCase +from Testing.ZopeTestCase import user_name +from Testing.ZopeTestCase import user_password +from zExceptions import NotFound +from ZPublisher.httpexceptions import HTTPExceptionHandler +from ZPublisher.WSGIPublisher import publish_module class CookieStub(Item): diff --git a/src/ZPublisher/BaseRequest.py b/src/ZPublisher/BaseRequest.py index 4999f6d72a..03e90f6a1d 100644 --- a/src/ZPublisher/BaseRequest.py +++ b/src/ZPublisher/BaseRequest.py @@ -15,17 +15,20 @@ import types +from six.moves.urllib.parse import quote as urllib_quote + from AccessControl.ZopeSecurityPolicy import getRoles -from Acquisition import aq_base, aq_inner +from Acquisition import aq_base +from Acquisition import aq_inner from Acquisition.interfaces import IAcquirer +from App.bbb import HAS_ZSERVER from ExtensionClass import Base -from six.moves.urllib.parse import quote as urllib_quote from zExceptions import Forbidden from zExceptions import NotFound from zope.component import queryMultiAdapter from zope.event import notify -from zope.interface import implementer from zope.interface import Interface +from zope.interface import implementer from zope.location.interfaces import LocationError from zope.publisher.defaultview import queryDefaultViewName from zope.publisher.interfaces import EndRequestEvent @@ -34,11 +37,10 @@ from zope.publisher.interfaces.browser import IBrowserPublisher from zope.traversing.namespace import namespaceLookup from zope.traversing.namespace import nsParse -from ZPublisher.xmlrpc import is_xmlrpc_response - -from App.bbb import HAS_ZSERVER from ZPublisher.Converters import type_converters from ZPublisher.interfaces import UseTraversalDefault +from ZPublisher.xmlrpc import is_xmlrpc_response + _marker = [] UNSPECIFIED_ROLES = '' diff --git a/src/ZPublisher/BaseResponse.py b/src/ZPublisher/BaseResponse.py index 976ae0e269..346f71174f 100644 --- a/src/ZPublisher/BaseResponse.py +++ b/src/ZPublisher/BaseResponse.py @@ -15,7 +15,11 @@ from six import PY2 from six import text_type -from zExceptions import Unauthorized, Forbidden, NotFound, BadRequest + +from zExceptions import BadRequest +from zExceptions import Forbidden +from zExceptions import NotFound +from zExceptions import Unauthorized class BaseResponse(object): diff --git a/src/ZPublisher/BeforeTraverse.py b/src/ZPublisher/BeforeTraverse.py index d1ddf14182..f9eed50d22 100644 --- a/src/ZPublisher/BeforeTraverse.py +++ b/src/ZPublisher/BeforeTraverse.py @@ -12,9 +12,11 @@ ############################################################################## """BeforeTraverse interface and helper classes""" -from Acquisition import aq_base from logging import getLogger +from Acquisition import aq_base + + LOG = getLogger('ZPublisher') diff --git a/src/ZPublisher/Converters.py b/src/ZPublisher/Converters.py index 53613be5ed..522aeca631 100644 --- a/src/ZPublisher/Converters.py +++ b/src/ZPublisher/Converters.py @@ -12,12 +12,15 @@ ############################################################################## import re -from DateTime import DateTime -from DateTime.interfaces import SyntaxError + import six from six import binary_type from six import text_type +from DateTime import DateTime +from DateTime.interfaces import SyntaxError + + try: from html import escape except ImportError: # PY2 diff --git a/src/ZPublisher/HTTPRangeSupport.py b/src/ZPublisher/HTTPRangeSupport.py index 459d03c4b3..4f1d9f1cf3 100644 --- a/src/ZPublisher/HTTPRangeSupport.py +++ b/src/ZPublisher/HTTPRangeSupport.py @@ -21,8 +21,10 @@ import re import sys + from zope.interface import Interface + WHITESPACE = re.compile(r'\s*', re.MULTILINE) diff --git a/src/ZPublisher/HTTPRequest.py b/src/ZPublisher/HTTPRequest.py index 18ad30ba20..e445976065 100644 --- a/src/ZPublisher/HTTPRequest.py +++ b/src/ZPublisher/HTTPRequest.py @@ -14,36 +14,38 @@ """ HTTP request management. """ -from cgi import FieldStorage import codecs -from copy import deepcopy import os import random import re import time +from cgi import FieldStorage +from copy import deepcopy -from AccessControl.tainted import should_be_tainted -from AccessControl.tainted import taint_string -from six import binary_type from six import PY2 from six import PY3 +from six import binary_type from six import string_types from six import text_type from six.moves.urllib.parse import unquote from six.moves.urllib.parse import urlparse + +from AccessControl.tainted import should_be_tainted +from AccessControl.tainted import taint_string from zope.i18n.interfaces import IUserPreferredLanguages -from zope.i18n.locales import locales, LoadLocaleError +from zope.i18n.locales import LoadLocaleError +from zope.i18n.locales import locales from zope.interface import directlyProvidedBy from zope.interface import directlyProvides from zope.interface import implementer from zope.publisher.base import DebugFlags from zope.publisher.interfaces.browser import IBrowserRequest - +from ZPublisher import xmlrpc from ZPublisher.BaseRequest import BaseRequest from ZPublisher.BaseRequest import quote from ZPublisher.Converters import get_converter from ZPublisher.utils import basic_auth_decode -from ZPublisher import xmlrpc + if PY3: from html import escape diff --git a/src/ZPublisher/HTTPResponse.py b/src/ZPublisher/HTTPResponse.py index 064afca371..cf959498b3 100644 --- a/src/ZPublisher/HTTPResponse.py +++ b/src/ZPublisher/HTTPResponse.py @@ -12,33 +12,34 @@ ############################################################################## """ CGI Response Output formatter """ -from io import BytesIO import os import re import struct import sys import time import zlib +from io import BytesIO -from six import class_types from six import PY2 +from six import class_types from six import reraise from six import text_type from six.moves.urllib.parse import quote -from zope.event import notify -from zExceptions import ( - BadRequest, - HTTPRedirection, - InternalError, - NotFound, - Redirect, - status_reasons, - Unauthorized, -) + +from zExceptions import BadRequest +from zExceptions import HTTPRedirection +from zExceptions import InternalError +from zExceptions import NotFound +from zExceptions import Redirect +from zExceptions import Unauthorized +from zExceptions import status_reasons from zExceptions.ExceptionFormatter import format_exception -from ZPublisher.BaseResponse import BaseResponse -from ZPublisher.Iterators import IUnboundStreamIterator, IStreamIterator +from zope.event import notify from ZPublisher import pubevents +from ZPublisher.BaseResponse import BaseResponse +from ZPublisher.Iterators import IStreamIterator +from ZPublisher.Iterators import IUnboundStreamIterator + try: from html import escape diff --git a/src/ZPublisher/Publish.py b/src/ZPublisher/Publish.py index 1e666df8b5..ab1c8524c3 100644 --- a/src/ZPublisher/Publish.py +++ b/src/ZPublisher/Publish.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + # BBB Zope 5.0 deprecated( 'Please import from ZServer.ZPublisher.Publish.', diff --git a/src/ZPublisher/Request.py b/src/ZPublisher/Request.py index 9b2416ef57..2f07d33f4f 100644 --- a/src/ZPublisher/Request.py +++ b/src/ZPublisher/Request.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + # BBB: Zope 5.0 deprecated( 'Please import from ZPublisher.HTTPRequest', diff --git a/src/ZPublisher/Response.py b/src/ZPublisher/Response.py index 2535236da9..378f15c640 100644 --- a/src/ZPublisher/Response.py +++ b/src/ZPublisher/Response.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + # BBB: Zope 5.0 deprecated( 'Please import from ZPublisher.HTTPResponse', diff --git a/src/ZPublisher/WSGIPublisher.py b/src/ZPublisher/WSGIPublisher.py index 2a3c4ae406..14a9743b71 100644 --- a/src/ZPublisher/WSGIPublisher.py +++ b/src/ZPublisher/WSGIPublisher.py @@ -12,36 +12,38 @@ ############################################################################## """ Python Object Publisher -- Publish Python objects on web servers """ -from contextlib import contextmanager, closing +import sys +from contextlib import closing +from contextlib import contextmanager from io import BytesIO from io import IOBase -import sys -from AccessControl.SecurityManagement import newSecurityManager -from AccessControl.SecurityManagement import noSecurityManager -from Acquisition import aq_acquire from six import PY3 from six import reraise from six.moves._thread import allocate_lock + import transaction +from AccessControl.SecurityManagement import newSecurityManager +from AccessControl.SecurityManagement import noSecurityManager +from Acquisition import aq_acquire from transaction.interfaces import TransientError -from zExceptions import ( - Unauthorized, - upgradeException, -) +from zExceptions import Unauthorized +from zExceptions import upgradeException from zope.component import queryMultiAdapter from zope.event import notify -from zope.globalrequest import setRequest, clearRequest -from zope.security.management import newInteraction, endInteraction +from zope.globalrequest import clearRequest +from zope.globalrequest import setRequest from zope.publisher.skinnable import setDefaultSkin - +from zope.security.management import endInteraction +from zope.security.management import newInteraction +from ZPublisher import pubevents from ZPublisher.HTTPRequest import WSGIRequest from ZPublisher.HTTPResponse import WSGIResponse from ZPublisher.Iterators import IUnboundStreamIterator from ZPublisher.mapply import mapply -from ZPublisher import pubevents from ZPublisher.utils import recordMetaData + if sys.version_info >= (3, ): _FILE_TYPES = (IOBase, ) else: diff --git a/src/ZPublisher/__init__.py b/src/ZPublisher/__init__.py index 2a4a24d0c0..d149221ec7 100644 --- a/src/ZPublisher/__init__.py +++ b/src/ZPublisher/__init__.py @@ -12,6 +12,7 @@ ############################################################################## from six import reraise + from zope.deferredimport import deprecated diff --git a/src/ZPublisher/interfaces.py b/src/ZPublisher/interfaces.py index 926b78676a..b44dcbece3 100644 --- a/src/ZPublisher/interfaces.py +++ b/src/ZPublisher/interfaces.py @@ -1,4 +1,6 @@ -from zope.interface import Interface, Attribute +from zope.interface import Attribute +from zope.interface import Interface + ############################################################################# # Publication events diff --git a/src/ZPublisher/pubevents.py b/src/ZPublisher/pubevents.py index b78f691e86..5070cdf97e 100644 --- a/src/ZPublisher/pubevents.py +++ b/src/ZPublisher/pubevents.py @@ -8,12 +8,13 @@ for detailed time related analysis, inline request monitoring. ''' from zope.interface import implementer - -from ZPublisher.interfaces import ( - IPubStart, IPubSuccess, IPubFailure, - IPubAfterTraversal, IPubBeforeCommit, IPubBeforeAbort, - IPubBeforeStreaming, -) +from ZPublisher.interfaces import IPubAfterTraversal +from ZPublisher.interfaces import IPubBeforeAbort +from ZPublisher.interfaces import IPubBeforeCommit +from ZPublisher.interfaces import IPubBeforeStreaming +from ZPublisher.interfaces import IPubFailure +from ZPublisher.interfaces import IPubStart +from ZPublisher.interfaces import IPubSuccess class _Base(object): diff --git a/src/ZPublisher/tests/testHTTPRangeSupport.py b/src/ZPublisher/tests/testHTTPRangeSupport.py index 8ff0a1df5c..5192363696 100644 --- a/src/ZPublisher/tests/testHTTPRangeSupport.py +++ b/src/ZPublisher/tests/testHTTPRangeSupport.py @@ -12,10 +12,11 @@ ############################################################################## import sys -from ZPublisher.HTTPRangeSupport import parseRange, expandRanges - import unittest +from ZPublisher.HTTPRangeSupport import expandRanges +from ZPublisher.HTTPRangeSupport import parseRange + class TestRangeHeaderParse(unittest.TestCase): diff --git a/src/ZPublisher/tests/testHTTPRequest.py b/src/ZPublisher/tests/testHTTPRequest.py index d78900eb93..66176c35ef 100644 --- a/src/ZPublisher/tests/testHTTPRequest.py +++ b/src/ZPublisher/tests/testHTTPRequest.py @@ -11,11 +11,12 @@ # ############################################################################## -from io import BytesIO import sys import unittest +from io import BytesIO from six import PY2 + from AccessControl.tainted import should_be_tainted from zExceptions import NotFound from zope.component import provideAdapter @@ -24,11 +25,11 @@ from zope.publisher.browser import BrowserLanguages from zope.publisher.interfaces.http import IHTTPRequest from zope.testing.cleanup import cleanUp - from ZPublisher.HTTPRequest import search_type from ZPublisher.tests.testBaseRequest import TestRequestViewsBase from ZPublisher.utils import basic_auth_encode + if sys.version_info >= (3, ): unicode = str diff --git a/src/ZPublisher/tests/testHTTPResponse.py b/src/ZPublisher/tests/testHTTPResponse.py index e1843b694b..a19564d61b 100644 --- a/src/ZPublisher/tests/testHTTPResponse.py +++ b/src/ZPublisher/tests/testHTTPResponse.py @@ -1,17 +1,15 @@ # -*- coding: utf-8 -*- -from io import BytesIO import traceback import unittest +from io import BytesIO -from zExceptions import ( - BadRequest, - Forbidden, - InternalError, - NotFound, - ResourceLockedError, - Unauthorized, -) +from zExceptions import BadRequest +from zExceptions import Forbidden +from zExceptions import InternalError +from zExceptions import NotFound +from zExceptions import ResourceLockedError +from zExceptions import Unauthorized class HTTPResponseTests(unittest.TestCase): diff --git a/src/ZPublisher/tests/testIterators.py b/src/ZPublisher/tests/testIterators.py index f91690b8ba..bf4e9b4409 100644 --- a/src/ZPublisher/tests/testIterators.py +++ b/src/ZPublisher/tests/testIterators.py @@ -1,6 +1,8 @@ import unittest + from zope.interface.verify import verifyClass -from ZPublisher.Iterators import IStreamIterator, filestream_iterator +from ZPublisher.Iterators import IStreamIterator +from ZPublisher.Iterators import filestream_iterator class TestFileStreamIterator(unittest.TestCase): diff --git a/src/ZPublisher/tests/testPostTraversal.py b/src/ZPublisher/tests/testPostTraversal.py index b8df32b638..a7c43af9e7 100644 --- a/src/ZPublisher/tests/testPostTraversal.py +++ b/src/ZPublisher/tests/testPostTraversal.py @@ -1,9 +1,10 @@ from unittest import TestCase +import Zope2 from Acquisition import Implicit from ZPublisher.BaseRequest import BaseRequest from ZPublisher.HTTPResponse import HTTPResponse -import Zope2 + Zope2.startup_wsgi() diff --git a/src/ZPublisher/tests/test_WSGIPublisher.py b/src/ZPublisher/tests/test_WSGIPublisher.py index f59bb616ce..e79fc4bd56 100644 --- a/src/ZPublisher/tests/test_WSGIPublisher.py +++ b/src/ZPublisher/tests/test_WSGIPublisher.py @@ -14,18 +14,18 @@ import io import unittest +from six.moves.urllib_parse import quote + +import Testing.testbrowser import transaction +from Testing.ZopeTestCase import FunctionalTestCase +from Testing.ZopeTestCase import ZopeTestCase from ZODB.POSException import ConflictError from zope.interface.common.interfaces import IException from zope.publisher.interfaces import INotFound -from zope.security.interfaces import IUnauthorized from zope.security.interfaces import IForbidden -from six.moves.urllib_parse import quote - -from Testing.ZopeTestCase import FunctionalTestCase -from Testing.ZopeTestCase import ZopeTestCase +from zope.security.interfaces import IUnauthorized from ZPublisher.WSGIPublisher import get_module_info -import Testing.testbrowser class WSGIResponseTests(unittest.TestCase): diff --git a/src/ZPublisher/tests/test_mapply.py b/src/ZPublisher/tests/test_mapply.py index 4f4d9f1af3..d31f6d61b6 100644 --- a/src/ZPublisher/tests/test_mapply.py +++ b/src/ZPublisher/tests/test_mapply.py @@ -14,10 +14,10 @@ import unittest -import Acquisition -import ExtensionClass from six import PY2 +import Acquisition +import ExtensionClass from ZPublisher.mapply import mapply diff --git a/src/ZPublisher/tests/test_pubevents.py b/src/ZPublisher/tests/test_pubevents.py index dfd926b159..19fb53d663 100644 --- a/src/ZPublisher/tests/test_pubevents.py +++ b/src/ZPublisher/tests/test_pubevents.py @@ -1,8 +1,12 @@ from io import BytesIO -from sys import modules, exc_info +from sys import exc_info +from sys import modules from unittest import TestCase import zExceptions +from Testing.ZopeTestCase import FunctionalTestCase +from Testing.ZopeTestCase import user_name +from Testing.ZopeTestCase import user_password from ZODB.POSException import ConflictError from zope.component import adapter from zope.component import getSiteManager @@ -12,23 +16,24 @@ from zope.interface.verify import verifyObject from zope.publisher.interfaces import INotFound from zope.publisher.interfaces.browser import IDefaultBrowserLayer - -from Testing.ZopeTestCase import FunctionalTestCase -from Testing.ZopeTestCase import user_name -from Testing.ZopeTestCase import user_password from ZPublisher.BaseRequest import BaseRequest from ZPublisher.HTTPRequest import WSGIRequest from ZPublisher.HTTPResponse import WSGIResponse -from ZPublisher.interfaces import ( - IPubEvent, IPubStart, IPubEnd, IPubSuccess, IPubFailure, - IPubAfterTraversal, IPubBeforeCommit, - IPubBeforeStreaming, -) -from ZPublisher.pubevents import ( - PubStart, PubSuccess, PubFailure, - PubAfterTraversal, PubBeforeCommit, PubBeforeAbort, - PubBeforeStreaming, -) +from ZPublisher.interfaces import IPubAfterTraversal +from ZPublisher.interfaces import IPubBeforeCommit +from ZPublisher.interfaces import IPubBeforeStreaming +from ZPublisher.interfaces import IPubEnd +from ZPublisher.interfaces import IPubEvent +from ZPublisher.interfaces import IPubFailure +from ZPublisher.interfaces import IPubStart +from ZPublisher.interfaces import IPubSuccess +from ZPublisher.pubevents import PubAfterTraversal +from ZPublisher.pubevents import PubBeforeAbort +from ZPublisher.pubevents import PubBeforeCommit +from ZPublisher.pubevents import PubBeforeStreaming +from ZPublisher.pubevents import PubFailure +from ZPublisher.pubevents import PubStart +from ZPublisher.pubevents import PubSuccess from ZPublisher.WSGIPublisher import publish_module diff --git a/src/ZPublisher/tests/test_xmlrpc.py b/src/ZPublisher/tests/test_xmlrpc.py index 51d0278bde..359112f188 100644 --- a/src/ZPublisher/tests/test_xmlrpc.py +++ b/src/ZPublisher/tests/test_xmlrpc.py @@ -1,11 +1,13 @@ import unittest + +from DateTime import DateTime + + try: import xmlrpc.client as xmlrpclib except ImportError: import xmlrpclib -from DateTime import DateTime - class FauxResponse(object): diff --git a/src/ZPublisher/utils.py b/src/ZPublisher/utils.py index 2c0f912c55..16cc0bfc95 100644 --- a/src/ZPublisher/utils.py +++ b/src/ZPublisher/utils.py @@ -14,11 +14,13 @@ import base64 import logging -from Acquisition import aq_inner, aq_parent from six import PY3 from six import binary_type from six import text_type + import transaction +from Acquisition import aq_inner +from Acquisition import aq_parent AC_LOGGER = logging.getLogger('event.AccessControl') diff --git a/src/ZPublisher/xmlrpc.py b/src/ZPublisher/xmlrpc.py index 96c9e41390..d2e01259d8 100644 --- a/src/ZPublisher/xmlrpc.py +++ b/src/ZPublisher/xmlrpc.py @@ -22,18 +22,20 @@ import re import sys +from App.config import getConfiguration +# Make DateTime.DateTime marshallable via XML-RPC +# http://www.zope.org/Collectors/Zope/2109 +from DateTime.DateTime import DateTime +from zExceptions import Unauthorized +from ZODB.POSException import ConflictError + + try: import xmlrpc.client as xmlrpclib except ImportError: import xmlrpclib -from App.config import getConfiguration -from zExceptions import Unauthorized -from ZODB.POSException import ConflictError -# Make DateTime.DateTime marshallable via XML-RPC -# http://www.zope.org/Collectors/Zope/2109 -from DateTime.DateTime import DateTime WRAPPERS = xmlrpclib.WRAPPERS + (DateTime, ) diff --git a/src/ZTUtils/Lazy.py b/src/ZTUtils/Lazy.py index fcb728be99..a76295089d 100644 --- a/src/ZTUtils/Lazy.py +++ b/src/ZTUtils/Lazy.py @@ -13,6 +13,7 @@ from six.moves import xrange + _marker = object() diff --git a/src/ZTUtils/SimpleTree.py b/src/ZTUtils/SimpleTree.py index 6bd2c99636..aa4e1d2730 100644 --- a/src/ZTUtils/SimpleTree.py +++ b/src/ZTUtils/SimpleTree.py @@ -14,7 +14,10 @@ """ from Acquisition import aq_acquire -from .Tree import TreeMaker, TreeNode, b2a + +from .Tree import TreeMaker +from .Tree import TreeNode +from .Tree import b2a class SimpleTreeNode(TreeNode): diff --git a/src/ZTUtils/Tree.py b/src/ZTUtils/Tree.py index 2b51807b4d..211292390c 100644 --- a/src/ZTUtils/Tree.py +++ b/src/ZTUtils/Tree.py @@ -16,9 +16,10 @@ import base64 import zlib +import six + from Acquisition import Explicit from ComputedAttribute import ComputedAttribute -import six class TreeNode(Explicit): diff --git a/src/ZTUtils/Zope.py b/src/ZTUtils/Zope.py index c16771c53c..c0f9332e94 100644 --- a/src/ZTUtils/Zope.py +++ b/src/ZTUtils/Zope.py @@ -13,21 +13,23 @@ """Zope-specific versions of ZTUTils classes """ +from six import PY2 +from six import binary_type +from six import text_type +from six.moves.urllib.parse import quote +from six.moves.urllib.parse import unquote + from AccessControl import getSecurityManager from AccessControl.unauthorized import Unauthorized from AccessControl.ZopeGuards import guarded_getitem from DateTime.DateTime import DateTime -from six import binary_type -from six import PY2 -from six import text_type -from six.moves.urllib.parse import quote, unquote - from ZTUtils.Batch import Batch from ZTUtils.Lazy import Lazy from ZTUtils.SimpleTree import SimpleTreeMaker +from ZTUtils.Tree import TreeMaker from ZTUtils.Tree import decodeExpansion from ZTUtils.Tree import encodeExpansion -from ZTUtils.Tree import TreeMaker + try: from html import escape diff --git a/src/ZTUtils/__init__.py b/src/ZTUtils/__init__.py index 69bed84196..cccfd99c77 100644 --- a/src/ZTUtils/__init__.py +++ b/src/ZTUtils/__init__.py @@ -13,13 +13,23 @@ """Package of template utility classes and functions. """ from AccessControl.SecurityInfo import ModuleSecurityInfo -security = ModuleSecurityInfo('ZTUtils') -security.declarePublic('encodeExpansion', 'decodeExpansion', 'a2b', 'b2a') -from .Tree import encodeExpansion, decodeExpansion, a2b, b2a # NOQA +from .Tree import a2b # NOQA: F401 +from .Tree import b2a # NOQA: F401 +from .Tree import decodeExpansion # NOQA: F401 +from .Tree import encodeExpansion # NOQA: F401 +from .Zope import Batch # NOQA: F401 +from .Zope import LazyFilter # NOQA: F401 +from .Zope import SimpleTreeMaker # NOQA: F401 +from .Zope import TreeMaker # NOQA: F401 +from .Zope import make_hidden_input # NOQA: F401 +from .Zope import make_query # NOQA: F401 +from .Zope import url_query # NOQA: F401 + -security.declarePublic('Batch', 'TreeMaker', 'SimpleTreeMaker', 'LazyFilter') -from ZTUtils.Zope import Batch, TreeMaker, SimpleTreeMaker, LazyFilter # NOQA +security = ModuleSecurityInfo('ZTUtils') -security.declarePublic('url_query', 'make_query', 'make_hidden_input') -from ZTUtils.Zope import url_query, make_query, make_hidden_input # NOQA +for name in ('encodeExpansion', 'decodeExpansion', 'a2b', 'b2a', + 'Batch', 'TreeMaker', 'SimpleTreeMaker', 'LazyFilter' + 'url_query', 'make_query', 'make_hidden_input'): + security.declarePublic(name) # NOQA: D001 diff --git a/src/ZTUtils/tests/testZope.py b/src/ZTUtils/tests/testZope.py index 236311f7e2..a14eae8255 100644 --- a/src/ZTUtils/tests/testZope.py +++ b/src/ZTUtils/tests/testZope.py @@ -1,15 +1,13 @@ import unittest -from DateTime import DateTime from six import PY2 from six.moves.urllib.parse import quote -from ZTUtils.Zope import ( - complex_marshal, - simple_marshal, - make_hidden_input, - make_query, -) +from DateTime import DateTime +from ZTUtils.Zope import complex_marshal +from ZTUtils.Zope import make_hidden_input +from ZTUtils.Zope import make_query +from ZTUtils.Zope import simple_marshal class QueryTests(unittest.TestCase): diff --git a/src/Zope2/App/patches/__init__.py b/src/Zope2/App/patches/__init__.py index 370d1e8cc3..d5c9ea5db2 100644 --- a/src/Zope2/App/patches/__init__.py +++ b/src/Zope2/App/patches/__init__.py @@ -2,6 +2,7 @@ from . import persistence from . import publishing + # Have the patches been applied yet? _patched = False diff --git a/src/Zope2/App/startup.py b/src/Zope2/App/startup.py index 57e96ccc79..6b017f9b48 100644 --- a/src/Zope2/App/startup.py +++ b/src/Zope2/App/startup.py @@ -15,23 +15,24 @@ import os import sys -from time import asctime import types +from time import asctime + +import six import AccessControl.User +import App.ZApplication +import OFS.Application +import ZODB +import Zope2 from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager -import six -import ZODB +from App.config import getConfiguration from zope.deferredimport import deprecated from zope.event import notify from zope.processlifetime import DatabaseOpened from zope.processlifetime import DatabaseOpenedWithRoot -from App.config import getConfiguration -import App.ZApplication -import OFS.Application -import Zope2 # BBB Zope 5.0 deprecated( diff --git a/src/Zope2/App/tests/test_safe_formatter.py b/src/Zope2/App/tests/test_safe_formatter.py index 32195ad366..8633b2db98 100644 --- a/src/Zope2/App/tests/test_safe_formatter.py +++ b/src/Zope2/App/tests/test_safe_formatter.py @@ -3,6 +3,7 @@ from Testing.ZopeTestCase import FunctionalTestCase from zExceptions import Unauthorized + try: from html import escape import functools diff --git a/src/Zope2/App/tests/test_schema.py b/src/Zope2/App/tests/test_schema.py index d308fea784..9c722afa4a 100644 --- a/src/Zope2/App/tests/test_schema.py +++ b/src/Zope2/App/tests/test_schema.py @@ -12,6 +12,7 @@ ############################################################################## import unittest + from zope.testing.cleanup import CleanUp diff --git a/src/Zope2/App/tests/test_startup.py b/src/Zope2/App/tests/test_startup.py index 39faae1d5d..1332bb5cb3 100644 --- a/src/Zope2/App/tests/test_startup.py +++ b/src/Zope2/App/tests/test_startup.py @@ -15,9 +15,9 @@ import unittest from Testing.ZopeTestCase import ZopeTestCase - from zope.testing.loggingsupport import InstalledHandler + logged = """Zope2.App.test_startup INFO