diff --git a/src/OFS/PropertySheets.py b/src/OFS/PropertySheets.py index 79a51b1a53..ea8880665a 100644 --- a/src/OFS/PropertySheets.py +++ b/src/OFS/PropertySheets.py @@ -404,7 +404,7 @@ class DefaultProperties(Virtual, PropertySheet, View): # import cycles -from webdav.PropertySheets import DAVProperties +from webdav.PropertySheets import DAVProperties # isort:skip class PropertySheets(Traversable, Implicit, Tabs): diff --git a/src/webdav/Collection.py b/src/webdav/Collection.py index 00245a625b..e31fee40f5 100644 --- a/src/webdav/Collection.py +++ b/src/webdav/Collection.py @@ -21,15 +21,14 @@ from AccessControl.SecurityManagement import getSecurityManager from App.Common import rfc1123_date from OFS.Lockable import wl_isLocked -from zExceptions import MethodNotAllowed -from zExceptions import NotFound -from zope.interface import implementer - from webdav.common import Locked from webdav.common import PreconditionFailed from webdav.common import urlfix from webdav.interfaces import IDAVCollection from webdav.Resource import Resource +from zExceptions import MethodNotAllowed +from zExceptions import NotFound +from zope.interface import implementer @implementer(IDAVCollection) diff --git a/src/webdav/EtagSupport.py b/src/webdav/EtagSupport.py index dcc3c8b361..397ca3056d 100644 --- a/src/webdav/EtagSupport.py +++ b/src/webdav/EtagSupport.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + deprecated( 'Please import from OFS.EtagSupport.', EtagBaseInterface='OFS.EtagSupport:EtagBaseInterface', diff --git a/src/webdav/LockItem.py b/src/webdav/LockItem.py index b5c4ad3e42..845b90f566 100644 --- a/src/webdav/LockItem.py +++ b/src/webdav/LockItem.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + deprecated( 'Please import from OFS.LockItem.', LockItem='OFS.LockItem:LockItem', diff --git a/src/webdav/Lockable.py b/src/webdav/Lockable.py index b170ab6184..1e690f7619 100644 --- a/src/webdav/Lockable.py +++ b/src/webdav/Lockable.py @@ -13,6 +13,7 @@ from zope.deferredimport import deprecated + deprecated( 'Please import from OFS.Lockable.', LockableItem='OFS.Lockable:LockableItem', diff --git a/src/webdav/NullResource.py b/src/webdav/NullResource.py index c825566557..cba04d3158 100644 --- a/src/webdav/NullResource.py +++ b/src/webdav/NullResource.py @@ -16,41 +16,39 @@ import sys from AccessControl.class_init import InitializeClass -from AccessControl.SecurityInfo import ClassSecurityInfo -from AccessControl.SecurityManagement import getSecurityManager -from AccessControl.Permissions import view as View from AccessControl.Permissions import add_folders +from AccessControl.Permissions import view as View from AccessControl.Permissions import webdav_lock_items from AccessControl.Permissions import webdav_unlock_items +from AccessControl.SecurityInfo import ClassSecurityInfo +from AccessControl.SecurityManagement import getSecurityManager +from Acquisition import Implicit from Acquisition import aq_base from Acquisition import aq_parent -from Acquisition import Implicit from App.special_dtml import DTMLFile -from Persistence import Persistent -from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from OFS.CopySupport import CopyError from OFS.DTMLDocument import DTMLDocument from OFS.Image import File from OFS.Image import Image from OFS.interfaces import IWriteLock from OFS.SimpleItem import Item_w__name__ -from zExceptions import BadRequest -from zExceptions import Forbidden -from zExceptions import MethodNotAllowed -from zExceptions import NotFound -from zExceptions import Unauthorized - +from Persistence import Persistent +from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate from webdav.common import Conflict from webdav.common import IfParser -from webdav.common import isDavCollection from webdav.common import Locked from webdav.common import PreconditionFailed -from webdav.common import tokenFinder from webdav.common import UnsupportedMediaType +from webdav.common import isDavCollection +from webdav.common import tokenFinder from webdav.davcmds import Lock from webdav.davcmds import Unlock from webdav.Resource import Resource - +from zExceptions import BadRequest +from zExceptions import Forbidden +from zExceptions import MethodNotAllowed +from zExceptions import NotFound +from zExceptions import Unauthorized from zope.contenttype import guess_content_type diff --git a/src/webdav/PropertySheets.py b/src/webdav/PropertySheets.py index 0ab3848ab6..02d0fbdcbb 100644 --- a/src/webdav/PropertySheets.py +++ b/src/webdav/PropertySheets.py @@ -11,16 +11,17 @@ # ############################################################################## -from cgi import escape import sys +from html import escape from AccessControl.class_init import InitializeClass from AccessControl.SecurityManagement import getSecurityManager from App.Common import iso8601_date from App.Common import rfc1123_date from OFS.interfaces import IWriteLock -from OFS.PropertySheets import Virtual, PropertySheet, View - +from OFS.PropertySheets import PropertySheet +from OFS.PropertySheets import View +from OFS.PropertySheets import Virtual from webdav.common import isDavCollection from webdav.common import urlbase diff --git a/src/webdav/Resource.py b/src/webdav/Resource.py index 6d90a79a88..b0c9aa4c90 100644 --- a/src/webdav/Resource.py +++ b/src/webdav/Resource.py @@ -14,19 +14,19 @@ """ import mimetypes -import sys import re +import sys from urllib.parse import unquote -from AccessControl import getSecurityManager from AccessControl import ClassSecurityInfo +from AccessControl import getSecurityManager from AccessControl.class_init import InitializeClass from AccessControl.Permissions import delete_objects from AccessControl.Permissions import manage_properties from AccessControl.Permissions import view as View +from AccessControl.Permissions import webdav_access from AccessControl.Permissions import webdav_lock_items from AccessControl.Permissions import webdav_unlock_items -from AccessControl.Permissions import webdav_access from Acquisition import aq_base from Acquisition import aq_inner from Acquisition import aq_parent @@ -39,30 +39,29 @@ from OFS.Lockable import wl_isLockable from OFS.Lockable import wl_isLocked from OFS.subscribers import compatibilityCall -from zExceptions import BadRequest -from zExceptions import Forbidden -from zExceptions import MethodNotAllowed -from zExceptions import NotFound -from zExceptions import Unauthorized -from ZPublisher.HTTPRangeSupport import HTTPRangeInterface - -from zope.interface import implementer -from zope.event import notify -from zope.lifecycleevent import ObjectCopiedEvent -from zope.lifecycleevent import ObjectMovedEvent -from zope.container.contained import notifyContainerModified - from webdav import enable_ms_public_header -from webdav.common import absattr from webdav.common import Conflict from webdav.common import IfParser -from webdav.common import isDavCollection from webdav.common import Locked from webdav.common import PreconditionFailed +from webdav.common import absattr +from webdav.common import isDavCollection from webdav.common import tokenFinder from webdav.common import urlbase from webdav.common import urlfix from webdav.interfaces import IDAVResource +from zExceptions import BadRequest +from zExceptions import Forbidden +from zExceptions import MethodNotAllowed +from zExceptions import NotFound +from zExceptions import Unauthorized +from zope.container.contained import notifyContainerModified +from zope.event import notify +from zope.interface import implementer +from zope.lifecycleevent import ObjectCopiedEvent +from zope.lifecycleevent import ObjectMovedEvent +from ZPublisher.HTTPRangeSupport import HTTPRangeInterface + ms_dav_agent = re.compile("Microsoft.*Internet Publishing.*") diff --git a/src/webdav/common.py b/src/webdav/common.py index f5b1da1357..7448b32fef 100644 --- a/src/webdav/common.py +++ b/src/webdav/common.py @@ -16,16 +16,15 @@ from urllib.parse import urlparse from urllib.parse import urlunparse - -from Acquisition import aq_base, aq_parent -from zExceptions import ( - HTTPConflict, - HTTPLocked, - HTTPPreconditionFailed, - HTTPUnsupportedMediaType, -) +from Acquisition import aq_base +from Acquisition import aq_parent +from zExceptions import HTTPConflict +from zExceptions import HTTPLocked +from zExceptions import HTTPPreconditionFailed +from zExceptions import HTTPUnsupportedMediaType from zope.deferredimport import deprecated + deprecated( 'Please import from App.Common.', iso8601_date='App.Common:iso8601_date', diff --git a/src/webdav/davcmds.py b/src/webdav/davcmds.py index 4931a13485..3df7845413 100644 --- a/src/webdav/davcmds.py +++ b/src/webdav/davcmds.py @@ -24,18 +24,17 @@ from Acquisition import aq_parent from OFS.interfaces import IWriteLock from OFS.LockItem import LockItem -from zExceptions import BadRequest -from zExceptions import Forbidden - -from webdav.common import absattr -from webdav.common import isDavCollection from webdav.common import Locked from webdav.common import PreconditionFailed +from webdav.common import absattr +from webdav.common import isDavCollection from webdav.common import urlbase from webdav.common import urlfix from webdav.common import urljoin from webdav.PropertySheets import DAVProperties from webdav.xmltools import XmlParser +from zExceptions import BadRequest +from zExceptions import Forbidden def safe_quote(url, mark=r'%'): diff --git a/src/webdav/hookable_PUT.py b/src/webdav/hookable_PUT.py index f8c077dbd1..41f99edbf4 100644 --- a/src/webdav/hookable_PUT.py +++ b/src/webdav/hookable_PUT.py @@ -1,7 +1,9 @@ # Implement the "hookable PUT" hook. import re + import OFS.DTMLMethod + TEXT_PATTERN = re.compile(r'^text/.*$') diff --git a/src/webdav/interfaces.py b/src/webdav/interfaces.py index 64725480cd..ab1ce30e18 100644 --- a/src/webdav/interfaces.py +++ b/src/webdav/interfaces.py @@ -13,11 +13,12 @@ """webdav interfaces. """ +from OFS.interfaces import IWriteLock from zope.deferredimport import deprecated from zope.interface import Interface -from zope.schema import Bool, Tuple +from zope.schema import Bool +from zope.schema import Tuple -from OFS.interfaces import IWriteLock deprecated( 'Please import from OFS.interfaces.', diff --git a/src/webdav/tests/testCopySupportEvents.py b/src/webdav/tests/testCopySupportEvents.py index 462b833b72..d1be91daaa 100644 --- a/src/webdav/tests/testCopySupportEvents.py +++ b/src/webdav/tests/testCopySupportEvents.py @@ -1,19 +1,18 @@ import unittest -import Zope2 import transaction - -from zope import component -from zope import interface -from zope.interface.interfaces import IObjectEvent -from zope.testing import cleanup - +import Zope2 from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager from OFS.Folder import Folder from OFS.SimpleItem import SimpleItem from Testing.makerequest import makerequest +from zope import component +from zope import interface from Zope2.App import zcml +from zope.interface.interfaces import IObjectEvent +from zope.testing import cleanup + Zope2.startup_wsgi() diff --git a/src/webdav/tests/testCopySupportHooks.py b/src/webdav/tests/testCopySupportHooks.py index 5011f2a782..6aeb3e566b 100644 --- a/src/webdav/tests/testCopySupportHooks.py +++ b/src/webdav/tests/testCopySupportHooks.py @@ -1,20 +1,16 @@ import unittest -import Zope2 import transaction - -from zope.testing import cleanup - -from Testing.makerequest import makerequest - +import Zope2 from AccessControl.SecurityManagement import newSecurityManager from AccessControl.SecurityManagement import noSecurityManager - +from OFS.Folder import Folder from OFS.metaconfigure import setDeprecatedManageAddDelete from OFS.SimpleItem import SimpleItem -from OFS.Folder import Folder - +from Testing.makerequest import makerequest from Zope2.App import zcml +from zope.testing import cleanup + Zope2.startup_wsgi() diff --git a/src/webdav/tests/testPUT_factory.py b/src/webdav/tests/testPUT_factory.py index 50c87229b3..57e4934e17 100644 --- a/src/webdav/tests/testPUT_factory.py +++ b/src/webdav/tests/testPUT_factory.py @@ -2,10 +2,10 @@ import unittest import transaction - +import Zope2 from Products.SiteAccess.VirtualHostMonster import VirtualHostMonster from Testing.makerequest import makerequest -import Zope2 + auth_info = b'Basic %s' % base64.encodebytes(b'manager:secret').rstrip() diff --git a/src/webdav/tests/testResource.py b/src/webdav/tests/testResource.py index 95e111f3d4..227bf1a00d 100644 --- a/src/webdav/tests/testResource.py +++ b/src/webdav/tests/testResource.py @@ -5,6 +5,7 @@ from AccessControl.SecurityManager import setSecurityPolicy from Acquisition import Implicit + MS_DAV_AGENT = "Microsoft Data Access Internet Publishing Provider DAV" diff --git a/src/webdav/xmltools.py b/src/webdav/xmltools.py index 8503bfae70..633250639e 100644 --- a/src/webdav/xmltools.py +++ b/src/webdav/xmltools.py @@ -38,6 +38,7 @@ from xml.sax.saxutils import escape as _escape from xml.sax.saxutils import unescape as _unescape + escape_entities = {'"': '"', "'": ''', }