pyobjc-core 10.2__tar.gz → 11.0__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 (607) hide show
  1. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/GUITests/test_modalsession.py +1 -0
  2. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/setup.py +1 -0
  3. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/instrumentSends.py +1 -0
  4. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/PyObjCTools/KeyValueCoding.py +10 -2
  5. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/PyObjCTools/TestSupport.py +37 -11
  6. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/__init__.py +2 -0
  7. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_bridges.py +0 -15
  8. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_bridgesupport.py +12 -16
  9. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_context.py +1 -0
  10. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience.py +70 -2
  11. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_mapping.py +2 -1
  12. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsarray.py +11 -2
  13. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsdata.py +6 -1
  14. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsdecimal.py +4 -1
  15. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsdictionary.py +1 -0
  16. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsobject.py +6 -6
  17. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsset.py +4 -3
  18. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_nsstring.py +5 -1
  19. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_convenience_sequence.py +1 -0
  20. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_lazyimport.py +3 -4
  21. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_locking.py +1 -0
  22. pyobjc_core-11.0/Lib/objc/_new.py +178 -0
  23. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_pycoder.py +3 -3
  24. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_transform.py +57 -4
  25. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/pyobjc_core.egg-info/PKG-INFO +2 -2
  26. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/pyobjc_core.egg-info/SOURCES.txt +15 -1
  27. {pyobjc-core-10.2/Modules/objc → pyobjc_core-11.0/Lib/pyobjc_core.egg-info/include}/pyobjc-api.h +1 -1
  28. {pyobjc-core-10.2/Modules/objc → pyobjc_core-11.0/Lib/pyobjc_core.egg-info/include}/pyobjc-compat.h +80 -5
  29. pyobjc_core-11.0/Lib/pyobjc_core.egg-info/pyobjc-build-info.txt +3 -0
  30. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/_machsignals.m +81 -42
  31. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_NSBundleHack.m +48 -32
  32. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonArray.m +110 -125
  33. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonData.m +45 -71
  34. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonDate.m +42 -105
  35. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonDictionary.m +93 -96
  36. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonEnumerator.m +9 -28
  37. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonNumber.m +40 -87
  38. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonObject.h +0 -2
  39. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonObject.m +61 -248
  40. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonSet.h +1 -1
  41. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonSet.m +57 -82
  42. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonURL.m +11 -29
  43. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonUnicode.m +34 -81
  44. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/ObjCPointer.m +9 -4
  45. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/block_support.h +0 -1
  46. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/block_support.m +144 -122
  47. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/bundle-variables.m +81 -14
  48. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/class-builder.h +1 -1
  49. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/class-builder.m +112 -56
  50. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/class-list.m +6 -1
  51. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/closure_pool.m +26 -1
  52. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/corefoundation.m +78 -50
  53. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/ctests.m +142 -28
  54. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/file_wrapper.m +130 -73
  55. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/formal-protocol.h +1 -1
  56. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/formal-protocol.m +24 -34
  57. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/fsref.m +23 -7
  58. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/function.m +11 -22
  59. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-authorization.m +15 -16
  60. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-foundation-nscoder.m +67 -53
  61. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-foundation-nsdata.m +2 -2
  62. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-foundation-nsdecimal.m +32 -44
  63. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-foundation-nsinvocation.m +82 -54
  64. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-foundation-nsobject.m +9 -12
  65. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers-vector.m +645 -205
  66. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/instance-var.m +103 -43
  67. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/ivar-accessor.m +23 -14
  68. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/libffi_support.h +2 -0
  69. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/libffi_support.m +535 -266
  70. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/memview.m +2 -2
  71. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/meth-func.m +27 -2
  72. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/method-accessor.m +48 -19
  73. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/method-imp.m +54 -22
  74. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/method-signature.m +411 -273
  75. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/module.m +241 -200
  76. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-class.h +22 -30
  77. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-class.m +885 -471
  78. pyobjc_core-11.0/Modules/objc/objc-object.h +57 -0
  79. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-object.m +410 -230
  80. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-runtime-compat.h +4 -0
  81. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-runtime-compat.m +0 -7
  82. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc_super.m +23 -28
  83. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc_support.h +1 -1
  84. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc_support.m +144 -111
  85. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc_util.h +71 -14
  86. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc_util.m +493 -320
  87. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/opaque-pointer.m +14 -17
  88. pyobjc_core-11.0/Modules/objc/options.h +47 -0
  89. pyobjc_core-11.0/Modules/objc/options.m +1268 -0
  90. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pointer-support.m +152 -42
  91. pyobjc_core-11.0/Modules/objc/proxy-registry.h +88 -0
  92. pyobjc_core-11.0/Modules/objc/proxy-registry.m +269 -0
  93. {pyobjc-core-10.2/Lib/pyobjc_core.egg-info/include → pyobjc_core-11.0/Modules/objc}/pyobjc-api.h +1 -1
  94. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc-api.m +0 -4
  95. {pyobjc-core-10.2/Lib/pyobjc_core.egg-info/include → pyobjc_core-11.0/Modules/objc}/pyobjc-compat.h +80 -5
  96. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc-compat.m +0 -70
  97. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc-unittest.h +1 -2
  98. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc.h +1 -5
  99. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc_unicode.m +1 -8
  100. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/python-api-used.h +27 -10
  101. pyobjc_core-11.0/Modules/objc/registry.m +296 -0
  102. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/selector.h +1 -2
  103. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/selector.m +177 -124
  104. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/struct-wrapper.h +1 -1
  105. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/struct-wrapper.m +338 -135
  106. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/super-call.m +209 -68
  107. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/NULL.m +49 -16
  108. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/arrayint.m +88 -16
  109. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/arrays.m +51 -14
  110. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/block.m +205 -20
  111. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/bufsizeinarg.m +50 -16
  112. pyobjc_core-11.0/Modules/objc/test/categories_base.m +6308 -0
  113. pyobjc_core-11.0/Modules/objc/test/category_c42.m +101 -0
  114. pyobjc_core-11.0/Modules/objc/test/category_c43.m +101 -0
  115. pyobjc_core-11.0/Modules/objc/test/category_c44.m +101 -0
  116. pyobjc_core-11.0/Modules/objc/test/category_c45.m +101 -0
  117. pyobjc_core-11.0/Modules/objc/test/category_c46.m +101 -0
  118. pyobjc_core-11.0/Modules/objc/test/category_c47.m +101 -0
  119. pyobjc_core-11.0/Modules/objc/test/category_c48.m +101 -0
  120. pyobjc_core-11.0/Modules/objc/test/category_c49.m +101 -0
  121. pyobjc_core-11.0/Modules/objc/test/category_c50.m +101 -0
  122. pyobjc_core-11.0/Modules/objc/test/category_c51.m +101 -0
  123. pyobjc_core-11.0/Modules/objc/test/category_c52.m +101 -0
  124. pyobjc_core-11.0/Modules/objc/test/category_c53.m +101 -0
  125. pyobjc_core-11.0/Modules/objc/test/category_c54.m +101 -0
  126. pyobjc_core-11.0/Modules/objc/test/category_c55.m +101 -0
  127. pyobjc_core-11.0/Modules/objc/test/category_c56.m +101 -0
  128. pyobjc_core-11.0/Modules/objc/test/category_c57.m +101 -0
  129. pyobjc_core-11.0/Modules/objc/test/category_c58.m +101 -0
  130. pyobjc_core-11.0/Modules/objc/test/category_c59.m +101 -0
  131. pyobjc_core-11.0/Modules/objc/test/category_gp10.m +101 -0
  132. pyobjc_core-11.0/Modules/objc/test/category_gp11.m +101 -0
  133. pyobjc_core-11.0/Modules/objc/test/category_gp12.m +101 -0
  134. pyobjc_core-11.0/Modules/objc/test/category_gp13.m +101 -0
  135. pyobjc_core-11.0/Modules/objc/test/category_gp14.m +101 -0
  136. pyobjc_core-11.0/Modules/objc/test/category_gp15.m +101 -0
  137. pyobjc_core-11.0/Modules/objc/test/category_gp16.m +101 -0
  138. pyobjc_core-11.0/Modules/objc/test/category_gp17.m +101 -0
  139. pyobjc_core-11.0/Modules/objc/test/category_gp18.m +101 -0
  140. pyobjc_core-11.0/Modules/objc/test/category_gp19.m +101 -0
  141. pyobjc_core-11.0/Modules/objc/test/category_gp20.m +101 -0
  142. pyobjc_core-11.0/Modules/objc/test/category_gp21.m +101 -0
  143. pyobjc_core-11.0/Modules/objc/test/category_gp22.m +101 -0
  144. pyobjc_core-11.0/Modules/objc/test/category_gp23.m +101 -0
  145. pyobjc_core-11.0/Modules/objc/test/category_gp6.m +101 -0
  146. pyobjc_core-11.0/Modules/objc/test/category_gp7.m +101 -0
  147. pyobjc_core-11.0/Modules/objc/test/category_gp8.m +101 -0
  148. pyobjc_core-11.0/Modules/objc/test/category_gp9.m +101 -0
  149. pyobjc_core-11.0/Modules/objc/test/category_p24.m +101 -0
  150. pyobjc_core-11.0/Modules/objc/test/category_p25.m +101 -0
  151. pyobjc_core-11.0/Modules/objc/test/category_p26.m +101 -0
  152. pyobjc_core-11.0/Modules/objc/test/category_p27.m +101 -0
  153. pyobjc_core-11.0/Modules/objc/test/category_p28.m +101 -0
  154. pyobjc_core-11.0/Modules/objc/test/category_p29.m +101 -0
  155. pyobjc_core-11.0/Modules/objc/test/category_p30.m +101 -0
  156. pyobjc_core-11.0/Modules/objc/test/category_p31.m +101 -0
  157. pyobjc_core-11.0/Modules/objc/test/category_p32.m +101 -0
  158. pyobjc_core-11.0/Modules/objc/test/category_p33.m +101 -0
  159. pyobjc_core-11.0/Modules/objc/test/category_p34.m +101 -0
  160. pyobjc_core-11.0/Modules/objc/test/category_p35.m +101 -0
  161. pyobjc_core-11.0/Modules/objc/test/category_p36.m +101 -0
  162. pyobjc_core-11.0/Modules/objc/test/category_p37.m +101 -0
  163. pyobjc_core-11.0/Modules/objc/test/category_p38.m +101 -0
  164. pyobjc_core-11.0/Modules/objc/test/category_p39.m +101 -0
  165. pyobjc_core-11.0/Modules/objc/test/category_p40.m +101 -0
  166. pyobjc_core-11.0/Modules/objc/test/category_p41.m +101 -0
  167. pyobjc_core-11.0/Modules/objc/test/cfsocket.m +83 -0
  168. pyobjc_core-11.0/Modules/objc/test/classes.m +79 -0
  169. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/clinmeth.m +50 -16
  170. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/coding.m +51 -16
  171. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/copying.m +50 -17
  172. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/corefoundation.m +49 -23
  173. pyobjc_core-11.0/Modules/objc/test/dataint.m +101 -0
  174. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/dateint.m +50 -15
  175. pyobjc_core-11.0/Modules/objc/test/decimal.m +97 -0
  176. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/deprecations.m +52 -21
  177. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/dictint.m +50 -15
  178. pyobjc_core-11.0/Modules/objc/test/enumeration.m +90 -0
  179. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/exceptions.m +50 -16
  180. pyobjc_core-11.0/Modules/objc/test/filepointer.m +101 -0
  181. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/fsref.m +49 -16
  182. pyobjc_core-11.0/Modules/objc/test/gcov.m +75 -0
  183. pyobjc_core-11.0/Modules/objc/test/genericnew.m +168 -0
  184. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/helpernsdata.m +50 -15
  185. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/helpernsobject.m +51 -23
  186. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/identity.m +49 -16
  187. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/initialize.m +54 -16
  188. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/instanceVariables.m +49 -23
  189. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/locking.m +49 -16
  190. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/metadata.m +693 -16
  191. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/metadatafunction.m +52 -27
  192. pyobjc_core-11.0/Modules/objc/test/methodaccess.m +83 -0
  193. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/methodlookup.m +50 -17
  194. pyobjc_core-11.0/Modules/objc/test/methres1.m +78 -0
  195. pyobjc_core-11.0/Modules/objc/test/methres2.m +78 -0
  196. pyobjc_core-11.0/Modules/objc/test/misc.m +80 -0
  197. pyobjc_core-11.0/Modules/objc/test/missing1.m +60 -0
  198. pyobjc_core-11.0/Modules/objc/test/missing2.m +63 -0
  199. pyobjc_core-11.0/Modules/objc/test/missing3.m +63 -0
  200. pyobjc_core-11.0/Modules/objc/test/nsobjectcategory.m +71 -0
  201. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/nulldelimitedresult.m +50 -22
  202. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/objectint.m +51 -18
  203. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/opaque.m +51 -18
  204. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/pointersupport.m +49 -26
  205. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/properties.m +49 -16
  206. pyobjc_core-11.0/Modules/objc/test/protected.m +84 -0
  207. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/protocol.m +55 -25
  208. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/pythonnumber.m +49 -16
  209. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/pythonset.m +49 -16
  210. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/sequence.m +50 -17
  211. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/sockaddr.m +49 -16
  212. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/specialtypecodes.m +49 -29
  213. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/stringint.m +51 -16
  214. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/structargs.m +58 -16
  215. pyobjc_core-11.0/Modules/objc/test/structpointer1.m +101 -0
  216. pyobjc_core-11.0/Modules/objc/test/structpointer2.m +69 -0
  217. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/structs.m +49 -16
  218. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/testbndl.m +179 -59
  219. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/testbndl2.m +56 -19
  220. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/testclassandinst.m +50 -24
  221. pyobjc_core-11.0/Modules/objc/test/testoutputinitializer.m +99 -0
  222. pyobjc_core-11.0/Modules/objc/test/unavailable.m +116 -0
  223. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/vector.m +50 -15
  224. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/vectorcall.m +52 -17
  225. pyobjc_core-11.0/Modules/objc/test/voidpointer.m +96 -0
  226. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/varlist.m +28 -11
  227. {pyobjc-core-10.2 → pyobjc_core-11.0}/PKG-INFO +2 -2
  228. pyobjc_core-11.0/PyObjCTest/.test_metadata.py.swp +0 -0
  229. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/fnd.py +1 -0
  230. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/keyvaluehelper.py +1 -0
  231. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_archive_python.py +78 -2
  232. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_arrays.py +1 -0
  233. pyobjc_core-11.0/PyObjCTest/test_blocks.py +1192 -0
  234. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_bridgesupport.py +20 -11
  235. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_bufsizeinarg.py +37 -16
  236. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_callable_docstr.py +48 -0
  237. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_categories.py +4 -0
  238. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_clinmeth.py +1 -0
  239. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_convenience.py +113 -0
  240. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_conversion.py +124 -2
  241. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_corefoundation.py +1 -0
  242. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_ctests.py +1 -0
  243. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_dict_interface.py +1 -0
  244. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_dyld.py +3 -3
  245. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_filepointer.py +1 -0
  246. pyobjc_core-11.0/PyObjCTest/test_free_threading.py +15 -0
  247. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_fsref.py +19 -1
  248. pyobjc_core-11.0/PyObjCTest/test_generic_new.py +332 -0
  249. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_imp.py +23 -1
  250. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_inspect_signatures.py +1 -0
  251. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_internals.py +36 -3
  252. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_ivar.py +52 -0
  253. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_keyvalue.py +82 -0
  254. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_lazy_import.py +21 -3
  255. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_leaks.py +4 -2
  256. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_list_proxy.py +25 -5
  257. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_locking.py +1 -0
  258. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_machsignals.py +11 -0
  259. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_metadata.py +558 -5
  260. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_metadata_function.py +1 -0
  261. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_metadata_imp.py +1 -0
  262. pyobjc_core-11.0/PyObjCTest/test_metadata_py.py +2134 -0
  263. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_metadata_py2py.py +1 -0
  264. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_methodaccess.py +1 -1
  265. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_methods.py +66 -0
  266. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_nscoder.py +8 -0
  267. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_nsdecimal.py +30 -4
  268. pyobjc_core-11.0/PyObjCTest/test_nsinvocation.py +107 -0
  269. pyobjc_core-11.0/PyObjCTest/test_nsunavailable.py +63 -0
  270. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_number_proxy.py +29 -6
  271. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_objc.py +25 -0
  272. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_object_proxy.py +1 -24
  273. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_opaque.py +20 -28
  274. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_options.py +198 -20
  275. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_pickling_objc.py +1 -0
  276. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_pointer_compat.py +26 -1
  277. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_protocol.py +9 -0
  278. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_protocolNamed.py +10 -0
  279. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_regr.py +102 -0
  280. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_set_interface.py +2 -1
  281. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_set_proxy.py +2 -3
  282. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_signatures.py +1 -0
  283. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_sockaddr.py +30 -11
  284. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_specialtypecodes_charbyte.py +1 -0
  285. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_specialtypecodes_charint.py +1 -0
  286. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_specialtypecodes_methdef.py +1 -0
  287. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_specialtypecodes_nsbool.py +1 -0
  288. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_specialtypecodes_struct.py +1 -0
  289. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_specialtypecodes_unichar.py +1 -0
  290. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_splitsig.py +45 -0
  291. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_string_proxy.py +2 -2
  292. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_structs.py +126 -2
  293. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_subclass.py +171 -0
  294. pyobjc_core-11.0/PyObjCTest/test_super_on_regular_classes.py +20 -0
  295. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_synthesize.py +1 -0
  296. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_testsupport.py +32 -2
  297. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_transform.py +208 -10
  298. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_transform_integration.py +18 -8
  299. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_unicode.py +8 -0
  300. pyobjc_core-11.0/PyObjCTest/test_urlproxy.py +67 -0
  301. pyobjc_core-11.0/PyObjCTest/test_varargs.py +60 -0
  302. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_vectorcall.py +11 -3
  303. pyobjc_core-11.0/Tools/free-threading/_tools.py +45 -0
  304. pyobjc_core-11.0/Tools/free-threading/concurrent-class-list.py +11 -0
  305. pyobjc_core-11.0/Tools/free-threading/concurrent-dict-getting.py +26 -0
  306. pyobjc_core-11.0/Tools/free-threading/concurrent-iteration.py +23 -0
  307. pyobjc_core-11.0/Tools/free-threading/concurrent-proxies.py +25 -0
  308. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/generate-category-tests.py +60 -21
  309. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/pyobjc_setup.py +121 -27
  310. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/pyobjcbench.py +1 -1
  311. pyobjc_core-11.0/Tools/run-free-threading-tests.py +30 -0
  312. {pyobjc-core-10.2 → pyobjc_core-11.0}/setup.cfg +1 -1
  313. {pyobjc-core-10.2 → pyobjc_core-11.0}/setup.py +44 -20
  314. pyobjc-core-10.2/Modules/objc/objc-object.h +0 -59
  315. pyobjc-core-10.2/Modules/objc/options.h +0 -43
  316. pyobjc-core-10.2/Modules/objc/options.m +0 -393
  317. pyobjc-core-10.2/Modules/objc/proxy-registry.h +0 -31
  318. pyobjc-core-10.2/Modules/objc/proxy-registry.m +0 -116
  319. pyobjc-core-10.2/Modules/objc/registry.m +0 -196
  320. pyobjc-core-10.2/Modules/objc/test/categories_base.m +0 -6918
  321. pyobjc-core-10.2/Modules/objc/test/category_c42.m +0 -73
  322. pyobjc-core-10.2/Modules/objc/test/category_c43.m +0 -73
  323. pyobjc-core-10.2/Modules/objc/test/category_c44.m +0 -73
  324. pyobjc-core-10.2/Modules/objc/test/category_c45.m +0 -73
  325. pyobjc-core-10.2/Modules/objc/test/category_c46.m +0 -73
  326. pyobjc-core-10.2/Modules/objc/test/category_c47.m +0 -73
  327. pyobjc-core-10.2/Modules/objc/test/category_c48.m +0 -73
  328. pyobjc-core-10.2/Modules/objc/test/category_c49.m +0 -73
  329. pyobjc-core-10.2/Modules/objc/test/category_c50.m +0 -73
  330. pyobjc-core-10.2/Modules/objc/test/category_c51.m +0 -73
  331. pyobjc-core-10.2/Modules/objc/test/category_c52.m +0 -73
  332. pyobjc-core-10.2/Modules/objc/test/category_c53.m +0 -73
  333. pyobjc-core-10.2/Modules/objc/test/category_c54.m +0 -73
  334. pyobjc-core-10.2/Modules/objc/test/category_c55.m +0 -73
  335. pyobjc-core-10.2/Modules/objc/test/category_c56.m +0 -73
  336. pyobjc-core-10.2/Modules/objc/test/category_c57.m +0 -73
  337. pyobjc-core-10.2/Modules/objc/test/category_c58.m +0 -73
  338. pyobjc-core-10.2/Modules/objc/test/category_c59.m +0 -73
  339. pyobjc-core-10.2/Modules/objc/test/category_gp10.m +0 -73
  340. pyobjc-core-10.2/Modules/objc/test/category_gp11.m +0 -73
  341. pyobjc-core-10.2/Modules/objc/test/category_gp12.m +0 -73
  342. pyobjc-core-10.2/Modules/objc/test/category_gp13.m +0 -73
  343. pyobjc-core-10.2/Modules/objc/test/category_gp14.m +0 -73
  344. pyobjc-core-10.2/Modules/objc/test/category_gp15.m +0 -73
  345. pyobjc-core-10.2/Modules/objc/test/category_gp16.m +0 -73
  346. pyobjc-core-10.2/Modules/objc/test/category_gp17.m +0 -73
  347. pyobjc-core-10.2/Modules/objc/test/category_gp18.m +0 -73
  348. pyobjc-core-10.2/Modules/objc/test/category_gp19.m +0 -73
  349. pyobjc-core-10.2/Modules/objc/test/category_gp20.m +0 -73
  350. pyobjc-core-10.2/Modules/objc/test/category_gp21.m +0 -73
  351. pyobjc-core-10.2/Modules/objc/test/category_gp22.m +0 -73
  352. pyobjc-core-10.2/Modules/objc/test/category_gp23.m +0 -73
  353. pyobjc-core-10.2/Modules/objc/test/category_gp6.m +0 -73
  354. pyobjc-core-10.2/Modules/objc/test/category_gp7.m +0 -73
  355. pyobjc-core-10.2/Modules/objc/test/category_gp8.m +0 -73
  356. pyobjc-core-10.2/Modules/objc/test/category_gp9.m +0 -73
  357. pyobjc-core-10.2/Modules/objc/test/category_p24.m +0 -73
  358. pyobjc-core-10.2/Modules/objc/test/category_p25.m +0 -73
  359. pyobjc-core-10.2/Modules/objc/test/category_p26.m +0 -73
  360. pyobjc-core-10.2/Modules/objc/test/category_p27.m +0 -73
  361. pyobjc-core-10.2/Modules/objc/test/category_p28.m +0 -73
  362. pyobjc-core-10.2/Modules/objc/test/category_p29.m +0 -73
  363. pyobjc-core-10.2/Modules/objc/test/category_p30.m +0 -73
  364. pyobjc-core-10.2/Modules/objc/test/category_p31.m +0 -73
  365. pyobjc-core-10.2/Modules/objc/test/category_p32.m +0 -73
  366. pyobjc-core-10.2/Modules/objc/test/category_p33.m +0 -73
  367. pyobjc-core-10.2/Modules/objc/test/category_p34.m +0 -73
  368. pyobjc-core-10.2/Modules/objc/test/category_p35.m +0 -73
  369. pyobjc-core-10.2/Modules/objc/test/category_p36.m +0 -73
  370. pyobjc-core-10.2/Modules/objc/test/category_p37.m +0 -73
  371. pyobjc-core-10.2/Modules/objc/test/category_p38.m +0 -73
  372. pyobjc-core-10.2/Modules/objc/test/category_p39.m +0 -73
  373. pyobjc-core-10.2/Modules/objc/test/category_p40.m +0 -73
  374. pyobjc-core-10.2/Modules/objc/test/category_p41.m +0 -73
  375. pyobjc-core-10.2/Modules/objc/test/cfsocket.m +0 -50
  376. pyobjc-core-10.2/Modules/objc/test/classes.m +0 -46
  377. pyobjc-core-10.2/Modules/objc/test/dataint.m +0 -66
  378. pyobjc-core-10.2/Modules/objc/test/decimal.m +0 -64
  379. pyobjc-core-10.2/Modules/objc/test/enumeration.m +0 -55
  380. pyobjc-core-10.2/Modules/objc/test/filepointer.m +0 -68
  381. pyobjc-core-10.2/Modules/objc/test/gcov.m +0 -41
  382. pyobjc-core-10.2/Modules/objc/test/methodaccess.m +0 -48
  383. pyobjc-core-10.2/Modules/objc/test/methres1.m +0 -37
  384. pyobjc-core-10.2/Modules/objc/test/methres2.m +0 -38
  385. pyobjc-core-10.2/Modules/objc/test/misc.m +0 -47
  386. pyobjc-core-10.2/Modules/objc/test/missing1.m +0 -27
  387. pyobjc-core-10.2/Modules/objc/test/missing2.m +0 -30
  388. pyobjc-core-10.2/Modules/objc/test/missing3.m +0 -30
  389. pyobjc-core-10.2/Modules/objc/test/nsobjectcategory.m +0 -44
  390. pyobjc-core-10.2/Modules/objc/test/protected.m +0 -50
  391. pyobjc-core-10.2/Modules/objc/test/structpointer1.m +0 -78
  392. pyobjc-core-10.2/Modules/objc/test/structpointer2.m +0 -43
  393. pyobjc-core-10.2/Modules/objc/test/testoutputinitializer.m +0 -73
  394. pyobjc-core-10.2/Modules/objc/test/voidpointer.m +0 -62
  395. pyobjc-core-10.2/PyObjCTest/test_blocks.py +0 -554
  396. pyobjc-core-10.2/PyObjCTest/test_metadata_py.py +0 -1046
  397. pyobjc-core-10.2/PyObjCTest/test_nsinvocation.py +0 -33
  398. pyobjc-core-10.2/PyObjCTest/test_posing.py +0 -42
  399. pyobjc-core-10.2/PyObjCTest/test_urlproxy.py +0 -21
  400. pyobjc-core-10.2/PyObjCTest/test_varargs.py +0 -61
  401. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/00ReadMe.txt +0 -0
  402. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/GUITests/00ReadMe.txt +0 -0
  403. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -0
  404. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -0
  405. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -0
  406. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -0
  407. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  408. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -0
  409. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -0
  410. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -0
  411. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -0
  412. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -0
  413. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -0
  414. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -0
  415. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -0
  416. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -0
  417. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -0
  418. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -0
  419. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/HelloWorld.py +0 -0
  420. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/autoreadme.py +0 -0
  421. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/kvo-debugging.py +0 -0
  422. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/signal-demo.py +0 -0
  423. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/stdinreader.py +0 -0
  424. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/subclassing-objective-c.py +0 -0
  425. {pyobjc-core-10.2 → pyobjc_core-11.0}/Examples/Scripts/wmEnable.py +0 -0
  426. {pyobjc-core-10.2 → pyobjc_core-11.0}/HISTORIC.txt +0 -0
  427. {pyobjc-core-10.2 → pyobjc_core-11.0}/Install.txt +0 -0
  428. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/PyObjCTools/MachSignals.py +0 -0
  429. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/PyObjCTools/Signals.py +0 -0
  430. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_callable_docstr.py +0 -0
  431. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_category.py +0 -0
  432. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_compat.py +0 -0
  433. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_descriptors.py +0 -0
  434. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_dyld.py +0 -0
  435. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_framework.py +0 -0
  436. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_informal_protocol.py +0 -0
  437. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_properties.py +0 -0
  438. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_protocols.py +0 -0
  439. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_pythonify.py +0 -0
  440. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/_structtype.py +0 -0
  441. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/objc/simd.py +0 -0
  442. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
  443. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
  444. {pyobjc-core-10.2 → pyobjc_core-11.0}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
  445. {pyobjc-core-10.2 → pyobjc_core-11.0}/License.txt +0 -0
  446. {pyobjc-core-10.2 → pyobjc_core-11.0}/MANIFEST +0 -0
  447. {pyobjc-core-10.2 → pyobjc_core-11.0}/MANIFEST.in +0 -0
  448. {pyobjc-core-10.2 → pyobjc_core-11.0}/Misc/announcement.txt +0 -0
  449. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
  450. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
  451. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonData.h +0 -0
  452. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonData.m +0 -0
  453. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
  454. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
  455. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
  456. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
  457. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
  458. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
  459. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
  460. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
  461. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
  462. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
  463. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_NSBundleHack.h +0 -0
  464. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonArray.h +0 -0
  465. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonData.h +0 -0
  466. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonDate.h +0 -0
  467. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonDictionary.h +0 -0
  468. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonEnumerator.h +0 -0
  469. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonNumber.h +0 -0
  470. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonURL.h +0 -0
  471. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/OC_PythonUnicode.h +0 -0
  472. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/ObjCPointer.h +0 -0
  473. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/bundle-variables.h +0 -0
  474. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/class-list.h +0 -0
  475. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/closure_pool.h +0 -0
  476. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/corefoundation.h +0 -0
  477. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/ctests.h +0 -0
  478. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/file_wrapper.h +0 -0
  479. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/fsref.h +0 -0
  480. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/function.h +0 -0
  481. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/helpers.h +0 -0
  482. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/instance-var.h +0 -0
  483. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/ivar-accessor.h +0 -0
  484. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/libffi_extra.h +0 -0
  485. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/libffi_extra.m +0 -0
  486. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/memview.h +0 -0
  487. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/meth-func.h +0 -0
  488. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/method-accessor.h +0 -0
  489. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/method-imp.h +0 -0
  490. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/method-signature.h +0 -0
  491. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-NULL.h +0 -0
  492. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc-NULL.m +0 -0
  493. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/objc_super.h +0 -0
  494. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/opaque-pointer.h +0 -0
  495. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pointer-support.h +0 -0
  496. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc-assert.h +0 -0
  497. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/pyobjc_unicode.h +0 -0
  498. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/registry.h +0 -0
  499. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/released-buffer.h +0 -0
  500. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/released-buffer.m +0 -0
  501. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/struct-sockaddr.h +0 -0
  502. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/struct-sockaddr.m +0 -0
  503. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/super-call.h +0 -0
  504. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp24.m +0 -0
  505. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp27.m +0 -0
  506. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp3.m +0 -0
  507. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp30.m +0 -0
  508. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp33.m +0 -0
  509. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp36.m +0 -0
  510. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp39.m +0 -0
  511. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp42.m +0 -0
  512. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp45.m +0 -0
  513. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp48.m +0 -0
  514. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp51.m +0 -0
  515. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp54.m +0 -0
  516. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/test/category_gp57.m +0 -0
  517. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/varlist.h +0 -0
  518. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/weakref.h +0 -0
  519. {pyobjc-core-10.2 → pyobjc_core-11.0}/Modules/objc/weakref.m +0 -0
  520. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/__init__.py +0 -0
  521. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
  522. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
  523. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
  524. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
  525. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
  526. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
  527. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
  528. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
  529. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
  530. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/dump-nsarchive.m +0 -0
  531. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/helper_bridgesupport.py +0 -0
  532. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/loader.py +0 -0
  533. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_NULL.py +0 -0
  534. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_allocatebuffer.py +0 -0
  535. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_api_import.py +0 -0
  536. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_archiving_interop.py +0 -0
  537. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_archiving_secure_interop.py +0 -0
  538. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_array_interface.py +0 -0
  539. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_array_property.py +0 -0
  540. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_assocations.py +0 -0
  541. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_bridged_classes.py +0 -0
  542. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_bridges.py +0 -0
  543. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_bundleFunctions.py +0 -0
  544. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_bundleVariables.py +0 -0
  545. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_callbacks.py +0 -0
  546. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_classandinst.py +0 -0
  547. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_classhooks.py +0 -0
  548. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_compat.py +0 -0
  549. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_context.py +0 -0
  550. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_copying.py +0 -0
  551. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_data_proxy.py +0 -0
  552. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_date_proxy.py +0 -0
  553. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_default_selector.py +0 -0
  554. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_deprecations.py +0 -0
  555. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_descriptors.py +0 -0
  556. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_dict_property.py +0 -0
  557. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_dict_proxy.py +0 -0
  558. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_enumerator.py +0 -0
  559. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_exceptions.py +0 -0
  560. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_final.py +0 -0
  561. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_framework.py +0 -0
  562. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_functions.py +0 -0
  563. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_generic_class.py +0 -0
  564. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_hidden_selector.py +0 -0
  565. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_identity.py +0 -0
  566. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_initialized.py +0 -0
  567. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_keyvalue_prop.py +0 -0
  568. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_keyvaluecoding.py +0 -0
  569. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_metadata_inheritance.py +0 -0
  570. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_method_prototypes.py +0 -0
  571. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_methodedits.py +0 -0
  572. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_methodlookup.py +0 -0
  573. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_methods2.py +0 -0
  574. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_methres.py +0 -0
  575. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_nsdata.py +0 -0
  576. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_nsdate_proxy.py +0 -0
  577. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_nsobject.py +0 -0
  578. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_nulldelimited.py +0 -0
  579. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_objcpointer.py +0 -0
  580. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_object_property.py +0 -0
  581. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_outputinitializer.py +0 -0
  582. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_pickle.py +0 -0
  583. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_propertiesforclass.py +0 -0
  584. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_protected.py +0 -0
  585. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_python_method.py +0 -0
  586. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_set_property.py +0 -0
  587. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_signals.py +0 -0
  588. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_simd.py +0 -0
  589. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_structpointer.py +0 -0
  590. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_typecheck.py +0 -0
  591. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_usekvo.py +0 -0
  592. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_varlist.py +0 -0
  593. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_vector_proxy.py +0 -0
  594. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_version_support.py +0 -0
  595. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_voidpointer.py +0 -0
  596. {pyobjc-core-10.2 → pyobjc_core-11.0}/PyObjCTest/test_weakref.py +0 -0
  597. {pyobjc-core-10.2 → pyobjc_core-11.0}/README.txt +0 -0
  598. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/MANIFEST.in +0 -0
  599. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/comparebench.py +0 -0
  600. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/gen_archive.py +0 -0
  601. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/generate-helpers-vector.py +0 -0
  602. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/results/pyobjcbench-7.3.txt +0 -0
  603. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
  604. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
  605. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/runtests-with-nuitka.py +0 -0
  606. {pyobjc-core-10.2 → pyobjc_core-11.0}/Tools/runtests.py +0 -0
  607. {pyobjc-core-10.2 → pyobjc_core-11.0}/pyproject.toml +0 -0
