pythonnet 3.1.0rc1__tar.gz → 3.2.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/MANIFEST.in +1 -1
  2. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/PKG-INFO +3 -3
  3. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pyproject.toml +3 -4
  4. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/PKG-INFO +3 -3
  5. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/SOURCES.txt +2 -2
  6. pythonnet-3.2.0rc1/pythonnet.slnx +49 -0
  7. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/Python.Runtime.Compat.csproj.nuget.dgspec.json +23 -25
  8. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/Python.Runtime.Compat.csproj.nuget.g.props +3 -3
  9. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/project.assets.json +15 -16
  10. pythonnet-3.2.0rc1/src/compat/obj/project.nuget.cache +14 -0
  11. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/release/net461/Python.Runtime.Compat.AssemblyInfo.cs +2 -2
  12. pythonnet-3.2.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.AssemblyInfoInputs.cache +1 -0
  13. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/release/net461/Python.Runtime.Compat.GeneratedMSBuildEditorConfig.editorconfig +1 -1
  14. pythonnet-3.2.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.assets.cache +0 -0
  15. pythonnet-3.2.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.AssemblyReference.cache +0 -0
  16. pythonnet-3.2.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.CoreCompileInputs.cache +1 -0
  17. pythonnet-3.2.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.FileListAbsolute.txt +7 -0
  18. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/release/net461/Python.Runtime.Compat.dll +0 -0
  19. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/AssemblyManager.cs +13 -9
  20. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/ClassManager.cs +8 -3
  21. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/DelegateManager.cs +14 -10
  22. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Finalizer.cs +12 -5
  23. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/InternString.cs +1 -0
  24. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Interop.cs +7 -3
  25. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/MethodBinder.cs +36 -54
  26. pythonnet-3.2.0rc1/src/runtime/Native/ABI.cs +108 -0
  27. pythonnet-3.2.0rc1/src/runtime/Native/TypeOffset315.cs +154 -0
  28. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonEngine.cs +24 -11
  29. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyBuffer.cs +29 -30
  30. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyObject.cs +12 -4
  31. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Runtime.Delegates.cs +10 -2
  32. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Runtime.cs +28 -23
  33. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/RuntimeData.cs +2 -2
  34. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/TypeManager.cs +14 -8
  35. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ClassBase.cs +7 -6
  36. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ClassDerived.cs +87 -39
  37. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ClrObject.cs +5 -4
  38. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ExtensionType.cs +4 -4
  39. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ManagedType.cs +5 -6
  40. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ModuleObject.cs +5 -4
  41. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ReflectedClrType.cs +32 -22
  42. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/GenericUtil.cs +47 -30
  43. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/PythonEnvironment.cs +12 -5
  44. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_subclass.py +28 -0
  45. pythonnet-3.2.0rc1/tests/test_thread.py +352 -0
  46. pythonnet-3.2.0rc1/version.txt +1 -0
  47. pythonnet-3.1.0rc1/pythonnet.sln +0 -194
  48. pythonnet-3.1.0rc1/src/compat/obj/project.nuget.cache +0 -14
  49. pythonnet-3.1.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.AssemblyInfoInputs.cache +0 -1
  50. pythonnet-3.1.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.assets.cache +0 -0
  51. pythonnet-3.1.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.AssemblyReference.cache +0 -0
  52. pythonnet-3.1.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.CoreCompileInputs.cache +0 -1
  53. pythonnet-3.1.0rc1/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.FileListAbsolute.txt +0 -7
  54. pythonnet-3.1.0rc1/src/runtime/Native/ABI.cs +0 -51
  55. pythonnet-3.1.0rc1/src/runtime/Native/TypeOffset310.cs +0 -140
  56. pythonnet-3.1.0rc1/tests/test_thread.py +0 -58
  57. pythonnet-3.1.0rc1/version.txt +0 -1
  58. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/AUTHORS.md +0 -0
  59. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/Directory.Build.props +0 -0
  60. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/LICENSE +0 -0
  61. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/README.rst +0 -0
  62. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/clr.py +0 -0
  63. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet/__init__.py +0 -0
  64. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet/_pyinstaller/__init__.py +0 -0
  65. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet/_pyinstaller/hook-clr.py +0 -0
  66. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/dependency_links.txt +0 -0
  67. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/entry_points.txt +0 -0
  68. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/not-zip-safe +0 -0
  69. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/requires.txt +0 -0
  70. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/pythonnet.egg-info/top_level.txt +0 -0
  71. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/setup.cfg +0 -0
  72. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/setup.py +0 -0
  73. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/Python.Runtime.Compat.csproj +0 -0
  74. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/Python.Runtime.Compat.csproj.nuget.g.targets +0 -0
  75. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/compat/obj/release/net461/Python.R.6D0CE4F8.Up2Date +0 -0
  76. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/pythonnet.snk +0 -0
  77. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/DecoderGroup.cs +0 -0
  78. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/EncoderGroup.cs +0 -0
  79. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/EnumPyIntCodec.cs +0 -0
  80. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/IPyObjectDecoder.cs +0 -0
  81. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/IPyObjectEncoder.cs +0 -0
  82. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/IterableDecoder.cs +0 -0
  83. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/ListDecoder.cs +0 -0
  84. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/PyObjectConversions.cs +0 -0
  85. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/RawProxyEncoder.cs +0 -0
  86. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/SequenceDecoder.cs +0 -0
  87. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Codecs/TupleCodecs.cs +0 -0
  88. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/CollectionWrappers/IterableWrapper.cs +0 -0
  89. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/CollectionWrappers/ListWrapper.cs +0 -0
  90. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/CollectionWrappers/SequenceWrapper.cs +0 -0
  91. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Converter.cs +0 -0
  92. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/DefaultBaseTypeProvider.cs +0 -0
  93. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Exceptions.cs +0 -0
  94. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/IPythonBaseTypeProvider.cs +0 -0
  95. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/ImportHook.cs +0 -0
  96. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Interfaces.cs +0 -0
  97. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/InternalPythonnetException.cs +0 -0
  98. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/InteropConfiguration.cs +0 -0
  99. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Loader.cs +0 -0
  100. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Mixins/CollectionMixinsProvider.cs +0 -0
  101. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Mixins/DynamicObjectMixinsProvider.cs +0 -0
  102. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Mixins/collections.py +0 -0
  103. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Mixins/dlr.py +0 -0
  104. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/BorrowedReference.cs +0 -0
  105. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/CustomMarshaler.cs +0 -0
  106. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/GeneratedTypeOffsets.cs +0 -0
  107. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/ITypeOffsets.cs +0 -0
  108. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/LibDL.cs +0 -0
  109. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/LibraryLoader.cs +0 -0
  110. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/NativeCall.cs +0 -0
  111. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/NativeFunc.cs +0 -0
  112. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/NativeTypeSpec.cs +0 -0
  113. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/NewReference.cs +0 -0
  114. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyBufferInterface.cs +0 -0
  115. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyCompilerFlags.cs +0 -0
  116. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyGILState.cs +0 -0
  117. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyIdentifier_.cs +0 -0
  118. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyIdentifier_.tt +0 -0
  119. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyInterpreterState.cs +0 -0
  120. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyMemberFlags.cs +0 -0
  121. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyMemberType.cs +0 -0
  122. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyMethodFlags.cs +0 -0
  123. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/PyThreadState.cs +0 -0
  124. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/ReferenceExtensions.cs +0 -0
  125. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/StolenReference.cs +0 -0
  126. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/StrPtr.cs +0 -0
  127. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/TypeOffset.cs +0 -0
  128. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/TypeOffset311.cs +0 -0
  129. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/TypeOffset312.cs +0 -0
  130. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/TypeOffset313.cs +0 -0
  131. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Native/TypeOffset314.cs +0 -0
  132. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Properties/AssemblyInfo.cs +0 -0
  133. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Py.cs +0 -0
  134. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PyExportAttribute.cs +0 -0
  135. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Python.Runtime.csproj +0 -0
  136. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonBaseTypeProviderGroup.cs +0 -0
  137. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonException.cs +0 -0
  138. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyDict.cs +0 -0
  139. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyFloat.IComparable.cs +0 -0
  140. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyFloat.cs +0 -0
  141. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyInt.IComparable.cs +0 -0
  142. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyInt.cs +0 -0
  143. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyIter.cs +0 -0
  144. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyIterable.cs +0 -0
  145. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyList.cs +0 -0
  146. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyModule.cs +0 -0
  147. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyNumber.cs +0 -0
  148. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyObject.IConvertible.cs +0 -0
  149. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PySequence.cs +0 -0
  150. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyString.cs +0 -0
  151. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyTuple.cs +0 -0
  152. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/PyType.cs +0 -0
  153. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/PythonTypes/TypeSpec.cs +0 -0
  154. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/README.md +0 -0
  155. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Resources/clr.py +0 -0
  156. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Resources/interop.py +0 -0
  157. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/RuntimeState.cs +0 -0
  158. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/CLRMappedItem.cs +0 -0
  159. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/CLRWrapperCollection.cs +0 -0
  160. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/ClassManagerState.cs +0 -0
  161. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/ICLRObjectStorer.cs +0 -0
  162. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/ImportHookState.cs +0 -0
  163. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/MaybeMemberInfo.cs +0 -0
  164. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/MaybeMethodBase.cs +0 -0
  165. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/MaybeType.cs +0 -0
  166. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/MetatypeState.cs +0 -0
  167. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/NoopFormatter.cs +0 -0
  168. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/PythonNetState.cs +0 -0
  169. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/SharedObjectsState.cs +0 -0
  170. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/TypeManagerState.cs +0 -0
  171. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/StateSerialization/UnloadedClass.cs +0 -0
  172. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ArrayObject.cs +0 -0
  173. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ClassObject.cs +0 -0
  174. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ClrModule.cs +0 -0
  175. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/DelegateObject.cs +0 -0
  176. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/DynamicObjectMemberAccessor.cs +0 -0
  177. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/EventBinding.cs +0 -0
  178. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/EventObject.cs +0 -0
  179. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ExceptionClassObject.cs +0 -0
  180. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/FieldObject.cs +0 -0
  181. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/GenericType.cs +0 -0
  182. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/Indexer.cs +0 -0
  183. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/InterfaceObject.cs +0 -0
  184. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/Iterator.cs +0 -0
  185. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ManagedTypes.cd +0 -0
  186. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/MetaType.cs +0 -0
  187. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/MethodBinding.cs +0 -0
  188. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/MethodObject.cs +0 -0
  189. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ModuleFunctionObject.cs +0 -0
  190. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/ModulePropertyObject.cs +0 -0
  191. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/MpLengthSlot.cs +0 -0
  192. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/OperatorMethod.cs +0 -0
  193. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/OverloadMapper.cs +0 -0
  194. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/PropertyObject.cs +0 -0
  195. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Types/UnsafeReferenceWithRun.cs +0 -0
  196. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/CodeGenerator.cs +0 -0
  197. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/ConcurrentLruCache.cs +0 -0
  198. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/DebugUtil.cs +0 -0
  199. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/Encodings.cs +0 -0
  200. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/EventHandlerCollection.cs +0 -0
  201. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/InitOnly.cs +0 -0
  202. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/NonCopyableAttribute.cs +0 -0
  203. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/NullOnly.cs +0 -0
  204. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/OpsHelper.cs +0 -0
  205. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/ParameterHelper.cs +0 -0
  206. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/PythonReferenceComparer.cs +0 -0
  207. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/ReflectionPolyfills.cs +0 -0
  208. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/ReflectionUtil.cs +0 -0
  209. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/src/runtime/Util/Util.cs +0 -0
  210. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_array.py +0 -0
  211. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_callback.py +0 -0
  212. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_class.py +0 -0
  213. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_clrmethod.py +0 -0
  214. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_codec.py +0 -0
  215. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_collection_mixins.py +0 -0
  216. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_constructors.py +0 -0
  217. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_conversion.py +0 -0
  218. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_delegate.py +0 -0
  219. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_disposable.py +0 -0
  220. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_docstring.py +0 -0
  221. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_dynamic.py +0 -0
  222. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_engine.py +0 -0
  223. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_enum.py +0 -0
  224. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_event.py +0 -0
  225. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_exceptions.py +0 -0
  226. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_field.py +0 -0
  227. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_generic.py +0 -0
  228. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_import.py +0 -0
  229. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_indexer.py +0 -0
  230. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_interface.py +0 -0
  231. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_method.py +0 -0
  232. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_module.py +0 -0
  233. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_mp_length.py +0 -0
  234. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_property.py +0 -0
  235. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_recursive_types.py +0 -0
  236. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_repr.py +0 -0
  237. {pythonnet-3.1.0rc1 → pythonnet-3.2.0rc1}/tests/test_sysargv.py +0 -0
