pyobjc-core 10.1__tar.gz → 10.2__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 (506) hide show
  1. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/PyObjCTools/TestSupport.py +8 -5
  2. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_bridges.py +14 -0
  3. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_properties.py +2 -2
  4. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/PKG-INFO +1 -1
  5. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/SOURCES.txt +3 -0
  6. {pyobjc-core-10.1 → pyobjc-core-10.2}/License.txt +1 -1
  7. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonNumber.m +23 -2
  8. pyobjc-core-10.2/Modules/objc/OC_PythonURL.h +14 -0
  9. pyobjc-core-10.2/Modules/objc/OC_PythonURL.m +128 -0
  10. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonUnicode.m +2 -2
  11. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/block_support.m +2 -2
  12. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/bundle-variables.m +2 -2
  13. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/formal-protocol.m +2 -2
  14. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/libffi_extra.m +3 -3
  15. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/libffi_support.m +7 -7
  16. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/module.m +1 -1
  17. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc_support.m +165 -84
  18. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/opaque-pointer.m +2 -2
  19. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/options.h +1 -0
  20. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/options.m +3 -1
  21. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc.h +2 -1
  22. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/struct-wrapper.m +1 -1
  23. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/metadata.m +9 -9
  24. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/metadatafunction.m +3 -3
  25. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/objectint.m +3 -3
  26. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/pythonset.m +2 -2
  27. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/sequence.m +4 -1
  28. {pyobjc-core-10.1 → pyobjc-core-10.2}/PKG-INFO +1 -1
  29. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_archive_python.py +4 -0
  30. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_opaque.py +3 -1
  31. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_pointer_compat.py +3 -1
  32. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_structs.py +28 -0
  33. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_subclass.py +5 -1
  34. pyobjc-core-10.2/PyObjCTest/test_urlproxy.py +21 -0
  35. {pyobjc-core-10.1 → pyobjc-core-10.2}/setup.py +4 -0
  36. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/00ReadMe.txt +0 -0
  37. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/GUITests/00ReadMe.txt +0 -0
  38. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/GUITests/test_modalsession.py +0 -0
  39. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -0
  40. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -0
  41. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -0
  42. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -0
  43. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  44. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -0
  45. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -0
  46. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -0
  47. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -0
  48. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -0
  49. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -0
  50. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -0
  51. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -0
  52. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -0
  53. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/setup.py +0 -0
  54. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -0
  55. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -0
  56. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/HelloWorld.py +0 -0
  57. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/autoreadme.py +0 -0
  58. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/instrumentSends.py +0 -0
  59. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/kvo-debugging.py +0 -0
  60. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/signal-demo.py +0 -0
  61. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/stdinreader.py +0 -0
  62. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/subclassing-objective-c.py +0 -0
  63. {pyobjc-core-10.1 → pyobjc-core-10.2}/Examples/Scripts/wmEnable.py +0 -0
  64. {pyobjc-core-10.1 → pyobjc-core-10.2}/HISTORIC.txt +0 -0
  65. {pyobjc-core-10.1 → pyobjc-core-10.2}/Install.txt +0 -0
  66. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/PyObjCTools/KeyValueCoding.py +0 -0
  67. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/PyObjCTools/MachSignals.py +0 -0
  68. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/PyObjCTools/Signals.py +0 -0
  69. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/__init__.py +0 -0
  70. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_bridgesupport.py +0 -0
  71. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_callable_docstr.py +0 -0
  72. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_category.py +0 -0
  73. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_compat.py +0 -0
  74. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_context.py +0 -0
  75. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience.py +0 -0
  76. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_mapping.py +0 -0
  77. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsarray.py +0 -0
  78. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsdata.py +0 -0
  79. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsdecimal.py +0 -0
  80. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsdictionary.py +0 -0
  81. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsobject.py +0 -0
  82. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsset.py +0 -0
  83. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_nsstring.py +0 -0
  84. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_convenience_sequence.py +0 -0
  85. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_descriptors.py +0 -0
  86. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_dyld.py +0 -0
  87. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_framework.py +0 -0
  88. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_informal_protocol.py +0 -0
  89. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_lazyimport.py +0 -0
  90. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_locking.py +0 -0
  91. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_protocols.py +0 -0
  92. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_pycoder.py +0 -0
  93. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_pythonify.py +0 -0
  94. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_structtype.py +0 -0
  95. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/_transform.py +0 -0
  96. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/objc/simd.py +0 -0
  97. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
  98. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +0 -0
  99. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/include/pyobjc-compat.h +0 -0
  100. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
  101. {pyobjc-core-10.1 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
  102. {pyobjc-core-10.1 → pyobjc-core-10.2}/MANIFEST +0 -0
  103. {pyobjc-core-10.1 → pyobjc-core-10.2}/MANIFEST.in +0 -0
  104. {pyobjc-core-10.1 → pyobjc-core-10.2}/Misc/announcement.txt +0 -0
  105. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/_machsignals.m +0 -0
  106. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
  107. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
  108. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonData.h +0 -0
  109. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonData.m +0 -0
  110. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
  111. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
  112. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
  113. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
  114. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
  115. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
  116. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
  117. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
  118. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
  119. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
  120. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_NSBundleHack.h +0 -0
  121. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_NSBundleHack.m +0 -0
  122. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonArray.h +0 -0
  123. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonArray.m +0 -0
  124. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonData.h +0 -0
  125. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonData.m +0 -0
  126. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonDate.h +0 -0
  127. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonDate.m +0 -0
  128. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonDictionary.h +0 -0
  129. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonDictionary.m +0 -0
  130. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonEnumerator.h +0 -0
  131. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonEnumerator.m +0 -0
  132. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonNumber.h +0 -0
  133. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonObject.h +0 -0
  134. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonObject.m +0 -0
  135. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonSet.h +0 -0
  136. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonSet.m +0 -0
  137. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/OC_PythonUnicode.h +0 -0
  138. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/ObjCPointer.h +0 -0
  139. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/ObjCPointer.m +0 -0
  140. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/block_support.h +0 -0
  141. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/bundle-variables.h +0 -0
  142. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/class-builder.h +0 -0
  143. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/class-builder.m +1 -1
  144. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/class-list.h +0 -0
  145. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/class-list.m +0 -0
  146. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/closure_pool.h +0 -0
  147. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/closure_pool.m +0 -0
  148. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/corefoundation.h +0 -0
  149. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/corefoundation.m +0 -0
  150. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/ctests.h +0 -0
  151. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/ctests.m +0 -0
  152. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/file_wrapper.h +0 -0
  153. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/file_wrapper.m +0 -0
  154. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/formal-protocol.h +0 -0
  155. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/fsref.h +0 -0
  156. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/fsref.m +0 -0
  157. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/function.h +0 -0
  158. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/function.m +0 -0
  159. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-authorization.m +0 -0
  160. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nscoder.m +0 -0
  161. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsdata.m +0 -0
  162. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsdecimal.m +0 -0
  163. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsinvocation.m +0 -0
  164. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsobject.m +0 -0
  165. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers-vector.m +0 -0
  166. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/helpers.h +0 -0
  167. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/instance-var.h +0 -0
  168. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/instance-var.m +0 -0
  169. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/ivar-accessor.h +0 -0
  170. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/ivar-accessor.m +0 -0
  171. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/libffi_extra.h +0 -0
  172. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/libffi_support.h +0 -0
  173. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/memview.h +0 -0
  174. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/memview.m +0 -0
  175. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/meth-func.h +0 -0
  176. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/meth-func.m +0 -0
  177. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/method-accessor.h +0 -0
  178. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/method-accessor.m +0 -0
  179. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/method-imp.h +0 -0
  180. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/method-imp.m +0 -0
  181. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/method-signature.h +0 -0
  182. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/method-signature.m +0 -0
  183. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-NULL.h +0 -0
  184. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-NULL.m +0 -0
  185. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-class.h +0 -0
  186. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-class.m +0 -0
  187. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-object.h +0 -0
  188. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-object.m +0 -0
  189. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-runtime-compat.h +0 -0
  190. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc-runtime-compat.m +0 -0
  191. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc_super.h +0 -0
  192. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc_super.m +0 -0
  193. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc_support.h +0 -0
  194. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc_util.h +0 -0
  195. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/objc_util.m +0 -0
  196. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/opaque-pointer.h +0 -0
  197. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pointer-support.h +0 -0
  198. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pointer-support.m +0 -0
  199. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/proxy-registry.h +0 -0
  200. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/proxy-registry.m +0 -0
  201. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc-api.h +0 -0
  202. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc-api.m +0 -0
  203. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc-assert.h +0 -0
  204. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc-compat.h +0 -0
  205. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc-compat.m +0 -0
  206. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc-unittest.h +0 -0
  207. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc_unicode.h +0 -0
  208. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/pyobjc_unicode.m +0 -0
  209. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/python-api-used.h +0 -0
  210. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/registry.h +0 -0
  211. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/registry.m +0 -0
  212. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/released-buffer.h +0 -0
  213. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/released-buffer.m +0 -0
  214. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/selector.h +0 -0
  215. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/selector.m +0 -0
  216. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/struct-sockaddr.h +0 -0
  217. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/struct-sockaddr.m +0 -0
  218. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/struct-wrapper.h +0 -0
  219. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/super-call.h +0 -0
  220. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/super-call.m +0 -0
  221. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/NULL.m +0 -0
  222. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/arrayint.m +0 -0
  223. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/arrays.m +0 -0
  224. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/block.m +0 -0
  225. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/bufsizeinarg.m +0 -0
  226. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/categories_base.m +0 -0
  227. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c42.m +0 -0
  228. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c43.m +0 -0
  229. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c44.m +0 -0
  230. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c45.m +0 -0
  231. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c46.m +0 -0
  232. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c47.m +0 -0
  233. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c48.m +0 -0
  234. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c49.m +0 -0
  235. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c50.m +0 -0
  236. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c51.m +0 -0
  237. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c52.m +0 -0
  238. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c53.m +0 -0
  239. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c54.m +0 -0
  240. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c55.m +0 -0
  241. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c56.m +0 -0
  242. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c57.m +0 -0
  243. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c58.m +0 -0
  244. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_c59.m +0 -0
  245. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp10.m +0 -0
  246. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp11.m +0 -0
  247. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp12.m +0 -0
  248. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp13.m +0 -0
  249. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp14.m +0 -0
  250. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp15.m +0 -0
  251. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp16.m +0 -0
  252. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp17.m +0 -0
  253. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp18.m +0 -0
  254. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp19.m +0 -0
  255. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp20.m +0 -0
  256. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp21.m +0 -0
  257. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp22.m +0 -0
  258. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp23.m +0 -0
  259. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp24.m +0 -0
  260. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp27.m +0 -0
  261. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp3.m +0 -0
  262. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp30.m +0 -0
  263. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp33.m +0 -0
  264. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp36.m +0 -0
  265. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp39.m +0 -0
  266. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp42.m +0 -0
  267. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp45.m +0 -0
  268. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp48.m +0 -0
  269. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp51.m +0 -0
  270. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp54.m +0 -0
  271. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp57.m +0 -0
  272. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp6.m +0 -0
  273. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp7.m +0 -0
  274. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp8.m +0 -0
  275. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_gp9.m +0 -0
  276. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p24.m +0 -0
  277. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p25.m +0 -0
  278. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p26.m +0 -0
  279. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p27.m +0 -0
  280. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p28.m +0 -0
  281. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p29.m +0 -0
  282. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p30.m +0 -0
  283. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p31.m +0 -0
  284. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p32.m +0 -0
  285. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p33.m +0 -0
  286. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p34.m +0 -0
  287. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p35.m +0 -0
  288. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p36.m +0 -0
  289. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p37.m +0 -0
  290. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p38.m +0 -0
  291. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p39.m +0 -0
  292. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p40.m +0 -0
  293. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/category_p41.m +0 -0
  294. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/cfsocket.m +0 -0
  295. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/classes.m +0 -0
  296. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/clinmeth.m +0 -0
  297. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/coding.m +0 -0
  298. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/copying.m +0 -0
  299. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/corefoundation.m +0 -0
  300. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/dataint.m +0 -0
  301. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/dateint.m +0 -0
  302. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/decimal.m +0 -0
  303. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/deprecations.m +0 -0
  304. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/dictint.m +0 -0
  305. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/enumeration.m +0 -0
  306. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/exceptions.m +0 -0
  307. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/filepointer.m +0 -0
  308. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/fsref.m +0 -0
  309. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/gcov.m +0 -0
  310. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/helpernsdata.m +0 -0
  311. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/helpernsobject.m +0 -0
  312. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/identity.m +0 -0
  313. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/initialize.m +0 -0
  314. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/instanceVariables.m +0 -0
  315. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/locking.m +0 -0
  316. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/methodaccess.m +0 -0
  317. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/methodlookup.m +0 -0
  318. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/methres1.m +0 -0
  319. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/methres2.m +0 -0
  320. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/misc.m +0 -0
  321. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/missing1.m +0 -0
  322. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/missing2.m +0 -0
  323. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/missing3.m +0 -0
  324. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/nsobjectcategory.m +0 -0
  325. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/nulldelimitedresult.m +0 -0
  326. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/opaque.m +0 -0
  327. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/pointersupport.m +0 -0
  328. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/properties.m +0 -0
  329. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/protected.m +0 -0
  330. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/protocol.m +0 -0
  331. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/pythonnumber.m +0 -0
  332. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/sockaddr.m +0 -0
  333. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/specialtypecodes.m +0 -0
  334. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/stringint.m +0 -0
  335. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/structargs.m +0 -0
  336. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/structpointer1.m +0 -0
  337. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/structpointer2.m +0 -0
  338. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/structs.m +0 -0
  339. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/testbndl.m +0 -0
  340. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/testbndl2.m +0 -0
  341. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/testclassandinst.m +0 -0
  342. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/testoutputinitializer.m +0 -0
  343. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/vector.m +0 -0
  344. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/vectorcall.m +0 -0
  345. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/test/voidpointer.m +0 -0
  346. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/varlist.h +0 -0
  347. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/varlist.m +0 -0
  348. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/weakref.h +0 -0
  349. {pyobjc-core-10.1 → pyobjc-core-10.2}/Modules/objc/weakref.m +0 -0
  350. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/__init__.py +0 -0
  351. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
  352. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
  353. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
  354. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
  355. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
  356. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
  357. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
  358. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
  359. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
  360. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/dump-nsarchive.m +0 -0
  361. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/fnd.py +0 -0
  362. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/helper_bridgesupport.py +0 -0
  363. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/keyvaluehelper.py +0 -0
  364. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/loader.py +0 -0
  365. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_NULL.py +0 -0
  366. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_allocatebuffer.py +0 -0
  367. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_api_import.py +0 -0
  368. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_archiving_interop.py +0 -0
  369. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_archiving_secure_interop.py +0 -0
  370. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_array_interface.py +0 -0
  371. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_array_property.py +0 -0
  372. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_arrays.py +0 -0
  373. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_assocations.py +0 -0
  374. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_blocks.py +0 -0
  375. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_bridged_classes.py +0 -0
  376. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_bridges.py +0 -0
  377. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_bridgesupport.py +0 -0
  378. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_bufsizeinarg.py +0 -0
  379. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_bundleFunctions.py +0 -0
  380. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_bundleVariables.py +0 -0
  381. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_callable_docstr.py +0 -0
  382. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_callbacks.py +0 -0
  383. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_categories.py +0 -0
  384. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_classandinst.py +0 -0
  385. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_classhooks.py +0 -0
  386. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_clinmeth.py +0 -0
  387. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_compat.py +0 -0
  388. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_context.py +0 -0
  389. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_convenience.py +0 -0
  390. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_conversion.py +0 -0
  391. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_copying.py +0 -0
  392. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_corefoundation.py +0 -0
  393. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_ctests.py +0 -0
  394. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_data_proxy.py +0 -0
  395. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_date_proxy.py +0 -0
  396. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_default_selector.py +0 -0
  397. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_deprecations.py +0 -0
  398. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_descriptors.py +0 -0
  399. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_dict_interface.py +0 -0
  400. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_dict_property.py +0 -0
  401. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_dict_proxy.py +0 -0
  402. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_dyld.py +0 -0
  403. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_enumerator.py +0 -0
  404. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_exceptions.py +0 -0
  405. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_filepointer.py +0 -0
  406. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_final.py +0 -0
  407. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_framework.py +0 -0
  408. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_fsref.py +0 -0
  409. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_functions.py +0 -0
  410. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_generic_class.py +0 -0
  411. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_hidden_selector.py +0 -0
  412. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_identity.py +0 -0
  413. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_imp.py +0 -0
  414. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_initialized.py +0 -0
  415. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_inspect_signatures.py +0 -0
  416. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_internals.py +0 -0
  417. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_ivar.py +0 -0
  418. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_keyvalue.py +0 -0
  419. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_keyvalue_prop.py +0 -0
  420. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_keyvaluecoding.py +0 -0
  421. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_lazy_import.py +0 -0
  422. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_leaks.py +0 -0
  423. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_list_proxy.py +0 -0
  424. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_locking.py +0 -0
  425. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_machsignals.py +0 -0
  426. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_metadata.py +0 -0
  427. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_metadata_function.py +0 -0
  428. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_metadata_imp.py +0 -0
  429. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_metadata_inheritance.py +0 -0
  430. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_metadata_py.py +0 -0
  431. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_metadata_py2py.py +0 -0
  432. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_method_prototypes.py +0 -0
  433. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_methodaccess.py +0 -0
  434. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_methodedits.py +0 -0
  435. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_methodlookup.py +0 -0
  436. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_methods.py +0 -0
  437. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_methods2.py +0 -0
  438. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_methres.py +0 -0
  439. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nscoder.py +0 -0
  440. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nsdata.py +0 -0
  441. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nsdate_proxy.py +0 -0
  442. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nsdecimal.py +0 -0
  443. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nsinvocation.py +0 -0
  444. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nsobject.py +0 -0
  445. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_nulldelimited.py +0 -0
  446. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_number_proxy.py +0 -0
  447. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_objc.py +0 -0
  448. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_objcpointer.py +0 -0
  449. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_object_property.py +0 -0
  450. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_object_proxy.py +0 -0
  451. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_options.py +0 -0
  452. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_outputinitializer.py +0 -0
  453. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_pickle.py +0 -0
  454. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_pickling_objc.py +0 -0
  455. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_posing.py +0 -0
  456. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_propertiesforclass.py +0 -0
  457. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_protected.py +0 -0
  458. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_protocol.py +0 -0
  459. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_protocolNamed.py +0 -0
  460. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_python_method.py +0 -0
  461. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_regr.py +0 -0
  462. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_set_interface.py +0 -0
  463. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_set_property.py +0 -0
  464. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_set_proxy.py +0 -0
  465. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_signals.py +0 -0
  466. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_signatures.py +0 -0
  467. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_simd.py +0 -0
  468. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_sockaddr.py +0 -0
  469. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_charbyte.py +0 -0
  470. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_charint.py +0 -0
  471. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_methdef.py +0 -0
  472. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_nsbool.py +0 -0
  473. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_struct.py +0 -0
  474. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_unichar.py +0 -0
  475. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_splitsig.py +0 -0
  476. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_string_proxy.py +0 -0
  477. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_structpointer.py +0 -0
  478. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_synthesize.py +0 -0
  479. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_testsupport.py +0 -0
  480. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_transform.py +0 -0
  481. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_transform_integration.py +0 -0
  482. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_typecheck.py +0 -0
  483. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_unicode.py +0 -0
  484. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_usekvo.py +0 -0
  485. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_varargs.py +0 -0
  486. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_varlist.py +0 -0
  487. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_vector_proxy.py +0 -0
  488. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_vectorcall.py +0 -0
  489. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_version_support.py +0 -0
  490. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_voidpointer.py +0 -0
  491. {pyobjc-core-10.1 → pyobjc-core-10.2}/PyObjCTest/test_weakref.py +0 -0
  492. {pyobjc-core-10.1 → pyobjc-core-10.2}/README.txt +0 -0
  493. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/MANIFEST.in +0 -0
  494. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/comparebench.py +0 -0
  495. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/gen_archive.py +0 -0
  496. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/generate-category-tests.py +0 -0
  497. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/generate-helpers-vector.py +0 -0
  498. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/pyobjc_setup.py +0 -0
  499. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/pyobjcbench.py +0 -0
  500. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/results/pyobjcbench-7.3.txt +0 -0
  501. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
  502. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
  503. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/runtests-with-nuitka.py +0 -0
  504. {pyobjc-core-10.1 → pyobjc-core-10.2}/Tools/runtests.py +0 -0
  505. {pyobjc-core-10.1 → pyobjc-core-10.2}/pyproject.toml +0 -0
  506. {pyobjc-core-10.1 → pyobjc-core-10.2}/setup.cfg +0 -0
@@ -1229,13 +1229,16 @@ class TestCase(_unittest.TestCase):
1229
1229
  )
