Offset 1877, 22 lines modifiedOffset 1877, 37 lines modified
1877 static·__Pyx_CachedCodeObjectType·*__pyx_find_code_object(int·code_line);1877 static·__Pyx_CachedCodeObjectType·*__pyx_find_code_object(int·code_line);
1878 static·void·__pyx_insert_code_object(int·code_line,·__Pyx_CachedCodeObjectType*·code_object);1878 static·void·__pyx_insert_code_object(int·code_line,·__Pyx_CachedCodeObjectType*·code_object);
  
1879 /*·AddTraceback.proto·*/1879 /*·AddTraceback.proto·*/
1880 static·void·__Pyx_AddTraceback(const·char·*funcname,·int·c_line,1880 static·void·__Pyx_AddTraceback(const·char·*funcname,·int·c_line,
1881 ·······························int·py_line,·const·char·*filename);1881 ·······························int·py_line,·const·char·*filename);
  
1882 /*·PyObjectCallMethod0.proto·*/ 
1883 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod0(PyObject*·obj,·PyObject*·method_name);1882 /*·CopyObjectArray.proto·*/
 1883 #if·CYTHON_COMPILING_IN_CPYTHON
 1884 static·CYTHON_INLINE·void·__Pyx_copy_object_array(PyObject·*const·*CYTHON_RESTRICT·src,·PyObject**·CYTHON_RESTRICT·dest,·Py_ssize_t·length);
 1885 #endif
  
1884 /*·GetTypeDictOffset.proto·*/ 
1885 #if·!CYTHON_USE_TYPE_SLOTS 
1886 CYTHON_UNUSED·static·Py_ssize_t·__Pyx_GetTypeDictOffset(PyObject·*tp,·int·require_cython_valid_result);1886 /*·PyObjectCall.proto·*/
 1887 #if·CYTHON_COMPILING_IN_CPYTHON
 1888 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_Call(PyObject·*func,·PyObject·*arg,·PyObject·*kw);
 1889 #else
 1890 #define·__Pyx_PyObject_Call(func,·arg,·kw)·PyObject_Call(func,·arg,·kw)
 1891 #endif
  
 1892 /*·PyObjectCallMethO.proto·*/
 1893 #if·CYTHON_COMPILING_IN_CPYTHON
 1894 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethO(PyObject·*func,·PyObject·*arg);
1887 #endif1895 #endif
  
 1896 /*·IncludeStringH.proto·*/
 1897 #include·<string.h>
  
 1898 /*·GetVTable.proto·*/
 1899 static·int·__Pyx_GetVtable(PyTypeObject·*type,·void**·table);
  
1888 /*·FormatTypeName.proto·*/1900 /*·FormatTypeName.proto·*/
1889 #if·CYTHON_COMPILING_IN_LIMITED_API·&&·__PYX_LIMITED_VERSION_HEX·>=·0x030d00001901 #if·CYTHON_COMPILING_IN_LIMITED_API·&&·__PYX_LIMITED_VERSION_HEX·>=·0x030d0000
1890 typedef·PyObject·*__Pyx_TypeName;1902 typedef·PyObject·*__Pyx_TypeName;
1891 #define·__Pyx_FMT_TYPENAME·"%N"1903 #define·__Pyx_FMT_TYPENAME·"%N"
1892 #define·__Pyx_PyType_GetFullyQualifiedName(tp)·Py_NewRef((PyObject*)tp)1904 #define·__Pyx_PyType_GetFullyQualifiedName(tp)·Py_NewRef((PyObject*)tp)
1893 #define·__Pyx_DECREF_TypeName(obj)·Py_DECREF(obj)1905 #define·__Pyx_DECREF_TypeName(obj)·Py_DECREF(obj)
1894 #elif·CYTHON_COMPILING_IN_LIMITED_API1906 #elif·CYTHON_COMPILING_IN_LIMITED_API
Offset 1903, 59 lines modifiedOffset 1918, 38 lines modified
1903 #else··//·!LIMITED_API1918 #else··//·!LIMITED_API
1904 typedef·const·char·*__Pyx_TypeName;1919 typedef·const·char·*__Pyx_TypeName;
1905 #define·__Pyx_FMT_TYPENAME·"%.200s"1920 #define·__Pyx_FMT_TYPENAME·"%.200s"
1906 #define·__Pyx_PyType_GetFullyQualifiedName(tp)·((tp)->tp_name)1921 #define·__Pyx_PyType_GetFullyQualifiedName(tp)·((tp)->tp_name)
1907 #define·__Pyx_DECREF_TypeName(obj)1922 #define·__Pyx_DECREF_TypeName(obj)
1908 #endif1923 #endif
  
1909 /*·IgnoreException.proto·*/ 
1910 static·CYTHON_INLINE·int·__Pyx_IgnoreGivenException(PyObject·*given_exception,·PyObject·*ignorable_exception); 
1911 #define·__Pyx_IgnoreException(ignorable_exception)·__Pyx_IgnoreGivenException(NULL,·ignorable_exception) 
  
1912 /*·CheckUnpickleChecksumError.export·*/ 
1913 static·void·__Pyx_RaiseUnpickleChecksumError(long·checksum,·long·checksum1,·long·checksum2,·long·checksum3,·const·char·*members); 
  
1914 /*·PyObjectCallMethod1.proto·*/ 
1915 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod1(PyObject*·obj,·PyObject*·method_name,·PyObject*·arg); 
  
1916 /*·AddModuleRef.proto·*/1924 /*·AddModuleRef.proto·*/
1917 #if·((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING·&&·PY_VERSION_HEX·<·0x030F00a3)·||\1925 #if·((CYTHON_COMPILING_IN_CPYTHON_FREETHREADING·&&·PY_VERSION_HEX·<·0x030F00a3)·||\
1918 ·····__PYX_LIMITED_VERSION_HEX·<·0x030d0000)1926 ·····__PYX_LIMITED_VERSION_HEX·<·0x030d0000)
1919 ··static·PyObject·*__Pyx_PyImport_AddModuleRef(const·char·*name);1927 ··static·PyObject·*__Pyx_PyImport_AddModuleRef(const·char·*name);
1920 #else1928 #else
1921 ··#define·__Pyx_PyImport_AddModuleRef(name)·PyImport_AddModuleRef(name)1929 ··#define·__Pyx_PyImport_AddModuleRef(name)·PyImport_AddModuleRef(name)
1922 #endif1930 #endif
  
1923 /*·IncludeStringH.proto·*/ 
1924 #include·<string.h> 
  
1925 /*·VerifyCachedType.proto·*/1931 /*·VerifyCachedType.proto·*/
1926 static·int·__Pyx_VerifyCachedType(PyObject·*cached_type,1932 static·int·__Pyx_VerifyCachedType(PyObject·*cached_type,
1927 ·······························const·char·*name,1933 ·······························const·char·*name,
1928 ·······························Py_ssize_t·expected_basicsize);1934 ·······························Py_ssize_t·expected_basicsize);
  
 1935 /*·IgnoreException.proto·*/
 1936 static·CYTHON_INLINE·int·__Pyx_IgnoreGivenException(PyObject·*given_exception,·PyObject·*ignorable_exception);
 1937 #define·__Pyx_IgnoreException(ignorable_exception)·__Pyx_IgnoreGivenException(NULL,·ignorable_exception)
  
1929 /*·CallTypeTraverse.proto·*/1938 /*·CallTypeTraverse.proto·*/
1930 #if·!CYTHON_USE_TYPE_SPECS1939 #if·!CYTHON_USE_TYPE_SPECS
1931 #define·__Pyx_call_type_traverse(o,·always_call,·visit,·arg)·01940 #define·__Pyx_call_type_traverse(o,·always_call,·visit,·arg)·0
1932 #else1941 #else
1933 static·int·__Pyx_call_type_traverse(PyObject·*o,·int·always_call,·visitproc·visit,·void·*arg);1942 static·int·__Pyx_call_type_traverse(PyObject·*o,·int·always_call,·visitproc·visit,·void·*arg);
1934 #endif1943 #endif
  
1935 /*·PyObjectCall.proto·*/ 
1936 #if·CYTHON_COMPILING_IN_CPYTHON 
1937 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_Call(PyObject·*func,·PyObject·*arg,·PyObject·*kw); 
1938 #else 
1939 #define·__Pyx_PyObject_Call(func,·arg,·kw)·PyObject_Call(func,·arg,·kw) 
1940 #endif 
  
1941 /*·PyObjectCallMethO.proto·*/ 
1942 #if·CYTHON_COMPILING_IN_CPYTHON 
1943 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethO(PyObject·*func,·PyObject·*arg); 
1944 #endif 
  
1945 /*·py_dict_items.proto·*/1944 /*·py_dict_items.proto·*/
1946 #define·__Pyx_PyDict_items_TypePtr··(&PyDictKeys_Type)1945 #define·__Pyx_PyDict_items_TypePtr··(&PyDictKeys_Type)
1947 #define·__Pyx_PyDict_items_Check(obj)··PyObject_TypeCheck((obj),·__Pyx_PyDictItems_TypePtr)1946 #define·__Pyx_PyDict_items_Check(obj)··PyObject_TypeCheck((obj),·__Pyx_PyDictItems_TypePtr)
1948 #define·__Pyx_PyDict_items_CheckExact(obj)··Py_IS_TYPE((obj),·__Pyx_PyDictItems_TypePtr)1947 #define·__Pyx_PyDict_items_CheckExact(obj)··Py_IS_TYPE((obj),·__Pyx_PyDictItems_TypePtr)
1949 static·CYTHON_INLINE·PyObject*·__Pyx_PyDict_Items(PyObject*·d);1948 static·CYTHON_INLINE·PyObject*·__Pyx_PyDict_Items(PyObject*·d);
  
1950 /*·CallCFunction.proto·(used·by·CallUnboundCMethod0)·*/1949 /*·CallCFunction.proto·(used·by·CallUnboundCMethod0)·*/
Offset 2024, 74 lines modifiedOffset 2018, 60 lines modified
  
