Преглед на файлове

fix #8828: correct the signature of __set_name__ as cython 3.1 added support

the code calling it is left in place for now to ensure function with older cython
Ronny Pfannschmidt преди 3 седмици
родител
ревизия
8b313048bd
променени са 1 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 3 3
      src/borg/item.pyx

+ 3 - 3
src/borg/item.pyx

@@ -238,7 +238,7 @@ cdef class PropDictProperty:
         except KeyError:
             raise AttributeError(self.attr_error_msg) from None
 
-    cpdef __set_name__(self, name):
+    cpdef __set_name__(self, owner, name):
        self.key = name
        self.__doc__ = "%s (%s)" % (name, self.value_type_name)
        self.type_error_msg = "%s value must be %s" % (name, self.value_type_name)
@@ -613,12 +613,12 @@ cdef class ManifestItem(PropDict):
 
 cpdef _init_names():
     """
-    re-implements python __set_name__
+    re-implements python __set_name__ for Cython<3.1
     """
     for cls in PropDict.__subclasses__():
         for name, value in vars(cls).items():
             if isinstance(value, PropDictProperty):
-                value.__set_name__(name)
+                value.__set_name__(cls, name)
 
 _init_names()