pyobjc-core 10.3__tar.gz → 10.3.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 (510) hide show
  1. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_new.py +3 -0
  2. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_transform.py +3 -1
  3. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/PKG-INFO +1 -1
  4. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/class-list.m +4 -0
  5. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-class.m +74 -8
  6. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc_util.h +1 -0
  7. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc_util.m +2 -0
  8. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/options.h +1 -0
  9. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/options.m +3 -0
  10. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc.h +1 -1
  11. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/coding.m +0 -1
  12. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/genericnew.m +9 -0
  13. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PKG-INFO +1 -1
  14. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_generic_new.py +4 -0
  15. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_regr.py +7 -0
  16. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_splitsig.py +4 -0
  17. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_subclass.py +50 -0
  18. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/pyobjc_setup.py +62 -22
  19. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/setup.py +4 -8
  20. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/00ReadMe.txt +0 -0
  21. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/GUITests/00ReadMe.txt +0 -0
  22. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/GUITests/test_modalsession.py +0 -0
  23. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -0
  24. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -0
  25. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -0
  26. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -0
  27. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  28. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -0
  29. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -0
  30. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -0
  31. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -0
  32. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -0
  33. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -0
  34. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -0
  35. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -0
  36. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -0
  37. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/setup.py +0 -0
  38. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -0
  39. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -0
  40. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/HelloWorld.py +0 -0
  41. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/autoreadme.py +0 -0
  42. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/instrumentSends.py +0 -0
  43. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/kvo-debugging.py +0 -0
  44. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/signal-demo.py +0 -0
  45. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/stdinreader.py +0 -0
  46. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/subclassing-objective-c.py +0 -0
  47. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Examples/Scripts/wmEnable.py +0 -0
  48. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/HISTORIC.txt +0 -0
  49. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Install.txt +0 -0
  50. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/PyObjCTools/KeyValueCoding.py +0 -0
  51. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/PyObjCTools/MachSignals.py +0 -0
  52. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/PyObjCTools/Signals.py +0 -0
  53. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/PyObjCTools/TestSupport.py +0 -0
  54. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/__init__.py +0 -0
  55. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_bridges.py +0 -0
  56. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_bridgesupport.py +0 -0
  57. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_callable_docstr.py +0 -0
  58. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_category.py +0 -0
  59. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_compat.py +0 -0
  60. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_context.py +0 -0
  61. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience.py +0 -0
  62. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_mapping.py +0 -0
  63. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsarray.py +0 -0
  64. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsdata.py +0 -0
  65. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsdecimal.py +0 -0
  66. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsdictionary.py +0 -0
  67. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsobject.py +0 -0
  68. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsset.py +0 -0
  69. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsstring.py +0 -0
  70. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_convenience_sequence.py +0 -0
  71. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_descriptors.py +0 -0
  72. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_dyld.py +0 -0
  73. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_framework.py +0 -0
  74. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_informal_protocol.py +0 -0
  75. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_lazyimport.py +0 -0
  76. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_locking.py +0 -0
  77. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_properties.py +0 -0
  78. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_protocols.py +0 -0
  79. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_pycoder.py +0 -0
  80. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_pythonify.py +0 -0
  81. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/_structtype.py +0 -0
  82. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/objc/simd.py +0 -0
  83. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/SOURCES.txt +0 -0
  84. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
  85. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +0 -0
  86. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/include/pyobjc-compat.h +0 -0
  87. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
  88. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
  89. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/License.txt +0 -0
  90. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/MANIFEST +0 -0
  91. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/MANIFEST.in +0 -0
  92. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Misc/announcement.txt +0 -0
  93. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/_machsignals.m +0 -0
  94. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
  95. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
  96. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonData.h +0 -0
  97. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonData.m +0 -0
  98. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
  99. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
  100. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
  101. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
  102. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
  103. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
  104. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
  105. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
  106. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
  107. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
  108. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_NSBundleHack.h +0 -0
  109. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_NSBundleHack.m +0 -0
  110. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonArray.h +0 -0
  111. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonArray.m +0 -0
  112. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonData.h +0 -0
  113. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonData.m +0 -0
  114. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDate.h +0 -0
  115. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDate.m +0 -0
  116. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDictionary.h +0 -0
  117. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDictionary.m +0 -0
  118. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonEnumerator.h +0 -0
  119. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonEnumerator.m +0 -0
  120. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonNumber.h +0 -0
  121. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonNumber.m +0 -0
  122. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonObject.h +0 -0
  123. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonObject.m +0 -0
  124. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonSet.h +0 -0
  125. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonSet.m +0 -0
  126. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonURL.h +0 -0
  127. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonURL.m +0 -0
  128. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonUnicode.h +0 -0
  129. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonUnicode.m +0 -0
  130. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/ObjCPointer.h +0 -0
  131. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/ObjCPointer.m +0 -0
  132. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/block_support.h +0 -0
  133. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/block_support.m +0 -0
  134. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/bundle-variables.h +0 -0
  135. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/bundle-variables.m +0 -0
  136. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/class-builder.h +0 -0
  137. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/class-builder.m +0 -0
  138. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/class-list.h +0 -0
  139. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/closure_pool.h +0 -0
  140. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/closure_pool.m +0 -0
  141. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/corefoundation.h +0 -0
  142. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/corefoundation.m +0 -0
  143. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/ctests.h +0 -0
  144. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/ctests.m +0 -0
  145. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/file_wrapper.h +0 -0
  146. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/file_wrapper.m +0 -0
  147. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/formal-protocol.h +0 -0
  148. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/formal-protocol.m +0 -0
  149. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/fsref.h +0 -0
  150. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/fsref.m +0 -0
  151. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/function.h +0 -0
  152. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/function.m +0 -0
  153. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-authorization.m +0 -0
  154. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nscoder.m +0 -0
  155. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsdata.m +0 -0
  156. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsdecimal.m +0 -0
  157. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsinvocation.m +0 -0
  158. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsobject.m +0 -0
  159. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers-vector.m +0 -0
  160. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/helpers.h +0 -0
  161. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/instance-var.h +0 -0
  162. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/instance-var.m +0 -0
  163. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/ivar-accessor.h +0 -0
  164. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/ivar-accessor.m +0 -0
  165. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/libffi_extra.h +0 -0
  166. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/libffi_extra.m +0 -0
  167. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/libffi_support.h +0 -0
  168. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/libffi_support.m +0 -0
  169. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/memview.h +0 -0
  170. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/memview.m +0 -0
  171. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/meth-func.h +0 -0
  172. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/meth-func.m +0 -0
  173. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/method-accessor.h +0 -0
  174. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/method-accessor.m +0 -0
  175. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/method-imp.h +0 -0
  176. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/method-imp.m +0 -0
  177. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/method-signature.h +0 -0
  178. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/method-signature.m +0 -0
  179. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/module.m +0 -0
  180. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-NULL.h +0 -0
  181. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-NULL.m +0 -0
  182. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-class.h +0 -0
  183. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-object.h +0 -0
  184. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-object.m +0 -0
  185. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-runtime-compat.h +0 -0
  186. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc-runtime-compat.m +0 -0
  187. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc_super.h +0 -0
  188. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc_super.m +0 -0
  189. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc_support.h +0 -0
  190. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/objc_support.m +0 -0
  191. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/opaque-pointer.h +0 -0
  192. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/opaque-pointer.m +0 -0
  193. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pointer-support.h +0 -0
  194. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pointer-support.m +0 -0
  195. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/proxy-registry.h +0 -0
  196. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/proxy-registry.m +0 -0
  197. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-api.h +0 -0
  198. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-api.m +0 -0
  199. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-assert.h +0 -0
  200. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-compat.h +0 -0
  201. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-compat.m +0 -0
  202. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-unittest.h +0 -0
  203. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc_unicode.h +0 -0
  204. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/pyobjc_unicode.m +0 -0
  205. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/python-api-used.h +0 -0
  206. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/registry.h +0 -0
  207. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/registry.m +0 -0
  208. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/released-buffer.h +0 -0
  209. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/released-buffer.m +0 -0
  210. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/selector.h +0 -0
  211. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/selector.m +0 -0
  212. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/struct-sockaddr.h +0 -0
  213. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/struct-sockaddr.m +0 -0
  214. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/struct-wrapper.h +0 -0
  215. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/struct-wrapper.m +0 -0
  216. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/super-call.h +0 -0
  217. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/super-call.m +0 -0
  218. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/NULL.m +0 -0
  219. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/arrayint.m +0 -0
  220. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/arrays.m +0 -0
  221. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/block.m +0 -0
  222. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/bufsizeinarg.m +0 -0
  223. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/categories_base.m +0 -0
  224. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c42.m +0 -0
  225. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c43.m +0 -0
  226. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c44.m +0 -0
  227. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c45.m +0 -0
  228. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c46.m +0 -0
  229. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c47.m +0 -0
  230. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c48.m +0 -0
  231. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c49.m +0 -0
  232. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c50.m +0 -0
  233. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c51.m +0 -0
  234. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c52.m +0 -0
  235. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c53.m +0 -0
  236. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c54.m +0 -0
  237. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c55.m +0 -0
  238. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c56.m +0 -0
  239. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c57.m +0 -0
  240. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c58.m +0 -0
  241. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_c59.m +0 -0
  242. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp10.m +0 -0
  243. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp11.m +0 -0
  244. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp12.m +0 -0
  245. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp13.m +0 -0
  246. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp14.m +0 -0
  247. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp15.m +0 -0
  248. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp16.m +0 -0
  249. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp17.m +0 -0
  250. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp18.m +0 -0
  251. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp19.m +0 -0
  252. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp20.m +0 -0
  253. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp21.m +0 -0
  254. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp22.m +0 -0
  255. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp23.m +0 -0
  256. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp24.m +0 -0
  257. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp27.m +0 -0
  258. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp3.m +0 -0
  259. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp30.m +0 -0
  260. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp33.m +0 -0
  261. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp36.m +0 -0
  262. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp39.m +0 -0
  263. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp42.m +0 -0
  264. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp45.m +0 -0
  265. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp48.m +0 -0
  266. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp51.m +0 -0
  267. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp54.m +0 -0
  268. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp57.m +0 -0
  269. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp6.m +0 -0
  270. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp7.m +0 -0
  271. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp8.m +0 -0
  272. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp9.m +0 -0
  273. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p24.m +0 -0
  274. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p25.m +0 -0
  275. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p26.m +0 -0
  276. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p27.m +0 -0
  277. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p28.m +0 -0
  278. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p29.m +0 -0
  279. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p30.m +0 -0
  280. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p31.m +0 -0
  281. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p32.m +0 -0
  282. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p33.m +0 -0
  283. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p34.m +0 -0
  284. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p35.m +0 -0
  285. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p36.m +0 -0
  286. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p37.m +0 -0
  287. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p38.m +0 -0
  288. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p39.m +0 -0
  289. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p40.m +0 -0
  290. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/category_p41.m +0 -0
  291. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/cfsocket.m +0 -0
  292. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/classes.m +0 -0
  293. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/clinmeth.m +0 -0
  294. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/copying.m +0 -0
  295. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/corefoundation.m +0 -0
  296. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/dataint.m +0 -0
  297. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/dateint.m +0 -0
  298. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/decimal.m +0 -0
  299. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/deprecations.m +0 -0
  300. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/dictint.m +0 -0
  301. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/enumeration.m +0 -0
  302. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/exceptions.m +0 -0
  303. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/filepointer.m +0 -0
  304. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/fsref.m +0 -0
  305. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/gcov.m +0 -0
  306. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/helpernsdata.m +0 -0
  307. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/helpernsobject.m +0 -0
  308. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/identity.m +0 -0
  309. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/initialize.m +0 -0
  310. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/instanceVariables.m +0 -0
  311. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/locking.m +0 -0
  312. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/metadata.m +0 -0
  313. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/metadatafunction.m +0 -0
  314. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/methodaccess.m +0 -0
  315. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/methodlookup.m +0 -0
  316. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/methres1.m +0 -0
  317. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/methres2.m +0 -0
  318. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/misc.m +0 -0
  319. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/missing1.m +0 -0
  320. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/missing2.m +0 -0
  321. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/missing3.m +0 -0
  322. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/nsobjectcategory.m +0 -0
  323. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/nulldelimitedresult.m +0 -0
  324. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/objectint.m +0 -0
  325. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/opaque.m +0 -0
  326. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/pointersupport.m +0 -0
  327. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/properties.m +0 -0
  328. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/protected.m +0 -0
  329. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/protocol.m +0 -0
  330. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/pythonnumber.m +0 -0
  331. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/pythonset.m +0 -0
  332. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/sequence.m +0 -0
  333. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/sockaddr.m +0 -0
  334. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/specialtypecodes.m +0 -0
  335. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/stringint.m +0 -0
  336. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/structargs.m +0 -0
  337. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/structpointer1.m +0 -0
  338. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/structpointer2.m +0 -0
  339. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/structs.m +0 -0
  340. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/testbndl.m +0 -0
  341. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/testbndl2.m +0 -0
  342. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/testclassandinst.m +0 -0
  343. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/testoutputinitializer.m +0 -0
  344. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/unavailable.m +0 -0
  345. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/vector.m +0 -0
  346. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/vectorcall.m +0 -0
  347. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/test/voidpointer.m +0 -0
  348. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/varlist.h +0 -0
  349. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/varlist.m +0 -0
  350. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/weakref.h +0 -0
  351. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Modules/objc/weakref.m +0 -0
  352. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/__init__.py +0 -0
  353. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
  354. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
  355. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
  356. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
  357. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
  358. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
  359. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
  360. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
  361. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
  362. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/dump-nsarchive.m +0 -0
  363. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/fnd.py +0 -0
  364. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/helper_bridgesupport.py +0 -0
  365. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/keyvaluehelper.py +0 -0
  366. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/loader.py +0 -0
  367. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_NULL.py +0 -0
  368. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_allocatebuffer.py +0 -0
  369. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_api_import.py +0 -0
  370. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_archive_python.py +0 -0
  371. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_archiving_interop.py +0 -0
  372. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_archiving_secure_interop.py +0 -0
  373. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_array_interface.py +0 -0
  374. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_array_property.py +0 -0
  375. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_arrays.py +0 -0
  376. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_assocations.py +0 -0
  377. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_blocks.py +0 -0
  378. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_bridged_classes.py +0 -0
  379. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_bridges.py +0 -0
  380. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_bridgesupport.py +0 -0
  381. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_bufsizeinarg.py +0 -0
  382. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_bundleFunctions.py +0 -0
  383. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_bundleVariables.py +0 -0
  384. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_callable_docstr.py +0 -0
  385. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_callbacks.py +0 -0
  386. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_categories.py +0 -0
  387. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_classandinst.py +0 -0
  388. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_classhooks.py +0 -0
  389. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_clinmeth.py +0 -0
  390. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_compat.py +0 -0
  391. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_context.py +0 -0
  392. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_convenience.py +0 -0
  393. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_conversion.py +0 -0
  394. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_copying.py +0 -0
  395. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_corefoundation.py +0 -0
  396. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_ctests.py +0 -0
  397. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_data_proxy.py +0 -0
  398. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_date_proxy.py +0 -0
  399. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_default_selector.py +0 -0
  400. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_deprecations.py +0 -0
  401. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_descriptors.py +0 -0
  402. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_dict_interface.py +0 -0
  403. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_dict_property.py +0 -0
  404. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_dict_proxy.py +0 -0
  405. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_dyld.py +0 -0
  406. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_enumerator.py +0 -0
  407. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_exceptions.py +0 -0
  408. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_filepointer.py +0 -0
  409. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_final.py +0 -0
  410. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_framework.py +0 -0
  411. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_fsref.py +0 -0
  412. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_functions.py +0 -0
  413. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_generic_class.py +0 -0
  414. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_hidden_selector.py +0 -0
  415. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_identity.py +0 -0
  416. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_imp.py +0 -0
  417. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_initialized.py +0 -0
  418. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_inspect_signatures.py +0 -0
  419. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_internals.py +0 -0
  420. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_ivar.py +0 -0
  421. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_keyvalue.py +0 -0
  422. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_keyvalue_prop.py +0 -0
  423. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_keyvaluecoding.py +0 -0
  424. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_lazy_import.py +0 -0
  425. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_leaks.py +0 -0
  426. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_list_proxy.py +0 -0
  427. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_locking.py +0 -0
  428. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_machsignals.py +0 -0
  429. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata.py +0 -0
  430. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_function.py +0 -0
  431. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_imp.py +0 -0
  432. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_inheritance.py +0 -0
  433. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_py.py +0 -0
  434. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_py2py.py +0 -0
  435. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_method_prototypes.py +0 -0
  436. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_methodaccess.py +0 -0
  437. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_methodedits.py +0 -0
  438. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_methodlookup.py +0 -0
  439. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_methods.py +0 -0
  440. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_methods2.py +0 -0
  441. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_methres.py +0 -0
  442. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nscoder.py +0 -0
  443. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nsdata.py +0 -0
  444. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nsdate_proxy.py +0 -0
  445. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nsdecimal.py +0 -0
  446. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nsinvocation.py +0 -0
  447. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nsobject.py +0 -0
  448. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nsunavailable.py +0 -0
  449. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_nulldelimited.py +0 -0
  450. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_number_proxy.py +0 -0
  451. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_objc.py +0 -0
  452. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_objcpointer.py +0 -0
  453. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_object_property.py +0 -0
  454. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_object_proxy.py +0 -0
  455. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_opaque.py +0 -0
  456. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_options.py +0 -0
  457. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_outputinitializer.py +0 -0
  458. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_pickle.py +0 -0
  459. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_pickling_objc.py +0 -0
  460. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_pointer_compat.py +0 -0
  461. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_propertiesforclass.py +0 -0
  462. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_protected.py +0 -0
  463. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_protocol.py +0 -0
  464. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_protocolNamed.py +0 -0
  465. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_python_method.py +0 -0
  466. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_set_interface.py +0 -0
  467. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_set_property.py +0 -0
  468. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_set_proxy.py +0 -0
  469. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_signals.py +0 -0
  470. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_signatures.py +0 -0
  471. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_simd.py +0 -0
  472. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_sockaddr.py +0 -0
  473. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_charbyte.py +0 -0
  474. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_charint.py +0 -0
  475. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_methdef.py +0 -0
  476. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_nsbool.py +0 -0
  477. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_struct.py +0 -0
  478. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_unichar.py +0 -0
  479. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_string_proxy.py +0 -0
  480. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_structpointer.py +0 -0
  481. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_structs.py +0 -0
  482. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_synthesize.py +0 -0
  483. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_testsupport.py +0 -0
  484. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_transform.py +0 -0
  485. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_transform_integration.py +0 -0
  486. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_typecheck.py +0 -0
  487. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_unicode.py +0 -0
  488. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_urlproxy.py +0 -0
  489. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_usekvo.py +0 -0
  490. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_varargs.py +0 -0
  491. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_varlist.py +0 -0
  492. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_vector_proxy.py +0 -0
  493. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_vectorcall.py +0 -0
  494. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_version_support.py +0 -0
  495. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_voidpointer.py +0 -0
  496. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/PyObjCTest/test_weakref.py +0 -0
  497. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/README.txt +0 -0
  498. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/MANIFEST.in +0 -0
  499. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/comparebench.py +0 -0
  500. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/gen_archive.py +0 -0
  501. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/generate-category-tests.py +0 -0
  502. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/generate-helpers-vector.py +0 -0
  503. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/pyobjcbench.py +0 -0
  504. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/results/pyobjcbench-7.3.txt +0 -0
  505. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
  506. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
  507. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/runtests-with-nuitka.py +0 -0
  508. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/Tools/runtests.py +0 -0
  509. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/pyproject.toml +0 -0
  510. {pyobjc_core-10.3 → pyobjc_core-10.3.2}/setup.cfg +0 -0
