pyobjc-core 11.0__tar.gz → 11.1__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 (528) hide show
  1. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/HelloWorld.py +17 -21
  2. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/autoreadme.py +1 -1
  3. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/signal-demo.py +5 -0
  4. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/stdinreader.py +5 -0
  5. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/PyObjCTools/TestSupport.py +38 -0
  6. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/__init__.py +5 -0
  7. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience.py +9 -1
  8. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsdata.py +9 -0
  9. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_transform.py +2 -0
  10. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/simd.py +1 -0
  11. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/PKG-INFO +16 -4
  12. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/SOURCES.txt +5 -20
  13. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/include/pyobjc-compat.h +95 -2
  14. pyobjc_core-11.1/Lib/pyobjc_core.egg-info/pyobjc-build-info.txt +3 -0
  15. {pyobjc_core-11.0 → pyobjc_core-11.1}/License.txt +1 -1
  16. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonArray.m +42 -31
  17. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonData.m +12 -11
  18. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonDate.m +18 -16
  19. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonDictionary.h +1 -1
  20. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonDictionary.m +57 -47
  21. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonEnumerator.m +4 -3
  22. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonNumber.m +21 -19
  23. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonObject.m +106 -68
  24. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonSet.m +52 -42
  25. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonURL.m +7 -0
  26. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonUnicode.m +21 -8
  27. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/ObjCPointer.m +1 -1
  28. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/block_support.m +25 -26
  29. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/bundle-variables.m +53 -17
  30. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/class-builder.m +54 -38
  31. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/class-list.m +9 -38
  32. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/closure_pool.m +1 -1
  33. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/corefoundation.m +26 -17
  34. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/ctests.m +42 -1
  35. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/file_wrapper.m +6 -2
  36. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/formal-protocol.h +1 -1
  37. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/formal-protocol.m +5 -4
  38. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/fsref.m +7 -4
  39. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/function.m +21 -18
  40. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers-foundation-nscoder.m +9 -9
  41. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers-foundation-nsdata.m +6 -6
  42. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers-foundation-nsdecimal.m +72 -231
  43. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers-foundation-nsinvocation.m +4 -4
  44. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers-foundation-nsobject.m +91 -55
  45. pyobjc_core-11.1/Modules/objc/helpers-vector.m +17360 -0
  46. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/instance-var.m +31 -28
  47. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/ivar-accessor.m +10 -12
  48. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/libffi_support.h +3 -4
  49. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/libffi_support.m +136 -126
  50. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/meth-func.m +16 -9
  51. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/method-accessor.m +38 -24
  52. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/method-imp.m +57 -115
  53. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/method-signature.h +10 -12
  54. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/method-signature.m +189 -133
  55. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/module.m +95 -48
  56. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-class.h +1 -1
  57. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-class.m +119 -77
  58. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-object.h +3 -5
  59. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-object.m +108 -228
  60. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-runtime-compat.m +1 -1
  61. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc_super.m +9 -5
  62. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc_support.m +120 -112
  63. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc_util.h +4 -5
  64. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc_util.m +64 -139
  65. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/opaque-pointer.m +3 -3
  66. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/options.h +5 -0
  67. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/options.m +189 -8
  68. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pointer-support.m +22 -36
  69. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/proxy-registry.m +44 -20
  70. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc-assert.h +0 -7
  71. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc-compat.h +95 -2
  72. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc-compat.m +6 -4
  73. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc.h +1 -1
  74. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc_unicode.m +29 -28
  75. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/python-api-used.h +75 -5
  76. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/registry.m +14 -9
  77. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/selector.h +3 -3
  78. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/selector.m +130 -197
  79. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/struct-sockaddr.h +0 -1
  80. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/struct-sockaddr.m +13 -62
  81. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/struct-wrapper.h +4 -10
  82. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/struct-wrapper.m +167 -178
  83. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/super-call.m +26 -17
  84. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/NULL.m +6 -4
  85. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/arrayint.m +7 -30
  86. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/arrays.m +5 -4
  87. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/block.m +5 -4
  88. pyobjc_core-11.1/Modules/objc/test/block2.m +85 -0
  89. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/bufsizeinarg.m +5 -4
  90. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/categories_base.m +542 -362
  91. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c42.m +2 -2
  92. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c43.m +2 -2
  93. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c44.m +2 -2
  94. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c45.m +2 -2
  95. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c46.m +2 -2
  96. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c47.m +2 -2
  97. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c48.m +2 -2
  98. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c49.m +2 -2
  99. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c50.m +2 -2
  100. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c51.m +2 -2
  101. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c52.m +2 -2
  102. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c53.m +2 -2
  103. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c54.m +2 -2
  104. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c55.m +2 -2
  105. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c56.m +2 -2
  106. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c57.m +1 -1
  107. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c58.m +1 -1
  108. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_c59.m +2 -2
  109. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp10.m +2 -2
  110. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp11.m +2 -2
  111. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp12.m +2 -2
  112. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp13.m +2 -2
  113. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp14.m +2 -2
  114. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp15.m +2 -2
  115. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp16.m +2 -2
  116. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp17.m +2 -2
  117. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp18.m +2 -2
  118. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp19.m +2 -2
  119. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp20.m +2 -2
  120. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp21.m +2 -2
  121. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp22.m +2 -2
  122. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp23.m +2 -2
  123. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp24.m +3 -1
  124. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp27.m +3 -1
  125. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp3.m +3 -1
  126. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp30.m +3 -1
  127. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp33.m +3 -1
  128. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp36.m +3 -1
  129. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp39.m +3 -1
  130. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp42.m +3 -1
  131. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp45.m +3 -1
  132. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp48.m +3 -1
  133. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp51.m +3 -1
  134. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp54.m +3 -1
  135. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp57.m +3 -1
  136. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp6.m +2 -2
  137. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp7.m +2 -2
  138. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp8.m +2 -2
  139. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_gp9.m +2 -2
  140. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p24.m +2 -2
  141. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p25.m +2 -2
  142. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p26.m +2 -2
  143. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p27.m +2 -2
  144. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p28.m +2 -2
  145. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p29.m +2 -2
  146. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p30.m +2 -2
  147. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p31.m +2 -2
  148. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p32.m +2 -2
  149. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p33.m +2 -2
  150. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p34.m +2 -2
  151. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p35.m +2 -2
  152. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p36.m +2 -2
  153. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p37.m +2 -2
  154. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p38.m +2 -2
  155. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p39.m +2 -2
  156. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p40.m +2 -2
  157. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/category_p41.m +2 -2
  158. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/cfsocket.m +5 -4
  159. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/classes.m +20 -4
  160. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/clinmeth.m +8 -6
  161. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/coding.m +5 -4
  162. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/copying.m +34 -8
  163. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/corefoundation.m +5 -4
  164. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/dataint.m +5 -4
  165. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/dateint.m +5 -4
  166. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/decimal.m +5 -4
  167. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/deprecations.m +7 -5
  168. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/dictint.m +34 -4
  169. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/enumeration.m +5 -4
  170. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/exceptions.m +5 -4
  171. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/filepointer.m +5 -4
  172. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/fsref.m +5 -4
  173. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/genericnew.m +14 -10
  174. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/helpernsdata.m +5 -4
  175. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/helpernsobject.m +26 -8
  176. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/identity.m +5 -4
  177. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/initialize.m +5 -4
  178. pyobjc_core-11.1/Modules/objc/test/initpatterns.m +220 -0
  179. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/instanceVariables.m +7 -6
  180. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/locking.m +5 -4
  181. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/metadata.m +31 -4
  182. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/metadatafunction.m +6 -5
  183. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/methodaccess.m +5 -4
  184. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/methodlookup.m +8 -6
  185. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/misc.m +5 -4
  186. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/missing1.m +2 -2
  187. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/missing2.m +2 -2
  188. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/missing3.m +2 -2
  189. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/nulldelimitedresult.m +5 -4
  190. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/objectint.m +101 -13
  191. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/opaque.m +11 -8
  192. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/pointersupport.m +47 -5
  193. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/properties.m +5 -4
  194. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/protected.m +5 -4
  195. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/protocol.m +11 -8
  196. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/pythonnumber.m +64 -10
  197. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/pythonset.m +35 -4
  198. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/sequence.m +8 -6
  199. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/sockaddr.m +5 -4
  200. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/specialtypecodes.m +7 -6
  201. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/stringint.m +20 -6
  202. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/structargs.m +5 -4
  203. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/structpointer1.m +10 -4
  204. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/structpointer2.m +5 -4
  205. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/structs.m +5 -4
  206. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/testbndl.m +130 -88
  207. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/testbndl2.m +14 -10
  208. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/testclassandinst.m +8 -6
  209. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/testoutputinitializer.m +5 -4
  210. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/unavailable.m +8 -6
  211. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/vector.m +24 -6
  212. pyobjc_core-11.1/Modules/objc/test/vectorcall.m +7939 -0
  213. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/voidpointer.m +5 -4
  214. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/varlist.m +6 -0
  215. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/weakref.m +14 -0
  216. {pyobjc_core-11.0 → pyobjc_core-11.1}/PKG-INFO +16 -4
  217. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_archive_python.py +248 -35
  218. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_array_interface.py +2 -2
  219. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_blocks.py +31 -0
  220. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_bundleFunctions.py +8 -2
  221. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_bundleVariables.py +30 -5
  222. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_callbacks.py +16 -0
  223. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_conversion.py +104 -4
  224. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_copying.py +59 -26
  225. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_corefoundation.py +22 -2
  226. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_date_proxy.py +73 -0
  227. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_dict_proxy.py +86 -2
  228. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_final.py +9 -3
  229. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_fsref.py +7 -1
  230. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_functions.py +31 -0
  231. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_imp.py +25 -13
  232. pyobjc_core-11.1/PyObjCTest/test_initpatterns.py +379 -0
  233. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_inspect_signatures.py +1 -0
  234. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_internals.py +103 -1
  235. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_ivar.py +10 -26
  236. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_locking.py +12 -0
  237. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_metadata.py +143 -2
  238. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_metadata_imp.py +3 -0
  239. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_metadata_py.py +14 -2
  240. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_methodaccess.py +10 -13
  241. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_methods.py +24 -0
  242. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nscoder.py +12 -0
  243. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nsdata.py +68 -0
  244. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nsdecimal.py +110 -3
  245. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nsinvocation.py +35 -0
  246. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nsobject.py +42 -17
  247. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_number_proxy.py +115 -0
  248. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_objcpointer.py +16 -0
  249. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_object_proxy.py +102 -0
  250. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_pointer_compat.py +19 -17
  251. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_protocolNamed.py +3 -0
  252. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_regr.py +30 -11
  253. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_set_proxy.py +58 -0
  254. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_sockaddr.py +6 -0
  255. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_splitsig.py +1 -0
  256. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_string_proxy.py +9 -0
  257. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_structs.py +87 -2
  258. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_subclass.py +171 -14
  259. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_testsupport.py +50 -0
  260. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_typecheck.py +12 -1
  261. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_unicode.py +1 -1
  262. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_usekvo.py +29 -1
  263. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_varlist.py +4 -0
  264. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_vector_proxy.py +38 -0
  265. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_vectorcall.py +7748 -1680
  266. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_weakref.py +4 -0
  267. pyobjc_core-11.1/Tools/free-threading/concurrent-registration.py +22 -0
  268. pyobjc_core-11.1/Tools/free-threading/concurrent-value-getting.py +27 -0
  269. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/generate-category-tests.py +13 -7
  270. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/generate-helpers-vector.py +382 -169
  271. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/pyobjc_setup.py +7 -41
  272. {pyobjc_core-11.0 → pyobjc_core-11.1}/setup.cfg +1 -2
  273. {pyobjc_core-11.0 → pyobjc_core-11.1}/setup.py +31 -19
  274. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -277
  275. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -133
  276. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -4
  277. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -23
  278. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -8353
  279. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -25
  280. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -18
  281. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -1611
  282. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -13
  283. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -518
  284. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -239
  285. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -16
  286. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -116
  287. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -110
  288. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/setup.py +0 -37
  289. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -66
  290. pyobjc_core-11.0/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -128
  291. pyobjc_core-11.0/Lib/pyobjc_core.egg-info/pyobjc-build-info.txt +0 -3
  292. pyobjc_core-11.0/Modules/objc/helpers-vector.m +0 -17085
  293. pyobjc_core-11.0/Modules/objc/test/vectorcall.m +0 -9864
  294. pyobjc_core-11.0/PyObjCTest/.test_metadata.py.swp +0 -0
  295. pyobjc_core-11.0/PyObjCTest/test_initialized.py +0 -86
  296. pyobjc_core-11.0/Tools/free-threading/concurrent-proxies.py +0 -25
  297. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/00ReadMe.txt +0 -0
  298. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/GUITests/00ReadMe.txt +0 -0
  299. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/GUITests/test_modalsession.py +0 -0
  300. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/instrumentSends.py +0 -0
  301. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/kvo-debugging.py +0 -0
  302. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/subclassing-objective-c.py +0 -0
  303. {pyobjc_core-11.0 → pyobjc_core-11.1}/Examples/Scripts/wmEnable.py +0 -0
  304. {pyobjc_core-11.0 → pyobjc_core-11.1}/HISTORIC.txt +0 -0
  305. {pyobjc_core-11.0 → pyobjc_core-11.1}/Install.txt +0 -0
  306. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/PyObjCTools/KeyValueCoding.py +0 -0
  307. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/PyObjCTools/MachSignals.py +0 -0
  308. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/PyObjCTools/Signals.py +0 -0
  309. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_bridges.py +0 -0
  310. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_bridgesupport.py +0 -0
  311. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_callable_docstr.py +0 -0
  312. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_category.py +0 -0
  313. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_compat.py +0 -0
  314. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_context.py +0 -0
  315. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_mapping.py +0 -0
  316. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsarray.py +0 -0
  317. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsdecimal.py +0 -0
  318. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsdictionary.py +0 -0
  319. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsobject.py +0 -0
  320. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsset.py +0 -0
  321. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_nsstring.py +0 -0
  322. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_convenience_sequence.py +0 -0
  323. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_descriptors.py +0 -0
  324. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_dyld.py +0 -0
  325. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_framework.py +0 -0
  326. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_informal_protocol.py +0 -0
  327. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_lazyimport.py +0 -0
  328. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_locking.py +0 -0
  329. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_new.py +0 -0
  330. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_properties.py +0 -0
  331. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_protocols.py +0 -0
  332. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_pycoder.py +0 -0
  333. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_pythonify.py +0 -0
  334. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/objc/_structtype.py +0 -0
  335. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
  336. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +0 -0
  337. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
  338. {pyobjc_core-11.0 → pyobjc_core-11.1}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
  339. {pyobjc_core-11.0 → pyobjc_core-11.1}/MANIFEST +0 -0
  340. {pyobjc_core-11.0 → pyobjc_core-11.1}/MANIFEST.in +0 -0
  341. {pyobjc_core-11.0 → pyobjc_core-11.1}/Misc/announcement.txt +0 -0
  342. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/_machsignals.m +0 -0
  343. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
  344. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
  345. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonData.h +0 -0
  346. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonData.m +0 -0
  347. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
  348. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
  349. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
  350. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
  351. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
  352. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
  353. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
  354. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
  355. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
  356. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
  357. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_NSBundleHack.h +0 -0
  358. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_NSBundleHack.m +0 -0
  359. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonArray.h +0 -0
  360. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonData.h +0 -0
  361. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonDate.h +0 -0
  362. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonEnumerator.h +0 -0
  363. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonNumber.h +0 -0
  364. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonObject.h +0 -0
  365. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonSet.h +0 -0
  366. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonURL.h +0 -0
  367. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/OC_PythonUnicode.h +0 -0
  368. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/ObjCPointer.h +0 -0
  369. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/block_support.h +0 -0
  370. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/bundle-variables.h +0 -0
  371. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/class-builder.h +0 -0
  372. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/class-list.h +0 -0
  373. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/closure_pool.h +0 -0
  374. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/corefoundation.h +0 -0
  375. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/ctests.h +0 -0
  376. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/file_wrapper.h +0 -0
  377. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/fsref.h +0 -0
  378. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/function.h +0 -0
  379. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers-authorization.m +0 -0
  380. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/helpers.h +0 -0
  381. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/instance-var.h +0 -0
  382. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/ivar-accessor.h +0 -0
  383. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/libffi_extra.h +0 -0
  384. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/libffi_extra.m +0 -0
  385. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/memview.h +0 -0
  386. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/memview.m +0 -0
  387. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/meth-func.h +0 -0
  388. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/method-accessor.h +0 -0
  389. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/method-imp.h +0 -0
  390. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-NULL.h +0 -0
  391. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-NULL.m +0 -0
  392. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc-runtime-compat.h +0 -0
  393. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc_super.h +0 -0
  394. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/objc_support.h +0 -0
  395. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/opaque-pointer.h +0 -0
  396. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pointer-support.h +0 -0
  397. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/proxy-registry.h +0 -0
  398. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc-api.h +0 -0
  399. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc-api.m +0 -0
  400. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc-unittest.h +0 -0
  401. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/pyobjc_unicode.h +0 -0
  402. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/registry.h +0 -0
  403. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/released-buffer.h +0 -0
  404. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/released-buffer.m +0 -0
  405. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/super-call.h +0 -0
  406. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/gcov.m +0 -0
  407. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/methres1.m +0 -0
  408. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/methres2.m +0 -0
  409. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/test/nsobjectcategory.m +0 -0
  410. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/varlist.h +0 -0
  411. {pyobjc_core-11.0 → pyobjc_core-11.1}/Modules/objc/weakref.h +0 -0
  412. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/__init__.py +0 -0
  413. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
  414. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
  415. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
  416. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
  417. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
  418. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
  419. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
  420. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
  421. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
  422. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/dump-nsarchive.m +0 -0
  423. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/fnd.py +0 -0
  424. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/helper_bridgesupport.py +0 -0
  425. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/keyvaluehelper.py +0 -0
  426. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/loader.py +0 -0
  427. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_NULL.py +0 -0
  428. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_allocatebuffer.py +0 -0
  429. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_api_import.py +0 -0
  430. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_archiving_interop.py +0 -0
  431. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_archiving_secure_interop.py +0 -0
  432. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_array_property.py +0 -0
  433. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_arrays.py +0 -0
  434. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_assocations.py +0 -0
  435. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_bridged_classes.py +0 -0
  436. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_bridges.py +0 -0
  437. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_bridgesupport.py +0 -0
  438. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_bufsizeinarg.py +0 -0
  439. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_callable_docstr.py +0 -0
  440. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_categories.py +0 -0
  441. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_classandinst.py +0 -0
  442. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_classhooks.py +0 -0
  443. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_clinmeth.py +0 -0
  444. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_compat.py +0 -0
  445. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_context.py +0 -0
  446. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_convenience.py +0 -0
  447. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_ctests.py +0 -0
  448. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_data_proxy.py +0 -0
  449. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_default_selector.py +0 -0
  450. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_deprecations.py +0 -0
  451. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_descriptors.py +0 -0
  452. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_dict_interface.py +0 -0
  453. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_dict_property.py +0 -0
  454. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_dyld.py +0 -0
  455. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_enumerator.py +0 -0
  456. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_exceptions.py +0 -0
  457. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_filepointer.py +0 -0
  458. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_framework.py +0 -0
  459. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_free_threading.py +0 -0
  460. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_generic_class.py +0 -0
  461. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_generic_new.py +0 -0
  462. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_hidden_selector.py +0 -0
  463. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_identity.py +0 -0
  464. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_keyvalue.py +0 -0
  465. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_keyvalue_prop.py +0 -0
  466. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_keyvaluecoding.py +0 -0
  467. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_lazy_import.py +0 -0
  468. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_leaks.py +0 -0
  469. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_list_proxy.py +0 -0
  470. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_machsignals.py +0 -0
  471. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_metadata_function.py +0 -0
  472. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_metadata_inheritance.py +0 -0
  473. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_metadata_py2py.py +0 -0
  474. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_method_prototypes.py +0 -0
  475. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_methodedits.py +0 -0
  476. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_methodlookup.py +0 -0
  477. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_methods2.py +0 -0
  478. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_methres.py +0 -0
  479. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nsdate_proxy.py +0 -0
  480. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nsunavailable.py +0 -0
  481. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_nulldelimited.py +0 -0
  482. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_objc.py +0 -0
  483. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_object_property.py +0 -0
  484. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_opaque.py +0 -0
  485. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_options.py +0 -0
  486. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_outputinitializer.py +0 -0
  487. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_pickle.py +0 -0
  488. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_pickling_objc.py +0 -0
  489. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_propertiesforclass.py +0 -0
  490. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_protected.py +0 -0
  491. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_protocol.py +0 -0
  492. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_python_method.py +0 -0
  493. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_set_interface.py +0 -0
  494. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_set_property.py +0 -0
  495. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_signals.py +0 -0
  496. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_signatures.py +0 -0
  497. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_simd.py +0 -0
  498. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_specialtypecodes_charbyte.py +0 -0
  499. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_specialtypecodes_charint.py +0 -0
  500. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_specialtypecodes_methdef.py +0 -0
  501. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_specialtypecodes_nsbool.py +0 -0
  502. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_specialtypecodes_struct.py +0 -0
  503. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_specialtypecodes_unichar.py +0 -0
  504. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_structpointer.py +0 -0
  505. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_super_on_regular_classes.py +0 -0
  506. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_synthesize.py +0 -0
  507. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_transform.py +0 -0
  508. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_transform_integration.py +0 -0
  509. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_urlproxy.py +0 -0
  510. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_varargs.py +0 -0
  511. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_version_support.py +0 -0
  512. {pyobjc_core-11.0 → pyobjc_core-11.1}/PyObjCTest/test_voidpointer.py +0 -0
  513. {pyobjc_core-11.0 → pyobjc_core-11.1}/README.txt +0 -0
  514. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/MANIFEST.in +0 -0
  515. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/comparebench.py +0 -0
  516. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/free-threading/_tools.py +0 -0
  517. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/free-threading/concurrent-class-list.py +0 -0
  518. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/free-threading/concurrent-dict-getting.py +0 -0
  519. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/free-threading/concurrent-iteration.py +0 -0
  520. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/gen_archive.py +0 -0
  521. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/pyobjcbench.py +0 -0
  522. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/results/pyobjcbench-7.3.txt +0 -0
  523. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
  524. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
  525. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/run-free-threading-tests.py +0 -0
  526. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/runtests-with-nuitka.py +0 -0
  527. {pyobjc_core-11.0 → pyobjc_core-11.1}/Tools/runtests.py +0 -0
  528. {pyobjc_core-11.0 → pyobjc_core-11.1}/pyproject.toml +0 -0