1230
1230
 
1231
1231
  if exclude_cocoa:
1232
- import Cocoa
1232
+ try:
1233
+ import Cocoa
1233
1234
 
1234
- exclude_names = set(dir(Cocoa))
1235
+ exclude_names = set(dir(Cocoa))
1235
1236
 
1236
- # Don't exclude NSObject' because a number
1237
- # of frameworks define categories on this class.
1238
- exclude_names -= {"NSObject"}
1237
+ # Don't exclude NSObject' because a number
1238
+ # of frameworks define categories on this class.
1239
+ exclude_names -= {"NSObject"}
1240
+ except ImportError:
1241
+ exclude_names = set()
1239
1242
  else:
1240
1243
  exclude_names = set()
1241
1244
 
@@ -1,5 +1,6 @@
1
1
  import collections.abc
2
2
  import datetime
3
+ import pathlib
3
4
 
4
5
  from objc import _objc
5
6
 
@@ -8,6 +9,7 @@ __all__ = [
8
9
  "registerMappingType",
9
10
  "registerSetType",
10
11
  "registerDateType",
12
+ "registerPathType",
11
13
  ]
12
14
 
13
15
  _objc.options._datetime_date_type = datetime.date
@@ -58,6 +60,17 @@ def registerDateType(type_object):
58
60
  _objc.options._date_types += (type_object,)