2024 /*·py_dict_values.proto·*/2018 /*·py_dict_values.proto·*/
2025 #define·__Pyx_PyDict_values_TypePtr··(&PyDictKeys_Type)2019 #define·__Pyx_PyDict_values_TypePtr··(&PyDictKeys_Type)
2026 #define·__Pyx_PyDict_values_Check(obj)··PyObject_TypeCheck((obj),·__Pyx_PyDictValues_TypePtr)2020 #define·__Pyx_PyDict_values_Check(obj)··PyObject_TypeCheck((obj),·__Pyx_PyDictValues_TypePtr)
2027 #define·__Pyx_PyDict_values_CheckExact(obj)··Py_IS_TYPE((obj),·__Pyx_PyDictValues_TypePtr)2021 #define·__Pyx_PyDict_values_CheckExact(obj)··Py_IS_TYPE((obj),·__Pyx_PyDictValues_TypePtr)
2028 static·CYTHON_INLINE·PyObject*·__Pyx_PyDict_Values(PyObject*·d);2022 static·CYTHON_INLINE·PyObject*·__Pyx_PyDict_Values(PyObject*·d);
  
2029 /*·CalculateMetaclass.proto·*/ 
2030 static·PyObject·*__Pyx_CalculateMetaclass(PyTypeObject·*metaclass,·PyObject·*bases); 
  
2031 /*·CopyObjectArray.proto·*/ 
2032 #if·CYTHON_COMPILING_IN_CPYTHON 
2033 static·CYTHON_INLINE·void·__Pyx_copy_object_array(PyObject·*const·*CYTHON_RESTRICT·src,·PyObject**·CYTHON_RESTRICT·dest,·Py_ssize_t·length); 
2034 #endif 
  
2035 /*·GetVTable.proto·*/ 
2036 static·int·__Pyx_GetVtable(PyTypeObject·*type,·void**·table); 
  
2037 /*·RaiseArgTupleInvalid.export·*/2023 /*·RaiseArgTupleInvalid.export·*/
2038 static·void·__Pyx_RaiseArgtupleInvalid(const·char*·func_name,·int·exact,2024 static·void·__Pyx_RaiseArgtupleInvalid(const·char*·func_name,·int·exact,
2039 ····Py_ssize_t·num_min,·Py_ssize_t·num_max,·Py_ssize_t·num_found);2025 ····Py_ssize_t·num_min,·Py_ssize_t·num_max,·Py_ssize_t·num_found);
  
2040 /*·RaiseDoubleKeywords.proto·*/2026 /*·RaiseDoubleKeywords.proto·*/
2041 static·void·__Pyx_RaiseDoubleKeywordsError(const·char*·func_name,·PyObject*·kw_name);2027 static·void·__Pyx_RaiseDoubleKeywordsError(const·char*·func_name,·PyObject*·kw_name);
  
 2028 /*·CalculateMetaclass.proto·*/
 2029 static·PyObject·*__Pyx_CalculateMetaclass(PyTypeObject·*metaclass,·PyObject·*bases);
2042 /*·RaiseErrorWithObjectType.proto·(used·by·ValidateBasesTuple)·*/ 
2043 #define·__Pyx_RaiseTypeErrorWithObjectType(message,·obj)··__Pyx_RaiseErrorWithObjectType(PyExc_TypeError,·message,·obj) 
2044 #define·__Pyx_RaiseErrorWithObjectType(exc_type,·message,·obj)··__Pyx_RaiseErrorWithType(exc_type,·message,·Py_TYPE(obj)) 
2045 CYTHON_UNUSED 
2046 static·void·__Pyx_RaiseErrorWithType(PyObject*·exc_type,·const·char*·message,·PyTypeObject·*type_obj); 
  
 2030 /*·PyObjectCallMethod0.proto·*/
 2031 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod0(PyObject*·obj,·PyObject*·method_name);
2047 /*·RaiseErrorWithObjectType1.proto·(used·by·ValidateBasesTuple)·*/ 
2048 #define·__Pyx_RaiseTypeErrorWithObjectType1(message,·arg,·obj)·__Pyx_RaiseErrorWithObjectType1(PyExc_TypeError,·message,·arg,·obj) 
2049 #define·__Pyx_RaiseErrorWithObjectType1(exc_type,·message,·arg,·obj)·__Pyx_RaiseErrorWithType1(exc_type,·message,·arg,·Py_TYPE(obj)) 
2050 CYTHON_UNUSED 
2051 static·void·__Pyx_RaiseErrorWithType1(PyObject*·exc_type,·const·char*·message,·const·char·*arg,·PyTypeObject·*type_obj); 
  
2052 /*·ValidateBasesTuple.proto·(used·by·PyType_Ready)·*/ 
2053 #if·CYTHON_COMPILING_IN_CPYTHON·||·CYTHON_COMPILING_IN_LIMITED_API·||·CYTHON_USE_TYPE_SPECS 
2054 static·int·__Pyx_validate_bases_tuple(const·char·*type_name,·int·has_dictoffset,·PyObject·*bases);2032 /*·GetTypeDictOffset.proto·*/
 2033 #if·!CYTHON_USE_TYPE_SLOTS
 2034 CYTHON_UNUSED·static·Py_ssize_t·__Pyx_GetTypeDictOffset(PyObject·*tp,·int·require_cython_valid_result);
2055 #endif2035 #endif
  
2056 /*·PyType_Ready.export·*/ 
2057 CYTHON_UNUSED·static·int·__Pyx_PyType_Ready(PyTypeObject·*t);2036 /*·CheckUnpickleChecksumError.export·*/
 2037 static·void·__Pyx_RaiseUnpickleChecksumError(long·checksum,·long·checksum1,·long·checksum2,·long·checksum3,·const·char·*members);
  
 2038 /*·PyObjectCallMethod1.proto·*/
 2039 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod1(PyObject*·obj,·PyObject*·method_name,·PyObject*·arg);
2058 /*·LimitedApiGetTypeTypeDict.proto·*/ 
2059 #if·CYTHON_COMPILING_IN_LIMITED_API 
2060 static·PyObject·*__Pyx_GetTypeTypeDict(PyTypeObject·*tp); 
2061 #endif 
  
2062 /*·DelItemOnTypeDict.proto·(used·by·SetupReduce)·*/ 
2063 #define·__Pyx_DelItemOnTypeDict(tp,·k)·__Pyx__DelItemOnTypeDict((PyTypeObject*)tp,·k)2040 /*·RaiseException.export·*/
 2041 static·void·__Pyx_Raise(PyObject·*type,·PyObject·*value,·PyObject·*tb,·PyObject·*cause);
  
2064 /*·DelItemOnTypeDict.export·*/ 
2065 static·int·__Pyx__DelItemOnTypeDict(PyTypeObject·*tp,·PyObject·*k);2042 /*·HasAttr.proto·(used·by·ImportImpl)·*/
 2043 #if·__PYX_LIMITED_VERSION_HEX·>=·0x030d0000
 2044 #define·__Pyx_HasAttr(o,·n)··PyObject_HasAttrWithError(o,·n)
 2045 #else
 2046 static·CYTHON_INLINE·int·__Pyx_HasAttr(PyObject·*,·PyObject·*);
 2047 #endif
  
2066 /*·SetItemOnTypeDict.proto·(used·by·SetupReduce)·*/ 
2067 #define·__Pyx_SetItemOnTypeDict(tp,·k,·v)·__Pyx__SetItemOnTypeDict((PyTypeObject*)tp,·k,·v)2048 /*·TupleOrListFromArrayImpl.proto·(used·by·ListFromArray)·*/
 2049 CYTHON_UNUSED·static·PyObject·*
 2050 __Pyx_PyList_FromArray(PyObject·*const·*src,·Py_ssize_t·n);
  
 2051 /*·ListFromArray.proto·(used·by·ImportImpl)·*/
2068 /*·SetItemOnTypeDict.export·*/ 
2069 static·int·__Pyx__SetItemOnTypeDict(PyTypeObject·*tp,·PyObject·*k,·PyObject·*v); 
  
2070 /*·SetupReduce.export·*/ 
2071 static·int·__Pyx_setup_reduce(PyObject*·type_obj); 
  
2072 /*·ValidateExternBase.export·*/ 
2073 static·int·__Pyx_validate_extern_base(PyTypeObject·*base);2052 /*·ImportImpl.export·*/
 2053 static·PyObject·*__Pyx__Import(PyObject·*name,·PyObject·*const·*imported_names,·Py_ssize_t·len_imported_names,·PyObject·*qualname,·PyObject·*moddict,·int·level);
  
 2054 /*·ImportFrom.export·*/
 2055 static·PyObject*·__Pyx_ImportFrom(PyObject*·module,·PyObject*·name);
  
2074 /*·FetchSharedCythonModule.proto·(used·by·FetchCommonType)·*/2056 /*·FetchSharedCythonModule.proto·(used·by·FetchCommonType)·*/
2075 static·PyObject·*__Pyx_FetchSharedCythonABIModule(void);2057 static·PyObject·*__Pyx_FetchSharedCythonABIModule(void);
  
2076 /*·FetchCommonType.proto·(used·by·CommonTypesMetaclass)·*/2058 /*·FetchCommonType.proto·(used·by·CommonTypesMetaclass)·*/
2077 static·PyTypeObject*·__Pyx_FetchCommonTypeFromSpec(PyTypeObject·*metaclass,·PyObject·*module,·PyType_Spec·*spec,·PyObject·*bases);2059 static·PyTypeObject*·__Pyx_FetchCommonTypeFromSpec(PyTypeObject·*metaclass,·PyObject·*module,·PyType_Spec·*spec,·PyObject·*bases);
  
Offset 2215, 87 lines modifiedOffset 2195, 84 lines modified
2215 #if·CYTHON_VECTORCALL2195 #if·CYTHON_VECTORCALL
2216 static·PyObject·*·__Pyx_CyFunction_Vectorcall_NOARGS(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);2196 static·PyObject·*·__Pyx_CyFunction_Vectorcall_NOARGS(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);
2217 static·PyObject·*·__Pyx_CyFunction_Vectorcall_O(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);2197 static·PyObject·*·__Pyx_CyFunction_Vectorcall_O(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);
2218 static·PyObject·*·__Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);2198 static·PyObject·*·__Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);
2219 static·PyObject·*·__Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);2199 static·PyObject·*·__Pyx_CyFunction_Vectorcall_FASTCALL_KEYWORDS_METHOD(PyObject·*func,·PyObject·*const·*args,·size_t·nargsf,·PyObject·*kwnames);
2220 #endif2200 #endif
  