@@ -159,3 +159,6 @@ def make_generic_new(cls):
159
159
  __new__.__qualname__ = cls.__name__ + ".__new__"
160
160
  __new__.__module__ = cls.__module__
161
161
  return function_wrapper(__new__, cls)
162
+
163
+
164
+ objc.options._genericNewClass = function_wrapper
@@ -43,7 +43,9 @@ def _selectorToKeywords(selector):
43
43
  parts = selector.split(":")[:-1]
44
44
  if parts[0].startswith("With"):
45
45
  parts[0] = parts[0][4:]
46
- parts[0] = parts[0][:1].lower() + parts[0][1:]
46
+
47
+ if len(parts[0]) == 1 or (len(parts[0]) > 1 and not parts[0].isupper()):
48
+ parts[0] = parts[0][:1].lower() + parts[0][1:]
47
49
 
48
50
  return tuple(parts)
49
51
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-core
3
- Version: 10.3
3
+ Version: 10.3.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...
@@ -93,8 +93,12 @@ PyObjC_GetClassList(bool ignore_invalid_identifiers)
93
93
  * versions should build on the latest one (and preferably
94
94
  * use the "official" binary wheels).
95
95
  */
96
+ #if 0
96
97
  if (@available(macOS 10.15, *)) {
97
98
  } else {
99
+ #else
100
+ {
101
+ #endif
98
102
  /* A numbef of private(-ish) classes that cause
99
103
  * crashes when constructed here while running
100
104
  * on macOS 10.14
@@ -348,6 +348,7 @@ static PyTypeObject* _Nullable PyObjCClass_NewMetaClass(Class objc_class)
348
348
  static PyObject* _Nullable class_call(PyObject* self, PyObject* _Nullable args, PyObject* _Nullable kwds)
349
349
  {
350
350
  PyTypeObject* type = (PyTypeObject*)self;
351
+ PyObject* result;
351
352
 
352
353
  if (type->tp_new == NULL) {
353
354
  PyErr_Format( PyExc_TypeError,
@@ -355,7 +356,40 @@ static PyObject* _Nullable class_call(PyObject* self, PyObject* _Nullable args,
355
356
  return NULL;
356
357
  }
357
358
 
358
- return type->tp_new(type, args, kwds);
359
+
360
+ result = type->tp_new(type, args, kwds);
361
+ if (result == NULL) {
362
+ return result;
363
+ }
364
+
365
+ if (PyObject_TypeCheck(result, type) == 0) {
366
+ return result;
367
+ }
368
+
369
+ if (PyObjC_genericNewClass != NULL && PyObjC_genericNewClass != Py_None) {
370
+ PyObject* new = PyObject_GetAttr((PyObject*)type, PyObjCNM___new__);
371
+ if (new == NULL) { /* Shouldn't happen */
372
+ Py_DECREF(result);
373
+ return NULL;
374
+ }
375
+
376
+ int r = PyObject_TypeCheck(new, (PyTypeObject*)PyObjC_genericNewClass);
377
+ Py_DECREF(new);
378
+ if (r != 0) {
379
+ return result;
380
+ }
381
+ }
382
+
383
+ /* Only call __init__ when the generic new implementation is not used */
384
+
385
+ type = Py_TYPE(result);
386
+ if (type->tp_init != NULL) {
387
+ int res = type->tp_init(result, args, kwds);
388
+ if (res == -1) {
389
+ Py_SETREF(result, NULL);
390
+ }
391
+ }
392
+ return result;
359
393
  }