@@ -4,5 +4,5 @@ prune src/runtime/bin
4
4
  graft src/compat
5
5
  include src/pythonnet.snk
6
6
  include Directory.Build.*
7
- include pythonnet.sln
7
+ include pythonnet.slnx
8
8
  include version.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonnet
3
- Version: 3.1.0rc1
3
+ Version: 3.2.0rc1
4
4
  Summary: .NET and Mono integration for Python
5
5
  Author-email: "The Contributors of the Python.NET Project" <pythonnet@python.org>
6
6
  License-Expression: MIT
@@ -10,15 +10,15 @@ Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Programming Language :: C#
12
12
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.10
14
13
  Classifier: Programming Language :: Python :: 3.11
15
14
  Classifier: Programming Language :: Python :: 3.12
16
15
  Classifier: Programming Language :: Python :: 3.13
17
16
  Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: Python :: 3.15
18
18
  Classifier: Operating System :: Microsoft :: Windows
19
19
  Classifier: Operating System :: POSIX :: Linux
20
20
  Classifier: Operating System :: MacOS :: MacOS X
21
- Requires-Python: <3.15,>=3.10
21
+ Requires-Python: <3.16,>=3.11
22
22
  Description-Content-Type: text/x-rst
23
23
  License-File: LICENSE
24
24
  License-File: AUTHORS.md