2221 /*·UpdateUnpickledDict.export·*/ 
2222 static·int·__Pyx_UpdateUnpickledDict(PyObject·*obj,·PyObject·*state,·Py_ssize_t·index);2201 /*·RaiseErrorWithObjectTypes.proto·(used·by·MergeVTables)·*/
 2202 #define·__Pyx_RaiseErrorWithObjectTypes1(exc_type,·message,·arg,·obj1,·obj2)·__Pyx_RaiseErrorWithTypes1(exc_type,·message,·arg,·Py_TYPE(obj1),·Py_TYPE(obj2))
 2203 #define·__Pyx_RaiseTypeErrorWithObjectTypes(message,·obj1,·obj2)·__Pyx_RaiseTypeErrorWithTypes(message,·Py_TYPE(obj1),·Py_TYPE(obj2))
 2204 #define·__Pyx_RaiseTypeErrorWithTypes(message,·type_obj1,·type_obj2)·__Pyx_RaiseErrorWithTypes1(PyExc_TypeError,·"%.1s"·message,·"",·type_obj1,·type_obj2)
 2205 CYTHON_UNUSED
 2206 static·void·__Pyx_RaiseErrorWithTypes1(PyObject*·exc_type,·const·char·*message,·const·char·*arg,·PyTypeObject·*type_obj1,·PyTypeObject·*type_obj2);
  
2223 /*·FindInheritedMetaclass.proto·*/ 
2224 static·PyObject·*__Pyx_FindInheritedMetaclass(PyObject·*bases);2207 /*·MergeVTables.proto·*/
 2208 static·int·__Pyx_MergeVtables(PyTypeObject·*type);
  
2225 /*·pybuiltin_invalid.export·*/2209 /*·pybuiltin_invalid.export·*/
2226 static·void·__Pyx_PyBuiltin_Invalid(PyObject·*obj,·const·char·*builtin_type_name,·const·char·*argname);2210 static·void·__Pyx_PyBuiltin_Invalid(PyObject·*obj,·const·char·*builtin_type_name,·const·char·*argname);
  
2227 /*·RaiseException.export·*/ 
2228 static·void·__Pyx_Raise(PyObject·*type,·PyObject·*value,·PyObject·*tb,·PyObject·*cause);2211 /*·ArgTypeTestError.export·*/
 2212 static·void·__Pyx_ArgTypeError(PyObject·*obj,·PyTypeObject·*type,·const·char·*name,·int·exact);
  
 2213 /*·FindInheritedMetaclass.proto·*/
 2214 static·PyObject·*__Pyx_FindInheritedMetaclass(PyObject·*bases);
  
2229 /*·PyObjectLookupSpecial.proto·*/2215 /*·PyObjectLookupSpecial.proto·*/
2230 #if·CYTHON_USE_PYTYPE_LOOKUP·&&·CYTHON_USE_TYPE_SLOTS2216 #if·CYTHON_USE_PYTYPE_LOOKUP·&&·CYTHON_USE_TYPE_SLOTS
2231 #define·__Pyx_PyObject_LookupSpecialNoError(obj,·attr_name)··__Pyx__PyObject_LookupSpecial(obj,·attr_name,·0)2217 #define·__Pyx_PyObject_LookupSpecialNoError(obj,·attr_name)··__Pyx__PyObject_LookupSpecial(obj,·attr_name,·0)
2232 #define·__Pyx_PyObject_LookupSpecial(obj,·attr_name)··__Pyx__PyObject_LookupSpecial(obj,·attr_name,·1)2218 #define·__Pyx_PyObject_LookupSpecial(obj,·attr_name)··__Pyx__PyObject_LookupSpecial(obj,·attr_name,·1)
2233 static·CYTHON_INLINE·PyObject*·__Pyx__PyObject_LookupSpecial(PyObject*·obj,·PyObject*·attr_name,·int·with_error);2219 static·CYTHON_INLINE·PyObject*·__Pyx__PyObject_LookupSpecial(PyObject*·obj,·PyObject*·attr_name,·int·with_error);
2234 #else2220 #else
2235 #define·__Pyx_PyObject_LookupSpecialNoError(o,n)·__Pyx_PyObject_GetAttrStrNoError(o,n)2221 #define·__Pyx_PyObject_LookupSpecialNoError(o,n)·__Pyx_PyObject_GetAttrStrNoError(o,n)
2236 #define·__Pyx_PyObject_LookupSpecial(o,n)·__Pyx_PyObject_GetAttrStr(o,n)2222 #define·__Pyx_PyObject_LookupSpecial(o,n)·__Pyx_PyObject_GetAttrStr(o,n)
2237 #endif2223 #endif
  
2238 /*·RaiseErrorWithObjectTypes.proto·*/ 
2239 #define·__Pyx_RaiseErrorWithObjectTypes1(exc_type,·message,·arg,·obj1,·obj2)·__Pyx_RaiseErrorWithTypes1(exc_type,·message,·arg,·Py_TYPE(obj1),·Py_TYPE(obj2)) 
2240 #define·__Pyx_RaiseTypeErrorWithObjectTypes(message,·obj1,·obj2)·__Pyx_RaiseTypeErrorWithTypes(message,·Py_TYPE(obj1),·Py_TYPE(obj2))2224 /*·LimitedApiGetTypeTypeDict.proto·(used·by·DelItemOnTypeDict)·*/
 2225 #if·CYTHON_COMPILING_IN_LIMITED_API
 2226 static·PyObject·*__Pyx_GetTypeTypeDict(PyTypeObject·*tp);
 2227 #endif
  
 2228 /*·DelItemOnTypeDict.proto·(used·by·SetupReduce)·*/
 2229 #define·__Pyx_DelItemOnTypeDict(tp,·k)·__Pyx__DelItemOnTypeDict((PyTypeObject*)tp,·k)
  
 2230 /*·DelItemOnTypeDict.export·*/
 2231 static·int·__Pyx__DelItemOnTypeDict(PyTypeObject·*tp,·PyObject·*k);
  
 2232 /*·RaiseErrorWithObjectType.proto·(used·by·SetupReduce)·*/
2241 #define·__Pyx_RaiseTypeErrorWithTypes(message,·type_obj1,·type_obj2)·__Pyx_RaiseErrorWithTypes1(PyExc_TypeError,·"%.1s"·message,·"",·type_obj1,·type_obj2)2233 #define·__Pyx_RaiseTypeErrorWithObjectType(message,·obj)··__Pyx_RaiseErrorWithObjectType(PyExc_TypeError,·message,·obj)
 2234 #define·__Pyx_RaiseErrorWithObjectType(exc_type,·message,·obj)··__Pyx_RaiseErrorWithType(exc_type,·message,·Py_TYPE(obj))
2242 CYTHON_UNUSED2235 CYTHON_UNUSED
2243 static·void·__Pyx_RaiseErrorWithTypes1(PyObject*·exc_type,·const·char·*message,·const·char·*arg,·PyTypeObject·*type_obj1,·PyTypeObject·*type_obj2);2236 static·void·__Pyx_RaiseErrorWithType(PyObject*·exc_type,·const·char*·message,·PyTypeObject·*type_obj);
  
2244 /*·ImportFrom.export·*/ 
2245 static·PyObject*·__Pyx_ImportFrom(PyObject*·module,·PyObject*·name);2237 /*·SetItemOnTypeDict.proto·(used·by·SetupReduce)·*/
 2238 #define·__Pyx_SetItemOnTypeDict(tp,·k,·v)·__Pyx__SetItemOnTypeDict((PyTypeObject*)tp,·k,·v)
  
 2239 /*·SetItemOnTypeDict.export·*/
 2240 static·int·__Pyx__SetItemOnTypeDict(PyTypeObject·*tp,·PyObject·*k,·PyObject·*v);
  
 2241 /*·SetupReduce.export·*/
 2242 static·int·__Pyx_setup_reduce(PyObject*·type_obj);
  
2246 /*·JoinPyUnicode.proto·*/2243 /*·JoinPyUnicode.proto·*/
2247 #define·__Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH\2244 #define·__Pyx_PyUnicode_Join_CAN_USE_KIND_AND_LENGTH\
2248 ····(!CYTHON_COMPILING_IN_GRAAL·&&·!CYTHON_COMPILING_IN_PYPY·&&·!CYTHON_COMPILING_IN_LIMITED_API)2245 ····(!CYTHON_COMPILING_IN_GRAAL·&&·!CYTHON_COMPILING_IN_PYPY·&&·!CYTHON_COMPILING_IN_LIMITED_API)
  
2249 /*·JoinPyUnicode.export·*/2246 /*·JoinPyUnicode.export·*/
2250 static·PyObject*·__Pyx_PyUnicode_Join(PyObject**·values,·Py_ssize_t·value_count,·Py_ssize_t·result_ulength,·int·kind);2247 static·PyObject*·__Pyx_PyUnicode_Join(PyObject**·values,·Py_ssize_t·value_count,·Py_ssize_t·result_ulength,·int·kind);
  
 2248 /*·RaiseErrorWithObjectType1.proto·*/
 2249 #define·__Pyx_RaiseTypeErrorWithObjectType1(message,·arg,·obj)·__Pyx_RaiseErrorWithObjectType1(PyExc_TypeError,·message,·arg,·obj)
 2250 #define·__Pyx_RaiseErrorWithObjectType1(exc_type,·message,·arg,·obj)·__Pyx_RaiseErrorWithType1(exc_type,·message,·arg,·Py_TYPE(obj))
 2251 CYTHON_UNUSED
 2252 static·void·__Pyx_RaiseErrorWithType1(PyObject*·exc_type,·const·char*·message,·const·char·*arg,·PyTypeObject·*type_obj);
2251 /*·ArgTypeTestError.export·*/ 
2252 static·void·__Pyx_ArgTypeError(PyObject·*obj,·PyTypeObject·*type,·const·char·*name,·int·exact); 
  
2253 /*·HasAttr.proto·(used·by·ImportImpl)·*/ 
2254 #if·__PYX_LIMITED_VERSION_HEX·>=·0x030d0000 
2255 #define·__Pyx_HasAttr(o,·n)··PyObject_HasAttrWithError(o,·n) 
2256 #else 
2257 static·CYTHON_INLINE·int·__Pyx_HasAttr(PyObject·*,·PyObject·*); 
2258 #endif 
  
2259 /*·TupleOrListFromArrayImpl.proto·(used·by·ListFromArray)·*/ 
2260 CYTHON_UNUSED·static·PyObject·* 
2261 __Pyx_PyList_FromArray(PyObject·*const·*src,·Py_ssize_t·n); 
  
