diff --git a/setup.py b/setup.py index 880cb365..d6ad5b61 100644 --- a/setup.py +++ b/setup.py @@ -21,14 +21,14 @@ import os import sys - from distutils.errors import CCompilerError from distutils.errors import DistutilsExecError from distutils.errors import DistutilsPlatformError -from setuptools import setup, Extension -from setuptools.command.build_ext import build_ext +from setuptools import Extension from setuptools import find_packages +from setuptools import setup +from setuptools.command.build_ext import build_ext class optional_build_ext(build_ext): diff --git a/src/zope/interface/__init__.py b/src/zope/interface/__init__.py index 17a272f1..8be812dd 100644 --- a/src/zope/interface/__init__.py +++ b/src/zope/interface/__init__.py @@ -53,11 +53,14 @@ def meth(arg1, arg2): from zope.interface.interface import Interface from zope.interface.interface import _wire + # Need to actually get the interface elements to implement the right interfaces _wire() del _wire from zope.interface.declarations import Declaration +# The following are to make spec pickles cleaner +from zope.interface.declarations import Provides from zope.interface.declarations import alsoProvides from zope.interface.declarations import classImplements from zope.interface.declarations import classImplementsFirst @@ -72,20 +75,14 @@ def meth(arg1, arg2): from zope.interface.declarations import noLongerProvides from zope.interface.declarations import providedBy from zope.interface.declarations import provider - from zope.interface.exceptions import Invalid - from zope.interface.interface import Attribute from zope.interface.interface import interfacemethod from zope.interface.interface import invariant from zope.interface.interface import taggedValue - -# The following are to make spec pickles cleaner -from zope.interface.declarations import Provides - - from zope.interface.interfaces import IInterfaceDeclaration + moduleProvides(IInterfaceDeclaration) __all__ = ('Interface', 'Attribute') + tuple(IInterfaceDeclaration) diff --git a/src/zope/interface/_flatten.py b/src/zope/interface/_flatten.py index a80c2de4..68b490db 100644 --- a/src/zope/interface/_flatten.py +++ b/src/zope/interface/_flatten.py @@ -17,6 +17,7 @@ """ from zope.interface import Declaration + def _flatten(implements, include_None=0): try: diff --git a/src/zope/interface/adapter.py b/src/zope/interface/adapter.py index dbff0d19..b02f19d5 100644 --- a/src/zope/interface/adapter.py +++ b/src/zope/interface/adapter.py @@ -16,14 +16,14 @@ import itertools import weakref +from zope.interface import Interface from zope.interface import implementer from zope.interface import providedBy -from zope.interface import Interface from zope.interface import ro -from zope.interface.interfaces import IAdapterRegistry - from zope.interface._compat import _normalize_name from zope.interface._compat import _use_c_impl +from zope.interface.interfaces import IAdapterRegistry + __all__ = [ 'AdapterRegistry', diff --git a/src/zope/interface/advice.py b/src/zope/interface/advice.py index 54e356e6..5a8e3777 100644 --- a/src/zope/interface/advice.py +++ b/src/zope/interface/advice.py @@ -27,6 +27,7 @@ from types import FunctionType + __all__ = [ 'determineMetaclass', 'getFrameInfo', @@ -36,6 +37,7 @@ import sys + def getFrameInfo(frame): """Return (kind,module,locals,globals) for a frame diff --git a/src/zope/interface/common/__init__.py b/src/zope/interface/common/__init__.py index 56f4566a..f308f9ed 100644 --- a/src/zope/interface/common/__init__.py +++ b/src/zope/interface/common/__init__.py @@ -13,11 +13,12 @@ import itertools from types import FunctionType -from zope.interface import classImplements from zope.interface import Interface -from zope.interface.interface import fromFunction +from zope.interface import classImplements from zope.interface.interface import InterfaceClass from zope.interface.interface import _decorator_non_return +from zope.interface.interface import fromFunction + __all__ = [ # Nothing public here. diff --git a/src/zope/interface/common/builtins.py b/src/zope/interface/common/builtins.py index 17090e4a..6e13e064 100644 --- a/src/zope/interface/common/builtins.py +++ b/src/zope/interface/common/builtins.py @@ -19,10 +19,10 @@ """ from zope.interface import classImplements - from zope.interface.common import collections -from zope.interface.common import numbers from zope.interface.common import io +from zope.interface.common import numbers + __all__ = [ 'IList', diff --git a/src/zope/interface/common/collections.py b/src/zope/interface/common/collections.py index c5490282..3c751c05 100644 --- a/src/zope/interface/common/collections.py +++ b/src/zope/interface/common/collections.py @@ -31,17 +31,17 @@ """ import sys - from abc import ABCMeta -from collections import abc from collections import OrderedDict -from collections import UserList from collections import UserDict +from collections import UserList from collections import UserString +from collections import abc from zope.interface.common import ABCInterface from zope.interface.common import optional + # pylint:disable=inherit-non-class, # pylint:disable=no-self-argument,no-method-argument # pylint:disable=unexpected-special-method-signature diff --git a/src/zope/interface/common/idatetime.py b/src/zope/interface/common/idatetime.py index 82f0059c..aeda07aa 100644 --- a/src/zope/interface/common/idatetime.py +++ b/src/zope/interface/common/idatetime.py @@ -14,9 +14,14 @@ This module is called idatetime because if it were called datetime the import of the real datetime would fail. """ -from datetime import timedelta, date, datetime, time, tzinfo - -from zope.interface import Interface, Attribute +from datetime import date +from datetime import datetime +from datetime import time +from datetime import timedelta +from datetime import tzinfo + +from zope.interface import Attribute +from zope.interface import Interface from zope.interface import classImplements diff --git a/src/zope/interface/common/interfaces.py b/src/zope/interface/common/interfaces.py index 70bd294f..688e323a 100644 --- a/src/zope/interface/common/interfaces.py +++ b/src/zope/interface/common/interfaces.py @@ -16,6 +16,7 @@ from zope.interface import Interface from zope.interface import classImplements + class IException(Interface): "Interface for `Exception`" classImplements(Exception, IException) diff --git a/src/zope/interface/common/io.py b/src/zope/interface/common/io.py index 0d6f3bad..89f1ba80 100644 --- a/src/zope/interface/common/io.py +++ b/src/zope/interface/common/io.py @@ -23,6 +23,7 @@ from zope.interface.common import ABCInterface + # pylint:disable=inherit-non-class, # pylint:disable=no-member diff --git a/src/zope/interface/common/mapping.py b/src/zope/interface/common/mapping.py index d0433335..eb9a2900 100644 --- a/src/zope/interface/common/mapping.py +++ b/src/zope/interface/common/mapping.py @@ -31,6 +31,7 @@ from zope.interface import Interface from zope.interface.common import collections + class IItemMapping(Interface): """Simplest readable mapping object """ diff --git a/src/zope/interface/common/sequence.py b/src/zope/interface/common/sequence.py index 5edc73dc..738f76d4 100644 --- a/src/zope/interface/common/sequence.py +++ b/src/zope/interface/common/sequence.py @@ -33,6 +33,7 @@ from zope.interface import Interface from zope.interface.common import collections + class IMinimalSequence(collections.IIterable): """Most basic sequence interface. diff --git a/src/zope/interface/common/tests/__init__.py b/src/zope/interface/common/tests/__init__.py index 0503495c..5b25828c 100644 --- a/src/zope/interface/common/tests/__init__.py +++ b/src/zope/interface/common/tests/__init__.py @@ -12,11 +12,10 @@ import unittest -from zope.interface.verify import verifyClass -from zope.interface.verify import verifyObject - from zope.interface.common import ABCInterface from zope.interface.common import ABCInterfaceClass +from zope.interface.verify import verifyClass +from zope.interface.verify import verifyObject def iter_abc_interfaces(predicate=lambda iface: True): @@ -72,9 +71,9 @@ def test(self, stdlib_class=stdlib_class, iface=iface): setattr(cls, name, test) def test_ro(self, stdlib_class=stdlib_class, iface=iface): - from zope.interface import ro - from zope.interface import implementedBy from zope.interface import Interface + from zope.interface import implementedBy + from zope.interface import ro self.assertEqual( tuple(ro.ro(iface, strict=True)), iface.__sro__) diff --git a/src/zope/interface/common/tests/basemapping.py b/src/zope/interface/common/tests/basemapping.py index 6fe91a1c..f509e855 100644 --- a/src/zope/interface/common/tests/basemapping.py +++ b/src/zope/interface/common/tests/basemapping.py @@ -15,6 +15,7 @@ """ from operator import __getitem__ + def testIReadMapping(self, inst, state, absent): for key in state: self.assertEqual(inst[key], state[key]) diff --git a/src/zope/interface/common/tests/test_collections.py b/src/zope/interface/common/tests/test_collections.py index 2bd6f506..44ff2dad 100644 --- a/src/zope/interface/common/tests/test_collections.py +++ b/src/zope/interface/common/tests/test_collections.py @@ -13,26 +13,20 @@ import array import unittest +from collections import OrderedDict from collections import abc from collections import deque -from collections import OrderedDict - - from types import MappingProxyType from zope.interface import Invalid - - +from zope.interface._compat import PYPY # Note that importing z.i.c.collections does work on import. from zope.interface.common import collections - -from zope.interface._compat import PYPY - - -from . import add_abc_interface_tests from . import VerifyClassMixin from . import VerifyObjectMixin +from . import add_abc_interface_tests + class TestVerifyClass(VerifyClassMixin, unittest.TestCase): diff --git a/src/zope/interface/common/tests/test_idatetime.py b/src/zope/interface/common/tests/test_idatetime.py index 496a5c94..9550daa1 100644 --- a/src/zope/interface/common/tests/test_idatetime.py +++ b/src/zope/interface/common/tests/test_idatetime.py @@ -15,13 +15,24 @@ """ import unittest +from datetime import date +from datetime import datetime +from datetime import time +from datetime import timedelta +from datetime import tzinfo + +from zope.interface.common.idatetime import IDate +from zope.interface.common.idatetime import IDateClass +from zope.interface.common.idatetime import IDateTime +from zope.interface.common.idatetime import IDateTimeClass +from zope.interface.common.idatetime import ITime +from zope.interface.common.idatetime import ITimeClass +from zope.interface.common.idatetime import ITimeDelta +from zope.interface.common.idatetime import ITimeDeltaClass +from zope.interface.common.idatetime import ITZInfo +from zope.interface.verify import verifyClass +from zope.interface.verify import verifyObject -from zope.interface.verify import verifyObject, verifyClass -from zope.interface.common.idatetime import ITimeDelta, ITimeDeltaClass -from zope.interface.common.idatetime import IDate, IDateClass -from zope.interface.common.idatetime import IDateTime, IDateTimeClass -from zope.interface.common.idatetime import ITime, ITimeClass, ITZInfo -from datetime import timedelta, date, datetime, time, tzinfo class TestDateTimeInterfaces(unittest.TestCase): diff --git a/src/zope/interface/common/tests/test_import_interfaces.py b/src/zope/interface/common/tests/test_import_interfaces.py index fe3766f6..67d14487 100644 --- a/src/zope/interface/common/tests/test_import_interfaces.py +++ b/src/zope/interface/common/tests/test_import_interfaces.py @@ -13,6 +13,7 @@ ############################################################################## import unittest + class TestInterfaceImport(unittest.TestCase): def test_import(self): diff --git a/src/zope/interface/common/tests/test_io.py b/src/zope/interface/common/tests/test_io.py index 0e8e74d6..77da4fd3 100644 --- a/src/zope/interface/common/tests/test_io.py +++ b/src/zope/interface/common/tests/test_io.py @@ -11,15 +11,15 @@ ############################################################################## -import unittest import io as abc +import unittest # Note that importing z.i.c.io does work on import. from zope.interface.common import io -from . import add_abc_interface_tests from . import VerifyClassMixin from . import VerifyObjectMixin +from . import add_abc_interface_tests class TestVerifyClass(VerifyClassMixin, diff --git a/src/zope/interface/common/tests/test_numbers.py b/src/zope/interface/common/tests/test_numbers.py index abf96958..c6282a3a 100644 --- a/src/zope/interface/common/tests/test_numbers.py +++ b/src/zope/interface/common/tests/test_numbers.py @@ -11,15 +11,15 @@ ############################################################################## -import unittest import numbers as abc +import unittest # Note that importing z.i.c.numbers does work on import. from zope.interface.common import numbers -from . import add_abc_interface_tests from . import VerifyClassMixin from . import VerifyObjectMixin +from . import add_abc_interface_tests class TestVerifyClass(VerifyClassMixin, diff --git a/src/zope/interface/declarations.py b/src/zope/interface/declarations.py index 61e25439..87e62520 100644 --- a/src/zope/interface/declarations.py +++ b/src/zope/interface/declarations.py @@ -27,17 +27,18 @@ class implements (that instances of the class provides). __docformat__ = 'restructuredtext' import sys +import weakref from types import FunctionType from types import MethodType from types import ModuleType -import weakref +from zope.interface._compat import _use_c_impl from zope.interface.interface import Interface from zope.interface.interface import InterfaceClass -from zope.interface.interface import SpecificationBase -from zope.interface.interface import Specification from zope.interface.interface import NameAndModuleComparisonMixin -from zope.interface._compat import _use_c_impl +from zope.interface.interface import Specification +from zope.interface.interface import SpecificationBase + __all__ = [ # None. The public APIs of this module are diff --git a/src/zope/interface/document.py b/src/zope/interface/document.py index 84cfaa0b..2595c569 100644 --- a/src/zope/interface/document.py +++ b/src/zope/interface/document.py @@ -18,6 +18,7 @@ """ import zope.interface + __all__ = [ 'asReStructuredText', 'asStructuredText', diff --git a/src/zope/interface/exceptions.py b/src/zope/interface/exceptions.py index d5c234a6..0612eb23 100644 --- a/src/zope/interface/exceptions.py +++ b/src/zope/interface/exceptions.py @@ -191,7 +191,7 @@ def mess(self): def __implementation_str(impl): # It could be a callable or some arbitrary object, we don't # know yet. - import inspect # Inspect is a heavy-weight dependency, lots of imports + import inspect # Inspect is a heavy-weight dependency, lots of imports try: sig = inspect.signature formatsig = str diff --git a/src/zope/interface/interface.py b/src/zope/interface/interface.py index 02a512e3..8143daf3 100644 --- a/src/zope/interface/interface.py +++ b/src/zope/interface/interface.py @@ -15,15 +15,16 @@ """ # pylint:disable=protected-access import sys -from types import MethodType -from types import FunctionType import weakref +from types import FunctionType +from types import MethodType from typing import Union +from zope.interface import ro from zope.interface._compat import _use_c_impl from zope.interface.exceptions import Invalid from zope.interface.ro import ro as calculate_ro -from zope.interface import ro + __all__ = [ # Most of the public API from this module is directly exported @@ -1130,8 +1131,9 @@ def _wire(): # pylint:disable=wrong-import-position from zope.interface.declarations import implementedBy from zope.interface.declarations import providedBy -from zope.interface.exceptions import InvalidInterface from zope.interface.exceptions import BrokenImplementation +from zope.interface.exceptions import InvalidInterface + # This ensures that ``Interface`` winds up in the flattened() # list of the immutable declaration. It correctly overrides changed() diff --git a/src/zope/interface/interfaces.py b/src/zope/interface/interfaces.py index 2b67ce1a..0d315cb6 100644 --- a/src/zope/interface/interfaces.py +++ b/src/zope/interface/interfaces.py @@ -15,9 +15,10 @@ """ __docformat__ = 'restructuredtext' +from zope.interface.declarations import implementer from zope.interface.interface import Attribute from zope.interface.interface import Interface -from zope.interface.declarations import implementer + __all__ = [ 'ComponentLookupError', diff --git a/src/zope/interface/registry.py b/src/zope/interface/registry.py index 292499db..a6a24fdd 100644 --- a/src/zope/interface/registry.py +++ b/src/zope/interface/registry.py @@ -15,27 +15,28 @@ """ from collections import defaultdict + try: from zope.event import notify except ImportError: # pragma: no cover def notify(*arg, **kw): pass -from zope.interface.interfaces import ISpecification +from zope.interface.adapter import AdapterRegistry +from zope.interface.declarations import implementedBy +from zope.interface.declarations import implementer +from zope.interface.declarations import implementer_only +from zope.interface.declarations import providedBy +from zope.interface.interface import Interface from zope.interface.interfaces import ComponentLookupError from zope.interface.interfaces import IAdapterRegistration from zope.interface.interfaces import IComponents from zope.interface.interfaces import IHandlerRegistration +from zope.interface.interfaces import ISpecification from zope.interface.interfaces import ISubscriptionAdapterRegistration from zope.interface.interfaces import IUtilityRegistration from zope.interface.interfaces import Registered from zope.interface.interfaces import Unregistered -from zope.interface.interface import Interface -from zope.interface.declarations import implementedBy -from zope.interface.declarations import implementer -from zope.interface.declarations import implementer_only -from zope.interface.declarations import providedBy -from zope.interface.adapter import AdapterRegistry __all__ = [ # Components is public API, but diff --git a/src/zope/interface/ro.py b/src/zope/interface/ro.py index 17468e92..52986483 100644 --- a/src/zope/interface/ro.py +++ b/src/zope/interface/ro.py @@ -454,6 +454,7 @@ def _guess_next_base(self, base_tree_remaining): if self.leaf not in bad_iros: if bad_iros == (): import weakref + # This is a race condition, but it doesn't matter much. bad_iros = C3.BAD_IROS = weakref.WeakKeyDictionary() bad_iros[self.leaf] = t = ( @@ -527,6 +528,7 @@ def __move(self, from_, to_, chunk, operation): def _generate_report(self): if self._c3_report is None: import difflib + # The opcodes we get describe how to turn 'a' into 'b'. So # the old one (legacy) needs to be first ('a') matcher = difflib.SequenceMatcher(None, self.legacy_ro, self.c3_ro) diff --git a/src/zope/interface/tests/advisory_testing.py b/src/zope/interface/tests/advisory_testing.py index bed9dd86..b8021454 100644 --- a/src/zope/interface/tests/advisory_testing.py +++ b/src/zope/interface/tests/advisory_testing.py @@ -15,6 +15,7 @@ from zope.interface.advice import getFrameInfo + my_globals = globals() ClassicClass = None diff --git a/src/zope/interface/tests/dummy.py b/src/zope/interface/tests/dummy.py index 6b142ff6..ffc27e53 100644 --- a/src/zope/interface/tests/dummy.py +++ b/src/zope/interface/tests/dummy.py @@ -16,6 +16,7 @@ from zope.interface import moduleProvides from zope.interface.tests.idummy import IDummyModule + moduleProvides(IDummyModule) def bar(baz): diff --git a/src/zope/interface/tests/idummy.py b/src/zope/interface/tests/idummy.py index 1e34fe0f..7855ce7d 100644 --- a/src/zope/interface/tests/idummy.py +++ b/src/zope/interface/tests/idummy.py @@ -15,6 +15,7 @@ """ from zope.interface import Interface + class IDummyModule(Interface): """ Dummy interface for unit tests. """ diff --git a/src/zope/interface/tests/m1.py b/src/zope/interface/tests/m1.py index d311fb40..c969c1a5 100644 --- a/src/zope/interface/tests/m1.py +++ b/src/zope/interface/tests/m1.py @@ -13,7 +13,9 @@ ############################################################################## """Test module that declares an interface """ -from zope.interface import Interface, moduleProvides +from zope.interface import Interface +from zope.interface import moduleProvides + class I1(Interface): pass class I2(Interface): pass diff --git a/src/zope/interface/tests/test_adapter.py b/src/zope/interface/tests/test_adapter.py index 203ba813..45809cb1 100644 --- a/src/zope/interface/tests/test_adapter.py +++ b/src/zope/interface/tests/test_adapter.py @@ -17,6 +17,7 @@ from zope.interface.tests import OptimizationTestMixin + # pylint:disable=inherit-non-class,protected-access,too-many-lines # pylint:disable=attribute-defined-outside-init,blacklisted-name @@ -874,7 +875,7 @@ def assertLeafIdentity(self, leaf1, leaf2): class LookupBaseFallbackTests(unittest.TestCase): def _getFallbackClass(self): - from zope.interface.adapter import LookupBaseFallback # pylint:disable=no-name-in-module + from zope.interface.adapter import LookupBaseFallback return LookupBaseFallback _getTargetClass = _getFallbackClass @@ -1211,7 +1212,7 @@ def _getTargetClass(self): class VerifyingBaseFallbackTests(unittest.TestCase): def _getFallbackClass(self): - from zope.interface.adapter import VerifyingBaseFallback # pylint:disable=no-name-in-module + from zope.interface.adapter import VerifyingBaseFallback return VerifyingBaseFallback _getTargetClass = _getFallbackClass @@ -2002,8 +2003,8 @@ def _makeOne(self, *args, **kw): return self._getTargetClass()(*args, **kw) def test_verify_object_provides_IAdapterRegistry(self): - from zope.interface.verify import verifyObject from zope.interface.interfaces import IAdapterRegistry + from zope.interface.verify import verifyObject registry = self._makeOne() verifyObject(IAdapterRegistry, registry) diff --git a/src/zope/interface/tests/test_advice.py b/src/zope/interface/tests/test_advice.py index caf5ee7b..a5432011 100644 --- a/src/zope/interface/tests/test_advice.py +++ b/src/zope/interface/tests/test_advice.py @@ -25,8 +25,8 @@ Visit the PEAK home page at http://peak.telecommunity.com for more information. """ -import unittest import sys +import unittest class FrameInfoTest(unittest.TestCase): diff --git a/src/zope/interface/tests/test_declarations.py b/src/zope/interface/tests/test_declarations.py index c17e323c..a7f85463 100644 --- a/src/zope/interface/tests/test_declarations.py +++ b/src/zope/interface/tests/test_declarations.py @@ -15,9 +15,11 @@ """ import unittest -from zope.interface.tests import OptimizationTestMixin from zope.interface.tests import MissingSomeAttrs -from zope.interface.tests.test_interface import NameAndModuleComparisonTestsMixin +from zope.interface.tests import OptimizationTestMixin +from zope.interface.tests.test_interface import \ + NameAndModuleComparisonTestsMixin + # pylint:disable=inherit-non-class,too-many-lines,protected-access # pylint:disable=blacklisted-name,attribute-defined-outside-init @@ -290,9 +292,9 @@ def test___add___overlapping_interface(self): # used to be wrong ([IBase, IDerived] instead of # the other way). from zope.interface import Interface + from zope.interface import ro from zope.interface.interface import InterfaceClass from zope.interface.tests.test_ro import C3Setting - from zope.interface import ro IBase = InterfaceClass('IBase') IDerived = InterfaceClass('IDerived', (IBase,)) @@ -313,8 +315,8 @@ def test___add___overlapping_interface_implementedBy(self): from zope.interface import Interface from zope.interface import implementedBy from zope.interface import implementer - from zope.interface.tests.test_ro import C3Setting from zope.interface import ro + from zope.interface.tests.test_ro import C3Setting class IBase(Interface): pass @@ -790,8 +792,8 @@ class Derived: sup = super(Derived, Derived) self.assertEqual(list(self._callFUT(sup)), []) def test_super_multi_level_multi_inheritance(self): - from zope.interface.declarations import implementer from zope.interface import Interface + from zope.interface.declarations import implementer class IBase(Interface): pass @@ -1056,8 +1058,8 @@ def _callFUT(self, *args, **kw): return _implements_advice(*args, **kw) def test_no_existing_implements(self): - from zope.interface.declarations import classImplements from zope.interface.declarations import Implements + from zope.interface.declarations import classImplements from zope.interface.interface import InterfaceClass IFoo = InterfaceClass('IFoo') class Foo: @@ -1108,6 +1110,7 @@ def test_does_not_leak_on_unique_classes(self): # traversed or cleared. # https://github.com/zopefoundation/zope.interface/issues/216 import gc + from zope.interface.interface import InterfaceClass IFoo = InterfaceClass('IFoo') @@ -1184,7 +1187,7 @@ class Foo: self.assertEqual(list(spec), [IFoo]) def test___reduce__(self): - from zope.interface.declarations import Provides # the function + from zope.interface.declarations import Provides # the function from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") class Foo: @@ -1229,8 +1232,8 @@ def _do_calculate_ro(self, base_mros): def test_overlapping_interfaces_corrected(self): # Giving Provides(cls, IFace), where IFace is already # provided by cls, doesn't produce invalid resolution orders. - from zope.interface import implementedBy from zope.interface import Interface + from zope.interface import implementedBy from zope.interface import implementer class IBase(Interface): @@ -1287,6 +1290,7 @@ def test__repr__module_provides_typical_use(self): def test__repr__module_after_pickle(self): # It doesn't matter, these objects can't be pickled. import pickle + from zope.interface.tests import dummy provides = dummy.__provides__ # pylint:disable=no-member for proto in range(pickle.HIGHEST_PROTOCOL + 1): @@ -1295,10 +1299,11 @@ def test__repr__module_after_pickle(self): def test__repr__directlyProvides_module(self): import sys - from zope.interface.tests import dummy - from zope.interface.declarations import directlyProvides + from zope.interface.declarations import alsoProvides + from zope.interface.declarations import directlyProvides from zope.interface.interface import InterfaceClass + from zope.interface.tests import dummy IFoo = InterfaceClass('IFoo') IBar = InterfaceClass('IBar') @@ -1339,8 +1344,8 @@ def test__repr__directlyProvides_module(self): ) def test__repr__module_provides_cached_shared(self): - from zope.interface.interface import InterfaceClass from zope.interface.declarations import ModuleType + from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") inst = self._makeOne(ModuleType, IFoo) @@ -1417,9 +1422,9 @@ class Foo: ) def test__repr__providedBy_alsoProvides(self): + from zope.interface.declarations import alsoProvides from zope.interface.declarations import implementer from zope.interface.declarations import providedBy - from zope.interface.declarations import alsoProvides from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") IBar = InterfaceClass("IBar") @@ -1534,8 +1539,8 @@ class Foo: self.assertEqual(list(obj.__provides__), [IFoo]) # pylint:disable=no-member def test_w_existing_provides(self): - from zope.interface.declarations import directlyProvides from zope.interface.declarations import ProvidesClass + from zope.interface.declarations import directlyProvides from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") IBar = InterfaceClass("IBar") @@ -1704,8 +1709,8 @@ def _do_calculate_ro(self, base_mros): def test_overlapping_interfaces_corrected(self): # Giving ClassProvides(cls, metaclass, IFace), where IFace is already # provided by metacls, doesn't produce invalid resolution orders. - from zope.interface import implementedBy from zope.interface import Interface + from zope.interface import implementedBy from zope.interface import implementer class IBase(Interface): @@ -1772,8 +1777,8 @@ def test__repr__duplicate_names(self): ) def test__repr__implementedBy(self): - from zope.interface.declarations import implementer from zope.interface.declarations import implementedBy + from zope.interface.declarations import implementer from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") @@ -1789,6 +1794,7 @@ class Foo: def test__repr__implementedBy_generic_callable(self): from zope.interface.declarations import implementedBy + # We can't get a __name__ by default, so we get a # module name and a question mark class Callable: @@ -2204,8 +2210,8 @@ class Derived: def test_super_when_object_directly_provides(self): from zope.interface import Interface - from zope.interface.declarations import implementer from zope.interface.declarations import directlyProvides + from zope.interface.declarations import implementer class IBase(Interface): pass @@ -2232,8 +2238,8 @@ class Derived(Base): self.assertEqual(list(fut), [IBase]) def test_super_multi_level_multi_inheritance(self): - from zope.interface.declarations import implementer from zope.interface import Interface + from zope.interface.declarations import implementer class IBase(Interface): pass @@ -2306,8 +2312,8 @@ class ObjectSpecificationDescriptorFallbackTests(unittest.TestCase): def _getFallbackClass(self): # pylint:disable=no-name-in-module - from zope.interface.declarations \ - import ObjectSpecificationDescriptorFallback + from zope.interface.declarations import \ + ObjectSpecificationDescriptorFallback return ObjectSpecificationDescriptorFallback _getTargetClass = _getFallbackClass @@ -2326,8 +2332,8 @@ class Foo: self.assertEqual(list(Foo.__providedBy__), [IFoo]) def test_accessed_via_inst_wo_provides(self): - from zope.interface.declarations import implementer from zope.interface.declarations import Provides + from zope.interface.declarations import implementer from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") IBar = InterfaceClass("IBar") @@ -2340,9 +2346,9 @@ class Foo: self.assertEqual(list(foo.__providedBy__), [IFoo]) def test_accessed_via_inst_w_provides(self): + from zope.interface.declarations import Provides from zope.interface.declarations import directlyProvides from zope.interface.declarations import implementer - from zope.interface.declarations import Provides from zope.interface.interface import InterfaceClass IFoo = InterfaceClass("IFoo") IBar = InterfaceClass("IBar") diff --git a/src/zope/interface/tests/test_document.py b/src/zope/interface/tests/test_document.py index f00e6311..2a954970 100644 --- a/src/zope/interface/tests/test_document.py +++ b/src/zope/interface/tests/test_document.py @@ -51,6 +51,7 @@ class IEmpty(Interface): def test_asStructuredText_empty_with_multiline_docstring(self): from zope.interface import Interface + # In Python 3.13+, compiler strips indents from docstrings indent = " " * 12 if sys.version_info < (3, 13) else "" @@ -278,6 +279,7 @@ class IEmpty(Interface): def test_asReStructuredText_empty_with_multiline_docstring(self): from zope.interface import Interface + # In Python 3.13+, compiler strips indents from docstrings indent = " " * 12 if sys.version_info < (3, 13) else "" diff --git a/src/zope/interface/tests/test_element.py b/src/zope/interface/tests/test_element.py index eb003cda..b47b3b5a 100644 --- a/src/zope/interface/tests/test_element.py +++ b/src/zope/interface/tests/test_element.py @@ -15,8 +15,10 @@ """ import unittest + from zope.interface.interface import Element + class TestElement(unittest.TestCase): def test_taggedValues(self): diff --git a/src/zope/interface/tests/test_exceptions.py b/src/zope/interface/tests/test_exceptions.py index dc22c71d..7b683912 100644 --- a/src/zope/interface/tests/test_exceptions.py +++ b/src/zope/interface/tests/test_exceptions.py @@ -15,6 +15,7 @@ """ import unittest + def _makeIface(): from zope.interface import Interface class IDummy(Interface): diff --git a/src/zope/interface/tests/test_interface.py b/src/zope/interface/tests/test_interface.py index 096bdcf4..236d4817 100644 --- a/src/zope/interface/tests/test_interface.py +++ b/src/zope/interface/tests/test_interface.py @@ -23,9 +23,10 @@ # pylint:disable=no-value-for-parameter import unittest +from zope.interface.tests import CleanUp from zope.interface.tests import MissingSomeAttrs from zope.interface.tests import OptimizationTestMixin -from zope.interface.tests import CleanUp + _marker = object() @@ -33,8 +34,8 @@ class Test_invariant(unittest.TestCase): def test_w_single(self): - from zope.interface.interface import invariant from zope.interface.interface import TAGGED_DATA + from zope.interface.interface import invariant def _check(*args, **kw): raise NotImplementedError() @@ -46,8 +47,8 @@ class Foo: {'invariants': [_check]}) def test_w_multiple(self): - from zope.interface.interface import invariant from zope.interface.interface import TAGGED_DATA + from zope.interface.interface import invariant def _check(*args, **kw): raise NotImplementedError() @@ -66,8 +67,8 @@ class Foo: class Test_taggedValue(unittest.TestCase): def test_w_single(self): - from zope.interface.interface import taggedValue from zope.interface.interface import TAGGED_DATA + from zope.interface.interface import taggedValue class Foo: taggedValue('bar', ['baz']) @@ -76,8 +77,8 @@ class Foo: {'bar': ['baz']}) def test_w_multiple(self): - from zope.interface.interface import taggedValue from zope.interface.interface import TAGGED_DATA + from zope.interface.interface import taggedValue class Foo: taggedValue('bar', ['baz']) @@ -87,8 +88,8 @@ class Foo: {'bar': ['baz'], 'qux': 'spam'}) def test_w_multiple_overwriting(self): - from zope.interface.interface import taggedValue from zope.interface.interface import TAGGED_DATA + from zope.interface.interface import taggedValue class Foo: taggedValue('bar', ['baz']) @@ -174,7 +175,7 @@ def test_verifies(self): class GenericSpecificationBaseTests(unittest.TestCase): # Tests that work with both implementations def _getFallbackClass(self): - from zope.interface.interface import SpecificationBasePy # pylint:disable=no-name-in-module + from zope.interface.interface import SpecificationBasePy return SpecificationBasePy _getTargetClass = _getFallbackClass @@ -566,9 +567,9 @@ def test_multiple_inheritance_no_interfaces(self): # early in the resolution order. It stays at the end, # like it should. # See https://github.com/zopefoundation/zope.interface/issues/8 - from zope.interface.interface import Interface - from zope.interface.declarations import implementer from zope.interface.declarations import implementedBy + from zope.interface.declarations import implementer + from zope.interface.interface import Interface class IDefaultViewName(Interface): pass @@ -1149,8 +1150,8 @@ def test__module__is_readonly(self): class InterfaceTests(unittest.TestCase): def test_attributes_link_to_interface(self): - from zope.interface import Interface from zope.interface import Attribute + from zope.interface import Interface class I1(Interface): attr = Attribute("My attr") @@ -1433,8 +1434,8 @@ def method2(): def test_namesAndDescriptions_simple(self): from zope.interface import Attribute - from zope.interface.interface import Method from zope.interface import Interface + from zope.interface.interface import Method class ISimple(Interface): @@ -1522,8 +1523,8 @@ class IEmpty(Interface): def test_getDescriptionFor_simple(self): from zope.interface import Attribute - from zope.interface.interface import Method from zope.interface import Interface + from zope.interface.interface import Method class ISimple(Interface): @@ -1544,8 +1545,8 @@ def method(): def test_getDescriptionFor_derived(self): from zope.interface import Attribute - from zope.interface.interface import Method from zope.interface import Interface + from zope.interface.interface import Method class IBase(Interface): @@ -1593,8 +1594,8 @@ class IEmpty(Interface): def test___getitem__simple(self): from zope.interface import Attribute - from zope.interface.interface import Method from zope.interface import Interface + from zope.interface.interface import Method class ISimple(Interface): @@ -1615,8 +1616,8 @@ def method(): def test___getitem___derived(self): from zope.interface import Attribute - from zope.interface.interface import Method from zope.interface import Interface + from zope.interface.interface import Method class IBase(Interface): @@ -1923,8 +1924,8 @@ class HasInvariant: IInvariant.setTaggedValue('invariants', old_invariants) def test___doc___element(self): - from zope.interface import Interface from zope.interface import Attribute + from zope.interface import Interface class IDocstring(Interface): "xxx" @@ -1940,8 +1941,8 @@ class IDocstringAndAttribute(Interface): self.assertEqual(list(IDocstringAndAttribute), ['__doc__']) def test_invariant_as_decorator(self): - from zope.interface import Interface from zope.interface import Attribute + from zope.interface import Interface from zope.interface import implementer from zope.interface import invariant from zope.interface.exceptions import Invalid @@ -1994,8 +1995,8 @@ class IDerived2(IDerived): self.assertEqual(set(IDerived2.getTaggedValueTags()), {'qux', 'foo'}) def _make_taggedValue_tree(self, base): - from zope.interface import taggedValue from zope.interface import Attribute + from zope.interface import taggedValue O = base class F(O): taggedValue('tag', 'F') @@ -2063,8 +2064,8 @@ def test_description_cache_management(self): # See https://bugs.launchpad.net/zope.interface/+bug/185974 # There was a bug where the cache used by Specification.get() was not # cleared when the bases were changed. - from zope.interface import Interface from zope.interface import Attribute + from zope.interface import Interface class I1(Interface): a = Attribute('a') @@ -2159,8 +2160,8 @@ class C: def test___call___w_overridden_adapt(self): from zope.interface import Interface - from zope.interface import interfacemethod from zope.interface import implementer + from zope.interface import interfacemethod class I(Interface): @@ -2181,8 +2182,8 @@ def test___call___w_overridden_adapt_and_conform(self): # Conform is first, taking precedence over __adapt__, # *if* it returns non-None from zope.interface import Interface - from zope.interface import interfacemethod from zope.interface import implementer + from zope.interface import interfacemethod class IAdapt(Interface): @interfacemethod @@ -2215,9 +2216,10 @@ def __conform__(self, iface): def test___call___w_overridden_adapt_call_super(self): import sys + from zope.interface import Interface - from zope.interface import interfacemethod from zope.interface import implementer + from zope.interface import interfacemethod class I(Interface): @@ -2641,8 +2643,10 @@ class TestTypeAnnotations(unittest.TestCase): """Test using Interfaces in type annotations.""" def test___or__(self): + from typing import Optional + from typing import Union + from zope.interface import Interface - from typing import Optional, Union class I1(Interface): pass class I2(Interface): @@ -2656,8 +2660,10 @@ class B: B.__annotations__, {'a': Optional[I1], 'b': Union[I1, I2]}) def test___ror__(self): + from typing import Optional + from typing import Union + from zope.interface import Interface - from typing import Optional, Union class I1(Interface): pass diff --git a/src/zope/interface/tests/test_interfaces.py b/src/zope/interface/tests/test_interfaces.py index 11ba0c04..cc1273a2 100644 --- a/src/zope/interface/tests/test_interfaces.py +++ b/src/zope/interface/tests/test_interfaces.py @@ -122,7 +122,7 @@ def test_instance_consistent__iro__(self): self.assertTrue(ro.is_consistent(self._getTargetInterface())) def test_class_consistent__iro__(self): - from zope.interface import ro from zope.interface import implementedBy + from zope.interface import ro self.assertTrue(ro.is_consistent(implementedBy(self._getTargetClass()))) diff --git a/src/zope/interface/tests/test_odd_declarations.py b/src/zope/interface/tests/test_odd_declarations.py index 55089157..b92015f5 100644 --- a/src/zope/interface/tests/test_odd_declarations.py +++ b/src/zope/interface/tests/test_odd_declarations.py @@ -18,15 +18,16 @@ """ import unittest -from zope.interface.tests import odd from zope.interface import Interface -from zope.interface import implementer -from zope.interface import directlyProvides -from zope.interface import providedBy -from zope.interface import directlyProvidedBy from zope.interface import classImplements from zope.interface import classImplementsOnly +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.tests import odd + class I1(Interface): pass class I2(Interface): pass diff --git a/src/zope/interface/tests/test_registry.py b/src/zope/interface/tests/test_registry.py index eaaabb28..abdd9511 100644 --- a/src/zope/interface/tests/test_registry.py +++ b/src/zope/interface/tests/test_registry.py @@ -17,9 +17,9 @@ from zope.interface import Interface from zope.interface.adapter import VerifyingAdapterRegistry - from zope.interface.registry import Components + class ComponentsTests(unittest.TestCase): def _getTargetClass(self): @@ -76,7 +76,8 @@ def test_assign_to___bases__(self): (base1.utilities, base2.utilities)) def test_registerUtility_with_component_name(self): - from zope.interface.declarations import named, InterfaceClass + from zope.interface.declarations import InterfaceClass + from zope.interface.declarations import named class IFoo(InterfaceClass): @@ -177,8 +178,8 @@ class Foo: comp.registerUtility, _to_reg, None, _name, _info) def test_registerUtility_wo_provided(self): - from zope.interface.declarations import directlyProvides from zope.interface.declarations import InterfaceClass + from zope.interface.declarations import directlyProvides from zope.interface.interfaces import Registered from zope.interface.registry import UtilityRegistration @@ -271,8 +272,8 @@ class IFoo(InterfaceClass): def test_registerUtility_replaces_existing_reg(self): from zope.interface.declarations import InterfaceClass - from zope.interface.interfaces import Unregistered from zope.interface.interfaces import Registered + from zope.interface.interfaces import Unregistered from zope.interface.registry import UtilityRegistration class IFoo(InterfaceClass): @@ -486,8 +487,8 @@ def _factory(): self.assertTrue(event.object.factory is _factory) def test_unregisterUtility_wo_explicit_provided(self): - from zope.interface.declarations import directlyProvides from zope.interface.declarations import InterfaceClass + from zope.interface.declarations import directlyProvides from zope.interface.interfaces import Unregistered from zope.interface.registry import UtilityRegistration @@ -520,8 +521,8 @@ class Foo: self.assertTrue(event.object.factory is None) def test_unregisterUtility_wo_component_or_factory(self): - from zope.interface.declarations import directlyProvides from zope.interface.declarations import InterfaceClass + from zope.interface.declarations import directlyProvides from zope.interface.interfaces import Unregistered from zope.interface.registry import UtilityRegistration @@ -687,7 +688,6 @@ def test_registeredUtilities_empty(self): def test_registeredUtilities_notempty(self): from zope.interface.declarations import InterfaceClass - from zope.interface.registry import UtilityRegistration class IFoo(InterfaceClass): pass @@ -809,7 +809,8 @@ class IFoo(InterfaceClass): [_to_reg]) def test_registerAdapter_with_component_name(self): - from zope.interface.declarations import named, InterfaceClass + from zope.interface.declarations import InterfaceClass + from zope.interface.declarations import named class IFoo(InterfaceClass): @@ -988,8 +989,8 @@ class _Factory: def test_registerAdapter_w_required_containing_class(self): from zope.interface.declarations import InterfaceClass - from zope.interface.declarations import implementer from zope.interface.declarations import implementedBy + from zope.interface.declarations import implementer from zope.interface.interfaces import Registered from zope.interface.registry import AdapterRegistration @@ -1227,7 +1228,6 @@ def test_registeredAdapters_empty(self): def test_registeredAdapters_notempty(self): from zope.interface.declarations import InterfaceClass - from zope.interface.registry import AdapterRegistration class IFoo(InterfaceClass): pass @@ -1834,7 +1834,6 @@ def test_registeredSubscriptionAdapters_empty(self): def test_registeredSubscriptionAdapters_notempty(self): from zope.interface.declarations import InterfaceClass - from zope.interface.registry import SubscriptionRegistration class IFoo(InterfaceClass): pass @@ -2477,13 +2476,13 @@ def __repr__(self): ) def test_class_conforms_to_IUtilityRegistration(self): - from zope.interface.verify import verifyClass from zope.interface.interfaces import IUtilityRegistration + from zope.interface.verify import verifyClass verifyClass(IUtilityRegistration, self._getTargetClass()) def test_instance_conforms_to_IUtilityRegistration(self): - from zope.interface.verify import verifyObject from zope.interface.interfaces import IUtilityRegistration + from zope.interface.verify import verifyObject ur, _, _ = self._makeOne() verifyObject(IUtilityRegistration, ur) @@ -2663,13 +2662,13 @@ def __repr__(self): ) def test_class_conforms_to_IAdapterRegistration(self): - from zope.interface.verify import verifyClass from zope.interface.interfaces import IAdapterRegistration + from zope.interface.verify import verifyClass verifyClass(IAdapterRegistration, self._getTargetClass()) def test_instance_conforms_to_IAdapterRegistration(self): - from zope.interface.verify import verifyObject from zope.interface.interfaces import IAdapterRegistration + from zope.interface.verify import verifyObject ar, _, _ = self._makeOne() verifyObject(IAdapterRegistration, ar) @@ -2872,13 +2871,13 @@ def __repr__(self): # pragma: no cover ) def test_class_conforms_to_ISubscriptionAdapterRegistration(self): - from zope.interface.verify import verifyClass from zope.interface.interfaces import ISubscriptionAdapterRegistration + from zope.interface.verify import verifyClass verifyClass(ISubscriptionAdapterRegistration, self._getTargetClass()) def test_instance_conforms_to_ISubscriptionAdapterRegistration(self): - from zope.interface.verify import verifyObject from zope.interface.interfaces import ISubscriptionAdapterRegistration + from zope.interface.verify import verifyObject sar, _, _ = self._makeOne() verifyObject(ISubscriptionAdapterRegistration, sar) @@ -2908,13 +2907,13 @@ def __repr__(self): ) def test_class_conforms_to_IHandlerRegistration(self): - from zope.interface.verify import verifyClass from zope.interface.interfaces import IHandlerRegistration + from zope.interface.verify import verifyClass verifyClass(IHandlerRegistration, self._getTargetClass()) def test_instance_conforms_to_IHandlerRegistration(self): - from zope.interface.verify import verifyObject from zope.interface.interfaces import IHandlerRegistration + from zope.interface.verify import verifyObject hr, _, _ = self._makeOne() verifyObject(IHandlerRegistration, hr) diff --git a/src/zope/interface/tests/test_ro.py b/src/zope/interface/tests/test_ro.py index 6f7a6440..49c46259 100644 --- a/src/zope/interface/tests/test_ro.py +++ b/src/zope/interface/tests/test_ro.py @@ -14,6 +14,7 @@ """Resolution ordering utility tests""" import unittest + # pylint:disable=blacklisted-name,protected-access,attribute-defined-outside-init class Test__mergeOrderings(unittest.TestCase): @@ -144,10 +145,10 @@ def test_mixed_inheritance_and_implementation(self): # https://github.com/zopefoundation/zope.interface/issues/8 # This test should fail, but doesn't, as described in that issue. # pylint:disable=inherit-non-class - from zope.interface import implementer from zope.interface import Interface - from zope.interface import providedBy from zope.interface import implementedBy + from zope.interface import implementer + from zope.interface import providedBy class IFoo(Interface): pass @@ -276,6 +277,7 @@ def _check_handler_complex_diamond(self): def test_ExtendedPathIndex_implement_thing_implementedby_super(self): # See https://github.com/zopefoundation/zope.interface/pull/182#issuecomment-598754056 from zope.interface import ro + # pylint:disable=inherit-non-class class _Based: __bases__ = () @@ -337,8 +339,8 @@ class IPathIndex(Interface): self._callFUT(ExtendedPathIndex, strict=True) def test_OSError_IOError(self): - from zope.interface.common import interfaces from zope.interface import providedBy + from zope.interface.common import interfaces self.assertEqual( list(providedBy(OSError()).flattened()), @@ -353,6 +355,7 @@ def test_OSError_IOError(self): def test_non_orderable(self): import warnings + from zope.interface import ro try: # If we've already warned, we must reset that state. diff --git a/src/zope/interface/tests/test_sorting.py b/src/zope/interface/tests/test_sorting.py index 0e33f47f..8c0df4c3 100644 --- a/src/zope/interface/tests/test_sorting.py +++ b/src/zope/interface/tests/test_sorting.py @@ -18,6 +18,7 @@ from zope.interface import Interface + class I1(Interface): pass class I2(I1): pass class I3(I1): pass diff --git a/src/zope/interface/tests/test_verify.py b/src/zope/interface/tests/test_verify.py index 5227a92c..5080d025 100644 --- a/src/zope/interface/tests/test_verify.py +++ b/src/zope/interface/tests/test_verify.py @@ -15,6 +15,7 @@ """ import unittest + # pylint:disable=inherit-non-class,no-method-argument,no-self-argument class Test_verifyClass(unittest.TestCase): @@ -486,9 +487,9 @@ class Current: self._callFUT(ICurrent, Current) def test_w_callable_non_func_method(self): - from zope.interface.interface import Method from zope.interface import Interface from zope.interface import implementer + from zope.interface.interface import Method class QuasiMethod(Method): def __call__(self, *args, **kw): @@ -552,11 +553,11 @@ def test_tuple_IReadSequence(self): def test_multiple_invalid(self): - from zope.interface.exceptions import MultipleInvalid - from zope.interface.exceptions import DoesNotImplement - from zope.interface.exceptions import BrokenImplementation from zope.interface import Interface from zope.interface import classImplements + from zope.interface.exceptions import BrokenImplementation + from zope.interface.exceptions import DoesNotImplement + from zope.interface.exceptions import MultipleInvalid class ISeveralMethods(Interface): def meth1(arg1): @@ -614,15 +615,15 @@ class Current: self._callFUT, ICurrent, Current) def test_module_hit(self): - from zope.interface.tests.idummy import IDummyModule from zope.interface.tests import dummy + from zope.interface.tests.idummy import IDummyModule self._callFUT(IDummyModule, dummy) def test_module_miss(self): from zope.interface import Interface - from zope.interface.tests import dummy from zope.interface.exceptions import DoesNotImplement + from zope.interface.tests import dummy # same name, different object class IDummyModule(Interface): diff --git a/src/zope/interface/verify.py b/src/zope/interface/verify.py index 0ab0b3f9..0894d2d2 100644 --- a/src/zope/interface/verify.py +++ b/src/zope/interface/verify.py @@ -23,8 +23,10 @@ from zope.interface.exceptions import DoesNotImplement from zope.interface.exceptions import Invalid from zope.interface.exceptions import MultipleInvalid +from zope.interface.interface import Method +from zope.interface.interface import fromFunction +from zope.interface.interface import fromMethod -from zope.interface.interface import fromMethod, fromFunction, Method __all__ = [ 'verifyObject',