@@ -1,26 +1,22 @@
1
1
  #!/usr/bin/env pythonw
2
+ """
3
+ The original PyObjC interface example by Steve Majewski.
2
4
 
3
- # HelloWorld.py
4
- #
5
- # The original PyObjC interface example by Steve Majewski.
6
- #
7
-
8
- # A quick guide to runtime name mangling:
9
- #
10
- # ObjC becomes Python
11
- # [ obj method ] obj.method()
12
- # [ obj method: arg ] obj.method_(arg)
13
- # [ obj method: arg1 withOtherArgs: arg2 ]
14
- # obj.method_withOtherArgs_( arg1, arg2 )
15
-
16
- #
17
- # NOTE: This is no longer the recommended way to build applications
18
- # using the pyobjc bridge under with OS X. In particular, applications
19
- # work much better if they are constructed in a proper app wrapper.
20
- #
21
- # This app does demonstrate that it is possible to build full
22
- # featured Cocoa apps without InterfaceBuilder.
23
- #
5
+ A quick guide to runtime name mangling:
6
+
7
+ ObjC becomes Python
8
+ [obj method ] obj.method()
9
+ [obj method:arg ] obj.method_(arg)
10
+ [obj method:arg1 withOtherArgs:arg2] obj.method_withOtherArgs_( arg1, arg2 )
11
+
12
+
13
+ NOTE: This is no longer the recommended way to build applications
14
+ using the pyobjc bridge under with OS X. In particular, applications
15
+ work much better if they are constructed in a proper app wrapper.
16
+
17
+ This app does demonstrate that it is possible to build full
18
+ featured Cocoa apps without InterfaceBuilder.
19
+ """
24
20
 