2262 /*·ListFromArray.proto·(used·by·ImportImpl)·*/ 
  
  
2263 /*·ImportImpl.export·*/ 
2264 static·PyObject·*__Pyx__Import(PyObject·*name,·PyObject·*const·*imported_names,·Py_ssize_t·len_imported_names,·PyObject·*qualname,·PyObject·*moddict,·int·level); 
  
2265 /*·Py3MetaclassGet.export·*/ 
2266 static·PyObject·*__Pyx_Py3MetaclassGet(PyObject·*bases,·PyObject·*mkw); 
  
2267 /*·PyObjectCall2Args.proto·(used·by·Py3ClassCreate)·*/ 
2268 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_Call2Args(PyObject*·function,·PyObject*·arg1,·PyObject*·arg2); 
  
2269 /*·Py3ClassCreate.export·*/ 
2270 static·PyObject·*__Pyx_Py3MetaclassPrepare(PyObject·*metaclass,·PyObject·*bases,·PyObject·*name,·PyObject·*qualname, 
2271 ···········································PyObject·*mkw,·PyObject·*modname,·PyObject·*doc); 
2272 static·PyObject·*__Pyx_Py3ClassCreate(PyObject·*metaclass,·PyObject·*name,·PyObject·*bases,·PyObject·*dict, 
2273 ······································PyObject·*mkw,·int·calculate_metaclass,·int·allow_py2_metaclass); 
  
2274 /*·MergeVTables.proto·*/ 
2275 static·int·__Pyx_MergeVtables(PyTypeObject·*type);2253 /*·ValidateExternBase.export·*/
 2254 static·int·__Pyx_validate_extern_base(PyTypeObject·*base);
  
2276 /*·ParseKeywordsImpl.export·*/2255 /*·ParseKeywordsImpl.export·*/
2277 static·int·__Pyx_ParseKeywordsTuple(2256 static·int·__Pyx_ParseKeywordsTuple(
2278 ····PyObject·*kwds,2257 ····PyObject·*kwds,
2279 ····PyObject·*·const·*kwvalues,2258 ····PyObject·*·const·*kwvalues,
2280 ····PyObject·**·const·argnames[],2259 ····PyObject·**·const·argnames[],
2281 ····PyObject·*kwds2,2260 ····PyObject·*kwds2,
Offset 2328, 22 lines modifiedOffset 2305, 48 lines modified
2328 static·PyObject*·__Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction*·cfunc,·PyObject*·self,·PyObject*·arg1,·PyObject*·arg2);2305 static·PyObject*·__Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction*·cfunc,·PyObject*·self,·PyObject*·arg1,·PyObject*·arg2);
2329 #if·CYTHON_COMPILING_IN_CPYTHON2306 #if·CYTHON_COMPILING_IN_CPYTHON
2330 static·CYTHON_INLINE·PyObject·*__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction·*cfunc,·PyObject·*self,·PyObject·*arg1,·PyObject·*arg2);2307 static·CYTHON_INLINE·PyObject·*__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction·*cfunc,·PyObject·*self,·PyObject·*arg1,·PyObject·*arg2);
2331 #else2308 #else
2332 #define·__Pyx_CallUnboundCMethod2(cfunc,·self,·arg1,·arg2)··__Pyx__CallUnboundCMethod2(cfunc,·self,·arg1,·arg2)2309 #define·__Pyx_CallUnboundCMethod2(cfunc,·self,·arg1,·arg2)··__Pyx__CallUnboundCMethod2(cfunc,·self,·arg1,·arg2)
2333 #endif2310 #endif
  
 2311 /*·Py3MetaclassGet.export·*/
 2312 static·PyObject·*__Pyx_Py3MetaclassGet(PyObject·*bases,·PyObject·*mkw);
  
 2313 /*·PyObjectCall2Args.proto·(used·by·Py3ClassCreate)·*/
 2314 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_Call2Args(PyObject*·function,·PyObject*·arg1,·PyObject*·arg2);
  
 2315 /*·Py3ClassCreate.export·*/
 2316 static·PyObject·*__Pyx_Py3MetaclassPrepare(PyObject·*metaclass,·PyObject·*bases,·PyObject·*name,·PyObject·*qualname,
 2317 ···········································PyObject·*mkw,·PyObject·*modname,·PyObject·*doc);
 2318 static·PyObject·*__Pyx_Py3ClassCreate(PyObject·*metaclass,·PyObject·*name,·PyObject·*bases,·PyObject·*dict,
 2319 ······································PyObject·*mkw,·int·calculate_metaclass,·int·allow_py2_metaclass);
  
 2320 /*·ValidateBasesTuple.proto·(used·by·PyType_Ready)·*/
 2321 #if·CYTHON_COMPILING_IN_CPYTHON·||·CYTHON_COMPILING_IN_LIMITED_API·||·CYTHON_USE_TYPE_SPECS
 2322 static·int·__Pyx_validate_bases_tuple(const·char·*type_name,·int·has_dictoffset,·PyObject·*bases);
 2323 #endif
  
 2324 /*·PyType_Ready.export·*/
 2325 CYTHON_UNUSED·static·int·__Pyx_PyType_Ready(PyTypeObject·*t);
  
 2326 /*·UpdateUnpickledDict.export·*/
 2327 static·int·__Pyx_UpdateUnpickledDict(PyObject·*obj,·PyObject·*state,·Py_ssize_t·index);
  
2334 /*·CythonFunction.export·*/2328 /*·CythonFunction.export·*/
2335 static·PyObject·*__Pyx_CyFunction_New(PyMethodDef·*ml,2329 static·PyObject·*__Pyx_CyFunction_New(PyMethodDef·*ml,
2336 ······································int·flags,·PyObject*·qualname,2330 ······································int·flags,·PyObject*·qualname,
2337 ······································PyObject·*closure,2331 ······································PyObject·*closure,
2338 ······································PyObject·*module,·PyObject·*globals,2332 ······································PyObject·*module,·PyObject·*globals,
2339 ······································PyObject*·code);2333 ······································PyObject*·code);
2340 static·PyTypeObject·*__Pyx_Get_CyFunction_Type(void);2334 static·PyTypeObject·*__Pyx_Get_CyFunction_Type(void);
  
 2335 /*·SetVTable.export·*/
 2336 static·int·__Pyx_SetVtable(PyTypeObject*·typeptr·,·void*·vtable);
  
2341 /*·Py3UpdateBases.export·*/2337 /*·Py3UpdateBases.export·*/
2342 static·PyObject*·__Pyx_PEP560_update_bases(PyObject·*bases);2338 static·PyObject*·__Pyx_PEP560_update_bases(PyObject·*bases);
  
2343 /*·FusedFunctionPerModule.proto·(used·by·FusedFunction)·*/2339 /*·FusedFunctionPerModule.proto·(used·by·FusedFunction)·*/
2344 #if·CYTHON_OPAQUE_SHARED_TYPES2340 #if·CYTHON_OPAQUE_SHARED_TYPES
2345 #define·__Pyx_as_FusedFunctionObject(o)·((__pyx_FusedFunctionObject·*)PyObject_GetTypeData((o),·__pyx_mstate_global->__pyx_FusedFunctionType))2341 #define·__Pyx_as_FusedFunctionObject(o)·((__pyx_FusedFunctionObject·*)PyObject_GetTypeData((o),·__pyx_mstate_global->__pyx_FusedFunctionType))
2346 #else2342 #else
Offset 2368, 17 lines modifiedOffset 2371, 14 lines modified
2368 ·········································PyObject·*module,·PyObject·*globals,2371 ·········································PyObject·*module,·PyObject·*globals,
2369 ·········································PyObject·*code);2372 ·········································PyObject·*code);
2370 static·PyTypeObject·*__Pyx_Get_FusedFunction_Type(void);2373 static·PyTypeObject·*__Pyx_Get_FusedFunction_Type(void);
  
2371 /*·RejectKeywords.export·*/2374 /*·RejectKeywords.export·*/
2372 static·void·__Pyx_RejectKeywords(const·char*·function_name,·PyObject·*kwds);2375 static·void·__Pyx_RejectKeywords(const·char*·function_name,·PyObject·*kwds);
  
2373 /*·SetVTable.export·*/ 
2374 static·int·__Pyx_SetVtable(PyTypeObject*·typeptr·,·void*·vtable); 
  
2375 /*·GCCDiagnostics.proto·(used·by·CIntToPy)·*/2376 /*·GCCDiagnostics.proto·(used·by·CIntToPy)·*/
2376 #if·!defined(__INTEL_COMPILER)·&&·defined(__GNUC__)·&&·(__GNUC__·>·4·||·(__GNUC__·==·4·&&·__GNUC_MINOR__·>=·6))2377 #if·!defined(__INTEL_COMPILER)·&&·defined(__GNUC__)·&&·(__GNUC__·>·4·||·(__GNUC__·==·4·&&·__GNUC_MINOR__·>=·6))
2377 #define·__Pyx_HAS_GCC_DIAGNOSTIC2378 #define·__Pyx_HAS_GCC_DIAGNOSTIC
2378 #endif2379 #endif
  
2379 /*·PyObjectVectorcallKwds.proto·(used·by·PyObjectVectorcallMethodKwds)·*/2380 /*·PyObjectVectorcallKwds.proto·(used·by·PyObjectVectorcallMethodKwds)·*/
2380 #if·CYTHON_VECTORCALL2381 #if·CYTHON_VECTORCALL
Offset 3859, 50 lines modifiedOffset 3859, 91 lines modified
3859 ····PyTraceBack_Here(py_frame);3859 ····PyTraceBack_Here(py_frame);
3860 bad:3860 bad:
3861 ····Py_XDECREF(py_code);3861 ····Py_XDECREF(py_code);
3862 ····Py_XDECREF(py_frame);3862 ····Py_XDECREF(py_frame);
3863 }3863 }
3864 #endif3864 #endif
  
