pyobjc-core 10.1__tar.gz → 10.3__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 (512) hide show
  1. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/GUITests/test_modalsession.py +1 -0
  2. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/setup.py +1 -0
  3. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/instrumentSends.py +1 -0
  4. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/PyObjCTools/KeyValueCoding.py +10 -2
  5. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/PyObjCTools/TestSupport.py +8 -5
  6. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/__init__.py +2 -0
  7. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_bridges.py +14 -0
  8. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_bridgesupport.py +7 -6
  9. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_context.py +1 -0
  10. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience.py +70 -2
  11. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_mapping.py +1 -0
  12. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsarray.py +11 -2
  13. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsdata.py +6 -1
  14. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsdecimal.py +4 -1
  15. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsdictionary.py +1 -0
  16. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsset.py +4 -3
  17. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsstring.py +5 -1
  18. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_sequence.py +1 -0
  19. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_lazyimport.py +1 -0
  20. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_locking.py +1 -0
  21. pyobjc_core-10.3/Lib/objc/_new.py +161 -0
  22. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_properties.py +2 -2
  23. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_pycoder.py +1 -0
  24. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_transform.py +54 -1
  25. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/PKG-INFO +1 -1
  26. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/SOURCES.txt +8 -1
  27. {pyobjc-core-10.1 → pyobjc_core-10.3}/License.txt +1 -1
  28. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonNumber.m +23 -2
  29. pyobjc_core-10.3/Modules/objc/OC_PythonURL.h +14 -0
  30. pyobjc_core-10.3/Modules/objc/OC_PythonURL.m +128 -0
  31. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonUnicode.m +2 -2
  32. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/block_support.m +2 -2
  33. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/bundle-variables.m +2 -2
  34. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/class-builder.h +1 -1
  35. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/class-builder.m +12 -5
  36. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/formal-protocol.m +2 -2
  37. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/libffi_extra.m +3 -3
  38. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/libffi_support.m +16 -9
  39. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/module.m +1 -1
  40. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-class.m +31 -1
  41. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc_super.m +2 -16
  42. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc_support.m +165 -84
  43. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/opaque-pointer.m +2 -2
  44. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/options.h +2 -0
  45. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/options.m +7 -1
  46. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc.h +2 -1
  47. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc_unicode.m +0 -5
  48. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/struct-wrapper.m +1 -1
  49. pyobjc_core-10.3/Modules/objc/test/genericnew.m +108 -0
  50. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/metadata.m +9 -9
  51. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/metadatafunction.m +3 -3
  52. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/objectint.m +3 -3
  53. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/pythonset.m +2 -2
  54. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/sequence.m +4 -1
  55. pyobjc_core-10.3/Modules/objc/test/unavailable.m +81 -0
  56. {pyobjc-core-10.1 → pyobjc_core-10.3}/PKG-INFO +1 -1
  57. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/fnd.py +1 -0
  58. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/keyvaluehelper.py +1 -0
  59. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_archive_python.py +5 -0
  60. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_arrays.py +1 -0
  61. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_bridgesupport.py +10 -11
  62. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_clinmeth.py +1 -0
  63. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_convenience.py +78 -0
  64. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_corefoundation.py +1 -0
  65. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_ctests.py +1 -0
  66. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_dict_interface.py +1 -0
  67. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_dyld.py +3 -3
  68. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_filepointer.py +1 -0
  69. pyobjc_core-10.3/PyObjCTest/test_generic_new.py +195 -0
  70. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_keyvalue.py +1 -0
  71. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_leaks.py +4 -2
  72. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_list_proxy.py +1 -0
  73. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_locking.py +1 -0
  74. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_metadata.py +2 -1
  75. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_metadata_function.py +1 -0
  76. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_metadata_imp.py +1 -0
  77. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_metadata_py.py +1 -0
  78. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_metadata_py2py.py +1 -0
  79. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_methodaccess.py +1 -1
  80. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_methods.py +1 -0
  81. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nsdecimal.py +1 -0
  82. pyobjc_core-10.3/PyObjCTest/test_nsunavailable.py +63 -0
  83. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_number_proxy.py +3 -6
  84. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_opaque.py +3 -1
  85. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_pickling_objc.py +1 -0
  86. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_pointer_compat.py +3 -1
  87. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_regr.py +14 -0
  88. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_set_interface.py +1 -0
  89. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_set_proxy.py +1 -0
  90. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_signatures.py +1 -0
  91. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_specialtypecodes_charbyte.py +1 -0
  92. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_specialtypecodes_charint.py +1 -0
  93. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_specialtypecodes_methdef.py +1 -0
  94. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_specialtypecodes_nsbool.py +1 -0
  95. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_specialtypecodes_struct.py +1 -0
  96. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_specialtypecodes_unichar.py +1 -0
  97. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_structs.py +29 -0
  98. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_subclass.py +5 -1
  99. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_synthesize.py +1 -0
  100. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_transform.py +51 -8
  101. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_transform_integration.py +18 -8
  102. pyobjc_core-10.3/PyObjCTest/test_urlproxy.py +21 -0
  103. pyobjc_core-10.3/PyObjCTest/test_varargs.py +60 -0
  104. {pyobjc-core-10.1 → pyobjc_core-10.3}/setup.py +10 -16
  105. pyobjc-core-10.1/PyObjCTest/test_posing.py +0 -42
  106. pyobjc-core-10.1/PyObjCTest/test_varargs.py +0 -61
  107. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/00ReadMe.txt +0 -0
  108. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/GUITests/00ReadMe.txt +0 -0
  109. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -0
  110. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -0
  111. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -0
  112. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -0
  113. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
  114. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -0
  115. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -0
  116. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -0
  117. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -0
  118. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -0
  119. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -0
  120. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -0
  121. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -0
  122. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -0
  123. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -0
  124. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -0
  125. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/HelloWorld.py +0 -0
  126. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/autoreadme.py +0 -0
  127. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/kvo-debugging.py +0 -0
  128. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/signal-demo.py +0 -0
  129. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/stdinreader.py +0 -0
  130. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/subclassing-objective-c.py +0 -0
  131. {pyobjc-core-10.1 → pyobjc_core-10.3}/Examples/Scripts/wmEnable.py +0 -0
  132. {pyobjc-core-10.1 → pyobjc_core-10.3}/HISTORIC.txt +0 -0
  133. {pyobjc-core-10.1 → pyobjc_core-10.3}/Install.txt +0 -0
  134. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/PyObjCTools/MachSignals.py +0 -0
  135. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/PyObjCTools/Signals.py +0 -0
  136. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_callable_docstr.py +0 -0
  137. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_category.py +0 -0
  138. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_compat.py +0 -0
  139. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_convenience_nsobject.py +0 -0
  140. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_descriptors.py +0 -0
  141. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_dyld.py +0 -0
  142. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_framework.py +0 -0
  143. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_informal_protocol.py +0 -0
  144. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_protocols.py +0 -0
  145. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_pythonify.py +0 -0
  146. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/_structtype.py +0 -0
  147. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/objc/simd.py +0 -0
  148. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
  149. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +0 -0
  150. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/include/pyobjc-compat.h +0 -0
  151. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
  152. {pyobjc-core-10.1 → pyobjc_core-10.3}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
  153. {pyobjc-core-10.1 → pyobjc_core-10.3}/MANIFEST +0 -0
  154. {pyobjc-core-10.1 → pyobjc_core-10.3}/MANIFEST.in +0 -0
  155. {pyobjc-core-10.1 → pyobjc_core-10.3}/Misc/announcement.txt +0 -0
  156. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/_machsignals.m +0 -0
  157. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
  158. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
  159. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonData.h +0 -0
  160. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonData.m +0 -0
  161. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
  162. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
  163. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
  164. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
  165. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
  166. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
  167. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
  168. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
  169. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
  170. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
  171. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_NSBundleHack.h +0 -0
  172. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_NSBundleHack.m +0 -0
  173. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonArray.h +0 -0
  174. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonArray.m +0 -0
  175. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonData.h +0 -0
  176. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonData.m +0 -0
  177. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonDate.h +0 -0
  178. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonDate.m +0 -0
  179. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonDictionary.h +0 -0
  180. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonDictionary.m +0 -0
  181. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonEnumerator.h +0 -0
  182. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonEnumerator.m +0 -0
  183. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonNumber.h +0 -0
  184. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonObject.h +0 -0
  185. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonObject.m +0 -0
  186. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonSet.h +0 -0
  187. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonSet.m +0 -0
  188. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/OC_PythonUnicode.h +0 -0
  189. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/ObjCPointer.h +0 -0
  190. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/ObjCPointer.m +0 -0
  191. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/block_support.h +0 -0
  192. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/bundle-variables.h +0 -0
  193. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/class-list.h +0 -0
  194. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/class-list.m +0 -0
  195. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/closure_pool.h +0 -0
  196. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/closure_pool.m +0 -0
  197. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/corefoundation.h +0 -0
  198. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/corefoundation.m +0 -0
  199. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/ctests.h +0 -0
  200. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/ctests.m +0 -0
  201. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/file_wrapper.h +0 -0
  202. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/file_wrapper.m +0 -0
  203. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/formal-protocol.h +0 -0
  204. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/fsref.h +0 -0
  205. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/fsref.m +0 -0
  206. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/function.h +0 -0
  207. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/function.m +0 -0
  208. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-authorization.m +0 -0
  209. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-foundation-nscoder.m +0 -0
  210. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-foundation-nsdata.m +0 -0
  211. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-foundation-nsdecimal.m +0 -0
  212. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-foundation-nsinvocation.m +0 -0
  213. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-foundation-nsobject.m +0 -0
  214. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers-vector.m +0 -0
  215. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/helpers.h +0 -0
  216. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/instance-var.h +0 -0
  217. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/instance-var.m +0 -0
  218. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/ivar-accessor.h +0 -0
  219. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/ivar-accessor.m +0 -0
  220. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/libffi_extra.h +0 -0
  221. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/libffi_support.h +0 -0
  222. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/memview.h +0 -0
  223. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/memview.m +0 -0
  224. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/meth-func.h +0 -0
  225. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/meth-func.m +0 -0
  226. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/method-accessor.h +0 -0
  227. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/method-accessor.m +0 -0
  228. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/method-imp.h +0 -0
  229. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/method-imp.m +0 -0
  230. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/method-signature.h +0 -0
  231. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/method-signature.m +0 -0
  232. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-NULL.h +0 -0
  233. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-NULL.m +0 -0
  234. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-class.h +0 -0
  235. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-object.h +0 -0
  236. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-object.m +0 -0
  237. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-runtime-compat.h +0 -0
  238. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc-runtime-compat.m +0 -0
  239. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc_super.h +0 -0
  240. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc_support.h +0 -0
  241. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc_util.h +0 -0
  242. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/objc_util.m +0 -0
  243. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/opaque-pointer.h +0 -0
  244. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pointer-support.h +0 -0
  245. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pointer-support.m +0 -0
  246. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/proxy-registry.h +0 -0
  247. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/proxy-registry.m +0 -0
  248. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc-api.h +0 -0
  249. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc-api.m +0 -0
  250. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc-assert.h +0 -0
  251. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc-compat.h +0 -0
  252. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc-compat.m +0 -0
  253. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc-unittest.h +0 -0
  254. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/pyobjc_unicode.h +0 -0
  255. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/python-api-used.h +0 -0
  256. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/registry.h +0 -0
  257. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/registry.m +0 -0
  258. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/released-buffer.h +0 -0
  259. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/released-buffer.m +0 -0
  260. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/selector.h +0 -0
  261. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/selector.m +0 -0
  262. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/struct-sockaddr.h +0 -0
  263. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/struct-sockaddr.m +0 -0
  264. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/struct-wrapper.h +0 -0
  265. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/super-call.h +0 -0
  266. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/super-call.m +0 -0
  267. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/NULL.m +0 -0
  268. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/arrayint.m +0 -0
  269. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/arrays.m +0 -0
  270. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/block.m +0 -0
  271. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/bufsizeinarg.m +0 -0
  272. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/categories_base.m +0 -0
  273. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c42.m +0 -0
  274. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c43.m +0 -0
  275. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c44.m +0 -0
  276. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c45.m +0 -0
  277. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c46.m +0 -0
  278. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c47.m +0 -0
  279. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c48.m +0 -0
  280. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c49.m +0 -0
  281. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c50.m +0 -0
  282. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c51.m +0 -0
  283. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c52.m +0 -0
  284. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c53.m +0 -0
  285. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c54.m +0 -0
  286. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c55.m +0 -0
  287. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c56.m +0 -0
  288. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c57.m +0 -0
  289. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c58.m +0 -0
  290. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_c59.m +0 -0
  291. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp10.m +0 -0
  292. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp11.m +0 -0
  293. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp12.m +0 -0
  294. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp13.m +0 -0
  295. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp14.m +0 -0
  296. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp15.m +0 -0
  297. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp16.m +0 -0
  298. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp17.m +0 -0
  299. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp18.m +0 -0
  300. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp19.m +0 -0
  301. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp20.m +0 -0
  302. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp21.m +0 -0
  303. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp22.m +0 -0
  304. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp23.m +0 -0
  305. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp24.m +0 -0
  306. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp27.m +0 -0
  307. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp3.m +0 -0
  308. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp30.m +0 -0
  309. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp33.m +0 -0
  310. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp36.m +0 -0
  311. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp39.m +0 -0
  312. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp42.m +0 -0
  313. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp45.m +0 -0
  314. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp48.m +0 -0
  315. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp51.m +0 -0
  316. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp54.m +0 -0
  317. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp57.m +0 -0
  318. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp6.m +0 -0
  319. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp7.m +0 -0
  320. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp8.m +0 -0
  321. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_gp9.m +0 -0
  322. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p24.m +0 -0
  323. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p25.m +0 -0
  324. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p26.m +0 -0
  325. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p27.m +0 -0
  326. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p28.m +0 -0
  327. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p29.m +0 -0
  328. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p30.m +0 -0
  329. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p31.m +0 -0
  330. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p32.m +0 -0
  331. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p33.m +0 -0
  332. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p34.m +0 -0
  333. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p35.m +0 -0
  334. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p36.m +0 -0
  335. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p37.m +0 -0
  336. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p38.m +0 -0
  337. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p39.m +0 -0
  338. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p40.m +0 -0
  339. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/category_p41.m +0 -0
  340. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/cfsocket.m +0 -0
  341. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/classes.m +0 -0
  342. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/clinmeth.m +0 -0
  343. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/coding.m +0 -0
  344. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/copying.m +0 -0
  345. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/corefoundation.m +0 -0
  346. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/dataint.m +0 -0
  347. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/dateint.m +0 -0
  348. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/decimal.m +0 -0
  349. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/deprecations.m +0 -0
  350. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/dictint.m +0 -0
  351. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/enumeration.m +0 -0
  352. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/exceptions.m +0 -0
  353. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/filepointer.m +0 -0
  354. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/fsref.m +0 -0
  355. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/gcov.m +0 -0
  356. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/helpernsdata.m +0 -0
  357. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/helpernsobject.m +0 -0
  358. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/identity.m +0 -0
  359. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/initialize.m +0 -0
  360. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/instanceVariables.m +0 -0
  361. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/locking.m +0 -0
  362. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/methodaccess.m +0 -0
  363. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/methodlookup.m +0 -0
  364. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/methres1.m +0 -0
  365. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/methres2.m +0 -0
  366. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/misc.m +0 -0
  367. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/missing1.m +0 -0
  368. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/missing2.m +0 -0
  369. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/missing3.m +0 -0
  370. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/nsobjectcategory.m +0 -0
  371. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/nulldelimitedresult.m +0 -0
  372. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/opaque.m +0 -0
  373. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/pointersupport.m +0 -0
  374. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/properties.m +0 -0
  375. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/protected.m +0 -0
  376. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/protocol.m +0 -0
  377. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/pythonnumber.m +0 -0
  378. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/sockaddr.m +0 -0
  379. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/specialtypecodes.m +0 -0
  380. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/stringint.m +0 -0
  381. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/structargs.m +0 -0
  382. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/structpointer1.m +0 -0
  383. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/structpointer2.m +0 -0
  384. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/structs.m +0 -0
  385. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/testbndl.m +0 -0
  386. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/testbndl2.m +0 -0
  387. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/testclassandinst.m +0 -0
  388. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/testoutputinitializer.m +0 -0
  389. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/vector.m +0 -0
  390. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/vectorcall.m +0 -0
  391. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/test/voidpointer.m +0 -0
  392. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/varlist.h +0 -0
  393. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/varlist.m +0 -0
  394. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/weakref.h +0 -0
  395. {pyobjc-core-10.1 → pyobjc_core-10.3}/Modules/objc/weakref.m +0 -0
  396. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/__init__.py +0 -0
  397. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
  398. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
  399. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
  400. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
  401. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
  402. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
  403. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
  404. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
  405. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
  406. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/dump-nsarchive.m +0 -0
  407. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/helper_bridgesupport.py +0 -0
  408. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/loader.py +0 -0
  409. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_NULL.py +0 -0
  410. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_allocatebuffer.py +0 -0
  411. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_api_import.py +0 -0
  412. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_archiving_interop.py +0 -0
  413. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_archiving_secure_interop.py +0 -0
  414. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_array_interface.py +0 -0
  415. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_array_property.py +0 -0
  416. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_assocations.py +0 -0
  417. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_blocks.py +0 -0
  418. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_bridged_classes.py +0 -0
  419. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_bridges.py +0 -0
  420. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_bufsizeinarg.py +0 -0
  421. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_bundleFunctions.py +0 -0
  422. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_bundleVariables.py +0 -0
  423. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_callable_docstr.py +0 -0
  424. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_callbacks.py +0 -0
  425. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_categories.py +0 -0
  426. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_classandinst.py +0 -0
  427. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_classhooks.py +0 -0
  428. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_compat.py +0 -0
  429. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_context.py +0 -0
  430. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_conversion.py +0 -0
  431. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_copying.py +0 -0
  432. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_data_proxy.py +0 -0
  433. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_date_proxy.py +0 -0
  434. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_default_selector.py +0 -0
  435. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_deprecations.py +0 -0
  436. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_descriptors.py +0 -0
  437. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_dict_property.py +0 -0
  438. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_dict_proxy.py +0 -0
  439. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_enumerator.py +0 -0
  440. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_exceptions.py +0 -0
  441. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_final.py +0 -0
  442. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_framework.py +0 -0
  443. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_fsref.py +0 -0
  444. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_functions.py +0 -0
  445. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_generic_class.py +0 -0
  446. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_hidden_selector.py +0 -0
  447. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_identity.py +0 -0
  448. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_imp.py +0 -0
  449. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_initialized.py +0 -0
  450. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_inspect_signatures.py +0 -0
  451. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_internals.py +0 -0
  452. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_ivar.py +0 -0
  453. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_keyvalue_prop.py +0 -0
  454. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_keyvaluecoding.py +0 -0
  455. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_lazy_import.py +0 -0
  456. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_machsignals.py +0 -0
  457. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_metadata_inheritance.py +0 -0
  458. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_method_prototypes.py +0 -0
  459. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_methodedits.py +0 -0
  460. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_methodlookup.py +0 -0
  461. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_methods2.py +0 -0
  462. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_methres.py +0 -0
  463. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nscoder.py +0 -0
  464. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nsdata.py +0 -0
  465. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nsdate_proxy.py +0 -0
  466. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nsinvocation.py +0 -0
  467. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nsobject.py +0 -0
  468. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_nulldelimited.py +0 -0
  469. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_objc.py +0 -0
  470. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_objcpointer.py +0 -0
  471. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_object_property.py +0 -0
  472. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_object_proxy.py +0 -0
  473. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_options.py +0 -0
  474. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_outputinitializer.py +0 -0
  475. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_pickle.py +0 -0
  476. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_propertiesforclass.py +0 -0
  477. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_protected.py +0 -0
  478. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_protocol.py +0 -0
  479. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_protocolNamed.py +0 -0
  480. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_python_method.py +0 -0
  481. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_set_property.py +0 -0
  482. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_signals.py +0 -0
  483. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_simd.py +0 -0
  484. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_sockaddr.py +0 -0
  485. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_splitsig.py +0 -0
  486. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_string_proxy.py +0 -0
  487. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_structpointer.py +0 -0
  488. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_testsupport.py +0 -0
  489. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_typecheck.py +0 -0
  490. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_unicode.py +0 -0
  491. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_usekvo.py +0 -0
  492. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_varlist.py +0 -0
  493. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_vector_proxy.py +0 -0
  494. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_vectorcall.py +0 -0
  495. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_version_support.py +0 -0
  496. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_voidpointer.py +0 -0
  497. {pyobjc-core-10.1 → pyobjc_core-10.3}/PyObjCTest/test_weakref.py +0 -0
  498. {pyobjc-core-10.1 → pyobjc_core-10.3}/README.txt +0 -0
  499. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/MANIFEST.in +0 -0
  500. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/comparebench.py +0 -0
  501. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/gen_archive.py +0 -0
  502. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/generate-category-tests.py +0 -0
  503. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/generate-helpers-vector.py +0 -0
  504. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/pyobjc_setup.py +0 -0
  505. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/pyobjcbench.py +0 -0
  506. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/results/pyobjcbench-7.3.txt +0 -0
  507. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
  508. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
  509. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/runtests-with-nuitka.py +0 -0
  510. {pyobjc-core-10.1 → pyobjc_core-10.3}/Tools/runtests.py +0 -0
  511. {pyobjc-core-10.1 → pyobjc_core-10.3}/pyproject.toml +0 -0
  512. {pyobjc-core-10.1 → pyobjc_core-10.3}/setup.cfg +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()