59
61
 
60
62
 
63
+ def registerPathType(type_object):
64
+ """
65
+ Register 'type' as a date-like type that will be proxied
66
+ as an NSDate subclass.
67
+ """
68
+ if _objc.options._path_types is None:
69
+ _objc.options._path_types = ()
70
+
71
+ _objc.options._path_types += (type_object,)
72
+
73
+
61
74
  registerListType(collections.abc.Sequence)
62
75
  registerListType(range)
63
76
  registerMappingType(collections.abc.Mapping)
@@ -67,3 +80,4 @@ registerSetType(frozenset)
67
80
  registerSetType(collections.abc.Set)
68
81
  registerDateType(datetime.date)
69
82
  registerDateType(datetime.datetime)
83
+ registerPathType(pathlib.Path)
@@ -248,7 +248,7 @@ class object_property:
248
248
  )
249
249
  signature = _C_NSBOOL + b"@:N^@o^@"
250
250
  validate = selector(self._validate, selector=selName, signature=signature)
251
- class_dict[validate.selector] = validate
251
+ class_dict[validate.selector.decode().replace(":", "_")] = validate
252
252
  instance_methods.add(validate)
253
253
 
254
254
  if self._depends_on:
@@ -266,7 +266,7 @@ class object_property:
266
266
  signature=b"@@:",