3865 /*·PyObjectCallMethod0·*/ 
3866 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod0(PyObject*·obj,·PyObject*·method_name)·{ 
3867 #if·CYTHON_VECTORCALL·&&·(__PYX_LIMITED_VERSION_HEX·>=·0x030C0000·||·!CYTHON_COMPILING_IN_LIMITED_API) 
3868 ····return·PyObject_VectorcallMethod(method_name,·&obj,·1·|·PY_VECTORCALL_ARGUMENTS_OFFSET,·NULL); 
3869 #elif·CYTHON_COMPILING_IN_LIMITED_API 
3870 ····return·PyObject_CallMethodObjArgs(obj,·method_name,·NULL); 
3871 #else 
3872 ····return·PyObject_CallMethodNoArgs(obj,·method_name); 
3873 #endif3865 /*·CopyObjectArray·*/
 3866 #if·CYTHON_COMPILING_IN_CPYTHON
 3867 static·CYTHON_INLINE·void·__Pyx_copy_object_array(PyObject·*const·*CYTHON_RESTRICT·src,·PyObject**·CYTHON_RESTRICT·dest,·Py_ssize_t·length)·{
 3868 ····PyObject·*v;
 3869 ····Py_ssize_t·i;
 3870 ····for·(i·=·0;·i·<·length;·i++)·{
 3871 ········v·=·dest[i]·=·src[i];
 3872 ········Py_INCREF(v);
 3873 ····}
3874 }3874 }
 3875 #endif
  
3875 /*·GetTypeDictOffset·*/ 
3876 #if·!CYTHON_USE_TYPE_SLOTS 
3877 CYTHON_UNUSED·static·Py_ssize_t·__Pyx_GetTypeDictOffset(PyObject·*tp,·int·require_cython_valid_result)·{ 
3878 ····PyObject·*tp_dictoffset_o; 
3879 ····Py_ssize_t·tp_dictoffset; 
3880 ····tp_dictoffset_o·=·PyObject_GetAttrString(tp,·"__dictoffset__"); 
3881 ····if·(unlikely(!tp_dictoffset_o))·return·-1; 
3882 ····tp_dictoffset·=·PyLong_AsSsize_t(tp_dictoffset_o); 
3883 ····Py_DECREF(tp_dictoffset_o); 
3884 ····if·(unlikely(require_cython_valid_result·&&·tp_dictoffset·==·0))·{3876 /*·PyObjectCall·*/
 3877 #if·CYTHON_COMPILING_IN_CPYTHON
 3878 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_Call(PyObject·*func,·PyObject·*arg,·PyObject·*kw)·{
 3879 ····PyObject·*result;
 3880 ····ternaryfunc·call·=·Py_TYPE(func)->tp_call;
 3881 ····if·(unlikely(!call))
 3882 ········return·PyObject_Call(func,·arg,·kw);
 3883 ····if·(unlikely(Py_EnterRecursiveCall("·while·calling·a·Python·object")))
 3884 ········return·NULL;
 3885 ····result·=·(*call)(func,·arg,·kw);
 3886 ····Py_LeaveRecursiveCall();
 3887 ····if·(unlikely(!result)·&&·unlikely(!PyErr_Occurred()))·{
3885 ········PyErr_SetString(3888 ········PyErr_SetString(
3886 ············PyExc_TypeError,3889 ············PyExc_SystemError,
3887 ············"'type'·doesn't·have·a·dictoffset"); 
3888 ········return·-1; 
3889 ····}·else·if·(unlikely(require_cython_valid_result·&&·tp_dictoffset·<·0))·{3890 ············"NULL·result·without·error·in·PyObject_Call");
 3891 ····}
 3892 ····return·result;
 3893 }
 3894 #endif
  
 3895 /*·PyObjectCallMethO·*/
 3896 #if·CYTHON_COMPILING_IN_CPYTHON
 3897 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethO(PyObject·*func,·PyObject·*arg)·{
 3898 ····PyObject·*self,·*result;
 3899 ····PyCFunction·cfunc;
 3900 ····cfunc·=·__Pyx_CyOrPyCFunction_GET_FUNCTION(func);
 3901 ····self·=·__Pyx_CyOrPyCFunction_GET_SELF(func);
 3902 ····if·(unlikely(Py_EnterRecursiveCall("·while·calling·a·Python·object")))
 3903 ········return·NULL;
 3904 ····result·=·cfunc(self,·arg);
 3905 ····Py_LeaveRecursiveCall();
 3906 ····if·(unlikely(!result)·&&·unlikely(!PyErr_Occurred()))·{
3890 ········PyErr_SetString(3907 ········PyErr_SetString(
3891 ············PyExc_TypeError,3908 ············PyExc_SystemError,
 3909 ············"NULL·result·without·error·in·PyObject_Call");
3892 ············"'type'·has·an·unexpected·negative·dictoffset.·" 
3893 ············"Please·report·this·as·Cython·bug"); 
3894 ········return·-1; 
3895 ····}3910 ····}
3896 ····return·tp_dictoffset;3911 ····return·result;
3897 }3912 }
3898 #endif3913 #endif
  
 3914 /*·GetVTable·*/
 3915 static·int·__Pyx_GetVtable(PyTypeObject·*type,·void**·table)·{
 3916 ····void*·ptr;
 3917 ····*table·=·NULL;
 3918 #if·CYTHON_COMPILING_IN_LIMITED_API
 3919 ····PyObject·*ob·=·PyObject_GetAttr((PyObject·*)type,·__pyx_mstate_global->__pyx_n_u_pyx_vtable);
 3920 #else
 3921 ····PyObject·*ob·=·PyObject_GetItem(type->tp_dict,·__pyx_mstate_global->__pyx_n_u_pyx_vtable);
 3922 #endif
 3923 ····if·(!ob)
 3924 ········goto·no_attr;
 3925 ····ptr·=·PyCapsule_GetPointer(ob,·0);
 3926 ····if·(!ptr·&&·!PyErr_Occurred())
 3927 ········PyErr_SetString(PyExc_RuntimeError,·"invalid·vtable·found·for·imported·type");
 3928 ····Py_DECREF(ob);
 3929 ····*table·=·ptr;
 3930 ····return·1;
 3931 no_attr:
 3932 ····if·(PyErr_ExceptionMatches(CYTHON_COMPILING_IN_LIMITED_API·?·PyExc_AttributeError·:·PyExc_KeyError))·{
 3933 ········return·0;
 3934 ····}
 3935 ····Py_XDECREF(ob);
 3936 ····return·-1;
 3937 }
  
3899 /*·FormatTypeName·*/3938 /*·FormatTypeName·*/
3900 #if·CYTHON_COMPILING_IN_LIMITED_API·&&·__PYX_LIMITED_VERSION_HEX·<·0x030d00003939 #if·CYTHON_COMPILING_IN_LIMITED_API·&&·__PYX_LIMITED_VERSION_HEX·<·0x030d0000
3901 static·__Pyx_TypeName3940 static·__Pyx_TypeName
3902 __Pyx_PyType_GetFullyQualifiedName(PyTypeObject*·tp)3941 __Pyx_PyType_GetFullyQualifiedName(PyTypeObject*·tp)
3903 {3942 {
3904 ····PyObject·*module·=·NULL,·*name·=·NULL,·*result·=·NULL;3943 ····PyObject·*module·=·NULL,·*name·=·NULL,·*result·=·NULL;
3905 ····#if·__PYX_LIMITED_VERSION_HEX·<·0x030b00003944 ····#if·__PYX_LIMITED_VERSION_HEX·<·0x030b0000
Offset 3934, 55 lines modifiedOffset 3975, 14 lines modified
3934 ····}·else·{3975 ····}·else·{
3935 ········result·=·__Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u_);3976 ········result·=·__Pyx_NewRef(__pyx_mstate_global->__pyx_kp_u_);
3936 ····}3977 ····}
3937 ····goto·done;3978 ····goto·done;
3938 }3979 }
3939 #endif3980 #endif
  
3940 /*·IgnoreException·*/ 
3941 static·CYTHON_INLINE·int·__Pyx_IgnoreGivenException(PyObject·*given_exception,·PyObject·*ignorable_exception)·{ 
3942 ····if·(PyErr_GivenExceptionMatches(given_exception·?·given_exception·:·PyErr_Occurred(),·ignorable_exception))·{ 
3943 ········PyErr_Clear(); 
3944 ········return·1; 
3945 ····} 
3946 ····return·0; 
3947 } 
  
3948 /*·CheckUnpickleChecksumError·*/ 
3949 static·void·__Pyx_RaiseUnpickleChecksumError(long·checksum,·long·checksum1,·long·checksum2,·long·checksum3,·const·char·*members)·{ 
3950 ····PyObject·*pickle_module·=·PyImport_ImportModule("pickle"); 
3951 ····if·(unlikely(!pickle_module))·return; 
3952 ····PyObject·*pickle_error·=·PyObject_GetAttrString(pickle_module,·"PickleError"); 
3953 ····Py_DECREF(pickle_module); 
3954 ····if·(unlikely(!pickle_error))·return; 
3955 ····if·(checksum2·==·checksum1)·{ 
3956 ········PyErr_Format(pickle_error,·"Incompatible·checksums·(0x%x·vs·(0x%x)·=·(%s))", 
3957 ············checksum,·checksum1,·members); 
3958 ····}·else·if·(checksum3·==·checksum2)·{ 
3959 ········PyErr_Format(pickle_error,·"Incompatible·checksums·(0x%x·vs·(0x%x,·0x%x)·=·(%s))", 
3960 ············checksum,·checksum1,·checksum2,·members); 
3961 ····}·else·{ 
3962 ········PyErr_Format(pickle_error,·"Incompatible·checksums·(0x%x·vs·(0x%x,·0x%x,·0x%x)·=·(%s))", 
3963 ············checksum,·checksum1,·checksum2,·checksum3,·members); 
3964 ····} 
3965 ····Py_DECREF(pickle_error); 
3966 } 
  
3967 /*·PyObjectCallMethod1·*/ 
3968 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod1(PyObject*·obj,·PyObject*·method_name,·PyObject*·arg)·{ 
3969 #if·CYTHON_VECTORCALL·&&·(__PYX_LIMITED_VERSION_HEX·>=·0x030C0000·||·!CYTHON_COMPILING_IN_LIMITED_API) 
3970 ····PyObject·*args[2]·=·{obj,·arg}; 
3971 ····return·PyObject_VectorcallMethod(method_name,·args,·2·|·PY_VECTORCALL_ARGUMENTS_OFFSET,·NULL); 
3972 #elif·CYTHON_COMPILING_IN_LIMITED_API 
3973 ····return·PyObject_CallMethodObjArgs(obj,·method_name,·arg,·NULL); 
3974 #else 
3975 ····return·PyObject_CallMethodOneArg(obj,·method_name,·arg); 
3976 #endif 
3977 } 
  