@@ -1229,13 +1229,16 @@ class TestCase(_unittest.TestCase):
1229
1229
  )
1230
1230
 
1231
1231
  if exclude_cocoa:
1232
- import Cocoa
1232
+ try:
1233
+ import Cocoa
1233
1234
 
1234
- exclude_names = set(dir(Cocoa))
1235
+ exclude_names = set(dir(Cocoa))
1235
1236
 
1236
- # Don't exclude NSObject' because a number
1237
- # of frameworks define categories on this class.
1238
- exclude_names -= {"NSObject"}
1237
+ # Don't exclude NSObject' because a number
1238
+ # of frameworks define categories on this class.
1239
+ exclude_names -= {"NSObject"}
1240
+ except ImportError:
1241
+ exclude_names = set()
1239
1242
  else:
1240
1243
  exclude_names = set()
1241
1244
 
@@ -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
@@ -1,5 +1,6 @@
1
1
  import collections.abc
2
2
  import datetime
3
+ import pathlib
3
4
 
4
5
  from objc import _objc
5
6
 
@@ -8,6 +9,7 @@ __all__ = [
8
9
  "registerMappingType",
9
10
  "registerSetType",
10
11
  "registerDateType",
12
+ "registerPathType",
11
13
  ]
12
14
 
13
15
  _objc.options._datetime_date_type = datetime.date
