Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ include tox.ini .coveragerc
include misc/classify_foolscap.py
include versioneer.py
include src/foolscap/_version.py
include src/foolscap/py.typed
4 changes: 4 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,10 @@ def run(self):
},
}

setup_args.update(
include_package_data=True,
)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The motivation for this change, the change to MANIFEST.in, and the addition of the empty py.typed file is not clear from the ticket or the PR description.

Maybe these changes belong with some other issue?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The motivation is indicated in d70d8ec. The core of the change is adding a py.typed file to the package, which is what communicates to mypy that this package is typed and thus it (and its dependencies) may be used for static type checking. To see the failures on Tahoe, make this change:

diff --git a/tox.ini b/tox.ini
index 706899ebe..a48165da4 100644
--- a/tox.ini
+++ b/tox.ini
@@ -118,7 +118,7 @@ skip_install = True
 deps =
     mypy
     git+https://github.com/Shoobx/mypy-zope
-    git+https://github.com/jaraco/foolscap@bugfix/75-use-metaclass
+    git+https://github.com/jaraco/foolscap@ff3b9e8c1e4fa13701273a2143ba80b1e58f47cf
 commands = mypy src
 

And then run the typechecks. Here are the errors:

typechecks installed: attrs==20.3.0,Automat==20.2.0,cffi==1.14.4,constantly==15.1.0,cryptography==3.3.1,foolscap @ git+https://github.com/jaraco/foolscap@ff3b9e8c1e4fa13701273a2143ba80b1e58f47cf,hyperlink==20.0.1,idna==2.10,incremental==17.5.0,mypy==0.790,mypy-extensions==0.4.3,mypy-zope @ git+https://github.com/Shoobx/mypy-zope@1fa03a7eccfebaa74f57e9288203c6e9adbb465a,pyasn1==0.4.8,pyasn1-modules==0.2.8,pycparser==2.20,PyHamcrest==2.0.2,pyOpenSSL==20.0.1,service-identity==18.1.0,six==1.15.0,Twisted==20.3.0,typed-ast==1.4.1,typing-extensions==3.7.4.3,zope.event==4.5.0,zope.interface==5.2.0,zope.schema==6.0.0
typechecks run-test-pre: PYTHONHASHSEED='4199503661'
typechecks run-test: commands[0] | mypy src
src/allmydata/interfaces.py:61: error: Method must have at least one argument
src/allmydata/interfaces.py:69: error: Method must have at least one argument
src/allmydata/interfaces.py:112: error: Method must have at least one argument
src/allmydata/interfaces.py:2835: error: Method must have at least one argument
src/allmydata/interfaces.py:2853: error: Method must have at least one argument
src/allmydata/interfaces.py:2870: error: Method must have at least one argument
src/allmydata/interfaces.py:2873: error: Method must have at least one argument
src/allmydata/interfaces.py:2879: error: Method must have at least one argument
src/allmydata/interfaces.py:2886: error: Method must have at least one argument
src/allmydata/interfaces.py:2899: error: Method must have at least one argument
src/allmydata/introducer/interfaces.py:58: error: Method must have at least one argument
src/allmydata/storage/immutable.py:204: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RIBucketWriter.
src/allmydata/storage/immutable.py:204: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RIBucketWriter class hierarchy.
src/allmydata/storage/immutable.py:303: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RIBucketReader.
src/allmydata/storage/immutable.py:303: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RIBucketReader class hierarchy.
src/allmydata/introducer/client.py:35: error: zope.interface.implementer accepts interface, not allmydata.introducer.interfaces.RIIntroducerSubscriberClient_v2.
src/allmydata/introducer/client.py:35: error: Make sure you have stubs for all packages that provide interfaces for allmydata.introducer.interfaces.RIIntroducerSubscriberClient_v2 class hierarchy.
src/allmydata/storage/server.py:53: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RIStorageServer.
src/allmydata/storage/server.py:53: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RIStorageServer class hierarchy.
src/allmydata/immutable/upload.py:1429: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RIEncryptedUploadable.
src/allmydata/immutable/upload.py:1429: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RIEncryptedUploadable class hierarchy.
src/allmydata/control.py:58: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RIControlClient.
src/allmydata/control.py:58: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RIControlClient class hierarchy.
src/allmydata/immutable/offloaded.py:143: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RICHKUploadHelper.
src/allmydata/immutable/offloaded.py:143: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RICHKUploadHelper class hierarchy.
src/allmydata/immutable/offloaded.py:507: error: zope.interface.implementer accepts interface, not allmydata.interfaces.RIHelper.
src/allmydata/immutable/offloaded.py:507: error: Make sure you have stubs for all packages that provide interfaces for allmydata.interfaces.RIHelper class hierarchy.
src/allmydata/introducer/server.py:151: error: zope.interface.implementer accepts interface, not allmydata.introducer.interfaces.RIIntroducerPublisherAndSubscriberService_v2.
src/allmydata/introducer/server.py:151: error: Make sure you have stubs for all packages that provide interfaces for allmydata.introducer.interfaces.RIIntroducerPublisherAndSubscriberService_v2 class hierarchy.
src/allmydata/test/storage_plugin.py:43: error: Method must have at least one argument
src/allmydata/test/storage_plugin.py:109: error: zope.interface.implementer accepts interface, not allmydata.test.storage_plugin.RIDummy.
src/allmydata/test/storage_plugin.py:109: error: Make sure you have stubs for all packages that provide interfaces for allmydata.test.storage_plugin.RIDummy class hierarchy.
Found 32 errors in 10 files (checked 287 source files)
ERROR: InvocationError for command /Users/jaraco/code/public/tahoe-lafs/.tox/typechecks/bin/mypy src (exited with code 1)
___________________________________ summary ____________________________________
ERROR:   typechecks: commands failed