3978 /*·AddModuleRef·*/3981 /*·AddModuleRef·*/
3979 #if·CYTHON_COMPILING_IN_CPYTHON_FREETHREADING·&&·PY_VERSION_HEX·<·0x030F00a33982 #if·CYTHON_COMPILING_IN_CPYTHON_FREETHREADING·&&·PY_VERSION_HEX·<·0x030F00a3
3980 ··static·PyObject·*__Pyx_PyImport_AddModuleObjectRef(PyObject·*name)·{3983 ··static·PyObject·*__Pyx_PyImport_AddModuleObjectRef(PyObject·*name)·{
3981 ······PyObject·*module_dict·=·PyImport_GetModuleDict();3984 ······PyObject·*module_dict·=·PyImport_GetModuleDict();
3982 ······PyObject·*m;3985 ······PyObject·*m;
3983 ······if·(PyMapping_GetOptionalItem(module_dict,·name,·&m)·<·0)·{3986 ······if·(PyMapping_GetOptionalItem(module_dict,·name,·&m)·<·0)·{
3984 ··········return·NULL;3987 ··········return·NULL;
Offset 4063, 14 lines modifiedOffset 4063, 23 lines modified
4063 ············"Shared·Cython·type·%.200s·has·the·wrong·size,·try·recompiling",4063 ············"Shared·Cython·type·%.200s·has·the·wrong·size,·try·recompiling",
4064 ············name);4064 ············name);
4065 ········return·-1;4065 ········return·-1;
4066 ····}4066 ····}
4067 ····return·0;4067 ····return·0;
4068 }4068 }
  
 4069 /*·IgnoreException·*/
 4070 static·CYTHON_INLINE·int·__Pyx_IgnoreGivenException(PyObject·*given_exception,·PyObject·*ignorable_exception)·{
 4071 ····if·(PyErr_GivenExceptionMatches(given_exception·?·given_exception·:·PyErr_Occurred(),·ignorable_exception))·{
 4072 ········PyErr_Clear();
 4073 ········return·1;
 4074 ····}
 4075 ····return·0;
 4076 }
  
4069 /*·CallTypeTraverse·*/4077 /*·CallTypeTraverse·*/
4070 #if·!CYTHON_USE_TYPE_SPECS4078 #if·!CYTHON_USE_TYPE_SPECS
4071 #else4079 #else
4072 static·int·__Pyx_call_type_traverse(PyObject·*o,·int·always_call,·visitproc·visit,·void·*arg)·{4080 static·int·__Pyx_call_type_traverse(PyObject·*o,·int·always_call,·visitproc·visit,·void·*arg)·{
4073 ····if·(!always_call)·{4081 ····if·(!always_call)·{
4074 ········PyTypeObject·*base·=·__Pyx_PyObject_GetSlot(o,·tp_base,·PyTypeObject*);4082 ········PyTypeObject·*base·=·__Pyx_PyObject_GetSlot(o,·tp_base,·PyTypeObject*);
4075 ········unsigned·long·flags·=·PyType_GetFlags(base);4083 ········unsigned·long·flags·=·PyType_GetFlags(base);
Offset 4079, 54 lines modifiedOffset 4088, 14 lines modified
4079 ········}4088 ········}
4080 ····}4089 ····}
4081 ····Py_VISIT((PyObject*)Py_TYPE(o));4090 ····Py_VISIT((PyObject*)Py_TYPE(o));
4082 ····return·0;4091 ····return·0;
4083 }4092 }
4084 #endif4093 #endif
  
4085 /*·PyObjectCall·*/ 
4086 #if·CYTHON_COMPILING_IN_CPYTHON 
4087 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_Call(PyObject·*func,·PyObject·*arg,·PyObject·*kw)·{ 
4088 ····PyObject·*result; 
4089 ····ternaryfunc·call·=·Py_TYPE(func)->tp_call; 
4090 ····if·(unlikely(!call)) 
4091 ········return·PyObject_Call(func,·arg,·kw); 
4092 ····if·(unlikely(Py_EnterRecursiveCall("·while·calling·a·Python·object"))) 
4093 ········return·NULL; 
4094 ····result·=·(*call)(func,·arg,·kw); 
4095 ····Py_LeaveRecursiveCall(); 
4096 ····if·(unlikely(!result)·&&·unlikely(!PyErr_Occurred()))·{ 
4097 ········PyErr_SetString( 
4098 ············PyExc_SystemError, 
4099 ············"NULL·result·without·error·in·PyObject_Call"); 
4100 ····} 
4101 ····return·result; 
4102 } 
4103 #endif 
  
4104 /*·PyObjectCallMethO·*/ 
4105 #if·CYTHON_COMPILING_IN_CPYTHON 
4106 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethO(PyObject·*func,·PyObject·*arg)·{ 
4107 ····PyObject·*self,·*result; 
4108 ····PyCFunction·cfunc; 
4109 ····cfunc·=·__Pyx_CyOrPyCFunction_GET_FUNCTION(func); 
4110 ····self·=·__Pyx_CyOrPyCFunction_GET_SELF(func); 
4111 ····if·(unlikely(Py_EnterRecursiveCall("·while·calling·a·Python·object"))) 
4112 ········return·NULL; 
4113 ····result·=·cfunc(self,·arg); 
4114 ····Py_LeaveRecursiveCall(); 
4115 ····if·(unlikely(!result)·&&·unlikely(!PyErr_Occurred()))·{ 
4116 ········PyErr_SetString( 
4117 ············PyExc_SystemError, 
4118 ············"NULL·result·without·error·in·PyObject_Call"); 
4119 ····} 
4120 ····return·result; 
4121 } 
4122 #endif 
  
4123 /*·PyObjectFastCall·(used·by·PyObjectCallOneArg)·*/4094 /*·PyObjectFastCall·(used·by·PyObjectCallOneArg)·*/
4124 #if·CYTHON_COMPILING_IN_LIMITED_API4095 #if·CYTHON_COMPILING_IN_LIMITED_API
4125 static·PyObject*·__Pyx_PyObject_FastCall_fallback(PyObject·*func,·PyObject·*·const*args,·size_t·nargs,·PyObject·*kwargs)·{4096 static·PyObject*·__Pyx_PyObject_FastCall_fallback(PyObject·*func,·PyObject·*·const*args,·size_t·nargs,·PyObject·*kwargs)·{
4126 ····PyObject·*argstuple;4097 ····PyObject·*argstuple;
4127 ····PyObject·*result·=·0;4098 ····PyObject·*result·=·0;
4128 ····size_t·i;4099 ····size_t·i;
4129 ····argstuple·=·PyTuple_New((Py_ssize_t)nargs);4100 ····argstuple·=·PyTuple_New((Py_ssize_t)nargs);
Offset 4327, 14 lines modifiedOffset 4296, 49 lines modified
4327 }4296 }
  
4328 /*·py_dict_values·*/4297 /*·py_dict_values·*/
4329 static·CYTHON_INLINE·PyObject*·__Pyx_PyDict_Values(PyObject*·d)·{4298 static·CYTHON_INLINE·PyObject*·__Pyx_PyDict_Values(PyObject*·d)·{
4330 ····return·__Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values,·d);4299 ····return·__Pyx_CallUnboundCMethod0(&__pyx_mstate_global->__pyx_umethod_PyDict_Type_values,·d);
4331 }4300 }
  
 4301 /*·RaiseArgTupleInvalid·*/
 4302 static·void·__Pyx_RaiseArgtupleInvalid(
 4303 ····const·char*·func_name,
 4304 ····int·exact,
 4305 ····Py_ssize_t·num_min,
 4306 ····Py_ssize_t·num_max,
 4307 ····Py_ssize_t·num_found)
 4308 {
 4309 ····Py_ssize_t·num_expected;
 4310 ····const·char·*more_or_less;
 4311 ····if·(num_found·<·num_min)·{
 4312 ········num_expected·=·num_min;
 4313 ········more_or_less·=·"at·least";
 4314 ····}·else·{
 4315 ········num_expected·=·num_max;
 4316 ········more_or_less·=·"at·most";
 4317 ····}
 4318 ····if·(exact)·{
 4319 ········more_or_less·=·"exactly";
 4320 ····}
 4321 ····PyErr_Format(PyExc_TypeError,
 4322 ·················"%.200s()·takes·%.8s·%"·CYTHON_FORMAT_SSIZE_T·"d·positional·argument%.1s·(%"·CYTHON_FORMAT_SSIZE_T·"d·given)",
 4323 ·················func_name,·more_or_less,·num_expected,
 4324 ·················(num_expected·==·1)·?·""·:·"s",·num_found);
 4325 }
  
 4326 /*·RaiseDoubleKeywords·*/
 4327 static·void·__Pyx_RaiseDoubleKeywordsError(
 4328 ····const·char*·func_name,
 4329 ····PyObject*·kw_name)
 4330 {
 4331 ····PyErr_Format(PyExc_TypeError,
 4332 ········"%s()·got·multiple·values·for·keyword·argument·'%U'",·func_name,·kw_name);
 4333 }
  