267
267
  isClassMethod=True,
268
268
  )
269
- class_dict[affecting.selector] = affecting
269
+ class_dict[affecting.selector.decode().replace(":", "_")] = affecting
270
270
  class_methods.add(affecting)
271
271
 
272
272
  def __get__(self, an_object, owner):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-core
3
- Version: 10.1
3
+ Version: 10.2
4
4
  Summary: Python<->ObjC Interoperability Module
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren, bbum, SteveM, LeleG, many others stretching back through the reaches of time...
@@ -110,6 +110,8 @@ Modules/objc/OC_PythonObject.h
110
110
  Modules/objc/OC_PythonObject.m
111
111
  Modules/objc/OC_PythonSet.h
112
112
  Modules/objc/OC_PythonSet.m
113
+ Modules/objc/OC_PythonURL.h
114
+ Modules/objc/OC_PythonURL.m
113
115
  Modules/objc/OC_PythonUnicode.h
114
116
  Modules/objc/OC_PythonUnicode.m
115
117
  Modules/objc/ObjCPointer.h
@@ -472,6 +474,7 @@ PyObjCTest/test_transform.py
472
474
  PyObjCTest/test_transform_integration.py
473
475
  PyObjCTest/test_typecheck.py
474
476
  PyObjCTest/test_unicode.py
