pyobjc-core 10.3.1__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.1 → pyobjc_core-10.3.2}/Lib/objc/_transform.py +3 -1
  2. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/PKG-INFO +1 -1
  3. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/class-list.m +4 -0
  4. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-class.m +39 -7
  5. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc.h +1 -1
  6. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/coding.m +0 -1
  7. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/genericnew.m +9 -0
  8. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PKG-INFO +1 -1
  9. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_generic_new.py +4 -0
  10. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_regr.py +7 -0
  11. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_splitsig.py +4 -0
  12. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/pyobjc_setup.py +62 -22
  13. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/setup.py +4 -8
  14. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/00ReadMe.txt +0 -0
  15. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/GUITests/00ReadMe.txt +0 -0
  16. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/GUITests/test_modalsession.py +0 -0
  17. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -0
  18. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -0
  19. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -0
  20. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -0
  21. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  22. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -0
  23. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -0
  24. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -0
  25. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -0
  26. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -0
  27. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -0
  28. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -0
  29. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -0
  30. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -0
  31. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/setup.py +0 -0
  32. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -0
  33. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -0
  34. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/HelloWorld.py +0 -0
  35. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/autoreadme.py +0 -0
  36. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/instrumentSends.py +0 -0
  37. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/kvo-debugging.py +0 -0
  38. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/signal-demo.py +0 -0
  39. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/stdinreader.py +0 -0
  40. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/subclassing-objective-c.py +0 -0
  41. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Examples/Scripts/wmEnable.py +0 -0
  42. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/HISTORIC.txt +0 -0
  43. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Install.txt +0 -0
  44. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/PyObjCTools/KeyValueCoding.py +0 -0
  45. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/PyObjCTools/MachSignals.py +0 -0
  46. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/PyObjCTools/Signals.py +0 -0
  47. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/PyObjCTools/TestSupport.py +0 -0
  48. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/__init__.py +0 -0
  49. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_bridges.py +0 -0
  50. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_bridgesupport.py +0 -0
  51. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_callable_docstr.py +0 -0
  52. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_category.py +0 -0
  53. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_compat.py +0 -0
  54. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_context.py +0 -0
  55. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience.py +0 -0
  56. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_mapping.py +0 -0
  57. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsarray.py +0 -0
  58. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsdata.py +0 -0
  59. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsdecimal.py +0 -0
  60. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsdictionary.py +0 -0
  61. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsobject.py +0 -0
  62. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsset.py +0 -0
  63. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_nsstring.py +0 -0
  64. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_convenience_sequence.py +0 -0
  65. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_descriptors.py +0 -0
  66. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_dyld.py +0 -0
  67. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_framework.py +0 -0
  68. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_informal_protocol.py +0 -0
  69. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_lazyimport.py +0 -0
  70. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_locking.py +0 -0
  71. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_new.py +0 -0
  72. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_properties.py +0 -0
  73. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_protocols.py +0 -0
  74. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_pycoder.py +0 -0
  75. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_pythonify.py +0 -0
  76. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/_structtype.py +0 -0
  77. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/objc/simd.py +0 -0
  78. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/SOURCES.txt +0 -0
  79. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
  80. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +0 -0
  81. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/include/pyobjc-compat.h +0 -0
  82. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
  83. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
  84. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/License.txt +0 -0
  85. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/MANIFEST +0 -0
  86. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/MANIFEST.in +0 -0
  87. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Misc/announcement.txt +0 -0
  88. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/_machsignals.m +0 -0
  89. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
  90. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
  91. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonData.h +0 -0
  92. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonData.m +0 -0
  93. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
  94. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
  95. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
  96. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
  97. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
  98. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
  99. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
  100. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
  101. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
  102. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
  103. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_NSBundleHack.h +0 -0
  104. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_NSBundleHack.m +0 -0
  105. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonArray.h +0 -0
  106. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonArray.m +0 -0
  107. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonData.h +0 -0
  108. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonData.m +0 -0
  109. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDate.h +0 -0
  110. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDate.m +0 -0
  111. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDictionary.h +0 -0
  112. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonDictionary.m +0 -0
  113. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonEnumerator.h +0 -0
  114. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonEnumerator.m +0 -0
  115. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonNumber.h +0 -0
  116. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonNumber.m +0 -0
  117. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonObject.h +0 -0
  118. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonObject.m +0 -0
  119. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonSet.h +0 -0
  120. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonSet.m +0 -0
  121. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonURL.h +0 -0
  122. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonURL.m +0 -0
  123. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonUnicode.h +0 -0
  124. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/OC_PythonUnicode.m +0 -0
  125. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/ObjCPointer.h +0 -0
  126. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/ObjCPointer.m +0 -0
  127. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/block_support.h +0 -0
  128. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/block_support.m +0 -0
  129. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/bundle-variables.h +0 -0
  130. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/bundle-variables.m +0 -0
  131. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/class-builder.h +0 -0
  132. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/class-builder.m +0 -0
  133. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/class-list.h +0 -0
  134. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/closure_pool.h +0 -0
  135. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/closure_pool.m +0 -0
  136. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/corefoundation.h +0 -0
  137. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/corefoundation.m +0 -0
  138. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/ctests.h +0 -0
  139. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/ctests.m +0 -0
  140. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/file_wrapper.h +0 -0
  141. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/file_wrapper.m +0 -0
  142. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/formal-protocol.h +0 -0
  143. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/formal-protocol.m +0 -0
  144. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/fsref.h +0 -0
  145. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/fsref.m +0 -0
  146. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/function.h +0 -0
  147. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/function.m +0 -0
  148. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-authorization.m +0 -0
  149. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nscoder.m +0 -0
  150. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsdata.m +0 -0
  151. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsdecimal.m +0 -0
  152. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsinvocation.m +0 -0
  153. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-foundation-nsobject.m +0 -0
  154. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers-vector.m +0 -0
  155. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/helpers.h +0 -0
  156. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/instance-var.h +0 -0
  157. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/instance-var.m +0 -0
  158. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/ivar-accessor.h +0 -0
  159. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/ivar-accessor.m +0 -0
  160. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/libffi_extra.h +0 -0
  161. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/libffi_extra.m +0 -0
  162. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/libffi_support.h +0 -0
  163. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/libffi_support.m +0 -0
  164. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/memview.h +0 -0
  165. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/memview.m +0 -0
  166. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/meth-func.h +0 -0
  167. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/meth-func.m +0 -0
  168. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/method-accessor.h +0 -0
  169. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/method-accessor.m +0 -0
  170. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/method-imp.h +0 -0
  171. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/method-imp.m +0 -0
  172. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/method-signature.h +0 -0
  173. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/method-signature.m +0 -0
  174. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/module.m +0 -0
  175. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-NULL.h +0 -0
  176. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-NULL.m +0 -0
  177. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-class.h +0 -0
  178. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-object.h +0 -0
  179. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-object.m +0 -0
  180. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-runtime-compat.h +0 -0
  181. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc-runtime-compat.m +0 -0
  182. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc_super.h +0 -0
  183. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc_super.m +0 -0
  184. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc_support.h +0 -0
  185. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc_support.m +0 -0
  186. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc_util.h +0 -0
  187. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/objc_util.m +0 -0
  188. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/opaque-pointer.h +0 -0
  189. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/opaque-pointer.m +0 -0
  190. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/options.h +0 -0
  191. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/options.m +0 -0
  192. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pointer-support.h +0 -0
  193. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pointer-support.m +0 -0
  194. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/proxy-registry.h +0 -0
  195. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/proxy-registry.m +0 -0
  196. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-api.h +0 -0
  197. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-api.m +0 -0
  198. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-assert.h +0 -0
  199. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-compat.h +0 -0
  200. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-compat.m +0 -0
  201. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc-unittest.h +0 -0
  202. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc_unicode.h +0 -0
  203. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/pyobjc_unicode.m +0 -0
  204. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/python-api-used.h +0 -0
  205. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/registry.h +0 -0
  206. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/registry.m +0 -0
  207. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/released-buffer.h +0 -0
  208. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/released-buffer.m +0 -0
  209. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/selector.h +0 -0
  210. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/selector.m +0 -0
  211. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/struct-sockaddr.h +0 -0
  212. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/struct-sockaddr.m +0 -0
  213. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/struct-wrapper.h +0 -0
  214. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/struct-wrapper.m +0 -0
  215. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/super-call.h +0 -0
  216. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/super-call.m +0 -0
  217. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/NULL.m +0 -0
  218. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/arrayint.m +0 -0
  219. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/arrays.m +0 -0
  220. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/block.m +0 -0
  221. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/bufsizeinarg.m +0 -0
  222. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/categories_base.m +0 -0
  223. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c42.m +0 -0
  224. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c43.m +0 -0
  225. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c44.m +0 -0
  226. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c45.m +0 -0
  227. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c46.m +0 -0
  228. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c47.m +0 -0
  229. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c48.m +0 -0
  230. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c49.m +0 -0
  231. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c50.m +0 -0
  232. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c51.m +0 -0
  233. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c52.m +0 -0
  234. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c53.m +0 -0
  235. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c54.m +0 -0
  236. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c55.m +0 -0
  237. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c56.m +0 -0
  238. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c57.m +0 -0
  239. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c58.m +0 -0
  240. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_c59.m +0 -0
  241. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp10.m +0 -0
  242. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp11.m +0 -0
  243. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp12.m +0 -0
  244. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp13.m +0 -0
  245. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp14.m +0 -0
  246. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp15.m +0 -0
  247. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp16.m +0 -0
  248. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp17.m +0 -0
  249. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp18.m +0 -0
  250. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp19.m +0 -0
  251. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp20.m +0 -0
  252. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp21.m +0 -0
  253. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp22.m +0 -0
  254. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp23.m +0 -0
  255. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp24.m +0 -0
  256. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp27.m +0 -0
  257. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp3.m +0 -0
  258. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp30.m +0 -0
  259. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp33.m +0 -0
  260. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp36.m +0 -0
  261. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp39.m +0 -0
  262. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp42.m +0 -0
  263. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp45.m +0 -0
  264. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp48.m +0 -0
  265. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp51.m +0 -0
  266. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp54.m +0 -0
  267. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp57.m +0 -0
  268. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp6.m +0 -0
  269. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp7.m +0 -0
  270. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp8.m +0 -0
  271. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_gp9.m +0 -0
  272. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p24.m +0 -0
  273. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p25.m +0 -0
  274. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p26.m +0 -0
  275. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p27.m +0 -0
  276. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p28.m +0 -0
  277. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p29.m +0 -0
  278. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p30.m +0 -0
  279. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p31.m +0 -0
  280. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p32.m +0 -0
  281. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p33.m +0 -0
  282. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p34.m +0 -0
  283. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p35.m +0 -0
  284. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p36.m +0 -0
  285. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p37.m +0 -0
  286. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p38.m +0 -0
  287. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p39.m +0 -0
  288. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p40.m +0 -0
  289. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/category_p41.m +0 -0
  290. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/cfsocket.m +0 -0
  291. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/classes.m +0 -0
  292. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/clinmeth.m +0 -0
  293. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/copying.m +0 -0
  294. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/corefoundation.m +0 -0
  295. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/dataint.m +0 -0
  296. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/dateint.m +0 -0
  297. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/decimal.m +0 -0
  298. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/deprecations.m +0 -0
  299. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/dictint.m +0 -0
  300. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/enumeration.m +0 -0
  301. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/exceptions.m +0 -0
  302. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/filepointer.m +0 -0
  303. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/fsref.m +0 -0
  304. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/gcov.m +0 -0
  305. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/helpernsdata.m +0 -0
  306. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/helpernsobject.m +0 -0
  307. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/identity.m +0 -0
  308. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/initialize.m +0 -0
  309. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/instanceVariables.m +0 -0
  310. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/locking.m +0 -0
  311. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/metadata.m +0 -0
  312. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/metadatafunction.m +0 -0
  313. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/methodaccess.m +0 -0
  314. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/methodlookup.m +0 -0
  315. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/methres1.m +0 -0
  316. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/methres2.m +0 -0
  317. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/misc.m +0 -0
  318. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/missing1.m +0 -0
  319. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/missing2.m +0 -0
  320. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/missing3.m +0 -0
  321. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/nsobjectcategory.m +0 -0
  322. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/nulldelimitedresult.m +0 -0
  323. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/objectint.m +0 -0
  324. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/opaque.m +0 -0
  325. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/pointersupport.m +0 -0
  326. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/properties.m +0 -0
  327. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/protected.m +0 -0
  328. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/protocol.m +0 -0
  329. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/pythonnumber.m +0 -0
  330. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/pythonset.m +0 -0
  331. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/sequence.m +0 -0
  332. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/sockaddr.m +0 -0
  333. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/specialtypecodes.m +0 -0
  334. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/stringint.m +0 -0
  335. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/structargs.m +0 -0
  336. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/structpointer1.m +0 -0
  337. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/structpointer2.m +0 -0
  338. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/structs.m +0 -0
  339. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/testbndl.m +0 -0
  340. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/testbndl2.m +0 -0
  341. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/testclassandinst.m +0 -0
  342. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/testoutputinitializer.m +0 -0
  343. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/unavailable.m +0 -0
  344. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/vector.m +0 -0
  345. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/vectorcall.m +0 -0
  346. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/test/voidpointer.m +0 -0
  347. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/varlist.h +0 -0
  348. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/varlist.m +0 -0
  349. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/weakref.h +0 -0
  350. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Modules/objc/weakref.m +0 -0
  351. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/__init__.py +0 -0
  352. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
  353. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
  354. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
  355. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
  356. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
  357. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
  358. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
  359. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
  360. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
  361. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/dump-nsarchive.m +0 -0
  362. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/fnd.py +0 -0
  363. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/helper_bridgesupport.py +0 -0
  364. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/keyvaluehelper.py +0 -0
  365. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/loader.py +0 -0
  366. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_NULL.py +0 -0
  367. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_allocatebuffer.py +0 -0
  368. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_api_import.py +0 -0
  369. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_archive_python.py +0 -0
  370. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_archiving_interop.py +0 -0
  371. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_archiving_secure_interop.py +0 -0
  372. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_array_interface.py +0 -0
  373. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_array_property.py +0 -0
  374. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_arrays.py +0 -0
  375. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_assocations.py +0 -0
  376. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_blocks.py +0 -0
  377. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_bridged_classes.py +0 -0
  378. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_bridges.py +0 -0
  379. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_bridgesupport.py +0 -0
  380. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_bufsizeinarg.py +0 -0
  381. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_bundleFunctions.py +0 -0
  382. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_bundleVariables.py +0 -0
  383. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_callable_docstr.py +0 -0
  384. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_callbacks.py +0 -0
  385. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_categories.py +0 -0
  386. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_classandinst.py +0 -0
  387. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_classhooks.py +0 -0
  388. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_clinmeth.py +0 -0
  389. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_compat.py +0 -0
  390. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_context.py +0 -0
  391. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_convenience.py +0 -0
  392. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_conversion.py +0 -0
  393. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_copying.py +0 -0
  394. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_corefoundation.py +0 -0
  395. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_ctests.py +0 -0
  396. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_data_proxy.py +0 -0
  397. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_date_proxy.py +0 -0
  398. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_default_selector.py +0 -0
  399. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_deprecations.py +0 -0
  400. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_descriptors.py +0 -0
  401. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_dict_interface.py +0 -0
  402. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_dict_property.py +0 -0
  403. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_dict_proxy.py +0 -0
  404. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_dyld.py +0 -0
  405. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_enumerator.py +0 -0
  406. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_exceptions.py +0 -0
  407. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_filepointer.py +0 -0
  408. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_final.py +0 -0
  409. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_framework.py +0 -0
  410. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_fsref.py +0 -0
  411. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_functions.py +0 -0
  412. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_generic_class.py +0 -0
  413. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_hidden_selector.py +0 -0
  414. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_identity.py +0 -0
  415. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_imp.py +0 -0
  416. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_initialized.py +0 -0
  417. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_inspect_signatures.py +0 -0
  418. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_internals.py +0 -0
  419. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_ivar.py +0 -0
  420. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_keyvalue.py +0 -0
  421. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_keyvalue_prop.py +0 -0
  422. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_keyvaluecoding.py +0 -0
  423. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_lazy_import.py +0 -0
  424. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_leaks.py +0 -0
  425. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_list_proxy.py +0 -0
  426. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_locking.py +0 -0
  427. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_machsignals.py +0 -0
  428. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata.py +0 -0
  429. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_function.py +0 -0
  430. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_imp.py +0 -0
  431. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_inheritance.py +0 -0
  432. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_py.py +0 -0
  433. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_metadata_py2py.py +0 -0
  434. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_method_prototypes.py +0 -0
  435. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_methodaccess.py +0 -0
  436. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_methodedits.py +0 -0
  437. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_methodlookup.py +0 -0
  438. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_methods.py +0 -0
  439. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_methods2.py +0 -0
  440. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_methres.py +0 -0
  441. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nscoder.py +0 -0
  442. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nsdata.py +0 -0
  443. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nsdate_proxy.py +0 -0
  444. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nsdecimal.py +0 -0
  445. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nsinvocation.py +0 -0
  446. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nsobject.py +0 -0
  447. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nsunavailable.py +0 -0
  448. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_nulldelimited.py +0 -0
  449. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_number_proxy.py +0 -0
  450. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_objc.py +0 -0
  451. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_objcpointer.py +0 -0
  452. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_object_property.py +0 -0
  453. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_object_proxy.py +0 -0
  454. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_opaque.py +0 -0
  455. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_options.py +0 -0
  456. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_outputinitializer.py +0 -0
  457. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_pickle.py +0 -0
  458. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_pickling_objc.py +0 -0
  459. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_pointer_compat.py +0 -0
  460. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_propertiesforclass.py +0 -0
  461. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_protected.py +0 -0
  462. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_protocol.py +0 -0
  463. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_protocolNamed.py +0 -0
  464. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_python_method.py +0 -0
  465. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_set_interface.py +0 -0
  466. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_set_property.py +0 -0
  467. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_set_proxy.py +0 -0
  468. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_signals.py +0 -0
  469. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_signatures.py +0 -0
  470. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_simd.py +0 -0
  471. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_sockaddr.py +0 -0
  472. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_charbyte.py +0 -0
  473. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_charint.py +0 -0
  474. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_methdef.py +0 -0
  475. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_nsbool.py +0 -0
  476. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_struct.py +0 -0
  477. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_specialtypecodes_unichar.py +0 -0
  478. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_string_proxy.py +0 -0
  479. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_structpointer.py +0 -0
  480. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_structs.py +0 -0
  481. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_subclass.py +0 -0
  482. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_synthesize.py +0 -0
  483. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_testsupport.py +0 -0
  484. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_transform.py +0 -0
  485. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_transform_integration.py +0 -0
  486. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_typecheck.py +0 -0
  487. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_unicode.py +0 -0
  488. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_urlproxy.py +0 -0
  489. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_usekvo.py +0 -0
  490. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_varargs.py +0 -0
  491. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_varlist.py +0 -0
  492. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_vector_proxy.py +0 -0
  493. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_vectorcall.py +0 -0
  494. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_version_support.py +0 -0
  495. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_voidpointer.py +0 -0
  496. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/PyObjCTest/test_weakref.py +0 -0
  497. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/README.txt +0 -0
  498. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/MANIFEST.in +0 -0
  499. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/comparebench.py +0 -0
  500. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/gen_archive.py +0 -0
  501. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/generate-category-tests.py +0 -0
  502. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/generate-helpers-vector.py +0 -0
  503. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/pyobjcbench.py +0 -0
  504. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/results/pyobjcbench-7.3.txt +0 -0
  505. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
  506. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
  507. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/runtests-with-nuitka.py +0 -0
  508. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/Tools/runtests.py +0 -0
  509. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/pyproject.toml +0 -0
  510. {pyobjc_core-10.3.1 → pyobjc_core-10.3.2}/setup.cfg +0 -0