360
394
 
361
395
 
@@ -1075,9 +1109,27 @@ static PyObject* _Nullable class_repr(PyObject* obj)
1075
1109
  static void
1076
1110
  class_dealloc(PyObject* cls)
1077
1111
  {
1078
- /* XXX: This method should never be called because it is impossible to
1079
- * unregister and Objective-C class from the Objective-C runtime.
1112
+ if (((PyObjCClassObject*)cls)->class == Nil) {
1113
+ /*
1114
+ * Cleanup of a class proxy that was created due to a race condition in creating
1115
+ * instances.
1116
+ */
1117
+ PyObjCClassObject* info = (PyObjCClassObject*)cls;
1118
+ Py_CLEAR(info->sel_to_py);
1119
+
1120
+ Py_CLEAR(info->delmethod);
1121
+ Py_CLEAR(info->hiddenSelectors);
1122
+ Py_CLEAR(info->hiddenClassSelectors);
1123
+ Py_CLEAR(info->lookup_cache);
1124
+ PyType_Type.tp_dealloc(cls);
1125
+ return;
1126
+ }
1127
+
1128
+ /*
1129
+ * This method should never be called because it is impossible
1130
+ * to unregister an Objective-C class from the runtime.
1080
1131
  */
1132
+
1081
1133
  char buf[1024];