25
21
  from Cocoa import NSObject, NSApplication, NSApp, NSWindow, NSButton, NSSound
26
22
  from PyObjCTools import AppHelper
@@ -3,7 +3,7 @@
3
3
  This script is a daemon that will open the ReadMe file in the root of any
4
4
  (removable) volume that is inserted while this script is running.
5
5
 
6
- The script is part of an article at MAcDevCenter:
6
+ The script is part of an article at MacDevCenter:
7
7
  http://www.macdevcenter.com/pub/a/mac/2003/01/31/pyobjc_one.html
8
8
 
9
9
  Usage:
@@ -1,4 +1,9 @@
1
1
  #!/usr/bin/python
2
+ """
3
+ This script demonstrates using the PyObjCTools.Signals
4
+ module to show a stacktrace when there's a fatal signal
5
+ when running a script.
6
+ """
2
7
 
3
8
  import os
4
9
  import signal
@@ -1,4 +1,9 @@
1
1
  #!/usr/bin/env python3
2
+ """
3
+ This script demonstrates how to use a Cocoa
4
+ event loop to asynchronously read from an
5
+ existing file descriptor.
6
+ """
2
7
 
3
8
  from Foundation import (
4
9
  NSObject,
@@ -14,6 +14,7 @@ import sys as _sys
14
14
  import unittest as _unittest
15
15
  import subprocess as _subprocess
16
16
  import pickle as _pickle
17
+ import types as _types
17
18
  from sysconfig import get_config_var as _get_config_var
18
19
 
19
20
  import objc
@@ -341,6 +342,11 @@ class TestCase(_unittest.TestCase):
341
342
  # Primary reason for the new API is to ensure that all metadata overrides
342
343
  # are explicitly tested.
343
344
 
345
+ def assertIsGenericAlias(self, alias, base_type, args):
346
+ self.assertIsInstance(alias, _types.GenericAlias)
347
+ self.assertIs(alias.__origin__, base_type)
348
+ self.assertEqual(alias.__args__, args)
349
+
344
350
  def assertManualBinding(self, func):
345
351
  if hasattr(func, "__metadata__"):
346
352
  self.fail(f"{func} has automatic bindings")
@@ -623,6 +629,38 @@ class TestCase(_unittest.TestCase):
623
629
  except (KeyError, IndexError):
624
630
  self.fail(message or f"Argument {argno} of {method!r} is not retained")
625
631
 
632
+ def assertIsInitializer(self, method, message=None):
633
+ if not isinstance(method, objc.selector):
634
+ return
635
+
636
+ info = method.__metadata__()
637
+ if not info.get("initializer", False):
638
+ self.fail(message or f"{method!r} is not an initializer")
639
+
640
+ def assertIsNotInitializer(self, method, message=None):
641
+ if not isinstance(method, objc.selector):
642
+ return
643
+
644
+ info = method.__metadata__()
645
+ if info.get("initializer", False):
646
+ self.fail(message or f"{method!r} is an initializer")
647
+
648
+ def assertDoesFreeResult(self, method, message=None):
649
+ if not isinstance(method, objc.selector):
650
+ return
651
+
652
+ info = method.__metadata__()
653
+ if not info.get("free_result", False):
654
+ self.fail(message or f"{method!r} does not call free(3) on the result")
655
+
656
+ def assertDoesNotFreeResult(self, method, message=None):
657
+ if not isinstance(method, objc.selector):
658
+ return
659
+
660
+ info = method.__metadata__()
661
+ if info.get("free_result", False):
662
+ self.fail(message or f"{method!r} calls free(3) on the result")
663
+
626
664
  def assertArgIsNotRetained(self, method, argno, message=None):
627
665
  if isinstance(method, objc.selector):
628
666
  offset = 2
@@ -67,6 +67,11 @@ nil = None
67
67
  YES = True
68
68
  NO = False
69
69
 
70
+ # Subclassing a number of classes won't work
71
+ # without major changes to the bridge:
72
+ for _cls in ("NSString", "NSMutableString"):
73
+ _objc.lookUpClass(_cls).__objc_final__ = True
74
+
70
75
 
71
76
  class autorelease_pool:
72
77
  """
@@ -15,6 +15,10 @@ from objc._objc import (
15
15
  import PyObjCTools.KeyValueCoding as kvc
16
16
  from objc._new import make_generic_new, NEW_MAP
17
17
  from objc._transform import _selectorToKeywords
18
+ import array
19
+ import copy
20
+ import ctypes
21
+ import socket
18
22
 
19
23
  __all__ = (
20
24
  "addConvenienceForClass",
@@ -32,6 +36,11 @@ options._getKey = kvc.getKey
32
36
  options._setKey = kvc.setKey
33
37
  options._getKeyPath = kvc.getKeyPath
34
38
  options._setKeyPath = kvc.setKeyPath
39
+ options._ArrayType = array.ArrayType
40
+ options._deepcopy = copy.deepcopy
41
+ options._c_void_p = ctypes.c_void_p
42
+ options._socket_error = socket.error
43
+ options._socket_gaierror = socket.gaierror
35
44
 
36
45
  del kvc
37
46
 
@@ -151,7 +160,6 @@ def registerABCForClass(classname, *abc_class):
151
160
  Register *classname* with the *abc_class*-es when
152
161
  the class becomes available.
153
162
  """
154
- global CLASS_ABC
155
163
  try:
156
164
  CLASS_ABC[classname] += tuple(abc_class)
157
165
  except KeyError:
@@ -422,6 +422,14 @@ def nsmutabledata_clear(self):
422
422
  self.setData_(b"")
423
423
 
424
424
 
425
+ def nsmutabledata_resize(self, size):
426
+ cursize = self.length()
427
+ if cursize < size:
428
+ self.increaseLengthBy_(size - cursize)
429
+ elif cursize > size:
430
+ self.replaceBytesInRange_withBytes_length_((size, cursize - size), b"", 0)
431
+
432
+
425
433
  addConvenienceForClass(
426
434
  "NSMutableData",
427
435
  (
@@ -436,5 +444,6 @@ addConvenienceForClass(
436
444
  ("clear", nsmutabledata_clear),
437
445
  ("pop", nsmutabledata_pop),
438
446
  ("insert", nsmutabledata_insert),
447
+ ("resize", nsmutabledata_resize),
439
448
  ),
440
449
  )
@@ -35,6 +35,8 @@ def _selectorToKeywords(selector):
35
35
  return ()
36
36
 
37
37
  parts = selector.split(":")[:-1]
38
+ if not parts:
39
+ return None
38
40
  if parts[0].startswith("With"):
39
41
  parts[0] = parts[0][4:]
40
42
  if len(parts[0]) == 1 or len(parts[0]) > 1 and not parts[0][1].isupper():
@@ -48,6 +48,7 @@ __all__ = (
48
48
  "matrix_double4x4",
49
49
  "simd_quatf",
50
50
  "simd_quatd",
51
+ "simd_float4x3",
51
52
  "simd_float4x4",
52
53
  )
53
54
 
@@ -1,20 +1,19 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pyobjc-core
3
- Version: 11.0
3
+ Version: 11.1
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
7
  Author-email: RonaldOussoren@mac.com
8
8
  Maintainer: Ronald Oussoren
9
9
  Maintainer-email: RonaldOussoren@mac.com
10
- License: MIT License
10
+ License: MIT
11
11
  Keywords: Objective-C,Cocoa
12
12
  Platform: MacOS X
13
13
  Classifier: Development Status :: 5 - Production/Stable
14
14
  Classifier: Environment :: Console
15
15
  Classifier: Environment :: MacOS X :: Cocoa
16
16
  Classifier: Intended Audience :: Developers
17
- Classifier: License :: OSI Approved :: MIT License
18
17
  Classifier: Natural Language :: English
19
18
  Classifier: Operating System :: MacOS :: MacOS X
20
19
  Classifier: Programming Language :: Python
@@ -32,6 +31,19 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
32
31
  Classifier: Topic :: Software Development :: User Interfaces
33
32
  Requires-Python: >=3.8
34
33
  Description-Content-Type: text/x-rst; charset=UTF-8
34
+ Dynamic: author
35
+ Dynamic: author-email
36
+ Dynamic: classifier
37
+ Dynamic: description
38
+ Dynamic: description-content-type
39
+ Dynamic: home-page
40
+ Dynamic: keywords
41
+ Dynamic: license
42
+ Dynamic: maintainer
43
+ Dynamic: maintainer-email
44
+ Dynamic: platform
45
+ Dynamic: requires-python
46
+ Dynamic: summary
35
47
  Project-URL: Documentation, https://pyobjc.readthedocs.io/en/latest/
36
48
  Project-URL: Issue tracker, https://github.com/ronaldoussoren/pyobjc/issues
37
49
  Project-URL: Repository, https://github.com/ronaldoussoren/pyobjc
@@ -10,23 +10,6 @@ setup.py
10
10
  Examples/00ReadMe.txt
11
11
  Examples/GUITests/00ReadMe.txt
12
12
  Examples/GUITests/test_modalsession.py
13
- Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py
14
- Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py
15
- Examples/NonFunctional/RemotePyInterpreter/README.txt
16
- Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py
17
- Examples/NonFunctional/RemotePyInterpreter/netrepr.py
18
- Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py
19
- Examples/NonFunctional/RemotePyInterpreter/remote_console.py
20
- Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py
21
- Examples/NonFunctional/RemotePyInterpreter/setup.py
22
- Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py
23
- Examples/NonFunctional/RemotePyInterpreter/test_client.py
24
- Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib
25
- Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib
26
- Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib
27
- Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib
28
- Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib
29
- Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib
30
13
  Examples/Scripts/HelloWorld.py
31
14
  Examples/Scripts/autoreadme.py
32
15
  Examples/Scripts/instrumentSends.py
@@ -219,6 +202,7 @@ Modules/objc/test/NULL.m
219
202
  Modules/objc/test/arrayint.m
220
203
  Modules/objc/test/arrays.m
221
204
  Modules/objc/test/block.m
205
+ Modules/objc/test/block2.m
222
206
  Modules/objc/test/bufsizeinarg.m
223
207
  Modules/objc/test/categories_base.m
224
208
  Modules/objc/test/category_c42.m
@@ -309,6 +293,7 @@ Modules/objc/test/helpernsdata.m
309
293
  Modules/objc/test/helpernsobject.m
310
294
  Modules/objc/test/identity.m
311
295
  Modules/objc/test/initialize.m
296
+ Modules/objc/test/initpatterns.m
312
297
  Modules/objc/test/instanceVariables.m
313
298
  Modules/objc/test/locking.m
314
299
  Modules/objc/test/metadata.m
@@ -347,7 +332,6 @@ Modules/objc/test/unavailable.m
347
332
  Modules/objc/test/vector.m
348
333
  Modules/objc/test/vectorcall.m
349
334
  Modules/objc/test/voidpointer.m
350
- PyObjCTest/.test_metadata.py.swp
351
335
  PyObjCTest/__init__.py
352
336
  PyObjCTest/dump-nsarchive-securecoding.m
353
337
  PyObjCTest/dump-nsarchive.m
@@ -407,7 +391,7 @@ PyObjCTest/test_generic_new.py
407
391
  PyObjCTest/test_hidden_selector.py
408
392
  PyObjCTest/test_identity.py
409
393
  PyObjCTest/test_imp.py
410
- PyObjCTest/test_initialized.py
394
+ PyObjCTest/test_initpatterns.py
411
395
  PyObjCTest/test_inspect_signatures.py
412
396
  PyObjCTest/test_internals.py
413
397
  PyObjCTest/test_ivar.py
@@ -513,7 +497,8 @@ Tools/free-threading/_tools.py
513
497
  Tools/free-threading/concurrent-class-list.py
514
498
  Tools/free-threading/concurrent-dict-getting.py
515
499
  Tools/free-threading/concurrent-iteration.py
516
- Tools/free-threading/concurrent-proxies.py
500
+ Tools/free-threading/concurrent-registration.py
501
+ Tools/free-threading/concurrent-value-getting.py
517
502
  Tools/results/pyobjcbench-7.3.txt
518
503
  Tools/results/pyobjcbench-8.0b1.txt
519
504
  Tools/results/pyobjcbench-8.0b2.txt
@@ -179,7 +179,7 @@ extern const char* _Nullable PyObjC_Unicode_Fast_Bytes(PyObject* object);
179
179
 
180
180
  static inline PyObject* _Nullable* _Nonnull PyTuple_ITEMS(PyObject* tuple)
181
181
  {
182
- return &PyTuple_GET_ITEM(tuple, 0);
182
+ return &PyTuple_GET_ITEM(tuple, 0); // LCOV_BR_EXCL_LINE
183
183
  }
184
184
 
185
185
  /* This is a crude hack to disable a otherwise useful warning in the context of
@@ -198,7 +198,7 @@ _PyObjCTuple_SetItem(PyObject* tuple, Py_ssize_t idx, PyObject* _Nullable value)
198
198
  static inline PyObject*
199
199
  _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
200
200
  {
201
- return PyTuple_GET_ITEM(tuple, idx);
201
+ return PyTuple_GET_ITEM(tuple, idx); // LCOV_BR_EXCL_LINE
202
202
  }
203
203
  #undef PyTuple_GET_ITEM
204
204
  #define PyTuple_GET_ITEM(a, b) _PyObjCTuple_GetItem(a, b)
@@ -314,6 +314,99 @@ static inline PyObject* PyType_GetDict(PyTypeObject* type)
314
314
  }
315
315
  #endif
316
316
 
317
+ #if PY_VERSION_HEX >= 0x030c0000 && PY_VERSION_HEX < 0x030e0000
318
+ /*
319
+ * These are available in 3.14 and above, the definitions below
320
+ * mirror the private implementation in 3.13.
321
+ */
322
+ static inline int PyUnstable_Object_IsUniquelyReferenced(PyObject* ob)
323
+ {
324
+ #ifdef Py_GIL_DISABLED
325
+ return (_Py_IsOwnedByCurrentThread(ob) &&
326
+ _Py_atomic_load_uint32_relaxed(&ob->ob_ref_local) == 1 &&
327
+ _Py_atomic_load_ssize_relaxed(&ob->ob_ref_shared) == 0);
328
+ #else
329
+ return Py_REFCNT(ob) == 1;
330
+ #endif
331
+ }
332
+
333
+ static inline void
334
+ PyUnstable_EnableTryIncRef(PyObject* op __attribute__((__unused__)))
335
+ {
336
+ #ifdef Py_GIL_DISABLED
337
+ for (;;) {
338
+ Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared);
339
+ if ((shared & _Py_REF_SHARED_FLAG_MASK) != 0) {
340
+ // Nothing to do if it's in WEAKREFS, QUEUED, or MERGED states.
341
+ return;
342
+ }
343
+ if (_Py_atomic_compare_exchange_ssize(
344
+ &op->ob_ref_shared, &shared, shared | _Py_REF_MAYBE_WEAKREF)) {
345
+ return;
346
+ }
347
+ }
348
+ #endif
349
+ }
350
+
351
+ #ifdef Py_GIL_DISABLED
352
+ static inline int
353
+ _Py_TryIncrefFast(PyObject *op) {
354
+ uint32_t local = _Py_atomic_load_uint32_relaxed(&op->ob_ref_local);
355
+ local += 1;
356
+ if (local == 0) {
357
+ // immortal
358
+ return 1;
359
+ }
360
+ if (_Py_IsOwnedByCurrentThread(op)) {
361
+ _Py_INCREF_STAT_INC();
362
+ _Py_atomic_store_uint32_relaxed(&op->ob_ref_local, local);
363
+ #ifdef Py_REF_DEBUG
364
+ _Py_IncRefTotal(_PyThreadState_GET());
365
+ #endif
366
+ return 1;
367
+ }
368
+ return 0;
369
+ }
370
+
371
+ static inline int
372
+ _Py_TryIncRefShared(PyObject *op)
373
+ {
374
+ Py_ssize_t shared = _Py_atomic_load_ssize_relaxed(&op->ob_ref_shared);
375
+ for (;;) {
376
+ // If the shared refcount is zero and the object is either merged
377
+ // or may not have weak references, then we cannot incref it.
378
+ if (shared == 0 || shared == _Py_REF_MERGED) {
379
+ return 0;
380
+ }
381
+
382
+ if (_Py_atomic_compare_exchange_ssize(
383
+ &op->ob_ref_shared,
384
+ &shared,
385
+ shared + (1 << _Py_REF_SHARED_SHIFT))) {
386
+ #ifdef Py_REF_DEBUG
387
+ _Py_IncRefTotal(_PyThreadState_GET());
388
+ #endif
389
+ _Py_INCREF_STAT_INC();
390
+ return 1;
391
+ }
392
+ }
393
+ }
394
+ #endif
395
+
396
+ static inline int
397
+ PyUnstable_TryIncRef(PyObject *op __attribute__((__unused__)))
398
+ {
399
+ #ifdef Py_GIL_DISABLED
400
+ return _Py_TryIncrefFast(op) || _Py_TryIncRefShared(op);
401
+ #else
402
+ if (Py_REFCNT(op) > 0) {
403
+ Py_INCREF(op);
404
+ return 1;
405
+ }
406
+ return 0;
407
+ #endif
408
+ }
409
+ #endif
317
410
 
318
411
  NS_ASSUME_NONNULL_END
319
412
 
@@ -0,0 +1,3 @@
1
+ macOS 15.5 (24F74)
2
+ Apple clang version 17.0.0 (clang-1700.0.13.5)
3
+ SDK: macOS 15.5
@@ -1,7 +1,7 @@
1
1
  (This is the MIT license, note that libffi-src is a separate product with its own license)
2
2
 
3
3
  Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
4
- Copyright 2003-2024 - Ronald Oussoren
4
+ Copyright 2003-2025 - Ronald Oussoren
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
7
 
@@ -25,15 +25,14 @@ NS_ASSUME_NONNULL_BEGIN
25
25
  return value;
26
26
  }