@@ -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.1
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
@@ -1109,9 +1109,27 @@ static PyObject* _Nullable class_repr(PyObject* obj)
1109
1109
  static void
1110
1110
  class_dealloc(PyObject* cls)
1111
1111
  {
1112
- /* XXX: This method should never be called because it is impossible to
1113
- * 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.
1114
1131
  */
1132
+
1115
1133
  char buf[1024];
1116
1134
 
1117
1135
  snprintf(buf, sizeof(buf), "Deallocating objective-C class %s",
@@ -2639,7 +2657,20 @@ PyObject* _Nullable PyObjCClass_New(Class objc_class)
2639
2657
  info->hiddenClassSelectors = hiddenClassSelectors;
2640
2658
  info->lookup_cache = NULL;
2641
2659
 
2642
- 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
+ }
2643
2674
 
2644
2675
  /*
2645
2676
  * Support the buffer protocol in the wrappers for NSData and
@@ -2659,15 +2690,16 @@ PyObject* _Nullable PyObjCClass_New(Class objc_class)
2659
2690
  PyType_Ready((PyTypeObject*)result);
2660
2691
  }
2661
2692
 
2662
- if (strcmp(className, "_NSPlaceholderData") == 0) {
2663
- /* XXX */
2693
+ if (strncmp(className, "_NSPlaceholder", sizeof("_NSPlaceholder")-1) == 0) {
2664
2694
  /* Workaround for an issue on macOS 10.15: For some
2665
2695
  * reason the call to class_getInstanceVariable crashes
2666
2696
  * when called early in the process, likely due to an
2667
2697
  * incompletely initialized class.
2668
2698
  *
2669
- * The workaround is hardcoded for this specific class
2670
- * 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
2671
2703
  */
2672
2704
  [objc_class class];
2673
2705
  }
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
 
9
- #define OBJC_VERSION "10.3.1"
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.1
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::",
@@ -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
File without changes
File without changes
File without changes