@@ -13,18 +13,18 @@ dependencies = [
13
13
  "clr_loader>=0.3.1,<0.4.0"
14
14
  ]
15
15
 
16
- requires-python = ">=3.10, <3.15"
16
+ requires-python = ">=3.11, <3.16"
17
17
 
18
18
  classifiers = [
19
19
  "Development Status :: 5 - Production/Stable",
20
20
  "Intended Audience :: Developers",
21
21
  "Programming Language :: C#",
22
22
  "Programming Language :: Python :: 3",
23
- "Programming Language :: Python :: 3.10",
24
23
  "Programming Language :: Python :: 3.11",
25
24
  "Programming Language :: Python :: 3.12",
26
25
  "Programming Language :: Python :: 3.13",
27
26
  "Programming Language :: Python :: 3.14",
27
+ "Programming Language :: Python :: 3.15",
28
28
  "Operating System :: Microsoft :: Windows",
29
29
  "Operating System :: POSIX :: Linux",
30
30
  "Operating System :: MacOS :: MacOS X",
@@ -36,8 +36,7 @@ dynamic = ["version"]
36
36
  dev = [
37
37
  "pytest >= 6",
38
38
  "find_libpython >= 0.3",
39
- "numpy >=2 ; python_version >= '3.10'",
40
- "numpy <2 ; python_version < '3.10'",
39
+ "numpy >=2",
41
40
  ]
42
41
  doc = [
43
42
  "sphinx",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonnet
3
- Version: 3.1.0rc1
3
+ Version: 3.2.0rc1
4
4
  Summary: .NET and Mono integration for Python
5
5
  Author-email: "The Contributors of the Python.NET Project" <pythonnet@python.org>
6
6
  License-Expression: MIT
@@ -10,15 +10,15 @@ Classifier: Development Status :: 5 - Production/Stable
10
10
  Classifier: Intended Audience :: Developers
11
11
  Classifier: Programming Language :: C#
12
12
  Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.10
14
13
  Classifier: Programming Language :: Python :: 3.11
15
14
  Classifier: Programming Language :: Python :: 3.12
16
15
  Classifier: Programming Language :: Python :: 3.13
17
16
  Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: Python :: 3.15
18
18
  Classifier: Operating System :: Microsoft :: Windows
19
19
  Classifier: Operating System :: POSIX :: Linux
20
20
  Classifier: Operating System :: MacOS :: MacOS X
21
- Requires-Python: <3.15,>=3.10
21
+ Requires-Python: <3.16,>=3.11
22
22
  Description-Content-Type: text/x-rst
23
23
  License-File: LICENSE
24
24
  License-File: AUTHORS.md
@@ -5,7 +5,7 @@ MANIFEST.in
5
5
  README.rst
6
6
  clr.py
7
7
  pyproject.toml
8
- pythonnet.sln
8
+ pythonnet.slnx
9
9
  setup.py
10
10
  version.txt
11
11
  pythonnet/__init__.py
@@ -104,11 +104,11 @@ src/runtime/Native/ReferenceExtensions.cs
104
104
  src/runtime/Native/StolenReference.cs
105
105
  src/runtime/Native/StrPtr.cs
106
106
  src/runtime/Native/TypeOffset.cs
107
- src/runtime/Native/TypeOffset310.cs
108
107
  src/runtime/Native/TypeOffset311.cs
109
108
  src/runtime/Native/TypeOffset312.cs
110
109
  src/runtime/Native/TypeOffset313.cs
111
110
  src/runtime/Native/TypeOffset314.cs
111
+ src/runtime/Native/TypeOffset315.cs
112
112
  src/runtime/Properties/AssemblyInfo.cs
113
113
  src/runtime/PythonTypes/PyBuffer.cs
114
114
  src/runtime/PythonTypes/PyDict.cs
@@ -0,0 +1,49 @@
1
+ <Solution>
2
+ <Configurations>
3
+ <BuildType Name="Debug" />
4
+ <BuildType Name="Release" />
5
+ <BuildType Name="TraceAlloc" />
6
+ <Platform Name="Any CPU" />
7
+ <Platform Name="x64" />
8
+ <Platform Name="x86" />
9
+ </Configurations>
10
+ <Folder Name="/Build/">
11
+ <File Path="Directory.Build.props" />
12
+ </Folder>
13
+ <Folder Name="/CI/">
14
+ <File Path=".github/workflows/ARM.yml" />
15
+ <File Path=".github/workflows/main.yml" />
16
+ <File Path=".github/workflows/nuget-preview.yml" />
17
+ </Folder>
18
+ <Folder Name="/Repo/">
19
+ <File Path=".editorconfig" />
20
+ <File Path=".gitignore" />
21
+ <File Path="CHANGELOG.md" />
22
+ <File Path="LICENSE" />
23
+ <File Path="README.rst" />
24
+ <File Path="shell.nix" />
25
+ <File Path="version.txt" />
26
+ </Folder>
27
+ <Folder Name="/Solution Items/">
28
+ <File Path="setup.py" />
29
+ </Folder>
30
+ <Folder Name="/Tools/">
31
+ <File Path="tools/geninterop/geninterop.py" />
32
+ </Folder>
33
+ <Project Path="src/embed_tests/Python.EmbeddingTest.csproj">
34
+ <BuildType Solution="TraceAlloc|*" Project="Debug" />
35
+ </Project>
36
+ <Project Path="src/python_tests_runner/Python.PythonTestsRunner.csproj">
37
+ <BuildType Solution="TraceAlloc|*" Project="Debug" />
38
+ </Project>
39
+ <Project Path="src/runtime/Python.Runtime.csproj">
40
+ <BuildType Solution="TraceAlloc|x64" Project="Debug" />
41
+ <BuildType Solution="TraceAlloc|x86" Project="Debug" />
42
+ </Project>
43
+ <Project Path="src/testing/Python.Test.csproj">
44
+ <BuildType Solution="TraceAlloc|*" Project="Debug" />
45
+ </Project>
46
+ <Project Path="tests/domain_tests/Python.DomainReloadTests.csproj">
47
+ <BuildType Solution="TraceAlloc|*" Project="Debug" />
48
+ </Project>
49
+ </Solution>
@@ -1,34 +1,33 @@
1
1
  {
2
2
  "format": 1,
3
3
  "restore": {
4
- "/home/u37166/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj": {}
4
+ "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj": {}
5
5
  },
6
6
  "projects": {
7
- "/home/u37166/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj": {
8
- "version": "3.1.0-rc.1",
7
+ "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj": {
8
+ "version": "3.1.0",
9
9
  "restore": {
10
- "projectUniqueName": "/home/u37166/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
10
+ "projectUniqueName": "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
11
11
  "projectName": "Python.Runtime.Compat",
12
- "projectPath": "/home/u37166/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
13
- "packagesPath": "/home/u37166/.nuget/packages/",
14
- "outputPath": "/home/u37166/dev/pythonnet/src/compat/obj/",
12
+ "projectPath": "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
13
+ "packagesPath": "/home/benedikt/.nuget/packages/",
14
+ "outputPath": "/home/benedikt/dev/pythonnet/src/compat/obj/",
15
15
  "projectStyle": "PackageReference",
16
16
  "configFilePaths": [
17
- "/home/u37166/.nuget/NuGet/NuGet.Config"
17
+ "/home/benedikt/.nuget/NuGet/NuGet.Config"
18
18
  ],
19
19
  "originalTargetFrameworks": [
20
20
  "net461"
21
21
  ],
22
22
  "sources": {
23
- "https://api.nuget.org/v3/index.json": {},
24
- "https://gitlab.com/api/v4/groups/54506757/-/packages/nuget/index.json": {}
23
+ "https://api.nuget.org/v3/index.json": {}
25
24
  },
26
25
  "frameworks": {
27
26
  "net461": {
28
27
  "targetAlias": "net461",
29
28
  "projectReferences": {
30
- "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj": {
31
- "projectPath": "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj"
29
+ "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj": {
30
+ "projectPath": "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj"
32
31
  }
33
32
  }
34
33
  }
@@ -43,7 +42,7 @@
43
42
  "auditLevel": "low",
44
43
  "auditMode": "direct"
45
44
  },
46
- "SdkAnalysisLevel": "10.0.200"
45
+ "SdkAnalysisLevel": "10.0.100"
47
46
  },
48
47
  "frameworks": {
49
48
  "net461": {
@@ -66,29 +65,28 @@
66
65
  "version": "[5.*, )"
67
66
  }
68
67
  },
69
- "runtimeIdentifierGraphPath": "/home/u37166/.dotnet/sdk/10.0.203/RuntimeIdentifierGraph.json"
68
+ "runtimeIdentifierGraphPath": "/opt/dotnet-sdk-bin-10.0/sdk/10.0.107/RuntimeIdentifierGraph.json"
70
69
  }
71
70
  }
72
71
  },
73
- "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj": {
74
- "version": "3.1.0-rc.1",
72
+ "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj": {
73
+ "version": "3.1.0",
75
74
  "restore": {
76
- "projectUniqueName": "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj",
75
+ "projectUniqueName": "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj",
77
76
  "projectName": "pythonnet",
78
- "projectPath": "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj",
79
- "packagesPath": "/home/u37166/.nuget/packages/",
80
- "outputPath": "/home/u37166/dev/pythonnet/src/runtime/obj/",
77
+ "projectPath": "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj",
78
+ "packagesPath": "/home/benedikt/.nuget/packages/",
79
+ "outputPath": "/home/benedikt/dev/pythonnet/src/runtime/obj/",
81
80
  "projectStyle": "PackageReference",
82
81
  "crossTargeting": true,
83
82
  "configFilePaths": [
84
- "/home/u37166/.nuget/NuGet/NuGet.Config"
83
+ "/home/benedikt/.nuget/NuGet/NuGet.Config"
85
84
  ],
86
85
  "originalTargetFrameworks": [
87
86
  "netstandard2.0"
88
87
  ],
89
88
  "sources": {
90
- "https://api.nuget.org/v3/index.json": {},
91
- "https://gitlab.com/api/v4/groups/54506757/-/packages/nuget/index.json": {}
89
+ "https://api.nuget.org/v3/index.json": {}
92
90
  },
93
91
  "frameworks": {
94
92
  "netstandard2.0": {
@@ -109,7 +107,7 @@
109
107
  "auditLevel": "low",
110
108
  "auditMode": "direct"
111
109
  },
112
- "SdkAnalysisLevel": "10.0.200"
110
+ "SdkAnalysisLevel": "10.0.100"
113
111
  },
114
112
  "frameworks": {
115
113
  "netstandard2.0": {
@@ -157,7 +155,7 @@
157
155
  ],
158
156
  "assetTargetFallback": true,
159
157
  "warn": true,
160
- "runtimeIdentifierGraphPath": "/home/u37166/.dotnet/sdk/10.0.203/RuntimeIdentifierGraph.json"
158
+ "runtimeIdentifierGraphPath": "/opt/dotnet-sdk-bin-10.0/sdk/10.0.107/RuntimeIdentifierGraph.json"
161
159
  }
162
160
  }
163
161
  }
@@ -4,13 +4,13 @@
4
4
  <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
5
5
  <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
6
6
  <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
7
- <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/u37166/.nuget/packages/</NuGetPackageRoot>
8
- <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/u37166/.nuget/packages/</NuGetPackageFolders>
7
+ <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/benedikt/.nuget/packages/</NuGetPackageRoot>
8
+ <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/benedikt/.nuget/packages/</NuGetPackageFolders>
9
9
  <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
10
10
  <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
11
11
  </PropertyGroup>
12
12
  <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
13
- <SourceRoot Include="/home/u37166/.nuget/packages/" />
13
+ <SourceRoot Include="/home/benedikt/.nuget/packages/" />
14
14
  </ItemGroup>
15
15
  <ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
16
16
  <Import Project="$(NuGetPackageRoot)microsoft.net.compilers.toolset/5.3.0/build/Microsoft.Net.Compilers.Toolset.props" Condition="Exists('$(NuGetPackageRoot)microsoft.net.compilers.toolset/5.3.0/build/Microsoft.Net.Compilers.Toolset.props')" />
@@ -44,7 +44,7 @@
44
44
  "lib/net45/_._": {}
45
45
  }
46
46
  },
47
- "pythonnet/3.1.0-rc.1": {
47
+ "pythonnet/3.1.0": {
48
48
  "type": "project",
49
49
  "framework": ".NETStandard,Version=v2.0",
50
50
  "dependencies": {
@@ -739,7 +739,7 @@
739
739
  "version.txt"
740
740
  ]
741
741
  },
742
- "pythonnet/3.1.0-rc.1": {
742
+ "pythonnet/3.1.0": {
743
743
  "type": "project",
744
744
  "path": "../runtime/Python.Runtime.csproj",
745
745
  "msbuildProject": "../runtime/Python.Runtime.csproj"
@@ -750,37 +750,36 @@
750
750
  "Microsoft.CSharp >= 4.*",
751
751
  "Microsoft.NETFramework.ReferenceAssemblies >= 1.0.3",
752
752
  "Microsoft.Net.Compilers.Toolset >= 5.*",
753
- "pythonnet >= 3.1.0-rc.1"
753
+ "pythonnet >= 3.1.0"
754
754
  ]
755
755
  },
756
756
  "packageFolders": {
757
- "/home/u37166/.nuget/packages/": {}
757
+ "/home/benedikt/.nuget/packages/": {}
758
758
  },
759
759
  "project": {
760
- "version": "3.1.0-rc.1",
760
+ "version": "3.1.0",
761
761
  "restore": {
762
- "projectUniqueName": "/home/u37166/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
762
+ "projectUniqueName": "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
763
763
  "projectName": "Python.Runtime.Compat",
764
- "projectPath": "/home/u37166/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
765
- "packagesPath": "/home/u37166/.nuget/packages/",
766
- "outputPath": "/home/u37166/dev/pythonnet/src/compat/obj/",
764
+ "projectPath": "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
765
+ "packagesPath": "/home/benedikt/.nuget/packages/",
766
+ "outputPath": "/home/benedikt/dev/pythonnet/src/compat/obj/",
767
767
  "projectStyle": "PackageReference",
768
768
  "configFilePaths": [
769
- "/home/u37166/.nuget/NuGet/NuGet.Config"
769
+ "/home/benedikt/.nuget/NuGet/NuGet.Config"
770
770
  ],
771
771
  "originalTargetFrameworks": [
772
772
  "net461"
773
773
  ],
774
774
  "sources": {
775
- "https://api.nuget.org/v3/index.json": {},
776
- "https://gitlab.com/api/v4/groups/54506757/-/packages/nuget/index.json": {}
775
+ "https://api.nuget.org/v3/index.json": {}
777
776
  },
778
777
  "frameworks": {
779
778
  "net461": {
780
779
  "targetAlias": "net461",
781
780
  "projectReferences": {
782
- "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj": {
783
- "projectPath": "/home/u37166/dev/pythonnet/src/runtime/Python.Runtime.csproj"
781
+ "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj": {
782
+ "projectPath": "/home/benedikt/dev/pythonnet/src/runtime/Python.Runtime.csproj"
784
783
  }
785
784
  }
786
785
  }
@@ -795,7 +794,7 @@
795
794
  "auditLevel": "low",
796
795
  "auditMode": "direct"
797
796
  },
798
- "SdkAnalysisLevel": "10.0.200"
797
+ "SdkAnalysisLevel": "10.0.100"
799
798
  },
800
799
  "frameworks": {
801
800
  "net461": {
@@ -818,7 +817,7 @@
818
817
  "version": "[5.*, )"
819
818
  }
820
819
  },
821
- "runtimeIdentifierGraphPath": "/home/u37166/.dotnet/sdk/10.0.203/RuntimeIdentifierGraph.json"
820
+ "runtimeIdentifierGraphPath": "/opt/dotnet-sdk-bin-10.0/sdk/10.0.107/RuntimeIdentifierGraph.json"
822
821
  }
823
822
  }
824
823
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 2,
3
+ "dgSpecHash": "G3FD9bItNuw=",
4
+ "success": true,
5
+ "projectFilePath": "/home/benedikt/dev/pythonnet/src/compat/Python.Runtime.Compat.csproj",
6
+ "expectedPackageFiles": [
7
+ "/home/benedikt/.nuget/packages/microsoft.csharp/4.7.0/microsoft.csharp.4.7.0.nupkg.sha512",
8
+ "/home/benedikt/.nuget/packages/microsoft.net.compilers.toolset/5.3.0/microsoft.net.compilers.toolset.5.3.0.nupkg.sha512",
9
+ "/home/benedikt/.nuget/packages/microsoft.netframework.referenceassemblies/1.0.3/microsoft.netframework.referenceassemblies.1.0.3.nupkg.sha512",
10
+ "/home/benedikt/.nuget/packages/microsoft.netframework.referenceassemblies.net461/1.0.3/microsoft.netframework.referenceassemblies.net461.1.0.3.nupkg.sha512",
11
+ "/home/benedikt/.nuget/packages/system.reflection.emit/4.7.0/system.reflection.emit.4.7.0.nupkg.sha512"
12
+ ],
13
+ "logs": []
14
+ }
@@ -13,10 +13,10 @@ using System.Reflection;
13
13
  [assembly: System.Reflection.AssemblyCompanyAttribute("Python.Runtime.Compat")]
14
14
  [assembly: System.Reflection.AssemblyConfigurationAttribute("release")]
15
15
  [assembly: System.Reflection.AssemblyFileVersionAttribute("3.1.0.0")]
16
- [assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.1.0-rc.1")]
16
+ [assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.1.0")]
17
17
  [assembly: System.Reflection.AssemblyProductAttribute("Python.Runtime.Compat")]
18
18
  [assembly: System.Reflection.AssemblyTitleAttribute("Python.Runtime.Compat")]
19
19
  [assembly: System.Reflection.AssemblyVersionAttribute("3.1.0.0")]
20
20
 
21
- // Generated by the MSBuild WriteCodeFragment class.
21
+ // Von der MSBuild WriteCodeFragment-Klasse generiert.
22
22
 
@@ -0,0 +1 @@
1
+ 2edd29bd183d253324e92962831d0754b7c96adaf89bd04400dbf85f3b5a38b8
@@ -1,6 +1,6 @@
1
1
  is_global = true
2
2
  build_property.RootNamespace = Python.Runtime.Compat
3
- build_property.ProjectDir = /home/u37166/dev/pythonnet/src/compat/
3
+ build_property.ProjectDir = /home/benedikt/dev/pythonnet/src/compat/
4
4
  build_property.EnableComHosting =
5
5
  build_property.EnableGeneratedComInterfaceComImportInterop =
6
6
  build_property.CsWinRTUseWindowsUIXamlProjections = false
@@ -0,0 +1 @@
1
+ ac99108ff486f70a2428b16c05126fe3925fdcc8ed27077287a843029ab3b142
@@ -0,0 +1,7 @@
1
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.AssemblyReference.cache
2
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.Runtime.Compat.GeneratedMSBuildEditorConfig.editorconfig
3
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.Runtime.Compat.AssemblyInfoInputs.cache
4
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.Runtime.Compat.AssemblyInfo.cs
5
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.Runtime.Compat.csproj.CoreCompileInputs.cache
6
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.R.6D0CE4F8.Up2Date
7
+ /home/benedikt/dev/pythonnet/src/compat/obj/release/net461/Python.Runtime.Compat.dll
@@ -37,7 +37,9 @@ namespace Python.Runtime
37
37
 
38
38
  // modified from event handlers below, potentially triggered from different .NET threads
39
39
  private static readonly ConcurrentQueue<Assembly> assemblies = new();
40
- internal static readonly List<string> pypath = new (capacity: 16);
40
+ // Snapshot; UpdatePath swaps under lock, readers iterate the captured ref.
41
+ internal static volatile IReadOnlyList<string> pypath = Array.Empty<string>();
42
+ private static readonly object _pypathLock = new();
41
43
  private AssemblyManager()
42
44
  {
43
45
  }
@@ -49,7 +51,7 @@ namespace Python.Runtime
49
51
  /// </summary>
50
52
  internal static void Initialize()
51
53
  {
52
- pypath.Clear();
54
+ pypath = Array.Empty<string>();
53
55
 
54
56
  AppDomain domain = AppDomain.CurrentDomain;
55
57
 
@@ -154,19 +156,20 @@ namespace Python.Runtime
154
156
  {
155
157
  BorrowedReference list = Runtime.PySys_GetObject("path");
156
158
  var count = Runtime.PyList_Size(list);
157
- if (count != pypath.Count)
159
+ if (count == pypath.Count) return;
160
+
161
+ lock (_pypathLock)
158
162
  {
159
- pypath.Clear();
163
+ if (count == pypath.Count) return;
164
+ var fresh = new List<string>(checked((int)count));
160
165
  probed.Clear();
161
166
  for (var i = 0; i < count; i++)
162
167
  {
163
168
  BorrowedReference item = Runtime.PyList_GetItem(list, i);
164
169
  string? path = Runtime.GetManagedString(item);
165
- if (path != null)
166
- {
167
- pypath.Add(path);
168
- }
170
+ if (path != null) fresh.Add(path);
169
171
  }
172
+ pypath = fresh;
170
173
  }
171
174
  }
172
175
 
@@ -196,7 +199,8 @@ namespace Python.Runtime
196
199
 
197
200
  static IEnumerable<string> FindAssemblyCandidates(string name)
198
201
  {
199
- foreach (string head in pypath)
202
+ var paths = pypath;
203
+ foreach (string head in paths)
200
204
  {
201
205
  string path;
202
206
  if (head == null || head.Length == 0)
@@ -1,4 +1,5 @@
1
1
  using System;
2
+ using System.Collections.Concurrent;
2
3
  using System.Collections.Generic;
3
4
  using System.Diagnostics;
4
5
  using System.Linq;
@@ -33,7 +34,11 @@ namespace Python.Runtime
33
34
  BindingFlags.Public |
34
35
  BindingFlags.NonPublic;
35
36
 
36
- internal static Dictionary<MaybeType, ReflectedClrType> cache = new(capacity: 128);
37
+ // cache: fully-initialised types (lock-free reads).
38
+ // _inProgressCache: partial types; only accessed under _cacheCreateLock.
39
+ internal static ConcurrentDictionary<MaybeType, ReflectedClrType> cache = new();
40
+ internal static readonly Dictionary<MaybeType, ReflectedClrType> _inProgressCache = new();
41
+ internal static readonly object _cacheCreateLock = new();
37
42
  private static readonly Type dtype;
38
43
 
39
44
  private ClassManager()
@@ -103,13 +108,13 @@ namespace Python.Runtime
103
108
  return new()
104
109
  {
105
110
  Contexts = contexts,
106
- Cache = cache,
111
+ Cache = new Dictionary<MaybeType, ReflectedClrType>(cache),
107
112
  };
108
113
  }
109
114
 
110
115
  internal static void RestoreRuntimeData(ClassManagerState storage)
111
116
  {
112
- cache = storage.Cache;
117
+ cache = new ConcurrentDictionary<MaybeType, ReflectedClrType>(storage.Cache);
113
118
  var invalidClasses = new List<KeyValuePair<MaybeType, ReflectedClrType>>();
114
119
  var contexts = storage.Contexts;
115
120
  foreach (var pair in cache)
@@ -1,4 +1,5 @@
1
1
  using System;
2
+ using System.Collections.Concurrent;
2
3
  using System.Collections.Generic;
3
4
  using System.Linq;
4
5
  using System.Reflection;
@@ -15,7 +16,9 @@ namespace Python.Runtime
15
16
  /// </summary>
16
17
  internal class DelegateManager
17
18
  {
18
- private readonly Dictionary<Type,Type> cache = new();
19
+ // Lock-free reads; Reflection.Emit (BuildDispatcher) is serialised.
20
+ private readonly ConcurrentDictionary<Type, Type> cache = new();
21
+ private readonly object _emitLock = new();
19
22
  private readonly Type basetype = typeof(Dispatcher);
20
23
  private readonly Type arrayType = typeof(object[]);
21
24
  private readonly Type voidtype = typeof(void);
@@ -37,18 +40,19 @@ namespace Python.Runtime
37
40
  /// </summary>
38
41
  private Type GetDispatcher(Type dtype)
39
42
  {
40
- // If a dispatcher type for the given delegate type has already
41
- // been generated, get it from the cache. The cache maps delegate
42
- // types to generated dispatcher types. A possible optimization
43
- // for the future would be to generate dispatcher types based on
44
- // unique signatures rather than delegate types, since multiple
45
- // delegate types with the same sig could use the same dispatcher.
46
-
47
- if (cache.TryGetValue(dtype, out Type item))
43
+ if (cache.TryGetValue(dtype, out Type item)) return item;
44
+ lock (_emitLock)
48
45
  {
49
- return item;
46
+ return cache.TryGetValue(dtype, out item) ? item : BuildDispatcher(dtype);
50
47
  }
48
+ }
51
49
 
50
+ /// <summary>
51
+ /// Emits a new <see cref="Dispatcher"/> subclass for <paramref name="dtype"/>
52
+ /// and caches it. Must be called under <c>_emitLock</c>.
53
+ /// </summary>
54
+ private Type BuildDispatcher(Type dtype)
55
+ {
52
56
  string name = $"__{dtype.FullName}Dispatcher";
53
57
  name = name.Replace('.', '_');
54
58
  name = name.Replace('+', '_');
@@ -36,7 +36,8 @@ namespace Python.Runtime
36
36
  [DefaultValue(DefaultThreshold)]
37
37
  public int Threshold { get; set; } = DefaultThreshold;
38
38
 
39
- bool started;
39
+ // volatile: ThrottledCollect on PyObject ctor races with Initialize.
40
+ volatile bool started;
40
41
 
41
42
  [DefaultValue(true)]
42
43
  public bool Enable { get; set; } = true;
@@ -113,9 +114,11 @@ namespace Python.Runtime
113
114
  {
114
115
  if (!started) throw new InvalidOperationException($"{nameof(PythonEngine)} is not initialized");
115
116
 
116
- _throttled = unchecked(this._throttled + 1);
117
- if (!started || !Enable || _throttled < Threshold) return;
118
- _throttled = 0;
117
+ if (!Enable || Interlocked.Increment(ref _throttled) < Threshold) return;
118
+ // Defends against externally-driven Py_Finalize (e.g. host's atexit):
119
+ // queue pointers may already be freed, so skip the drain.
120
+ if (Runtime._Py_IsFinalizing() == true) return;
121
+ Interlocked.Exchange(ref _throttled, 0);
119
122
  this.Collect();
120
123
  }
121
124
 
@@ -136,7 +139,11 @@ namespace Python.Runtime
136
139
  return;
137
140
  }
138
141
 
139
- Debug.Assert(Runtime.Refcount(new BorrowedReference(obj)) > 0);
142
+ // Skip on FT: the split refcount can race here and trip the assert spuriously.
143
+ if (!Native.ABI.IsFreeThreaded)
144
+ {
145
+ Debug.Assert(Runtime.Refcount(new BorrowedReference(obj)) > 0);
146
+ }
140
147
 
141
148
  #if FINALIZER_CHECK
142
149
  lock (_queueLock)
@@ -8,6 +8,7 @@ namespace Python.Runtime
8
8
  {
9
9
  static partial class InternString
10
10
  {
11
+ // Populated only by Initialize (single-threaded); immutable until Shutdown.
11
12
  private static readonly Dictionary<string, PyString> _string2interns = new();
12
13
  private static readonly Dictionary<IntPtr, string> _intern2strings = new();
13
14
  const BindingFlags PyIdentifierFieldFlags = BindingFlags.Static | BindingFlags.NonPublic;