@@ -58,6 +60,17 @@ def registerDateType(type_object):
58
60
  _objc.options._date_types += (type_object,)
59
61
 
60
62
 
63
+ def registerPathType(type_object):
64
+ """
65
+ Register 'type' as a date-like type that will be proxied
66
+ as an NSDate subclass.
67
+ """
68
+ if _objc.options._path_types is None:
69
+ _objc.options._path_types = ()
70
+
71
+ _objc.options._path_types += (type_object,)
72
+
73
+
61
74
  registerListType(collections.abc.Sequence)
62
75
  registerListType(range)
63
76
  registerMappingType(collections.abc.Mapping)
@@ -67,3 +80,4 @@ registerSetType(frozenset)
67
80
  registerSetType(collections.abc.Set)
68
81
  registerDateType(datetime.date)
69
82
  registerDateType(datetime.datetime)
83
+ registerPathType(pathlib.Path)
@@ -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)
@@ -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
@@ -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
@@ -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
@@ -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
 
@@ -0,0 +1,161 @@
1
+ """
2
+ Implementation of `__new__` for arbitrary Cocoa classes
3
+
4
+ The __new__ method just translates invocations into the
5
+ corresponding invocation of the Cocoa pattern (
6
+ `cls.alloc().init()` or `cls.new()`), based on a mapping
7
+ maintaind in this file.
8
+
9
+ The mapping is updated in two ways:
10
+ 1. From framework bindings for native classes
11
+ 2. Based on `init` methods in Python subclasses
12
+
13
+ """
14
+
15
+ import objc
16
+
17
+ __all__ = ()
18
+
19
+ # Mapping: class name -> { kwds: selector_name }
20
+ #
21
+ # That is, keys are names of Objective-C classes, values
22
+ # are mappings from keyword argument names to
23
+ # the name of a selector.
24
+ #
25
+ # The selector_name can be `None` to disable a
26
+ # mapping in a subclass.
27
+ #
28
+ # The complete mapping for a class is a chain map
29
+ # for the submaps of all classes on the MRO.
30
+ NEW_MAP = {
31
+ "NSObject": {(): "init"},
32
+ }
33
+
34
+ # Sentinel value
35
+ UNSET = object()
36
+
37
+ # Added to the docstring for __new__
38
+ DOC_SUFFIX = "The order of keyword arguments is significant\n"
39
+
40
+
41
+ def calculate_new_doc(cls):
42
+ """
43
+ Calculate the docstring for the __new__
44
+ for *cls*
45
+ """
46
+ result = {}
47
+ for c in reversed(cls.__mro__):
48
+ new_map = NEW_MAP.get(c.__name__, UNSET)
49
+ if new_map is UNSET:
50
+ continue
51
+
52
+ for kwds, selector in new_map.items():
53
+ if selector is None:
54
+ result.pop(kwds, None)
55
+
56
+ if not kwds:
57
+ result[kwds] = f"{cls.__name__}(): "
58
+ else:
59
+ result[kwds] = f"{cls.__name__}(*, " + ", ".join(kwds) + "): "
60
+ if selector.startswith("init"):
61
+ result[
62
+ kwds
63
+ ] += f"\n returns cls.alloc().{selector}({', '.join(kwds)})\n\n"
64
+ else:
65
+ result[kwds] += f"\n returns cls.{selector}({', '.join(kwds)})\n\n"
66
+ return "".join(sorted(result.values())) + DOC_SUFFIX
67
+
68
+
69
+ class function_wrapper:
70
+ """
71
+ Wrapper for the __new__ function to generate the
72
+ docstring dynamically.
73
+ """
74
+
75
+ __slots__ = ("_function", "_cls")
76
+
77
+ def __init__(self, function, cls):
78
+ self._function = function
79
+ self._cls = cls
80
+
81
+ @property
82
+ def __class__(self):
83
+ return self._function.__class__
84
+
85
+ @property
86
+ def __doc__(self):
87
+ return calculate_new_doc(self._cls)
88
+
89
+ def __getattr__(self, name):
90
+ return getattr(self._function, name)
91
+
92
+ def __setattr__(self, name, value):
93
+ if name in ("_function", "_cls"):
94
+ object.__setattr__(self, name, value)
95
+ return setattr(self._function, name, value)
96
+
97
+ def __call__(self, *args, **kwds):
98
+ return self._function(*args, **kwds)
99
+
100
+
101
+ def make_generic_new(cls):
102
+ def __new__(cls, *args, **kwds):
103
+ """
104
+ Generic implementation for Objective-C `__new__`.
105
+ """
106
+ key = tuple(kwds.keys())
107
+
108
+ for c in cls.__mro__:
109
+ new_map = NEW_MAP.get(c.__name__, UNSET)
110
+ if new_map is UNSET:
111
+ continue
112
+
113
+ name = new_map.get(key, UNSET)
114
+ if name is UNSET:
115
+ continue
116
+
117
+ if name is None:
118
+ if key:
119
+ raise TypeError(
120
+ f"{cls.__name__}() does not support keyword arguments {', '.join(repr(k) for k in key)}"
121
+ )
122
+ else:
123
+ raise TypeError(f"{cls.__name__}() requires keyword arguments")
124
+
125
+ if not isinstance(name, str):
126
+ # Assume that 'name' is actually a callable.
127
+ #
128
+ # This is used to implement custom signatures for a number
129
+ # of classes in the various ._convenience sibling modules.
130
+ return name(cls, *args, **kwds)
131
+
132
+ if args:
133
+ raise TypeError(
134
+ f"{cls.__name__}() does not accept positional arguments"
135
+ )
136
+
137
+ args = [kwds[n] for n in key]
138
+ if name.startswith("init") and len(name) == 4 or name[4].isupper():
139
+ return getattr(cls.alloc(), name)(*args)
140
+
141
+ else:
142
+ return getattr(cls, name)(*args)
143
+
144
+ if key in (("cobject",), ("c_void_p",)):
145
+ # Support for creating instances from raw pointers in the default
146
+ # __new__ implementation.
147
+ return objc.objc_object.__new__(cls, **kwds)
148
+
149
+ if key:
150
+ raise TypeError(
151
+ f"{cls.__name__}() does not support keyword arguments {', '.join(repr(k) for k in key)}"
152
+ )
153
+ else:
154
+ raise TypeError(f"{cls.__name__}() requires keyword arguments")
155
+
156
+ # XXX: Settings these helps, but does not yet result in the correct
157
+ # output from help()
158
+ __new__.__name__ = cls.__name__ + ".__new__"
159
+ __new__.__qualname__ = cls.__name__ + ".__new__"
160
+ __new__.__module__ = cls.__module__
161
+ return function_wrapper(__new__, cls)
@@ -248,7 +248,7 @@ class object_property:
248
248
  )
249
249
  signature = _C_NSBOOL + b"@:N^@o^@"
250
250
  validate = selector(self._validate, selector=selName, signature=signature)
251
- class_dict[validate.selector] = validate
251
+ class_dict[validate.selector.decode().replace(":", "_")] = validate
252
252
  instance_methods.add(validate)
253
253
 
254
254
  if self._depends_on:
@@ -266,7 +266,7 @@ class object_property:
266
266
  signature=b"@@:",
267
267
  isClassMethod=True,
268
268
  )
269
- class_dict[affecting.selector] = affecting
269
+ class_dict[affecting.selector.decode().replace(":", "_")] = affecting
270
270
  class_methods.add(affecting)
271
271
 
272
272
  def __get__(self, an_object, owner):
@@ -7,6 +7,7 @@ This can cause problems when the object state contains the
7
7
  object itself, which is why we need a 'setValue' callback for the
8
8
  load_* functions below.
9
9
  """
10
+
10
11
  __all__ = ()
11
12
 
12
13
  import copy