@@ -4,6 +4,7 @@ Check if NSModalSessions are properly wrapped.
4
4
  NOTE: This is not a proper unittest, it requires human eyes to check if the
5
5
  output is correct.
6
6
  """
7
+
7
8
  import time
8
9
 
9
10
  from Cocoa import (
@@ -4,6 +4,7 @@ Script for building the example.
4
4
  Usage:
5
5
  python3 setup.py py2app
6
6
  """
7
+
7
8
  from setuptools import setup
8
9
 
9
10
  plist = {
@@ -6,6 +6,7 @@ It sometimes is useful to see which Objective-C methods are called in a
6
6
  program. Luckily the Objective-C runtime contains a private API for logging
7
7
  all method calls. This file shows how to call that API.
8
8
  """
9
+
9
10
  import Foundation
10
11
  import objc
11
12
 
@@ -29,10 +29,8 @@ weaker coupling between the view and model layers.
29
29
  import collections.abc
30
30
  import types
31
31
 
32
- import objc
33
32
 
34
33
  __all__ = ("getKey", "setKey", "getKeyPath", "setKeyPath")
35
- _null = objc.lookUpClass("NSNull").null()
36
34
 
37
35
 
38
36
  def keyCaps(s):
@@ -382,3 +380,13 @@ class kvc:
382
380
  if not isinstance(item, str):
383
381
  raise TypeError("Keys must be strings")
384
382
  setKeyPath(self.__pyobjc_object__, item, value)
383
+
384
+
385
+ # The import of 'objc' is at the end of the module
386
+ # to avoid problems when importing this module before
387
+ # importing objc due to the objc package importing bits
388
+ # of this module.
389
+
390
+ import objc # noqa: E402
391
+
392
+ _null = objc.lookUpClass("NSNull").null()
@@ -803,7 +803,8 @@ class TestCase(_unittest.TestCase):
803
803
  if st is None:
804
804
  self.fail(
805
805
  message
806
- or "arg %d of %s is not of type block: no callable" % (argno, method)
806
+ or "arg %d of %s: no callable specified for the block signature"
807
+ % (argno, method)
807
808
  )
808
809
 
809
810
  try:
@@ -848,7 +849,8 @@ class TestCase(_unittest.TestCase):
848
849
  if st is None:
849
850
  self.fail(
850
851
  message
851
- or "result of %s is not of type block: no callable specified" % (method)
852
+ or "result of %s: no callable specified for the block signature"
853
+ % (method)
852
854
  )
853
855
 
854
856
  try:
@@ -1105,6 +1107,23 @@ class TestCase(_unittest.TestCase):
1105
1107
  self.assertEqual(clone, value)
1106
1108
  self.assertIsInstance(clone, type(value))
1107
1109
 
1110
+ def assertFreeThreadedIfConfigured(self):
1111
+ """
1112
+ Assert that the process is running in free-threaded mode when
1113
+ the interpreter was configured as such.
1114
+ """
1115
+
1116
+ if not _get_config_var("Py_GIL_DISABLED"):
1117
+ # Not a free threaded build
1118
+ return
1119
+
1120
+ if "gil" in _sys._xoptions and _sys._xoptions["gil"]:
1121
+ # User runs with '-Xgil=1'
1122
+ return
1123
+
1124
+ # Check that the GIL is actually disabled
1125
+ self.assertFalse(_sys._is_gil_enabled(), "GIL is enabled")
1126
+
1108
1127
  def _validateCallableMetadata(
1109
1128
  self, value, class_name=None, skip_simple_charptr_check=False
1110
1129
  ):
@@ -1207,6 +1226,14 @@ class TestCase(_unittest.TestCase):
1207
1226
  f"{value}: {idx}: pointer argument, but no by-ref annotation:{tp!r} {class_name or ''}"
1208
1227
  )
1209
1228
 
1229
+ def _validateBundleIdentifier(self, module):
1230
+ if hasattr(module, "__bundle__"):
1231
+ self.assertHasAttr(module, "__framework_identifier__")
1232
+ self.assertEqual(
1233
+ module.__bundle__.bundleIdentifier(),
1234
+ module.__framework_identifier__,
1235
+ )
1236
+
1210
1237
  def assertCallableMetadataIsSane(
1211
1238
  self, module, *, exclude_cocoa=True, exclude_attrs=()
1212
1239
  ):
@@ -1220,13 +1247,8 @@ class TestCase(_unittest.TestCase):
1220
1247
  # XXX: exclude_cocoa may exclude too much depending on
1221
1248
  # import order.
1222
1249
 
1223
- if hasattr(module, "__bundle__"):
1224
- with self.subTest("validate framework identifier"):
1225
- self.assertHasAttr(module, "__framework_identifier__")
1226
- self.assertEqual(
1227
- module.__bundle__.bundleIdentifier(),
1228
- module.__framework_identifier__,
1229
- )
1250
+ with self.subTest("validate framework identifier"):
1251
+ self._validateBundleIdentifier(module)
1230
1252
 
1231
1253
  if exclude_cocoa:
1232
1254
  try:
@@ -1391,6 +1413,10 @@ class TestCase(_unittest.TestCase):
1391
1413
  else:
1392
1414
  continue
1393
1415
 
1416
+ # Quick check that the GIL is actually disabled. Testing this here isn't
1417
+ # ideal, but avoids changing all framework bindings.
1418
+ self.assertFreeThreadedIfConfigured()
1419
+
1394
1420
  def __init__(self, methodName="runTest"):
1395
1421
  super().__init__(methodName)
1396
1422
 
@@ -1408,8 +1434,8 @@ class TestCase(_unittest.TestCase):
1408
1434
  """
1409
1435
  try:
1410
1436
  cls = objc.lookUpClass("NSApplication")
1411
- except objc.error:
1412
- pass
1437
+ except objc.error: # pragma: no cover
1438
+ pass # pragma: no cover
1413
1439
  else:
1414
1440
  cls.sharedApplication()
1415
1441
 
@@ -3,6 +3,7 @@ Python <-> Objective-C bridge (PyObjC)
3
3
 
4
4
  This module defines the core interfaces of the Python<->Objective-C bridge.
5
5
  """
6
+
6
7
  from . import _objc
7
8
 
8
9
 
@@ -43,6 +44,7 @@ from . import _structtype # noqa: F401, F403, E402
43
44
  from . import _callable_docstr # noqa: F401, F403, E402
44
45
  from . import _pycoder # noqa: F401, F403, E402
45
46
  from ._informal_protocol import * # noqa: F401, F403, E402
47
+ from . import _new # noqa: F401, E402
46
48
 
47
49
 
48
50
  # Helper function for new-style metadata modules
@@ -21,9 +21,6 @@ def registerListType(type_object):
21
21
  Register 'type' as a list-like type that will be proxied
22
22
  as an NSMutableArray subclass.
23
23
  """
24
- if _objc.options._sequence_types is None:
25
- _objc.options._sequence_types = ()
26
-
27
24
  _objc.options._sequence_types += (type_object,)
28
25
 
29
26
 
@@ -32,9 +29,6 @@ def registerMappingType(type_object):
32
29
  Register 'type' as a dictionary-like type that will be proxied
33
30
  as an NSMutableDictionary subclass.
34
31
  """
35
- if _objc.options._mapping_types is None:
36
- _objc.options._mapping_types = ()
37
-
38
32
  _objc.options._mapping_types += (type_object,)
39
33
 
40
34
 
@@ -43,9 +37,6 @@ def registerSetType(type_object):
43
37
  Register 'type' as a set-like type that will be proxied
44
38
  as an NSMutableSet subclass.
45
39
  """
46
- if _objc.options._set_types is None:
47
- _objc.options._set_types = ()
48
-
49
40
  _objc.options._set_types += (type_object,)
50
41
 
51
42
 
@@ -54,9 +45,6 @@ def registerDateType(type_object):
54
45
  Register 'type' as a date-like type that will be proxied
55
46
  as an NSDate subclass.
56
47
  """
57
- if _objc.options._date_types is None:
58
- _objc.options._date_types = ()
59
-
60
48
  _objc.options._date_types += (type_object,)
61
49
 
62
50
 
@@ -65,9 +53,6 @@ def registerPathType(type_object):
65
53
  Register 'type' as a date-like type that will be proxied
66
54
  as an NSDate subclass.
67
55
  """
68
- if _objc.options._path_types is None:
69
- _objc.options._path_types = ()
70
-
71
56
  _objc.options._path_types += (type_object,)
72
57
 
73
58
 
@@ -3,6 +3,7 @@ Backward compatibility with bridgesupport files
3
3
 
4
4
  This functionality is deprecated and will be removed in PyObjC 10.
5
5
  """
6
+
6
7
  __all__ = ("initFrameworkWrapper", "parseBridgeSupport")
7
8
 
8
9
  import os
@@ -364,9 +365,9 @@ class _BridgeSupportParser:
364
365
  metadata["suggestion"] = suggestion
365
366
 
366
367
  # Force minimal metadata for ignored methods
367
- self.meta[
368
- (_as_bytes(class_name), _as_bytes(sel_name), is_class)
369
- ] = metadata
368
+ self.meta[(_as_bytes(class_name), _as_bytes(sel_name), is_class)] = (
369
+ metadata
370
+ )
370
371
  continue
371
372
 
372
373
  if variadic:
@@ -395,9 +396,9 @@ class _BridgeSupportParser:
395
396
  del metadata["arguments"]
396
397
 
397
398
  if metadata:
398
- self.meta[
399
- (_as_bytes(class_name), _as_bytes(sel_name), is_class)
400
- ] = metadata
399
+ self.meta[(_as_bytes(class_name), _as_bytes(sel_name), is_class)] = (
400
+ metadata
401
+ )
401
402
 
402
403
  def do_enum(self, node):
403
404
  name = self.attribute_string(node, "name", None)
@@ -668,7 +669,7 @@ def _parseBridgeSupport(data, globals, frameworkName, *args, **kwds): # noqa: A
668
669
  )
669
670
 
670
671
 
671
- if sys.version_info[:2] >= (3, 9):
672
+ if sys.version_info[:2] >= (3, 9): # pragma: no branch
672
673
 
673
674
  def resource_exists(package, resource):
674
675
  try:
@@ -677,7 +678,10 @@ if sys.version_info[:2] >= (3, 9):
677
678
  except ImportError:
678
679
  return False
679
680
 
680
- else:
681
+ def resource_string(package, resource):
682
+ return resources.files(package).joinpath(resource).read_text()
683
+
684
+ else: # pragma: no cover
681
685
 
682
686
  def resource_exists(package, resource):
683
687
  try:
@@ -686,14 +690,6 @@ else:
686
690
  except ImportError:
687
691
  return False
688
692
 
689
-
690
- if sys.version_info[:2] >= (3, 9):
691
-
692
- def resource_string(package, resource):
693
- return resources.files(package).joinpath(resource).read_text()
694
-
695
- else:
696
-
697
693
  def resource_string(package, resource):
698
694
  return resources.read_text(package, resource)
699
695
 
@@ -25,6 +25,7 @@ Use ``objc.context.unregister`` to remove the registration of ``myObject``
25
25
  when you're done. The argument to unregister is the same object as was
26
26
  passed in during registration.
27
27
  """
28
+
28
29
  __all__ = ("context",)
29
30
  from typing import Any
30
31
 
@@ -2,6 +2,7 @@
2
2
  This module implements a callback function that is used by the C code to
3
3
  add Python special methods to Objective-C classes with a suitable interface.
4
4
  """
5
+
5
6
  from objc._objc import (
6
7
  _block_call,
7
8
  _rescanClass,
@@ -12,8 +13,16 @@ from objc._objc import (
12
13
  selector,
13
14
  )
14
15
  import PyObjCTools.KeyValueCoding as kvc
15
-
16
- __all__ = ("addConvenienceForClass", "registerABCForClass")
16
+ from objc._new import make_generic_new, NEW_MAP
17
+ from objc._transform import _selectorToKeywords
18
+
19
+ __all__ = (
20
+ "addConvenienceForClass",
21
+ "registerABCForClass",
22
+ "registerUnavailableMethod",
23
+ "registerNewKeywords",
24
+ "registerNewKeywordsFromSelector",
25
+ )
17
26
 
18
27
  CLASS_METHODS = {}
19
28
  CLASS_ABC = {}
@@ -53,6 +62,15 @@ def add_convenience_methods(cls, type_dict):
53
62
 
54
63
  Matching entries from both mappings are added to the 'type_dict'.
55
64
  """
65
+
66
+ # Only add the generic __new__ to pure ObjC classes,
67
+ # __new__ will be added to Python subclasses by
68
+ # ._transform.
69
+ if not cls.__has_python_implementation__ and type( # noqa: E721
70
+ cls.__mro__[1].__new__
71
+ ) != type(lambda: None):
72
+ type_dict["__new__"] = make_generic_new(cls)
73
+
56
74
  for nm, value in CLASS_METHODS.get(cls.__name__, ()):
57
75
  type_dict[nm] = value
58
76
 
@@ -78,6 +96,56 @@ def makeBundleForClass():
78
96
  return selector(bundleForClass, isClassMethod=True)
79
97
 
80
98
 
99
+ def registerUnavailableMethod(classname, selector):
100
+ """
101
+ Mark *selector* as unavailable for *classname*.
102
+ """
103
+ if not isinstance(selector, bytes):
104
+ raise TypeError("selector should by a bytes object")
105
+ selname = selector.decode()
106
+
107
+ # This adds None as a replacement value instead of
108
+ # registering metadata because NS_UNAVAILABLE is
109
+ # used to mark abstract base classes with concrete
110
+ # public subclasses.
111
+ # addConvenienceForClass(classname, ((selname.replace(":", "_"), None),))
112
+ registerMetaDataForSelector(
113
+ classname.encode(),
114
+ selector,
115
+ {"suggestion": f"{selector.decode()!r} is NS_UNAVAILABLE"},
116
+ )
117
+
118
+ if selname.startswith("init"):
119
+ kw = _selectorToKeywords(selname)
120
+ NEW_MAP.setdefault(classname, {})[kw] = None
121
+
122
+
123
+ def registerNewKeywordsFromSelector(classname, selector):
124
+ """
125
+ Register keywords calculated from 'selector' as passible
126
+ keyword arguments for __new__ for the given class. The
127
+ selector should be an 'init' method.
128
+ """
129
+ if not isinstance(selector, bytes):
130
+ raise TypeError("selector should by a bytes object")
131
+ selname = selector.decode()
132
+ kw = _selectorToKeywords(selname)
133
+ NEW_MAP.setdefault(classname, {})[kw] = selname.replace(":", "_")
134
+
135
+
136
+ def registerNewKeywords(classname, keywords, methodname):
137
+ """
138
+ Register the keyword tuple 'keywords' as a set of keyword
139
+ arguments for __new__ for the given class that will result
140
+ in the invocation of the given method.
141
+
142
+ Method should be either an init method or a class method.
143
+ """
144
+ if not isinstance(keywords, tuple) or not all(isinstance(x, str) for x in keywords):
145
+ raise TypeError("keywords must be tuple of strings")
146
+ NEW_MAP.setdefault(classname, {})[keywords] = methodname
147
+
148
+
81
149
  def registerABCForClass(classname, *abc_class):
82
150
  """
83
151
  Register *classname* with the *abc_class*-es when
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Convenience methods for Cocoa mapping types.
3
3
  """
4
+
4
5
  __all__ = ("addConvenienceForBasicMapping",)
5
6
 
6
7
  import collections.abc
@@ -117,7 +118,7 @@ def addConvenienceForBasicMapping(classname, readonly=True):
117
118
  Add the convenience methods for a Cocoa mapping type
118
119
 
119
120
  Used to add the basic collections.abc.Mapping or collections.abc.MutableMapping
120
- APIs to a Cocoa class that has an API simular to NSDictionary.
121
+ APIs to a Cocoa class that has an API similar to NSDictionary.
121
122
  """
122
123
  addConvenienceForClass(
123
124
  classname, _CONVENIENCES_MAPPING_RO if readonly else _CONVENIENCES_MAPPING_RW
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Convenience interface for NSArray/NSMutableArray
3
3
  """
4
+
4
5
  __all__ = ()
5
6
 
6
7
  import collections.abc
@@ -10,6 +11,7 @@ from objc._convenience import addConvenienceForClass, container_unwrap, containe
10
11
  from objc._objc import _C_ID, _C_NSInteger
11
12
  from objc._objc import _NSNotFound as NSNotFound
12
13
  from objc._objc import lookUpClass, registerMetaDataForSelector
14
+ from ._new import NEW_MAP
13
15
 
14
16
  NSArray = lookUpClass("NSArray")
15
17
  NSMutableArray = lookUpClass("NSMutableArray")
@@ -296,6 +298,10 @@ def nsarray_new(cls, sequence=None):
296
298
  return NSArray.arrayWithArray_(sequence)
297
299
 
298
300
 
301
+ for cls in ("NSArray", "__NSArrayI", "__NSArrayM", "__NSArray0"):
302
+ NEW_MAP.setdefault(cls, {})[()] = nsarray_new
303
+
304
+
299
305
  def nsmutablearray_new(cls, sequence=None):
300
306
  if not sequence:
301
307
  return NSMutableArray.array()
@@ -313,6 +319,11 @@ def nsmutablearray_new(cls, sequence=None):
313
319
  return NSMutableArray.arrayWithArray_(sequence)
314
320
 
315
321
 
322
+ for cls in ("NSMutableArray",):
323
+ d = NEW_MAP.setdefault(cls, {})
324
+ d[()] = nsmutablearray_new
325
+
326
+
316
327
  def nsarray__contains__(self, elem):
317
328
  return bool(self.containsObject_(container_wrap(elem)))
318
329
 
@@ -373,7 +384,6 @@ def nsarray__iter__(self):
373
384
  addConvenienceForClass(
374
385
  "NSArray",
375
386
  (
376
- ("__new__", staticmethod(nsarray_new)),
377
387
  ("__add__", nsarray_add),
378
388
  ("__radd__", nsarray_radd),
379
389
  ("__mul__", nsarray_mul),
@@ -411,7 +421,6 @@ def nsmutablearray__copy__(self):
411
421
  addConvenienceForClass(
412
422
  "NSMutableArray",
413
423
  (
414
- ("__new__", staticmethod(nsmutablearray_new)),
415
424
  ("__copy__", nsmutablearray__copy__),
416
425
  ("__setitem__", nsarray__setitem__),
417
426
  ("__delitem__", nsarray__delitem__),
@@ -5,8 +5,10 @@ NSData needs to be handles specially for correctness reasons,
5
5
  and is therefore in the core instead of the Foundation
6
6
  framework wrappers.
7
7
  """
8
+
8
9
  from objc._convenience import addConvenienceForClass
9
10
  from objc._objc import registerMetaDataForSelector
11
+ from ._new import NEW_MAP
10
12
  import sys
11
13
  import operator
12
14
 
@@ -52,6 +54,10 @@ def nsdata__new__(cls, value=None):
52
54
  return cls.dataWithBytes_length_(view, len(view))
53
55
 
54
56
 
57
+ for cls in ("NSData", "NSMutableData"):
58
+ NEW_MAP.setdefault(cls, {})[()] = nsdata__new__
59
+
60
+
55
61
  def nsdata__str__(self):
56
62
  if len(self) == 0:
57
63
  return str(b"")
@@ -248,7 +254,6 @@ def nsdata_isascii(self, *args, **kwds):
248
254
  addConvenienceForClass(
249
255
  "NSData",
250
256
  (
251
- ("__new__", staticmethod(nsdata__new__)),
252
257
  ("__len__", lambda self: self.length()),
253
258
  ("__str__", nsdata__str__),
254
259
  ("__getitem__", nsdata__getitem__),
@@ -4,11 +4,13 @@ Support for NSDecimalNumber.
4
4
  The actual class is defined in Foundation, but having the wrapper
5
5
  here is much more convenient.
6
6
  """
7
+
7
8
  __all__ = ()
8
9
  import operator
9
10
 
10
11
  from objc._convenience import addConvenienceForClass
11
12
  from objc._objc import NSDecimal, lookUpClass
13
+ from ._new import NEW_MAP
12
14
 
13
15
  NSDecimalNumber = lookUpClass("NSDecimalNumber")
14
16
 
@@ -38,10 +40,11 @@ def decimal_new(cls, value=None):
38
40
  raise TypeError("Value is not a number")
39
41
 
40
42
 
43
+ NEW_MAP.setdefault("NSDecimalNumber", {})[()] = decimal_new
44
+
41
45
  addConvenienceForClass(
42
46
  "NSDecimalNumber",
43
47
  (
44
- ("__new__", staticmethod(decimal_new)),
45
48
  (
46
49
  "__add__",
47
50
  lambda self, other: NSDecimalNumber(operator.add(NSDecimal(self), other)),
@@ -1,6 +1,7 @@
1
1
  """
2
2
  Convenience interface for NSDictionary/NSMutableDictionary
3
3
  """
4
+
4
5
  __all__ = ()
5
6
 
6
7
  import collections.abc
@@ -26,37 +26,37 @@ def nsobject_hash(self, _max=sys.maxsize, _const=((sys.maxsize + 1) * 2)):
26
26
 
27
27
 
28
28
  def nsobject__eq__(self, other):
29
- if self.__is_magic():
29
+ if self.__pyobjc_magic_coookie__():
30
30
  return self is other
31
31
  return bool(self.isEqualTo_(other))
32
32
 
33
33
 
34
34
  def nsobject__ne__(self, other):
35
- if self.__is_magic():
35
+ if self.__pyobjc_magic_coookie__():
36
36
  return self is not other
37
37
  return bool(self.isNotEqualTo_(other))
38
38
 
39
39
 
40
40
  def nsobject__gt__(self, other):
41
- if self.__is_magic():
41
+ if self.__pyobjc_magic_coookie__():
42
42
  return NotImplemented
43
43
  return bool(self.isGreaterThan_(other))
44
44
 
45
45
 
46
46
  def nsobject__ge__(self, other):
47
- if self.__is_magic():
47
+ if self.__pyobjc_magic_coookie__():
48
48
  return NotImplemented
49
49
  return bool(self.isGreaterThanOrEqualTo_(other))
50
50
 
51
51
 
52
52
  def nsobject__lt__(self, other):
53
- if self.__is_magic():
53
+ if self.__pyobjc_magic_coookie__():
54
54
  return NotImplemented
55
55
  return bool(self.isLessThan_(other))
56
56
 
57
57
 
58
58
  def nsobject__le__(self, other):
59
- if self.__is_magic():
59
+ if self.__pyobjc_magic_coookie__():
60
60
  return NotImplemented
61
61
  return bool(self.isLessThanOrEqualTo_(other))
62
62
 
@@ -1,12 +1,14 @@
1
1
  """
2
2
  Convenience interface for NSSet/NSMutableSet
3
3
  """
4
+
4
5
  __all__ = ()
5
6
 
6
7
  import collections.abc
7
8
 
8
9
  from objc._convenience import addConvenienceForClass, container_unwrap, container_wrap
9
10
  from objc._objc import lookUpClass
11
+ from ._new import NEW_MAP
10
12
 
11
13
  NSSet = lookUpClass("NSSet")
12
14
  NSMutableSet = lookUpClass("NSMutableSet")
@@ -341,6 +343,5 @@ def nsmutableset_new(cls, sequence=None):
341
343
  return value
342
344
 
343
345
 
344
- addConvenienceForClass("NSSet", (("__new__", staticmethod(nsset_new)),))
345
-
346
- addConvenienceForClass("NSMutableSet", (("__new__", staticmethod(nsmutableset_new)),))
346
+ NEW_MAP.setdefault("NSSet", {})[()] = nsset_new
347
+ NEW_MAP.setdefault("NSMutableSet", {})[()] = nsmutableset_new
@@ -1,7 +1,9 @@
1
1
  """
2
2
  Convenience interface for NSString
3
3
  """
4
+
4
5
  from objc._convenience import addConvenienceForClass
6
+ from ._new import NEW_MAP
5
7
 
6
8
  __all__ = ()
7
9
 
@@ -15,12 +17,14 @@ def nsstring_new(cls, value=_no_value):
15
17
  return cls.alloc().initWithString_(value)
16
18
 
17
19
 
20
+ for cls in ("NSString", "NSMutableString"):
21
+ NEW_MAP.setdefault(cls, {})[()] = nsstring_new
22
+
18
23
  addConvenienceForClass(
19
24
  "NSString",
20
25
  (
21
26
  ("__len__", lambda self: self.length()),
22
27
  ("endswith", lambda self, pfx: self.hasSuffix_(pfx)),
23
28
  ("startswith", lambda self, pfx: self.hasPrefix_(pfx)),
24
- ("__new__", staticmethod(nsstring_new)),
25
29
  ),
26
30
  )
@@ -2,6 +2,7 @@
2
2
  This module implements a callback function that is used by the C code to
3
3
  add Python special methods to Objective-C classes with a suitable interface.
4
4
  """
5
+
5
6
  from objc._convenience import addConvenienceForClass
6
7
 
7
8
  __all__ = ("addConvenienceForBasicSequence",)
@@ -4,6 +4,7 @@ Helper module that will enable lazy imports of Cocoa wrapper items.
4
4
  This improves startup times and memory usage, at the cost
5
5
  of not being able to use 'from Cocoa import *'
6
6
  """
7
+
7
8
  __all__ = ("ObjCLazyModule", "createFrameworkDirAndGetattr")
8
9
 
9
10
  import re
@@ -35,8 +36,6 @@ _DEFAULT_ALIASES = {
35
36
 
36
37
 
37
38
  def _deprecation_level(value):
38
- if isinstance(value, int):
39
- return value
40
39
  major, _, minor = value.partition(".")
41
40
  return int(major) * 100 + int(minor)
42
41
 
@@ -244,8 +243,8 @@ def createFrameworkDirAndGetattr(
244
243
  for nm, _val in re.findall(r"\$([A-Z0-9a-z_]*)@([^$]*)(?=\$)", enummap):
245
244
  try:
246
245
  expressions_mapping[nm]
247
- except KeyError:
248
- pass
246
+ except KeyError: # pragma: no cover
247
+ pass # pragma: no cover
249
248
 
250
249
  enummap = ""
251
250
 
@@ -4,6 +4,7 @@ Support for @synchronized blocks
4
4
  The python class object_lock is a contextmanager for with statements that
5
5
  can also be used manually.
6
6
  """
7
+
7
8
  import objc as _objc
8
9
 
9
10