1082
1134
 
1083
1135
  snprintf(buf, sizeof(buf), "Deallocating objective-C class %s",
@@ -2605,7 +2657,20 @@ PyObject* _Nullable PyObjCClass_New(Class objc_class)
2605
2657
  info->hiddenClassSelectors = hiddenClassSelectors;
2606
2658
  info->lookup_cache = NULL;
2607
2659
 
2608
- objc_class_register(objc_class, result);
2660
+ PyObject* temp = objc_class_locate(objc_class);
2661
+ if (temp != NULL) {
2662
+ /* Race condition between two threads that
2663
+ * try to register the class.
2664
+ */
2665
+ info->class = Nil;
2666
+ Py_DECREF(result);
2667
+ return temp;
2668
+ }
2669
+
2670
+ if (objc_class_register(objc_class, result) < 0) {
2671
+ Py_DECREF(result);
2672
+ return NULL;
2673
+ }
2609
2674
 
2610
2675
  /*
2611
2676
  * Support the buffer protocol in the wrappers for NSData and
@@ -2625,15 +2690,16 @@ PyObject* _Nullable PyObjCClass_New(Class objc_class)
2625
2690
  PyType_Ready((PyTypeObject*)result);
2626
2691
  }
2627
2692
 
2628
- if (strcmp(className, "_NSPlaceholderData") == 0) {
2629
- /* XXX */
2693
+ if (strncmp(className, "_NSPlaceholder", sizeof("_NSPlaceholder")-1) == 0) {
2630
2694
  /* Workaround for an issue on macOS 10.15: For some
2631
2695
  * reason the call to class_getInstanceVariable crashes
2632
2696
  * when called early in the process, likely due to an
2633
2697
  * incompletely initialized class.
2634
2698
  *
2635
- * The workaround is hardcoded for this specific class
2636
- * to avoid issues with other magic classes.
2699
+ * The issue is more widespread in later versions of the OS,
2700
+ * and seems to be related to rewriting Foundation in Swift.
2701
+ *
2702
+ * Issues: #271, #625
2637
2703
  */
2638
2704
  [objc_class class];
2639
2705
  }
@@ -123,6 +123,7 @@ extern PyObject* PyObjCNM___get__;
123
123
  extern PyObject* PyObjCNM_date_format_string;
124
124
  extern PyObject* PyObjCNM_objc_memview_object;
125
125
  extern PyObject* PyObjCNM_objc_NULL;
126
+ extern PyObject* PyObjCNM___new__;
126
127
 
127
128
  extern PyObject* _Nullable PyObjC_CallCopyFunc(PyObject* arg);
128
129
  extern PyObject* _Nullable PyObjC_CallDecoder(PyObject* cdr, PyObject* setValue);
@@ -34,6 +34,7 @@ PyObject* PyObjCNM___get__;
34
34
  PyObject* PyObjCNM_date_format_string;
35
35
  PyObject* PyObjCNM_objc_memview_object;
36
36
  PyObject* PyObjCNM_objc_NULL;
37
+ PyObject* PyObjCNM___new__;
37
38
 
38
39
  int
39
40
  PyObjCUtil_Init(PyObject* module)
@@ -84,6 +85,7 @@ PyObjCUtil_Init(PyObject* module)
84
85
  NEW_STR(PyObjCNM_date_format_string, "%s");
85
86
  NEW_STR(PyObjCNM_objc_memview_object, "objc.memview object");
86
87
  NEW_STR(PyObjCNM_objc_NULL, "objc.NULL");
88
+ NEW_STR(PyObjCNM___new__, "__new__");
87
89
 
88
90
  #undef NEW_STR
89
91
 
@@ -27,6 +27,7 @@ extern PyObject* _Nullable PyObjC_setKeyPath;
27
27
  extern PyObject* _Nullable PyObjC_transformAttribute;
28
28
  extern PyObject* _Nullable PyObjC_processClassDict;
29
29
  extern PyObject* _Nullable PyObjC_setDunderNew;
30
+ extern PyObject* _Nullable PyObjC_genericNewClass;
30
31
 
31
32
  extern PyObject* _Nullable PyObjC_DictLikeTypes;
32
33
  extern PyObject* _Nullable PyObjC_ListLikeTypes;
@@ -164,6 +164,7 @@ OBJECT_PROP(_setKeyPath, PyObjC_setKeyPath, NULL)
164
164
  OBJECT_PROP(_transformAttribute, PyObjC_transformAttribute, NULL)
165
165
  OBJECT_PROP(_processClassDict, PyObjC_processClassDict, NULL)
166
166
  OBJECT_PROP(_setDunderNew, PyObjC_setDunderNew, NULL)
167
+ OBJECT_PROP(_genericNewClass, PyObjC_genericNewClass, NULL)
167
168
 
168
169
  static PyObject*
169
170
  bundle_hack_get(PyObject* s __attribute__((__unused__)),
@@ -303,6 +304,8 @@ static PyGetSetDef options_getset[] = {
303
304
  "Private helper used for splitting a class dict into parts"),
304
305
  GETSET(_setDunderNew,
305
306
  "Private helper used for setting __new__ of a new Python subclass"),
307
+ GETSET(_genericNewClass,
308
+ "Class of the generic __new__ implementation"),
306
309
  {
307
310
  .name = "deprecation_warnings",
308
311
  .get = deprecation_warnings_get,
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
 
9
- #define OBJC_VERSION "10.3"
9
+ #define OBJC_VERSION "10.3.2"
10
10
 
11
11
  #define PY_SSIZE_T_CLEAN
12
12
  #include <Python.h>
@@ -1,4 +1,3 @@
1
- #define Py_LIMITED_API 0x03060000
2
1
  #define PY_SSIZE_T_CLEAN
3
2
  #include "Python.h"
4
3
  #include "pyobjc-api.h"
@@ -39,6 +39,15 @@
39
39
  return self;
40
40
  }
41
41
 
42
+ -(instancetype)initWithURL:(NSObject*)v
43
+ {
44
+ self = [super init];
45
+ if (!self) return nil;
46
+
47
+ value = [v retain];
48
+ return self;
49
+ }
50
+
42
51
  -(instancetype)initWithFirst:(NSObject*)first second:(NSObject*)second
43
52
  {
44
53
  self = [super init];
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyobjc-core
3
- Version: 10.3
3
+ Version: 10.3.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...
@@ -7,6 +7,7 @@ from .genericnew import OC_GenericNew, OC_GenericNewChild, OC_GenericNewChild2
7
7
  NSObject = objc.lookUpClass("NSObject")
8
8
 
9
9
  objc.registerNewKeywordsFromSelector("OC_GenericNew", b"initWithValue:")
10
+ objc.registerNewKeywordsFromSelector("OC_GenericNew", b"initWithURL:")
10
11
  objc.registerNewKeywordsFromSelector("OC_GenericNew", b"initWithFirst:second:")
11
12
  objc.registerNewKeywordsFromSelector("OC_GenericNewChild", b"initWithX:y:")
12
13
  objc.registerNewKeywordsFromSelector("OC_GenericNewChild2", b"initWithX:y:z:")
@@ -151,6 +152,9 @@ class TestDefaultNewForObjectiveCClass(TestCase):
151
152
  v = OC_GenericNew(value=42)
152
153
  self.assertEqual(v.value(), 42)
153
154
 
155
+ v = OC_GenericNew(URL=99)
156
+ self.assertEqual(v.value(), 99)
157
+
154
158
  v = OC_GenericNew(first=1, second=2)
155
159
  self.assertEqual(v.value(), ["first-second", 1, 2])
156
160
 
@@ -361,6 +361,13 @@ class TestNSDataCreationIssue(TestCase):
361
361
  cls.alloc().initWithData_(b"hello")
362
362
 
363
363
 
364
+ class TestNSIndexSetCreationIssue(TestCase):
365
+ def test_issue625(self):
366
+ cls = objc.lookUpClass("NSIndexSet")
367
+
368
+ cls.alloc().initWithIndex_(0)
369
+
370
+
364
371
  class TestTypedefedClass(TestCase):
365
372
  # Issue #298, see description in Modules/objc/module.m
366
373
  def test_typedefed(self):
@@ -102,6 +102,7 @@ class SplitSignatureTest(TestCase):
102
102
  # Unclear why this signature isn't correct, possibly due to the 'queue'.
103
103
  # method is private anyway...
104
104
  "SCN_setupDisplayLinkWithQueue_screen_policy_",
105
+ "isNSURL__",
105
106
  ]
106
107
 
107
108
  for cls in objc.getClassList():
@@ -127,6 +128,7 @@ class SplitSignatureTest(TestCase):
127
128
  if sel.selector.split(b":", 1)[0] in (
128
129
  b"fm",
129
130
  b"_fm",
131
+ b"_ns",
130
132
  b"_ax",
131
133
  b"_scr",
132
134
  b"CA_interpolateValues",
@@ -146,6 +148,8 @@ class SplitSignatureTest(TestCase):
146
148
  b"ams",
147
149
  b"safari",
148
150
  b"vs",
151
+ b"_swiftui",
152
+ b"swiftui",
149
153
  ) or sel.selector in (
150
154
  b"isNSArray::",
151
155
  b"isNSCFConstantString::",
@@ -1155,3 +1155,53 @@ class TestSuperUsage(TestCase):
1155
1155
  def init(self):
1156
1156
  self = super().init()
1157
1157
  return self
1158
+
1159
+
1160
+ class OC_DunderInitBase(NSObject):
1161
+ # Helper for ``TestUsingDunderInit``
1162
+ def __new__(cls, *args, **kwds):
1163
+ return cls.alloc().init()
1164
+
1165
+
1166
+ class TestUsingDunderInit(TestCase):
1167
+ # Some users have an intermediate class
1168
+ # which implements ``__new__`` to be able
1169
+ # to create Cocoa sublcasses using a similar
1170
+ # interface as normal Python subclasses, e.g.
1171
+ # with ``__init__`` for initializing the instance.
1172
+ #
1173
+ # This should continue to work.
1174
+
1175
+ def test_using_dunder_init(self):
1176
+ class OC_DunderInitSub1(OC_DunderInitBase):
1177
+ def __init__(self, x, y=2):
1178
+ self.x = x
1179
+ self.y = y
1180
+
1181
+ o = OC_DunderInitSub1(x=1)
1182
+ self.assertIsInstance(o, OC_DunderInitSub1)
1183
+ self.assertEqual(o.x, 1)
1184
+ self.assertEqual(o.y, 2)
1185
+
1186
+ with self.assertRaises(TypeError):
1187
+ OC_DunderInitSub1()
1188
+
1189
+ with self.assertRaises(TypeError):
1190
+ OC_DunderInitSub1(9, z=4)
1191
+
1192
+ def test_multipe_generations(self):
1193
+ class OC_DunderInitSub2(OC_DunderInitBase):
1194
+ def __init__(self, x, y):
1195
+ self.x = x
1196
+ self.y = y
1197
+
1198
+ class OC_DunderInitSub3(OC_DunderInitSub2):
1199
+ def __init__(self, x, y, z):
1200
+ super().__init__(x, y)
1201
+ self.z = z
1202
+
1203
+ o = OC_DunderInitSub3(1, 2, 3)
1204
+ self.assertIsInstance(o, OC_DunderInitSub3)
1205
+ self.assertEqual(o.x, 1)
1206
+ self.assertEqual(o.y, 2)
1207
+ self.assertEqual(o.z, 3)
@@ -22,11 +22,12 @@ import sys
22
22
  import tempfile
23
23
  import time
24
24
  import unittest
25
+ from fnmatch import fnmatch
25
26
  from sysconfig import get_config_var, get_config_vars
26
27
  from setuptools import Command
27
28
  from setuptools import Extension as _Extension
28
29
  from setuptools import setup as _setup
29
- from setuptools.command import build_ext, build_py, develop, egg_info, install_lib, test
30
+ from setuptools.command import build_ext, build_py, develop, egg_info, install_lib
30
31
 
31
32
  from distutils import log
32
33
  from distutils.errors import DistutilsError, DistutilsPlatformError
@@ -84,18 +85,14 @@ class oc_egg_info(egg_info.egg_info):
84
85
  fp.write(last)
85
86
 
86
87
 
87
- class oc_test(test.test):
88
+ class oc_test(Command):
88
89
  description = "run test suite"
89
- user_options = test.test.user_options + [
90
- ("verbosity=", None, "print what tests are run")
91
- ]
90
+ user_options = [("verbosity=", None, "print what tests are run")]
92
91
 
93
92
  def initialize_options(self):
94
- test.test.initialize_options(self)
95
93
  self.verbosity = "1"
96
94
 
97
95
  def finalize_options(self):
98
- test.test.finalize_options(self)
99
96
  if isinstance(self.verbosity, str):
100
97
  self.verbosity = int(self.verbosity)
101
98
 
@@ -154,18 +151,14 @@ class oc_test(test.test):
154
151
  self.cleanup_environment()
155
152
  self.add_project_to_sys_path()
156
153
 
157
- from pkg_resources import EntryPoint
158
-
159
- loader_ep = EntryPoint.parse("x=" + self.test_loader)
160
- loader_class = loader_ep.resolve()
161
-
162
154
  import warnings
163
155
 
164
156
  warnings.simplefilter("error")
157
+ warnings.filterwarnings("ignore", message=".*GIL.*", category=RuntimeWarning)
165
158
 
166
159
  try:
167
160
  time_before = time.time()
168
- suite = loader_class().loadTestsFromName(self.distribution.test_suite)
161
+ suite = makeTestSuite()
169
162
 
170
163
  if self.verbose and self.verbosity < 3:
171
164
  runner = unittest.TextTestRunner(verbosity=3)
@@ -511,21 +504,17 @@ def Extension(*args, **kwds):
511
504
  % (tuple(map(int, os_level.split(".")[:2])))
512
505
  )
513
506
 
514
- # XCode 15 has a bug w.r.t. weak linking for older macOS versions,
515
- # fall back to older linker when using that compiler.
516
- # XXX: This should be in _fixup_compiler but doesn't work there...
517
- lines = subprocess.check_output(["xcodebuild", "-version"], text=True).splitlines()
518
- if lines[0].startswith("Xcode"):
519
- xcode_vers = int(lines[0].split()[-1].split(".")[0])
520
- if xcode_vers >= 15:
521
- ldflags.append("-Wl,-ld_classic")
522
-
523
507
  if os_level == "10.4":
524
508
  cflags.append("-DNO_OBJC2_RUNTIME")
525
509
 
526
510
  if "-Werror" not in cflags:
527
511
  cflags.append("-Werror")
528
512
 
513
+ if get_config_var("Py_GIL_DISABLED"):
514
+ cflags.append("-DPyObjC_GIL_DISABLED")
515
+ if "py_limited_api" in kwds:
516
+ del kwds["py_limited_api"]
517
+
529
518
  if "extra_compile_args" in kwds:
530
519
  kwds["extra_compile_args"] = kwds["extra_compile_args"] + cflags
531
520
  else:
@@ -618,6 +607,10 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
618
607
  # No extension modules, can build universal wheel
619
608
  k["options"] = {"bdist_wheel": {"universal": 1}}
620
609
 
610
+ if "options" in k and "bdist_wheel" in k["options"]:
611
+ if get_config_var("Py_GIL_DISABLED"):
612
+ del k["options"]["bdist_wheel"]
613
+
621
614
  plat_name = "MacOS X"
622
615
  plat_versions = []
623
616
  if min_os_level is not None and min_os_level == max_os_level:
@@ -675,3 +668,50 @@ def setup(min_os_level=None, max_os_level=None, cmdclass=None, **kwds):
675
668
  keywords=["PyObjC"] + [p for p in k["packages"] if p not in ("PyObjCTools",)],
676
669
  **k,
677
670
  )
671
+
672
+
673
+ def recursiveGlob(root, pathPattern):
674
+ """
675
+ Recursively look for files matching 'pathPattern'. Return a list
676
+ of matching files/directories.
677
+ """
678
+ result = []
679
+
680
+ for rootpath, _dirnames, filenames in os.walk(root):
681
+ for fn in filenames:
682
+ if fnmatch(fn, pathPattern):
683
+ result.append(os.path.join(rootpath, fn))
684
+ return result
685
+
686
+
687
+ def importExternalTestCases(pathPattern="test_*.py", root=".", package=None):
688
+ """
689
+ Import all unittests in the PyObjC tree starting at 'root'
690
+ """
691
+ testFiles = recursiveGlob(root, pathPattern)
692
+ testModules = [x[len(root) + 1 : -3].replace("/", ".") for x in testFiles]
693
+ if package is not None:
694
+ testModules = [(package + "." + m) for m in testModules]
695
+ suites = []
696
+ for modName in testModules:
697
+ try:
698
+ module = __import__(modName)
699
+ except ImportError as msg:
700
+ print(f"SKIP {modName}: {msg}")
701
+ continue
702
+ if "." in modName:
703
+ for elem in modName.split(".")[1:]:
704
+ module = getattr(module, elem)
705
+ s = unittest.defaultTestLoader.loadTestsFromModule(module)
706
+ suites.append(s)
707
+ return unittest.TestSuite(suites)
708
+
709
+
710
+ gTopdir = os.path.dirname(__file__)
711
+
712
+
713
+ def makeTestSuite():
714
+ plain_suite = importExternalTestCases(
715
+ "test_*.py", os.path.join(gTopdir, "PyObjCTest"), package="PyObjCTest"
716
+ )
717
+ return plain_suite
@@ -7,8 +7,8 @@ import tempfile
7
7
  import sys
8
8
  import subprocess
9
9
  import warnings
10
- from setuptools import Extension, setup
11
- from setuptools.command import build_ext, build_py, egg_info, install_lib, test
10
+ from setuptools import Extension, setup, Command
11
+ from setuptools.command import build_ext, build_py, egg_info, install_lib
12
12
  from distutils import log
13
13
  from distutils.errors import DistutilsError, DistutilsPlatformError, DistutilsSetupError
14
14
  from distutils.sysconfig import get_config_var as _get_config_var
@@ -213,18 +213,14 @@ class oc_build_py(build_py.build_py):
213
213
  self.packages = p
214
214
 
215
215
 
216
- class oc_test(test.test):
216
+ class oc_test(Command):
217
217
  description = "run test suite"
218
- user_options = test.test.user_options + [
219
- ("verbosity=", None, "print what tests are run")
220
- ]
218
+ user_options = [("verbosity=", None, "print what tests are run")]
221
219
 
222
220
  def initialize_options(self):
223
- test.test.initialize_options(self)
224
221
  self.verbosity = "1"
225
222
 
226
223
  def finalize_options(self):
227
- test.test.finalize_options(self)
228
224
  if isinstance(self.verbosity, str):
229
225
  self.verbosity = int(self.verbosity)
230
226
 
File without changes
File without changes