if __name__ == "__main__":
setup(**setup_args)

Empty file added src/foolscap/py.typed
Empty file.
20 changes: 11 additions & 9 deletions src/foolscap/remoteinterface.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@

import six
import types
import inspect
from zope.interface import interface, providedBy, implementer
Expand Down Expand Up @@ -28,10 +29,9 @@ class RemoteInterfaceClass(interface.InterfaceClass):

"""

def __init__(self, iname, bases=(), attrs=None, __module__=None):
def __init__(self, iname, bases=(), attrs=None):
if attrs is None:
interface.InterfaceClass.__init__(self, iname, bases, attrs,
__module__)
interface.InterfaceClass.__init__(self, iname, bases, attrs)
return

# parse (and remove) the attributes that make this a RemoteInterface
Expand All @@ -41,8 +41,7 @@ def __init__(self, iname, bases=(), attrs=None, __module__=None):
raise

# now let the normal InterfaceClass do its thing
interface.InterfaceClass.__init__(self, iname, bases, attrs,
__module__)
interface.InterfaceClass.__init__(self, iname, bases, attrs)

# now add all the remote methods that InterfaceClass would have
# complained about. This is really gross, and it really makes me
Expand Down Expand Up @@ -92,10 +91,6 @@ def _parseRemoteInterface(self, iname, attrs):

return remote_name, remote_attrs

RemoteInterface = RemoteInterfaceClass("RemoteInterface",
__module__="pb.flavors")



def getRemoteInterface(obj):
"""Get the (one) RemoteInterface supported by the object, or None."""
Expand Down Expand Up @@ -412,3 +407,10 @@ def _makeConstraint(t):
return LocalInterfaceConstraint(t)

addToConstraintTypeMap(interface.InterfaceClass, _makeConstraint)


# See
# https://github.com/warner/foolscap/pull/76/commits/ff3b9e8c1e4fa13701273a2143ba80b1e58f47cf#r549428977
# for more background on the use of add_metaclass here.
class RemoteInterface(six.with_metaclass(RemoteInterfaceClass, interface.Interface)):
pass
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, as far as I understand it. I don't really understand the difference between six.with_metaclass and six.add_metaclass except it looks like add_metaclass might involve an intermediate class object on the way to the desired class object, which seems bad (therefore with_metaclass is preferable). However, the add_metaclass documentation is more explicit about what it does and what it does sounds pretty good (cross python 2/3 metaclass declaration). I'm not sure why with_metaclass doesn't have similar docs.

If you have some insight into why one or the other of these methods is preferable, putting it in a comment here might be useful in the long run.

Copy link
Contributor Author

@jaraco jaraco Dec 28, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I honestly don't fully understand the nuances, and I was the seminal author for add_metaclass.

I attempted to use six.add_metaclass first, but doing so resulted in errors.

diff --git a/src/foolscap/remoteinterface.py b/src/foolscap/remoteinterface.py
index 04ffd06..d8ef365 100644
--- a/src/foolscap/remoteinterface.py
+++ b/src/foolscap/remoteinterface.py
@@ -409,5 +409,6 @@ def _makeConstraint(t):
 addToConstraintTypeMap(interface.InterfaceClass, _makeConstraint)
 
 
-class RemoteInterface(six.with_metaclass(RemoteInterfaceClass, interface.Interface)):
+@six.add_metaclass(RemoteInterfaceClass)
+class RemoteInterface(interface.Interface):
     pass
Details
python develop-inst-noop: /Users/jaraco/code/public/foolscap
python installed: attrs==20.3.0,Automat==20.2.0,cffi==1.14.4,constantly==15.1.0,cryptography==3.3.1,-e git+gh://warner/foolscap@a57be96e8245b41975982100a4661e231e8a8834#egg=foolscap,hyperlink==20.0.1,idna==2.10,incremental==17.5.0,mock==4.0.3,pyasn1==0.4.8,pyasn1-modules==0.2.8,pycparser==2.20,pyflakes==2.2.0,PyHamcrest==2.0.2,pyOpenSSL==20.0.1,service-identity==18.1.0,six==1.15.0,Twisted==20.3.0,txtorcon==20.0.0,zope.interface==5.2.0
python run-test-pre: PYTHONHASHSEED='2533493863'
python run-test: commands[0] | pyflakes setup.py src
python run-test: commands[1] | trial foolscap
foolscap
  test
    test__versions ...                                                  [ERROR]
    test_appserver ...                                                  [ERROR]
foolscap.test.test_banana
  ByteStream
    test_list ...                                                          [OK]
    test_ref6 ...                                                          [OK]
  DecodeFailureTest
    testCheckToken1 ...                                                    [OK]
    testCheckToken2 ...                                                    [OK]
    testCheckToken3 ...                                                    [OK]
    testCheckToken4 ...                                                    [OK]
    testCheckToken5 ...                                                    [OK]
    testDoOpen1 ...                                                        [OK]
    testDoOpen2 ...                                                        [OK]
    testFinish1 ...                                                        [OK]
    testFinish2 ...                                                        [OK]
    testLongHeader ...                                                     [OK]
    testLongHeader2 ...                                                    [OK]
    testReceiveChild1 ...                                                  [OK]
    testReceiveChild2 ...                                                  [OK]
    testReceiveChild3 ...                                                  [OK]
    testReceiveClose1 ...                                                  [OK]
    testReceiveClose2 ...                                                  [OK]
    testStart1 ...                                                         [OK]
    testStart2 ...                                                         [OK]
    testSuccess1 ...                                                       [OK]
  DecodeTest
    test_aborted_list ...                                                  [OK]
    test_aborted_list2 ...                                                 [OK]
    test_aborted_list3 ...                                                 [OK]
    test_dict ...                                                          [OK]
    test_dict_with_duplicate_keys ...                                      [OK]
    test_dict_with_list ...                                                [OK]
    test_dict_with_mutable_key ...                                         [OK]
    test_dict_with_tuple_as_key ...                                        [OK]
    test_failed_dict1 ...                                                  [OK]
    test_failed_dict2 ...                                                  [OK]
    test_failed_dict3 ...                                                  [OK]
    test_failed_dict4 ...                                                  [OK]
    test_failed_dict5 ...                                                  [OK]
    test_list_with_tuple ...                                               [OK]
    test_nested_list ...                                                   [OK]
    test_ref1 ...                                                          [OK]
    test_ref2 ...                                                          [OK]
    test_ref3 ...                                                          [OK]
    test_ref4 ...                                                          [OK]
    test_ref5 ...                                                          [OK]
    test_ref6 ...                                                          [OK]
    test_simple_list ...                                                   [OK]
  EncodeFailureTest
    test1 ...                                                              [OK]
    test2 ...                                                              [OK]
    test3 ...                                                              [OK]
    test4 ...                                                              [OK]
    test5 ...                                                              [OK]
    testSuccess1 ...                                                       [OK]
    testSuccessStreaming ...                                               [OK]
  EncodeTest
    testDict ...                                                           [OK]
    testList ...                                                           [OK]
    testNestedList ...                                                     [OK]
    testNestedList2 ...                                                    [OK]
    testTuple ...                                                          [OK]
    test_ref1 ...                                                          [OK]
    test_ref2 ...                                                          [OK]
    test_ref3 ...                                                          [OK]
    test_ref4 ...                                                          [OK]
    test_ref6 ...                                                          [OK]
    test_refdict1 ...                                                      [OK]
  InboundByteStream
    testBool ...                                                           [OK]
    testDict ...                                                           [OK]
    testInt ...                                                            [OK]
    testList ...                                                           [OK]
    testLong ...                                                           [OK]
    testString ...                                                         [OK]
    testTuple ...                                                          [OK]
  InboundByteStream2
    testConstrainedBool ...                                                [OK]
    testConstrainedDict ...                                                [OK]
    testConstrainedInt ...                                                 [OK]
    testConstrainedList ...                                                [OK]
    testConstrainedString ...                                              [OK]
    testConstrainedTuple ...                                               [OK]
  Sliceable
    testAdapter ...                                                        [OK]
    testDirect ...                                                         [OK]
  ThereAndBackAgain
    testIdentity ...                                                       [OK]
    testStressReferences ...                                               [OK]
    testUnicode ...                                                        [OK]
    test_bigint ...                                                        [OK]
    test_bool ...                                                          [OK]
    test_cycles_1 ...                                                      [OK]
    test_cycles_2 ...                                                      [OK]
    test_decimal ...                                                       [OK]
    test_dict ...                                                          [OK]
    test_float ...                                                         [OK]
    test_int ...                                                           [OK]
    test_list ...                                                          [OK]
    test_none ...                                                          [OK]
    test_set ...                                                           [OK]
    test_string ...                                                        [OK]
    test_tuple ...                                                         [OK]
    test_unicode ...                                                       [OK]
  VocabTest1
    test_incoming1 ...                                                     [OK]
    test_outgoing ...                                                      [OK]
    test_table_hashes ...                                                  [OK]
  VocabTest2
    test_loop ...                                                          [OK]
foolscap
  test
    test_call ...                                                       [ERROR]
    test_connection ...                                                 [ERROR]
    test_copyable ...                                                   [ERROR]
    test_crypto ...                                                     [ERROR]
foolscap.test.test_eventual
  TestEventual
    testFire ...                                                           [OK]
    testFlush ...                                                          [OK]
    testSend ...                                                           [OK]
foolscap
  test
    test_gifts ...                                                      [ERROR]
    test_info ...                                                       [ERROR]
    test_interfaces ...                                                 [ERROR]
    test_keepalive ...                                                  [ERROR]
    test_listener ...                                                   [ERROR]
    test_logging ...                                                    [ERROR]
    test_loopback ...                                                   [ERROR]
    test_negotiate ...                                                  [ERROR]
foolscap.test.test_observer
  Observer
    test_oneshot ...                                                       [OK]
foolscap
  test
    test_pb ...                                                         [ERROR]
foolscap.test.test_promise
  Call
    testResolveAfter ...                                                   [OK]
    testResolveBefore ...                                                  [OK]
    testResolveFailure ...                                                 [OK]
  Chained
    testChained1 ...                                                       [OK]
    testChained2 ...                                                       [OK]
    testResolveToABrokenPromise ...                                        [OK]
    testResolveToAPromise ...                                              [OK]
  Send
    testBadName ...                                                        [OK]
    testBasic ...                                                          [OK]
    testBasicFailure ...                                                   [OK]
    testDisableDataflowStyle ...                                           [OK]
    testFailure ...                                                        [OK]
    testNoMultipleResolution ...                                           [OK]
    testOrdering ...                                                       [OK]
    testResolveAfter ...                                                   [OK]
    testResolveBefore ...                                                  [OK]
    testResolveFailure ...                                                 [OK]
    testSend ...                                                           [OK]
  SendOnly
    testNear ...                                                           [OK]
    testResolveAfter ...                                                   [OK]
    testResolveBefore ...                                                  [OK]
foolscap
  test
    test_reconnector ...                                                [ERROR]
    test_reference ...                                                  [ERROR]
    test_registration ...                                               [ERROR]
    test_schema ...                                                     [ERROR]
    test_serialize ...                                                  [ERROR]
foolscap.test.test_stringchain
  T
    test_al ...                                                            [OK]
    test_appendleft ...                                                    [OK]
    test_clear ...                                                         [OK]
    test_popleft ...                                                       [OK]
    test_popleft_new_stringchain ...                                       [OK]
    test_str ...                                                           [OK]
    test_tailignored ...                                                   [OK]
    test_trim ...                                                          [OK]
foolscap
  test
    test_sturdyref ...                                                  [ERROR]
    test_tub ...                                                        [ERROR]
    test_unreachable ...                                                [ERROR]
foolscap.test.test_util
  AllocatePort
    test_allocate ...                                                      [OK]
  AsyncAND
    test_empty ...                                                         [OK]
    test_one_failure_1 ...                                                 [OK]
    test_one_failure_2 ...                                                 [OK]
    test_simple ...                                                        [OK]
    test_two ...                                                           [OK]
    test_two_failure ...                                                   [OK]
  Base32
    test_digest32 ...                                                      [OK]
    test_is_base32 ...                                                     [OK]
  Time
    test_format ...                                                        [OK]

===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test__versions.py", line 9, in <module>
    from foolscap.api import __version__
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test__versions
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_appserver.py", line 8, in <module>
    from foolscap.api import Tub, eventually
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_appserver
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_call.py", line 18, in <module>
    from foolscap.test.common import HelperTarget, TargetMixin, ShouldFailMixin
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/common.py", line 11, in <module>
    from foolscap import broker, eventual, negotiate
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_call
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_connection.py", line 11, in <module>
    from foolscap.api import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_connection
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_copyable.py", line 5, in <module>
    from foolscap.test.common import TargetMixin, HelperTarget
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/common.py", line 11, in <module>
    from foolscap import broker, eventual, negotiate
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_copyable
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_crypto.py", line 7, in <module>
    from foolscap import pb
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_crypto
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_gifts.py", line 6, in <module>
    from foolscap.api import RemoteInterface, Referenceable, flushEventualQueue, \
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_gifts
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_info.py", line 6, in <module>
    from foolscap.api import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_info
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_interfaces.py", line 7, in <module>
    from foolscap import schema, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_interfaces
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_keepalive.py", line 7, in <module>
    from foolscap.api import DeadReferenceError, flushEventualQueue
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_keepalive
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_listener.py", line 5, in <module>
    from foolscap.api import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_listener
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_logging.py", line 19, in <module>
    from foolscap.logging import gatherer, log, tail, incident, cli, web, \
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/gatherer.py", line 12, in <module>
    from foolscap.api import Tub, Referenceable
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_logging
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_loopback.py", line 4, in <module>
    from foolscap.test.common import HelperTarget, MakeTubsMixin
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/common.py", line 11, in <module>
    from foolscap import broker, eventual, negotiate
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_loopback
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_negotiate.py", line 8, in <module>
    from foolscap import negotiate, tokens
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_negotiate
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_pb.py", line 16, in <module>
    from foolscap import referenceable
  File "/Users/jaraco/code/public/foolscap/src/foolscap/referenceable.py", line 18, in <module>
    from foolscap import ipb, slicer, tokens, call
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_pb
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_reconnector.py", line 5, in <module>
    from foolscap.api import Tub, eventually, flushEventualQueue
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_reconnector
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_reference.py", line 5, in <module>
    from foolscap.test.common import HelperTarget, Target, ShouldFailMixin
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/common.py", line 11, in <module>
    from foolscap import broker, eventual, negotiate
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_reference
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_registration.py", line 6, in <module>
    from foolscap.api import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_registration
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_schema.py", line 4, in <module>
    from foolscap import schema, copyable, broker
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_schema
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_serialize.py", line 8, in <module>
    from foolscap.api import Referenceable, Copyable, RemoteCopy, \
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_serialize
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_sturdyref.py", line 3, in <module>
    from foolscap.referenceable import SturdyRef
  File "/Users/jaraco/code/public/foolscap/src/foolscap/referenceable.py", line 18, in <module>
    from foolscap import ipb, slicer, tokens, call
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_sturdyref
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_tub.py", line 11, in <module>
    from foolscap.api import Tub, SturdyRef, Referenceable
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_tub
===============================================================================
[ERROR]
Traceback (most recent call last):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/trial/runner.py", line 531, in loadPackage
    module = modinfo.load()
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/modules.py", line 392, in load
    return self.pathEntry.pythonPath.moduleLoader(self.name)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 308, in namedAny
    topLevelPackage = _importAndCheckStack(trialname)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/twisted/python/reflect.py", line 247, in _importAndCheckStack
    return __import__(importName)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/test/test_unreachable.py", line 4, in <module>
    from foolscap.api import Tub, Referenceable
  File "/Users/jaraco/code/public/foolscap/src/foolscap/api.py", line 16, in <module>
    from foolscap.pb import Tub
  File "/Users/jaraco/code/public/foolscap/src/foolscap/pb.py", line 14, in <module>
    from foolscap import ipb, base32, negotiate, broker, eventual, storage
  File "/Users/jaraco/code/public/foolscap/src/foolscap/negotiate.py", line 10, in <module>
    from foolscap import broker, referenceable, vocab
  File "/Users/jaraco/code/public/foolscap/src/foolscap/broker.py", line 17, in <module>
    from foolscap import call, slicer, referenceable, copyable, remoteinterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/call.py", line 11, in <module>
    from foolscap.logging import log
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/log.py", line 9, in <module>
    from foolscap.logging.interfaces import IIncidentReporter
  File "/Users/jaraco/code/public/foolscap/src/foolscap/logging/interfaces.py", line 3, in <module>
    from foolscap.remoteinterface import RemoteInterface
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 413, in <module>
    class RemoteInterface(interface.Interface):
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/six.py", line 878, in wrapper
    return metaclass(cls.__name__, cls.__bases__, orig_vars)
  File "/Users/jaraco/code/public/foolscap/src/foolscap/remoteinterface.py", line 44, in __init__
    interface.InterfaceClass.__init__(self, iname, bases, attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 787, in __init__
    self.__attrs = self.__compute_attrs(attrs)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 805, in __compute_attrs
    return {
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 806, in <dictcomp>
    aname: update_value(aname, aval)
  File "/Users/jaraco/code/public/foolscap/.tox/python/lib/python3.9/site-packages/zope/interface/interface.py", line 802, in update_value
    raise InvalidInterface("Concrete attribute, " + aname)
zope.interface.exceptions.InvalidInterface: Concrete attribute, _Element__tagged_values

foolscap.test.test_unreachable
-------------------------------------------------------------------------------
Ran 163 tests in 0.120s

FAILED (errors=23, successes=140)
ERROR: InvocationError for command /Users/jaraco/code/public/foolscap/.tox/python/bin/trial foolscap (exited with code 1)
___________________________________ summary ____________________________________
ERROR:   python: commands failed

The way I read that error message, the Interface class already was instrumented in such a way that the intermediate class that gets created when using add_metaclass is invalid. It's similar, though subtly different from the limitation with draft documentation in benjaminp/six#168.

Unfortunately, the history behind the addition of add_metaclass over with_metaclass seems to have been lost in the retirement of Bitbucket.

My instinct here is that this code works well enough and attempting the alternate approach causes the tests to fail, so there's not a whole lot more to say. I'll add a comment linking to this discussion for those interested in more background.

(682def4)