4332 /*·CalculateMetaclass·*/4334 /*·CalculateMetaclass·*/
4333 static·PyObject·*__Pyx_CalculateMetaclass(PyTypeObject·*metaclass,·PyObject·*bases)·{4335 static·PyObject·*__Pyx_CalculateMetaclass(PyTypeObject·*metaclass,·PyObject·*bases)·{
4334 ····Py_ssize_t·i,·nbases;4336 ····Py_ssize_t·i,·nbases;
4335 #if·CYTHON_ASSUME_SAFE_SIZE4337 #if·CYTHON_ASSUME_SAFE_SIZE
4336 ····nbases·=·PyTuple_GET_SIZE(bases);4338 ····nbases·=·PyTuple_GET_SIZE(bases);
4337 #else4339 #else
4338 ····nbases·=·PyTuple_Size(bases);4340 ····nbases·=·PyTuple_Size(bases);
Offset 4369, 487 lines modifiedOffset 4373, 376 lines modified
4369 ····if·(!metaclass)·{4373 ····if·(!metaclass)·{
4370 ········metaclass·=·&PyType_Type;4374 ········metaclass·=·&PyType_Type;
4371 ····}4375 ····}
4372 ····Py_INCREF((PyObject*)·metaclass);4376 ····Py_INCREF((PyObject*)·metaclass);
4373 ····return·(PyObject*)·metaclass;4377 ····return·(PyObject*)·metaclass;
4374 }4378 }
  
 4379 /*·PyObjectCallMethod0·*/
 4380 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod0(PyObject*·obj,·PyObject*·method_name)·{
 4381 #if·CYTHON_VECTORCALL·&&·(__PYX_LIMITED_VERSION_HEX·>=·0x030C0000·||·!CYTHON_COMPILING_IN_LIMITED_API)
 4382 ····return·PyObject_VectorcallMethod(method_name,·&obj,·1·|·PY_VECTORCALL_ARGUMENTS_OFFSET,·NULL);
 4383 #elif·CYTHON_COMPILING_IN_LIMITED_API
 4384 ····return·PyObject_CallMethodObjArgs(obj,·method_name,·NULL);
4375 /*·CopyObjectArray·*/ 
4376 #if·CYTHON_COMPILING_IN_CPYTHON 
4377 static·CYTHON_INLINE·void·__Pyx_copy_object_array(PyObject·*const·*CYTHON_RESTRICT·src,·PyObject**·CYTHON_RESTRICT·dest,·Py_ssize_t·length)·{ 
4378 ····PyObject·*v; 
4379 ····Py_ssize_t·i; 
4380 ····for·(i·=·0;·i·<·length;·i++)·{ 
4381 ········v·=·dest[i]·=·src[i]; 
4382 ········Py_INCREF(v); 
4383 ····} 
4384 } 
4385 #endif 
  
4386 /*·GetVTable·*/ 
4387 static·int·__Pyx_GetVtable(PyTypeObject·*type,·void**·table)·{ 
4388 ····void*·ptr; 
4389 ····*table·=·NULL; 
4390 #if·CYTHON_COMPILING_IN_LIMITED_API 
4391 ····PyObject·*ob·=·PyObject_GetAttr((PyObject·*)type,·__pyx_mstate_global->__pyx_n_u_pyx_vtable); 
4392 #else4385 #else
4393 ····PyObject·*ob·=·PyObject_GetItem(type->tp_dict,·__pyx_mstate_global->__pyx_n_u_pyx_vtable);4386 ····return·PyObject_CallMethodNoArgs(obj,·method_name);
4394 #endif4387 #endif
4395 ····if·(!ob) 
4396 ········goto·no_attr; 
4397 ····ptr·=·PyCapsule_GetPointer(ob,·0); 
4398 ····if·(!ptr·&&·!PyErr_Occurred()) 
4399 ········PyErr_SetString(PyExc_RuntimeError,·"invalid·vtable·found·for·imported·type"); 
4400 ····Py_DECREF(ob); 
4401 ····*table·=·ptr; 
4402 ····return·1; 
4403 no_attr: 
4404 ····if·(PyErr_ExceptionMatches(CYTHON_COMPILING_IN_LIMITED_API·?·PyExc_AttributeError·:·PyExc_KeyError))·{ 
4405 ········return·0; 
4406 ····} 
4407 ····Py_XDECREF(ob); 
4408 ····return·-1; 
4409 }4388 }
  