477
+ PyObjCTest/test_urlproxy.py
475
478
  PyObjCTest/test_usekvo.py
476
479
  PyObjCTest/test_varargs.py
477
480
  PyObjCTest/test_varlist.py
@@ -1,7 +1,7 @@
1
1
  (This is the MIT license, note that libffi-src is a separate product with its own license)
2
2
 
3
3
  Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
4
- Copyright 2003-2022 - Ronald Oussoren
4
+ Copyright 2003-2024 - Ronald Oussoren
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
7
 
@@ -123,7 +123,15 @@ NS_ASSUME_NONNULL_BEGIN
123
123
 
124
124
  - (BOOL)boolValue
125
125
  {
126
- return (BOOL)PyObject_IsTrue(value);
126
+ int r;
127
+ PyObjC_BEGIN_WITH_GIL
128
+ r = PyObject_IsTrue(value);
129
+ if (r == -1) {
130
+ PyObjC_GIL_FORWARD_EXC();
131
+ }
132
+ PyObjC_END_WITH_GIL
133
+
134
+ return !!r;
127
135
  }
128
136
 
129
137
  - (char)charValue
@@ -209,12 +217,19 @@ NS_ASSUME_NONNULL_BEGIN
209
217
  }
210
218
 
211
219
  - (long long)longLongValue