27
27
 
28
+ // LCOV_EXCL_START
29
+ /* PythonTransient is used in the implementation of
30
+ * methods written in Python, OC_Python* classes
31
+ * don't have such methods.
32
+ */
28
33
  - (PyObject*)__pyobjc_PythonTransient__:(int*)cookie
29
34
  {
30
35
  *cookie = 0;
31
- /*
32
- * XXX: Check if 'value' can ever be NULL
33
- * if not: replace by PyObjC_Assert check
34
- *
35
- * XXX: return [self __pyobjc_PythonObject__];
36
- */
37
36
  if (likely(value)) {
38
37
  Py_INCREF(value);
39
38
  return value;
@@ -41,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN
41
40
  Py_RETURN_NONE;
42
41
  }
43
42
  }
43
+ // LCOV_EXCL_STOP
44
44
 
45
45
  + (BOOL)supportsSecureCoding
46
46
  {
@@ -58,8 +58,16 @@ NS_ASSUME_NONNULL_BEGIN
58
58
 
59
59
  PyObjC_BEGIN_WITH_GIL
60
60
 
61
+ /* XXX: This is different from other proxies
62
+ * to make it easier to hit a race in
63
+ * proxy-registry.m for testing.
64
+ *
65
+ * With the current implementation of
66
+ * proxy-registry (using weak refs) either
67
+ * order works correctly.
68
+ */
61
69
  PyObjC_UnregisterObjCProxy(value, self);
62
- Py_CLEAR(value);
70
+ Py_XDECREF(value);
63
71
 
64
72
  PyObjC_END_WITH_GIL
65
73
 
@@ -278,7 +286,7 @@ NS_ASSUME_NONNULL_BEGIN
278
286
  Py_ssize_t size = PyTuple_Size(value);
279
287
 
280
288
  if ([coder allowsKeyedCoding]) {
281
- if (size > INT_MAX) { // LCOV_BT_EXCL_LINE
289
+ if (size > INT_MAX) { // LCOV_BR_EXCL_LINE
282
290
  /* Excluded from coverage tests because this would require creating
283
291
  * rather huge tuples, with corresponding memory usage.
284
292
  */
@@ -346,13 +354,15 @@ NS_ASSUME_NONNULL_BEGIN
346
354
  */
347
355
  NSUInteger i;
348
356
 
349
- if (count > 0 && objects == NULL) {
357
+ if (count > 0 && objects == NULL) { // LCOV_BR_EXCL_LINE
358
+ // LCOV_EXCL_START
350
359
  [self release];
351
360
  return nil;
361
+ // LCOV_EXCL_STOP
352
362
  }
353
363
 
354
364
  PyObjC_BEGIN_WITH_GIL
355
- if (PyTuple_CheckExact(value) && (NSUInteger)PyTuple_Size(value) == count) {
365
+ if (PyTuple_CheckExact(value) && (NSUInteger)PyTuple_Size(value) == count) { // LCOV_BR_EXCL_LINE
356
366
  for (i = 0; i < count; i++) {
357
367
  PyObject* v;
358
368
 
@@ -368,12 +378,14 @@ NS_ASSUME_NONNULL_BEGIN
368
378
  }
369
379
 
370
380
  /* XXX: Can this every be true? */
371
- if (PyTuple_GET_ITEM(value, i) != NULL) {
381
+ if (PyTuple_GET_ITEM(value, i) != NULL) { // LCOV_BR_EXCL_LINE
382
+ // LCOV_EXCL_START
372
383
  /* use temporary object to avoid race condition */
373
384
  PyObject* t = PyTuple_GET_ITEM(value, i);
374
385
  PyTuple_SET_ITEM(value, i, NULL);
375
386
  Py_DECREF(t);
376
- }
387
+ // LCOV_EXCL_STOP
388
+ } // LCOV_EXCL_LINE
377
389
  PyTuple_SET_ITEM(value, i, v);
378
390
  }
379
391
  } else {
@@ -449,7 +461,7 @@ NS_ASSUME_NONNULL_BEGIN
449
461
 
450
462
  }
451
463
 
452
- switch (code) {
464
+ switch (code) { // LCOV_BR_EXCL_LINE
453
465
  case 1:
454
466
  /* This code was used by some previous versions of PyObjC
455
467
  * (before 2.2) and is kept around for backward compatibility.
@@ -470,7 +482,7 @@ NS_ASSUME_NONNULL_BEGIN
470
482
  if (tmpVal == nil) {
471
483
  return nil;
472
484
  }
473
- PyObjC_Assert(tmpVal == self, nil);
485
+ assert(tmpVal == self);
474
486
  self = tmpVal;
475
487
 
476
488
  PyObjC_BEGIN_WITH_GIL
@@ -494,7 +506,7 @@ NS_ASSUME_NONNULL_BEGIN
494
506
  PyObjC_END_WITH_GIL
495
507
 
496
508
  tmpVal = [super initWithCoder:coder];
497
- PyObjC_Assert(tmpVal == self, nil);
509
+ assert(tmpVal == self);
498
510
  return tmpVal;
499
511
 
500
512
  case 3:
@@ -507,17 +519,13 @@ NS_ASSUME_NONNULL_BEGIN
507
519
  PyObject* decoded = PyObjC_decodeWithCoder(coder, self);
508
520
  if (decoded == NULL) {
509
521
  PyObjC_GIL_FORWARD_EXC();
510
- }
522
+ } // LCOV_EXCL_LINE
511
523
 
512
524
  SET_FIELD(value, decoded);
513
525
 
514
526
  id actual = PyObjC_RegisterObjCProxy(value, self);
515
- if (actual != self) {
516
- [self release];
517
- self = actual;
518
- } else if (actual != nil) {
519
- [actual release];
520
- }
527
+ [self release];
528
+ self = actual;
521
529
 
522
530
  PyObjC_END_WITH_GIL
523
531
 
@@ -552,12 +560,12 @@ NS_ASSUME_NONNULL_BEGIN
552
560
  value = PyTuple_New(size);
553
561
  if (value == NULL) { // LCOV_BR_EXCL_LINE
554
562
  PyObjC_GIL_FORWARD_EXC(); // LCOV_EXCL_LINE
555
- }
563
+ } // LCOV_EXCL_LINE
556
564
 
557
565
  PyObjC_END_WITH_GIL
558
566
 
559
567
  tmpVal = [super initWithCoder:coder];
560
- PyObjC_Assert(tmpVal == self, nil);
568
+ assert(tmpVal == self);
561
569
  return tmpVal;
562
570
 
563
571
  case 5:
@@ -595,9 +603,9 @@ NS_ASSUME_NONNULL_BEGIN
595
603
 
596
604
  PyObjC_END_WITH_GIL
597
605
  tmpVal = [super initWithCoder:coder];
598
- PyObjC_Assert(tmpVal == self, nil);
599
- // LCOV_EXCL_STOP
606
+ assert(tmpVal == self);
600
607
  return tmpVal;
608
+ // LCOV_EXCL_STOP
601
609
 
602
610
  default:
603
611
  // LCOV_EXCL_START
@@ -624,12 +632,12 @@ NS_ASSUME_NONNULL_BEGIN
624
632
  PyObject* copy = PyObjC_Copy(value);
625
633
  if (copy == NULL) {
626
634
  PyObjC_GIL_FORWARD_EXC();
627
- }
635
+ } // LCOV_EXCL_LINE
628
636
 
629
637
  if (depythonify_python_object(copy, &result) == -1) {
630
638
  Py_DECREF(copy);
631
639
  PyObjC_GIL_FORWARD_EXC();
632
- }
640
+ } // LCOV_EXCL_LINE
633
641
 
634
642
  Py_DECREF(copy);
635
643
 
@@ -647,12 +655,15 @@ NS_ASSUME_NONNULL_BEGIN
647
655
  PyObject* copy = PySequence_List(value);
648
656
  if (copy == NULL) {
649
657
  PyObjC_GIL_FORWARD_EXC();
650
- }
658
+ } // LCOV_EXCL_LINE
651
659
 
652
- if (depythonify_python_object(copy, &result) == -1) {
660
+ if (depythonify_python_object(copy, &result) == -1) { // LCOV_BR_EXCL_LINE
661
+ /* Should never fail, 'copy' is an instance of PyList_Type */
662
+ // LCOV_EXCL_START
653
663
  Py_DECREF(copy);
654
664
  PyObjC_GIL_FORWARD_EXC();
655
- }
665
+ // LCOV_EXCL_STOP
666
+ } // LCOV_EXCL_LINE
656
667
 
657
668
  Py_DECREF(copy);
658
669