4410 /*·RaiseArgTupleInvalid·*/ 
4411 static·void·__Pyx_RaiseArgtupleInvalid( 
4412 ····const·char*·func_name, 
4413 ····int·exact, 
4414 ····Py_ssize_t·num_min, 
4415 ····Py_ssize_t·num_max, 
4416 ····Py_ssize_t·num_found) 
4417 { 
4418 ····Py_ssize_t·num_expected; 
4419 ····const·char·*more_or_less; 
4420 ····if·(num_found·<·num_min)·{ 
4421 ········num_expected·=·num_min; 
4422 ········more_or_less·=·"at·least"; 
4423 ····}·else·{ 
4424 ········num_expected·=·num_max; 
4425 ········more_or_less·=·"at·most"; 
4426 ····} 
4427 ····if·(exact)·{ 
4428 ········more_or_less·=·"exactly";4389 /*·GetTypeDictOffset·*/
 4390 #if·!CYTHON_USE_TYPE_SLOTS
 4391 CYTHON_UNUSED·static·Py_ssize_t·__Pyx_GetTypeDictOffset(PyObject·*tp,·int·require_cython_valid_result)·{
 4392 ····PyObject·*tp_dictoffset_o;
 4393 ····Py_ssize_t·tp_dictoffset;
 4394 ····tp_dictoffset_o·=·PyObject_GetAttrString(tp,·"__dictoffset__");
 4395 ····if·(unlikely(!tp_dictoffset_o))·return·-1;
 4396 ····tp_dictoffset·=·PyLong_AsSsize_t(tp_dictoffset_o);
 4397 ····Py_DECREF(tp_dictoffset_o);
 4398 ····if·(unlikely(require_cython_valid_result·&&·tp_dictoffset·==·0))·{
 4399 ········PyErr_SetString(
 4400 ············PyExc_TypeError,
 4401 ············"'type'·doesn't·have·a·dictoffset");
 4402 ········return·-1;
 4403 ····}·else·if·(unlikely(require_cython_valid_result·&&·tp_dictoffset·<·0))·{
 4404 ········PyErr_SetString(
 4405 ············PyExc_TypeError,
 4406 ············"'type'·has·an·unexpected·negative·dictoffset.·"
 4407 ············"Please·report·this·as·Cython·bug");
 4408 ········return·-1;
4429 ····}4409 ····}
 4410 ····return·tp_dictoffset;
4430 ····PyErr_Format(PyExc_TypeError, 
4431 ·················"%.200s()·takes·%.8s·%"·CYTHON_FORMAT_SSIZE_T·"d·positional·argument%.1s·(%"·CYTHON_FORMAT_SSIZE_T·"d·given)", 
4432 ·················func_name,·more_or_less,·num_expected, 
4433 ·················(num_expected·==·1)·?·""·:·"s",·num_found); 
4434 } 
  
4435 /*·RaiseDoubleKeywords·*/ 
4436 static·void·__Pyx_RaiseDoubleKeywordsError( 
4437 ····const·char*·func_name, 
4438 ····PyObject*·kw_name) 
4439 { 
4440 ····PyErr_Format(PyExc_TypeError, 
4441 ········"%s()·got·multiple·values·for·keyword·argument·'%U'",·func_name,·kw_name); 
4442 } 
  
4443 /*·RaiseErrorWithObjectType·(used·by·ValidateBasesTuple)·*/ 
4444 static·void·__Pyx_RaiseErrorWithType(PyObject*·exc_type,·const·char*·message,·PyTypeObject·*type_obj)·{ 
4445 ····__Pyx_TypeName·type_name·=·__Pyx_PyType_GetFullyQualifiedName(type_obj); 
4446 ····#if·CYTHON_COMPILING_IN_LIMITED_API·&&·__PYX_LIMITED_VERSION_HEX·<·0x030d0000 
4447 ····if·(unlikely(!type_name))·return; 
4448 ····#endif 
4449 ····PyErr_Format(exc_type,·message,·type_name); 
4450 ····__Pyx_DECREF_TypeName(type_name); 
4451 }4411 }
 4412 #endif
  
 4413 /*·CheckUnpickleChecksumError·*/
 4414 static·void·__Pyx_RaiseUnpickleChecksumError(long·checksum,·long·checksum1,·long·checksum2,·long·checksum3,·const·char·*members)·{
 4415 ····PyObject·*pickle_module·=·PyImport_ImportModule("pickle");
4452 /*·RaiseErrorWithObjectType1·(used·by·ValidateBasesTuple)·*/ 
4453 static·void·__Pyx_RaiseErrorWithType1(PyObject*·exc_type,·const·char*·message,·const·char·*arg,·PyTypeObject·*type_obj)·{ 
4454 ····__Pyx_TypeName·type_name·=·__Pyx_PyType_GetFullyQualifiedName(type_obj); 
4455 ····#if·CYTHON_COMPILING_IN_LIMITED_API·&&·__PYX_LIMITED_VERSION_HEX·<·0x030d0000 
4456 ····if·(unlikely(!type_name))·return;4416 ····if·(unlikely(!pickle_module))·return;
4457 ····#endif 
4458 ····PyErr_Format(exc_type,·message,·arg,·type_name); 
4459 ····__Pyx_DECREF_TypeName(type_name);4417 ····PyObject·*pickle_error·=·PyObject_GetAttrString(pickle_module,·"PickleError");
 4418 ····Py_DECREF(pickle_module);
 4419 ····if·(unlikely(!pickle_error))·return;
 4420 ····if·(checksum2·==·checksum1)·{
 4421 ········PyErr_Format(pickle_error,·"Incompatible·checksums·(0x%x·vs·(0x%x)·=·(%s))",
 4422 ············checksum,·checksum1,·members);
 4423 ····}·else·if·(checksum3·==·checksum2)·{
 4424 ········PyErr_Format(pickle_error,·"Incompatible·checksums·(0x%x·vs·(0x%x,·0x%x)·=·(%s))",
 4425 ············checksum,·checksum1,·checksum2,·members);
 4426 ····}·else·{
 4427 ········PyErr_Format(pickle_error,·"Incompatible·checksums·(0x%x·vs·(0x%x,·0x%x,·0x%x)·=·(%s))",
 4428 ············checksum,·checksum1,·checksum2,·checksum3,·members);
 4429 ····}
 4430 ····Py_DECREF(pickle_error);
4460 }4431 }
  
 4432 /*·PyObjectCallMethod1·*/
 4433 static·CYTHON_INLINE·PyObject*·__Pyx_PyObject_CallMethod1(PyObject*·obj,·PyObject*·method_name,·PyObject*·arg)·{
 4434 #if·CYTHON_VECTORCALL·&&·(__PYX_LIMITED_VERSION_HEX·>=·0x030C0000·||·!CYTHON_COMPILING_IN_LIMITED_API)
 4435 ····PyObject·*args[2]·=·{obj,·arg};
 4436 ····return·PyObject_VectorcallMethod(method_name,·args,·2·|·PY_VECTORCALL_ARGUMENTS_OFFSET,·NULL);
 4437 #elif·CYTHON_COMPILING_IN_LIMITED_API
 4438 ····return·PyObject_CallMethodObjArgs(obj,·method_name,·arg,·NULL);
4461 /*·ValidateBasesTuple·(used·by·PyType_Ready)·*/ 
4462 #if·CYTHON_COMPILING_IN_CPYTHON·||·CYTHON_COMPILING_IN_LIMITED_API·||·CYTHON_USE_TYPE_SPECS 
4463 static·int·__Pyx_validate_bases_tuple(const·char·*type_name,·int·has_dictoffset,·PyObject·*bases)·{ 
4464 ····Py_ssize_t·i,·n; 
4465 #if·CYTHON_ASSUME_SAFE_SIZE 
4466 ····n·=·PyTuple_GET_SIZE(bases); 
4467 #else 
4468 ····n·=·PyTuple_Size(bases); 
4469 ····if·(unlikely(n·<·0))·return·-1; 
4470 #endif 
4471 ····if·(!has_dictoffset)·{ 
4472 ········PyObject·*b; 
4473 #if·CYTHON_AVOID_BORROWED_REFS 
4474 ········b·=·PySequence_GetItem(bases,·0); 
4475 ········if·(!b)·return·-1; 
4476 #elif·CYTHON_ASSUME_SAFE_MACROS 
4477 ········b·=·PyTuple_GET_ITEM(bases,·0); 
4478 #else 
4479 ········b·=·PyTuple_GetItem(bases,·0); 
4480 ········if·(!b)·return·-1; 
4481 #endif 
4482 #if·CYTHON_USE_TYPE_SLOTS 
4483 ········has_dictoffset·=·((PyTypeObject*)b)->tp_dictoffset·!=·0; 
4484 #else4439 #else
 4440 ····return·PyObject_CallMethodOneArg(obj,·method_name,·arg);
4485 ········Py_ssize_t·dictoffset·=·__Pyx_GetTypeDictOffset(b,·0); 
4486 ········has_dictoffset·=·dictoffset·!=·0; 
4487 #endif 
4488 #if·CYTHON_AVOID_BORROWED_REFS 
4489 ········Py_DECREF(b); 
4490 #endif 
4491 #if·!CYTHON_USE_TYPE_SLOTS 
4492 ········if·(dictoffset·==·-1·&&·PyErr_Occurred())·return·-1; 
4493 #endif4441 #endif
 4442 }
  
 4443 /*·RaiseException·*/
 4444 static·void·__Pyx_Raise(PyObject·*type,·PyObject·*value,·PyObject·*tb,·PyObject·*cause)·{
 4445 ····PyObject*·owned_instance·=·NULL;
 4446 ····if·(tb·==·Py_None)·{
 4447 ········tb·=·0;
 4448 ····}·else·if·(tb·&&·!PyTraceBack_Check(tb))·{
 4449 ········PyErr_SetString(PyExc_TypeError,
 4450 ············"raise:·arg·3·must·be·a·traceback·or·None");
 4451 ········goto·bad;
4494 ····}4452 ····}
 4453 ····if·(value·==·Py_None)
 4454 ········value·=·0;
 4455 ····if·(PyExceptionInstance_Check(type))·{
 4456 ········if·(value)·{
 4457 ············PyErr_SetString(PyExc_TypeError,
 4458 ················"instance·exception·may·not·have·a·separate·value");
 4459 ············goto·bad;
4495 ····for·(i·=·1;·i·<·n;·i++) 
4496 ····{ 
4497 ········PyTypeObject·*b; 
4498 #if·CYTHON_AVOID_BORROWED_REFS 
4499 ········PyObject·*b0·=·PySequence_GetItem(bases,·i); 
4500 ········if·(!b0)·return·-1; 
4501 #elif·CYTHON_ASSUME_SAFE_MACROS 
4502 ········PyObject·*b0·=·PyTuple_GET_ITEM(bases,·i); 
4503 #else 
4504 ········PyObject·*b0·=·PyTuple_GetItem(bases,·i); 
4505 ········if·(!b0)·return·-1; 
4506 #endif 
4507 ········b·=·(PyTypeObject*)·b0; 
4508 ········if·(!__Pyx_PyType_HasFeature(b,·Py_TPFLAGS_HEAPTYPE)) 
4509 ········{ 
4510 ············__Pyx_RaiseErrorWithType( 
4511 ················PyExc_TypeError,·"base·class·'"·__Pyx_FMT_TYPENAME·"'·is·not·a·heap·type",·b); 
4512 #if·CYTHON_AVOID_BORROWED_REFS 
4513 ············Py_DECREF(b0); 
4514 #endif 
4515 ············return·-1; 
4516 ········}4460 ········}
 4461 ········value·=·type;
 4462 ········type·=·(PyObject*)·Py_TYPE(value);
 4463 ····}·else·if·(PyExceptionClass_Check(type))·{
 4464 ········PyObject·*instance_class·=·NULL;
 4465 ········if·(value·&&·PyExceptionInstance_Check(value))·{
 4466 ············instance_class·=·(PyObject*)·Py_TYPE(value);
 4467 ············if·(instance_class·!=·type)·{
 4468 ················int·is_subclass·=·PyObject_IsSubclass(instance_class,·type);
 4469 ················if·(!is_subclass)·{
 4470 ····················instance_class·=·NULL;
 4471 ················}·else·if·(unlikely(is_subclass·==·-1))·{
4517 ········if·(!has_dictoffset) 
4518 ········{ 
4519 ············Py_ssize_t·b_dictoffset·=·0; 
4520 #if·CYTHON_USE_TYPE_SLOTS 
4521 ············b_dictoffset·=·b->tp_dictoffset; 
4522 #else 
4523 ············b_dictoffset·=·__Pyx_GetTypeDictOffset((PyObject*)b,·0); 
4524 ············if·(b_dictoffset·==·-1·&&·PyErr_Occurred())·goto·dictoffset_return; 
4525 #endif 
4526 ············if·(b_dictoffset)·{ 
4527 ················__Pyx_RaiseErrorWithType1( 
4528 ····················PyExc_TypeError, 
4529 ····················"extension·type·'%.200s'·has·no·__dict__·slot,·" 
4530 ····················"but·base·type·'"·__Pyx_FMT_TYPENAME·"'·has:·" 
4531 ····················"either·add·'cdef·dict·__dict__'·to·the·extension·type·" 
4532 ····················"or·add·'__slots__·=·[...]'·to·the·base·type", 
4533 ····················type_name,·b);4472 ····················goto·bad;
 4473 ················}·else·{
 4474 ····················type·=·instance_class;
 4475 ················}
4534 #if·!CYTHON_USE_TYPE_SLOTS 
4535 ··············dictoffset_return: 
4536 #endif 
4537 #if·CYTHON_AVOID_BORROWED_REFS 
4538 ················Py_DECREF(b0); 
4539 #endif 
4540 ················return·-1; 
4541 ············}4476 ············}
4542 ········}4477 ········}
4543 #if·CYTHON_AVOID_BORROWED_REFS 
4544 ········Py_DECREF(b0); 
4545 #endif4478 ········if·(!instance_class)·{
 4479 ············PyObject·*args;
 4480 ············if·(!value)
 4481 ················args·=·PyTuple_New(0);
 4482 ············else·if·(PyTuple_Check(value))·{
 4483 ················Py_INCREF(value);
 4484 ················args·=·value;
 4485 ············}·else
 4486 ················args·=·PyTuple_Pack(1,·value);
 4487 ············if·(!args)
 4488 ················goto·bad;
 4489 ············owned_instance·=·PyObject_Call(type,·args,·NULL);
 4490 ············Py_DECREF(args);
 4491 ············if·(!owned_instance)
 4492 ················goto·bad;
 4493 ············value·=·owned_instance;
 4494 ············if·(!PyExceptionInstance_Check(value))·{
 4495 ················PyErr_Format(PyExc_TypeError,
 4496 ·····························"calling·%R·should·have·returned·an·instance·of·"
 4497 ·····························"BaseException,·not·%R",
 4498 ·····························type,·Py_TYPE(value));
 4499 ················goto·bad;
 4500 ············}
 4501 ········}
 4502 ····}·else·{
 4503 ········PyErr_SetString(PyExc_TypeError,
 4504 ············"raise:·exception·class·must·be·a·subclass·of·BaseException");
 4505 ········goto·bad;
4546 ····}4506 ····}
4547 ····return·0; 
4548 } 
4549 #endif 
  
4550 /*·PyType_Ready·*/ 
4551 CYTHON_UNUSED·static·int·__Pyx_PyType_HasMultipleInheritance(PyTypeObject·*t)·{ 
4552 ····while·(t)·{ 
4553 ········PyObject·*bases·=·__Pyx_PyType_GetSlot(t,·tp_bases,·PyObject*); 
4554 ········if·(bases)·{4507 ····if·(cause)·{
4555 ············return·1;4508 ········PyObject·*fixed_cause;
 4509 ········if·(cause·==·Py_None)·{
 4510 ············fixed_cause·=·NULL;
 4511 ········}·else·if·(PyExceptionClass_Check(cause))·{
 4512 ············fixed_cause·=·PyObject_CallObject(cause,·NULL);
 4513 ············if·(fixed_cause·==·NULL)
 4514 ················goto·bad;
 4515 ········}·else·if·(PyExceptionInstance_Check(cause))·{
 4516 ············fixed_cause·=·cause;
 4517 ············Py_INCREF(fixed_cause);
 4518 ········}·else·{
 4519 ············PyErr_SetString(PyExc_TypeError,
 4520 ····························"exception·causes·must·derive·from·"
 4521 ····························"BaseException");
 4522 ············goto·bad;
4556 ········}4523 ········}
4557 ········t·=·__Pyx_PyType_GetSlot(t,·tp_base,·PyTypeObject*);4524 ········PyException_SetCause(value,·fixed_cause);
4558 ····}4525 ····}
4559 ····return·0; 
4560 } 
4561 static·int·__Pyx_PyType_Ready(PyTypeObject·*t)·{ 
4562 #if·CYTHON_USE_TYPE_SPECS·||·!CYTHON_COMPILING_IN_CPYTHON 
4563 ····(void)__Pyx_PyObject_CallMethod0; 
4564 #if·CYTHON_USE_TYPE_SPECS 
4565 ····(void)__Pyx_validate_bases_tuple; 
4566 #endif 
4567 ····return·PyType_Ready(t);4526 ····PyErr_SetObject(type,·value);
 4527 ····if·(tb)·{
Max diff block lines reached; 71880/115727 bytes (62.11%) of diff not shown.