220
+ /* Disable float-cast-overflow checking when running
221
+ * with undefined behaviour sanitizer. The float cast
222
+ * below can result in undefined behaviour but is
223
+ * necessary to match Cocoa semantics.
224
+ */
225
+ __attribute__((no_sanitize("float-cast-overflow")))
212
226
  {
213
227
  long long result;
214
228
 
215
229
  PyObjC_BEGIN_WITH_GIL
216
230
  if (PyFloat_Check(value)) {
217
- result = (long long)PyFloat_AsDouble(value);
231
+ double float_result = PyFloat_AsDouble(value);
232
+ result = (long long)float_result;
218
233
  PyObjC_GIL_RETURN(result);
219
234
  } else if (PyLong_Check(value)) {
220
235
  result = PyLong_AsUnsignedLongLongMask(value);
@@ -231,6 +246,12 @@ NS_ASSUME_NONNULL_BEGIN
231
246
  }
232
247
 
233
248
  - (unsigned long long)unsignedLongLongValue
249
+ /* Disable float-cast-overflow checking when running
250
+ * with undefined behaviour sanitizer. The float cast
251
+ * below can result in undefined behaviour but is
252
+ * necessary to match Cocoa semantics.
253
+ */
254
+ __attribute__((no_sanitize("float-cast-overflow")))
234
255
  {
235
256
  unsigned long long result;
236
257
 
@@ -0,0 +1,14 @@
1
+ NS_ASSUME_NONNULL_BEGIN
2
+
3
+ PyObjC_FINAL_CLASS
4
+ @interface OC_PythonURL : NSURL {
5
+ PyObject* value;
6
+ }
7
+
8
+ + (instancetype _Nullable)URLWithPythonObject:(PyObject*)value;
9
+ - (id _Nullable)initWithPythonObject:(PyObject*)value;
10
+ - (PyObject*)__pyobjc_PythonObject__;
11
+
12
+ @end
13
+
14
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,128 @@
1
+ #include "pyobjc.h"
2
+ NS_ASSUME_NONNULL_BEGIN
3
+
4
+ @implementation OC_PythonURL
5
+
6
+ + (instancetype _Nullable)URLWithPythonObject:(PyObject*)object
7
+ {
8
+ return [[[self alloc] initWithPythonObject:object] autorelease];
9
+ }
10
+
11
+ - (id _Nullable)initWithPythonObject:(PyObject*)object
12
+ {
13
+ PyObject* fspath = PyOS_FSPath(object);
14
+ if (fspath == NULL) {
15
+ return nil;
16
+ }
17
+ if (!PyUnicode_Check(fspath)) {
18
+ Py_DECREF(fspath);
19
+ PyErr_Format(PyExc_ValueError, "os.fspath(%R) did not return a string", object);
20
+ return nil;
21
+ }
22
+
23
+ const char* utf8;
24
+ Py_ssize_t utf8_size;
25
+
26
+ utf8 = PyUnicode_AsUTF8AndSize(fspath, &utf8_size);
27
+ if (utf8 == NULL) {
28
+ Py_DECREF(fspath);
29
+ return nil;
30
+ }
31
+ if (utf8_size != (Py_ssize_t)strlen(utf8)) {
32
+ Py_DECREF(fspath);
33
+ PyErr_Format(PyExc_ValueError, "os.fspath(%R) result has embedded NULs", object);
34
+ return nil;
35
+ }
36
+
37
+ NSString* path = [[NSString alloc] initWithUTF8String:utf8];
38
+ Py_DECREF(fspath);
39
+ if (path == nil) {
40
+ return nil;
41
+ }
42
+
43
+ self = [super initFileURLWithPath:path];
44
+ [path release];
45
+ if (self == nil) {
46
+ return nil;
47
+ }
48
+
49
+ SET_FIELD_INCREF(value, object);
50
+ return self;
51
+ }
52
+
53
+ - (oneway void)release
54
+ {
55
+ /* See comment in OC_PythonUnicode */
56
+ if (unlikely(!Py_IsInitialized())) { // LCOV_BR_EXCL_LINE
57
+ // LCOV_EXCL_START
58
+ [super release];
59
+ return;
60
+ // LCOV_EXCL_STOP
61
+ }
62
+
63
+ PyObjC_BEGIN_WITH_GIL
64
+ @try {
65
+ [super release];
66
+ // LCOV_EXCL_START
67
+ } @catch (NSObject* exc) {
68
+ /* I'm 99% sure this path cannot be hit,
69
+ * this class cannot be subclassesed and
70
+ * -dealloc cannot raise.
71
+ */
72
+ PyObjC_LEAVE_GIL;
73
+ @throw;
74
+ }
75
+ // LCOV_EXCL_STOP
76
+
77
+ PyObjC_END_WITH_GIL
78
+ }
79
+
80
+ - (void)dealloc
81
+ {
82
+ if (unlikely(!Py_IsInitialized())) { // LCOV_BR_EXCL_LINE
83
+ // LCOV_EXCL_START
84
+ [super dealloc];
85
+ return;
86
+ // LCOV_EXCL_STOP
87
+ }
88
+
89
+ PyObjC_BEGIN_WITH_GIL
90
+ Py_XDECREF(value);
91
+ PyObjC_END_WITH_GIL
92
+
93
+ [super dealloc];
94
+ }
95
+
96
+ /*
97
+ * NSURL implements safe coding, that's something we cannot
98
+ * do for arbitrary python objects. Therefore punt and encode
99
+ * as a regular NSURL.
100
+ */
101
+ - (Class)classForCoder
102
+ {
103
+ return [NSURL class];
104
+ }
105
+
106
+ - (Class _Nullable)classForKeyedArchiver
107
+ {
108
+ return [NSURL class];
109
+ }
110
+
111
+
112
+ - (PyObject*)__pyobjc_PythonObject__
113
+ {
114
+ Py_XINCREF(value);
115
+ return value;
116
+ }
117
+
118
+ - (PyObject*)__pyobjc_PythonTransient__:(int*)cookie
119
+ {
120
+ *cookie = 0;
121
+ Py_XINCREF(value);
122
+ return value;
123
+ }
124
+ @end
125
+
126
+
127
+
128
+ NS_ASSUME_NONNULL_END
@@ -180,12 +180,12 @@ NS_ASSUME_NONNULL_BEGIN
180
180
 
181
181
  - (void)getCharacters:(unichar*)buffer range:(NSRange)aRange
182
182
  {
183
- return [[self __realObject__] getCharacters:buffer range:aRange];
183
+ [[self __realObject__] getCharacters:buffer range:aRange];
184
184
  }
185
185
 
186
186
  - (void)getCharacters:(unichar*)buffer
187
187
  {
188
- return [[self __realObject__] getCharacters:buffer];
188
+ [[self __realObject__] getCharacters:buffer];
189
189
  }
190
190
 
191
191
  /*
@@ -385,7 +385,7 @@ error:
385
385
  static void
386
386
  PyObjCBlock_CleanupCapsule(PyObject* ptr)
387
387
  {
388
- void* block_func = PyCapsule_GetPointer(ptr, "objc.__block_release__");
388
+ PyObjCBlockFunction block_func = (PyObjCBlockFunction)PyCapsule_GetPointer(ptr, "objc.__block_release__");
389
389
  if (block_func == NULL)
390
390
  return;
391
391
 
@@ -458,7 +458,7 @@ void* _Nullable PyObjCBlock_Create(PyObjCMethodSignature* signature, PyObject* c
458
458
  }
459
459
  block->invoke = block_func;
460
460
 
461
- block->invoke_cleanup = PyCapsule_New(block->invoke, "objc.__block_release__",
461
+ block->invoke_cleanup = PyCapsule_New((void*)(block->invoke), "objc.__block_release__",
462
462
  PyObjCBlock_CleanupCapsule);
463
463
  if (block->invoke_cleanup == NULL) { // LCOV_BR_EXCL_LINE
464
464
  PyObjCFFI_FreeBlockFunction(block->invoke); // LCOV_EXCL_LINE
@@ -387,7 +387,7 @@ PyObject* _Nullable PyObjC_loadFunctionList(PyObject* self __attribute__((__unus
387
387
  len = PySequence_Fast_GET_SIZE(seq);
388
388
  for (i = 0; i < len; i++) {
389
389
  PyObject* item = PySequence_Fast_GET_ITEM(seq, i);
390
- void* value;
390
+ function value;
391
391
  char* signature;
392
392
  PyObject* name;
393
393
  PyObject* doc;
@@ -417,7 +417,7 @@ PyObject* _Nullable PyObjC_loadFunctionList(PyObject* self __attribute__((__unus
417
417
  }
418
418
 
419
419
  } else {
420
- PyObject* py_val = PyObjCFunc_New(name, value, signature, doc, meta);
420
+ PyObject* py_val = PyObjCFunc_New(name, (void*)value, signature, doc, meta);
421
421
  if (py_val == NULL) {
422
422
  Py_DECREF(seq);
423
423
  return NULL;
@@ -185,7 +185,7 @@ static PyObject* _Nullable proto_new(PyTypeObject* type __attribute__((__unused_
185
185
 
186
186
  protocol_addMethodDescription(
187
187
  theProtocol, theSel, theSignature,
188
- (BOOL)PyObjCSelector_Required(PyTuple_GET_ITEM(sel, i)),
188
+ !!PyObjCSelector_Required(PyTuple_GET_ITEM(sel, i)),
189
189
  PyObjCSelector_IsClassMethod(PyTuple_GET_ITEM(sel, i)) ? NO : YES);
190
190
  }
191
191
 
@@ -199,7 +199,7 @@ static PyObject* _Nullable proto_new(PyTypeObject* type __attribute__((__unused_
199
199
  }
200
200
 
201
201
  protocol_addMethodDescription(theProtocol, theSel, theSignature,
202
- (BOOL)PyObjCSelector_Required(sel),
202
+ !!PyObjCSelector_Required(sel),
203
203
  PyObjCSelector_IsClassMethod(sel) ? NO : YES);
204
204
  }
205
205
  }
@@ -39,7 +39,7 @@ alloc_prepped_closure(ffi_closure** cl, ffi_cif* cif, void** codeloc, void* func
39
39
  #pragma clang diagnostic push
40
40
  #pragma clang diagnostic ignored "-Wunguarded-availability-new"
41
41
 
42
- rv = ffi_prep_closure_loc(*cl, cif, func, userdata, *codeloc);
42
+ rv = ffi_prep_closure_loc(*cl, cif, (void (*)(ffi_cif *, void *, void **, void *))func, userdata, *codeloc);
43
43
 
44
44
  #pragma clang diagnostic pop
45
45
 
@@ -48,12 +48,12 @@ alloc_prepped_closure(ffi_closure** cl, ffi_cif* cif, void** codeloc, void* func
48
48
  #if PyObjC_BUILD_RELEASE >= 1015
49
49
 
50
50
  if (@available(macOS 10.15, *)) { // LCOV_BR_EXCL_LINE
51
- rv = ffi_prep_closure_loc(*cl, cif, func, userdata, *codeloc);
51
+ rv = ffi_prep_closure_loc(*cl, cif, (void (*)(ffi_cif *, void *, void **, void *))func, userdata, *codeloc);
52
52
  } else {
53
53
  #pragma clang diagnostic push
54
54
  #pragma clang diagnostic ignored "-Wdeprecated-declarations"
55
55
 
56
- rv = ffi_prep_closure(*cl, cif, func, userdata);
56
+ rv = ffi_prep_closure(*cl, cif, (void (*)(ffi_cif *, void *, void **, void *))func, userdata);
57
57
 
58
58
  #pragma clang diagnostic pop
59
59
  }
@@ -2719,7 +2719,7 @@ PyObjCFFI_CountArguments(PyObjCMethodSignature* methinfo, Py_ssize_t argOffset,
2719
2719
  static void
2720
2720
  imp_capsule_cleanup(PyObject* ptr)
2721
2721
  {
2722
- PyObjCFFI_FreeIMP(PyCapsule_GetPointer(ptr, "objc.__imp__"));
2722
+ PyObjCFFI_FreeIMP((IMP)PyCapsule_GetPointer(ptr, "objc.__imp__"));
2723
2723
  }
2724
2724
 
2725
2725
  static void
@@ -3027,7 +3027,7 @@ PyObjCFFI_ParseArguments(PyObjCMethodSignature* methinfo, Py_ssize_t argOffset,
3027
3027
  return -1;
3028
3028
  }
3029
3029
  byref_attr[i].obj = PyCapsule_New(
3030
- closure, "objc.__imp__", imp_capsule_cleanup);
3030
+ (void*)closure, "objc.__imp__", imp_capsule_cleanup);
3031
3031
  } else {
3032
3032
  PyErr_SetString(
3033
3033
  PyExc_TypeError,
@@ -3040,7 +3040,7 @@ PyObjCFFI_ParseArguments(PyObjCMethodSignature* methinfo, Py_ssize_t argOffset,
3040
3040
  PyErr_SetString(PyExc_TypeError,
3041
3041
  "Invalid pyobjc_closure attribute");
3042
3042
  }
3043
- closure = PyCapsule_GetPointer(v, "objc.__imp__");
3043
+ closure = (PyObjC_callback_function)PyCapsule_GetPointer(v, "objc.__imp__");
3044
3044
  if (closure == NULL) {
3045
3045
  PyErr_SetString(PyExc_TypeError,
3046
3046
  "Invalid pyobjc_closure attribute");
@@ -3302,7 +3302,7 @@ PyObjCFFI_ParseArguments(PyObjCMethodSignature* methinfo, Py_ssize_t argOffset,
3302
3302
  return -1;
3303
3303
  }
3304
3304
 
3305
- byref_attr[i].obj = PyCapsule_New(closure, "objc.__imp__",
3305
+ byref_attr[i].obj = PyCapsule_New((void*)closure, "objc.__imp__",
3306
3306
  imp_capsule_cleanup);
3307
3307
 
3308
3308
  } else {
@@ -3318,7 +3318,7 @@ PyObjCFFI_ParseArguments(PyObjCMethodSignature* methinfo, Py_ssize_t argOffset,
3318
3318
  "Invalid pyobjc_closure attribute");
3319
3319
  }
3320
3320
 
3321
- closure = PyCapsule_GetPointer(v, "objc.__imp__");
3321
+ closure = (PyObjC_callback_function)PyCapsule_GetPointer(v, "objc.__imp__");
3322
3322
  if (closure == NULL) {
3323
3323
  PyErr_SetString(PyExc_TypeError,
3324
3324
  "Invalid pyobjc_closure attribute");
@@ -5117,7 +5117,7 @@ IMP _Nullable PyObjCFFI_MakeClosure(PyObjCMethodSignature* methinfo,
5117
5117
  }
5118
5118
 
5119
5119
  if ( // LCOV_BR_EXCL_LINE
5120
- alloc_prepped_closure(&cl, cif, &codeloc, func, userdata) == -1) {
5120
+ alloc_prepped_closure(&cl, cif, &codeloc, (void*)func, userdata) == -1) {
5121
5121
  // LCOV_EXCL_START
5122
5122
  PyErr_SetString(PyObjCExc_Error, "Cannot create libffi closure");
5123
5123
  return NULL;
@@ -5140,7 +5140,7 @@ PyObjCFFI_FreeClosure(IMP closure)
5140
5140
  ffi_cif* cif;
5141
5141
  void* userdata;
5142
5142
 
5143
- free_closure_from_codeloc(closure, &cif, &userdata);
5143
+ free_closure_from_codeloc((void*)closure, &cif, &userdata);
5144
5144
  PyObjCFFI_FreeCIF(cif);
5145
5145
  return userdata;
5146
5146
  }
@@ -1361,7 +1361,7 @@ static PyObject* _Nullable _makeClosure(PyObject* self __attribute__((__unused__
1361
1361
  return NULL;
1362
1362
  }
1363
1363
 
1364
- PyObject* retval = PyCapsule_New(result, "objc.__imp__", _callback_cleanup);
1364
+ PyObject* retval = PyCapsule_New((void*)result, "objc.__imp__", _callback_cleanup);
1365
1365
  if (retval == NULL) {
1366
1366
  PyObjCFFI_FreeIMP((IMP)result);
1367
1367
  return NULL;