# HG changeset patch # User Raphaël Gomès # Date 2024-10-24 16:58:58 # Node ID 7862a5ac35cf1528a4efbc72c07076741fd16197 # Parent 0b17a0578a486739075d8245fbef8473e1c23e80 zope-interface: add compatibility with 3.13 compiler attributes We could follow-up with an actual vendoring update from the newest version of zope-interface in the new cycle since we're dropping 3.7 and down. However we are also in the process of replacing zope-interface with Protocol, so hopefully we can simply drop the zope-interface vendoring. diff --git a/mercurial/thirdparty/zope/interface/interface.py b/mercurial/thirdparty/zope/interface/interface.py --- a/mercurial/thirdparty/zope/interface/interface.py +++ b/mercurial/thirdparty/zope/interface/interface.py @@ -352,7 +352,14 @@ class InterfaceClass(Element, InterfaceB # Make sure that all recorded attributes (and methods) are of type # `Attribute` and `Method` for name, attr in list(attrs.items()): - if name in ('__locals__', '__qualname__', '__annotations__'): + compiler_attributes = ( + '__locals__', + '__qualname__', + '__annotations__', + '__firstlineno__', + '__static_attributes__', + ) + if name in compiler_attributes: # __locals__: Python 3 sometimes adds this. # __qualname__: PEP 3155 (Python 3.3+) # __annotations__: PEP 3107 (Python 3.0+)