pyobjc-core 11.1__tar.gz → 12.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/PyObjCTools/TestSupport.py +96 -72
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/__init__.py +1 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsarray.py +1 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_lazyimport.py +3 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_new.py +13 -20
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_transform.py +11 -5
- pyobjc_core-12.1/Lib/objc/_types.py +7 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/pyobjc_core.egg-info/PKG-INFO +4 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/pyobjc_core.egg-info/SOURCES.txt +10 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +6 -3
- {pyobjc_core-11.1/Modules/objc → pyobjc_core-12.1/Lib/pyobjc_core.egg-info/include}/pyobjc-compat.h +51 -96
- pyobjc_core-12.1/Lib/pyobjc_core.egg-info/pyobjc-build-info.txt +3 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/MANIFEST.in +1 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/_machsignals.m +27 -35
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_NSBundleHack.m +3 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonArray.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonArray.m +9 -17
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonData.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonData.m +1 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonDate.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonDate.m +7 -8
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonDictionary.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonDictionary.m +22 -12
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonEnumerator.h +2 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonEnumerator.m +0 -7
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonNumber.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonNumber.m +73 -56
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonObject.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonObject.m +48 -55
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonSet.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonSet.m +1 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonURL.h +1 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonURL.m +1 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonUnicode.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_PythonUnicode.m +9 -11
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/ObjCPointer.h +0 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/ObjCPointer.m +1 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/block_support.h +1 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/block_support.m +83 -84
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/bundle-variables.m +56 -76
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/class-builder.h +2 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/class-builder.m +57 -161
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/class-list.m +39 -29
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/closure_pool.h +1 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/corefoundation.m +16 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/ctests.m +192 -132
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/file_wrapper.m +22 -21
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/formal-protocol.m +12 -11
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/fsref.m +5 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/function.m +28 -62
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers-authorization.m +47 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers-foundation-nscoder.m +376 -310
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers-foundation-nsdata.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers-foundation-nsdecimal.m +71 -42
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers-foundation-nsinvocation.m +19 -19
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers-foundation-nsobject.m +57 -35
- pyobjc_core-12.1/Modules/objc/helpers-vector.m +17585 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/instance-var.m +13 -14
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/libffi_extra.m +6 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/libffi_support.h +6 -12
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/libffi_support.m +421 -480
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/memview.m +8 -10
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/meth-func.m +12 -9
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/method-accessor.m +97 -77
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/method-imp.h +1 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/method-imp.m +43 -68
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/method-signature.h +27 -26
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/method-signature.m +363 -290
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/module.m +99 -81
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-class.h +8 -8
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-class.m +436 -342
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-object.h +9 -7
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-object.m +77 -68
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-runtime-compat.h +2 -2
- pyobjc_core-12.1/Modules/objc/objc-runtime-compat.m +45 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc_super.m +5 -7
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc_support.h +2 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc_support.m +255 -241
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc_util.h +4 -5
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc_util.m +127 -101
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/opaque-pointer.m +5 -12
- pyobjc_core-12.1/Modules/objc/options.h +71 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/options.m +149 -126
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pointer-support.m +21 -18
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/proxy-registry.h +15 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/proxy-registry.m +47 -35
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pyobjc-api.h +6 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pyobjc-api.m +1 -1
- {pyobjc_core-11.1/Lib/pyobjc_core.egg-info/include → pyobjc_core-12.1/Modules/objc}/pyobjc-compat.h +51 -96
- pyobjc_core-12.1/Modules/objc/pyobjc-compat.m +38 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pyobjc-unittest.h +6 -5
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pyobjc.h +2 -10
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pyobjc_unicode.m +7 -47
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/python-api-used.h +84 -45
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/registry.m +35 -55
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/selector.h +10 -10
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/selector.m +279 -393
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/struct-sockaddr.m +5 -5
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/struct-wrapper.h +3 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/struct-wrapper.m +66 -51
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/super-call.h +1 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/super-call.m +110 -74
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/NULL.m +19 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/arrayint.m +25 -25
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/arrays.m +35 -22
- pyobjc_core-12.1/Modules/objc/test/authorizationitem.m +111 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/block.m +55 -62
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/block2.m +19 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/bufsizeinarg.m +51 -54
- pyobjc_core-12.1/Modules/objc/test/categories_base.m +7014 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c42.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c43.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c44.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c45.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c46.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c47.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c48.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c49.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c50.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c51.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c52.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c53.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c54.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c55.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c56.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c57.m +35 -32
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c58.m +35 -32
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_c59.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp10.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp11.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp12.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp13.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp14.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp15.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp16.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp17.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp18.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp19.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp20.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp21.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp22.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp23.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp24.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp27.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp3.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp30.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp33.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp36.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp39.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp42.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp45.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp48.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp51.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp54.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp57.m +4 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp6.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp7.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp8.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_gp9.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p24.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p25.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p26.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p27.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p28.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p29.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p30.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p31.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p32.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p33.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p34.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p35.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p36.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p37.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p38.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p39.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p40.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/category_p41.m +36 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/cfsocket.m +18 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/classes.m +21 -25
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/clinmeth.m +19 -26
- pyobjc_core-12.1/Modules/objc/test/coding.m +282 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/copying.m +27 -32
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/corefoundation.m +18 -22
- pyobjc_core-12.1/Modules/objc/test/customcallers.m +301 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/dataint.m +19 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/dateint.m +19 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/decimal.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/deprecations.m +67 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/dictint.m +20 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/enumeration.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/exceptions.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/filepointer.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/fsref.m +19 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/gcov.m +16 -20
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/genericnew.m +48 -43
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/helpernsdata.m +18 -22
- pyobjc_core-12.1/Modules/objc/test/helpernsobject.m +259 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/identity.m +18 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/initialize.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/initpatterns.m +41 -42
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/instanceVariables.m +21 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/locking.m +19 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/metadata.m +210 -123
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/metadatafunction.m +107 -26
- pyobjc_core-12.1/Modules/objc/test/metadataorder.m +203 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/methodaccess.m +28 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/methodlookup.m +19 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/methres1.m +18 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/methres2.m +18 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/misc.m +19 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/missing1.m +17 -21
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/missing2.m +17 -21
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/missing3.m +17 -21
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/nsobjectcategory.m +20 -25
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/nulldelimitedresult.m +21 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/objectint.m +57 -50
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/opaque.m +22 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/pointersupport.m +28 -33
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/properties.m +20 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/protected.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/protocol.m +24 -25
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/pythonnumber.m +27 -35
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/pythonset.m +22 -25
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/sequence.m +19 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/sockaddr.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/specialtypecodes.m +26 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/stringint.m +20 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/structargs.m +46 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/structpointer1.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/structpointer2.m +19 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/structs.m +18 -22
- pyobjc_core-12.1/Modules/objc/test/supercall.m +383 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/testbndl.m +114 -87
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/testbndl2.m +23 -25
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/testclassandinst.m +21 -24
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/testoutputinitializer.m +20 -23
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/unavailable.m +25 -29
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/vector.m +25 -27
- pyobjc_core-12.1/Modules/objc/test/vectorcall.m +9828 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/test/voidpointer.m +18 -22
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/varlist.m +13 -15
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/weakref.m +9 -41
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PKG-INFO +4 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/dump-nsarchive-securecoding.m +1 -2
- pyobjc_core-12.1/PyObjCTest/test_authorizationitem.py +210 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_blocks.py +55 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_callbacks.py +1 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_conversion.py +118 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_corefoundation.py +18 -0
- pyobjc_core-12.1/PyObjCTest/test_customcallers.py +78 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_default_selector.py +32 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_deprecations.py +69 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_final.py +15 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_functions.py +124 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_generic_new.py +47 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_hidden_selector.py +69 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_imp.py +46 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_initpatterns.py +2 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_internals.py +190 -32
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_ivar.py +22 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_keyvalue.py +67 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_lazy_import.py +2 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_metadata.py +432 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_metadata_function.py +41 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_metadata_py.py +1 -1
- pyobjc_core-12.1/PyObjCTest/test_metadataorder.py +108 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_methodaccess.py +120 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_methodedits.py +102 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_methods.py +6 -1
- pyobjc_core-12.1/PyObjCTest/test_nscoder.py +1024 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nsdata.py +19 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nsdecimal.py +8 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nsobject.py +66 -1
- pyobjc_core-12.1/PyObjCTest/test_nsproxy.py +64 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_number_proxy.py +38 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_objc.py +12 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_options.py +58 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_propertiesforclass.py +18 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_protocol.py +5 -17
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_regr.py +535 -10
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_set_interface.py +2 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_set_proxy.py +11 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_sockaddr.py +17 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_specialtypecodes_charbyte.py +16 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_specialtypecodes_unichar.py +39 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_splitsig.py +71 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_structs.py +1 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_subclass.py +200 -19
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_testsupport.py +320 -3
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_transform.py +2 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_transform_integration.py +22 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_usekvo.py +24 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_vector_proxy.py +7 -1
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/comparebench.py +1 -1
- pyobjc_core-12.1/Tools/free-threading/concurrent-methinfo.py +20 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/generate-helpers-vector.py +19 -19
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/pyobjc_setup.py +5 -4
- {pyobjc_core-11.1 → pyobjc_core-12.1}/setup.cfg +3 -2
- {pyobjc_core-11.1 → pyobjc_core-12.1}/setup.py +7 -3
- pyobjc_core-11.1/Lib/pyobjc_core.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_core-11.1/Modules/objc/helpers-vector.m +0 -17360
- pyobjc_core-11.1/Modules/objc/objc-runtime-compat.m +0 -65
- pyobjc_core-11.1/Modules/objc/options.h +0 -52
- pyobjc_core-11.1/Modules/objc/pyobjc-assert.h +0 -59
- pyobjc_core-11.1/Modules/objc/pyobjc-compat.m +0 -161
- pyobjc_core-11.1/Modules/objc/test/categories_base.m +0 -6488
- pyobjc_core-11.1/Modules/objc/test/coding.m +0 -163
- pyobjc_core-11.1/Modules/objc/test/helpernsobject.m +0 -161
- pyobjc_core-11.1/Modules/objc/test/vectorcall.m +0 -7939
- pyobjc_core-11.1/PyObjCTest/test_nscoder.py +0 -176
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/00ReadMe.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/GUITests/00ReadMe.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/GUITests/test_modalsession.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/HelloWorld.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/autoreadme.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/instrumentSends.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/kvo-debugging.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/signal-demo.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/stdinreader.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/subclassing-objective-c.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Examples/Scripts/wmEnable.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/HISTORIC.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Install.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/PyObjCTools/KeyValueCoding.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/PyObjCTools/MachSignals.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/PyObjCTools/Signals.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_bridges.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_bridgesupport.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_callable_docstr.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_category.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_compat.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_context.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_mapping.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsdata.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsdecimal.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsdictionary.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsobject.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsset.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_nsstring.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_convenience_sequence.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_descriptors.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_dyld.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_framework.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_informal_protocol.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_locking.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_properties.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_protocols.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_pycoder.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_pythonify.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/_structtype.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/objc/simd.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/License.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/MANIFEST +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Misc/announcement.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonData.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonData.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/OC_NSBundleHack.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/bundle-variables.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/class-list.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/closure_pool.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/corefoundation.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/ctests.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/file_wrapper.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/formal-protocol.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/fsref.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/function.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/helpers.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/instance-var.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/ivar-accessor.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/ivar-accessor.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/libffi_extra.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/memview.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/meth-func.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/method-accessor.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-NULL.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc-NULL.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/objc_super.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/opaque-pointer.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pointer-support.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/pyobjc_unicode.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/registry.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/released-buffer.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/released-buffer.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/struct-sockaddr.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/varlist.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Modules/objc/weakref.h +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/__init__.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/dump-nsarchive.m +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/fnd.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/helper_bridgesupport.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/keyvaluehelper.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/loader.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_NULL.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_allocatebuffer.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_api_import.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_archive_python.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_archiving_interop.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_archiving_secure_interop.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_array_interface.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_array_property.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_arrays.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_assocations.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_bridged_classes.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_bridges.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_bridgesupport.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_bufsizeinarg.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_bundleFunctions.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_bundleVariables.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_callable_docstr.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_categories.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_classandinst.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_classhooks.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_clinmeth.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_compat.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_context.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_convenience.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_copying.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_ctests.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_data_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_date_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_descriptors.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_dict_interface.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_dict_property.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_dict_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_dyld.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_enumerator.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_exceptions.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_filepointer.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_framework.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_free_threading.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_fsref.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_generic_class.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_identity.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_inspect_signatures.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_keyvalue_prop.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_keyvaluecoding.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_leaks.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_list_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_locking.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_machsignals.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_metadata_imp.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_metadata_inheritance.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_metadata_py2py.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_method_prototypes.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_methodlookup.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_methods2.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_methres.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nsdate_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nsinvocation.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nsunavailable.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_nulldelimited.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_objcpointer.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_object_property.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_object_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_opaque.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_outputinitializer.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_pickle.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_pickling_objc.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_pointer_compat.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_protected.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_protocolNamed.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_python_method.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_set_property.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_signals.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_signatures.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_simd.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_specialtypecodes_charint.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_specialtypecodes_methdef.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_specialtypecodes_nsbool.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_specialtypecodes_struct.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_string_proxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_structpointer.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_super_on_regular_classes.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_synthesize.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_typecheck.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_unicode.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_urlproxy.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_varargs.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_varlist.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_vectorcall.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_version_support.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_voidpointer.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/PyObjCTest/test_weakref.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/README.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/MANIFEST.in +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/free-threading/_tools.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/free-threading/concurrent-class-list.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/free-threading/concurrent-dict-getting.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/free-threading/concurrent-iteration.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/free-threading/concurrent-registration.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/free-threading/concurrent-value-getting.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/gen_archive.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/generate-category-tests.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/pyobjcbench.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/results/pyobjcbench-7.3.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/run-free-threading-tests.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/runtests-with-nuitka.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/Tools/runtests.py +0 -0
- {pyobjc_core-11.1 → pyobjc_core-12.1}/pyproject.toml +0 -0
|
@@ -27,27 +27,6 @@ __unittest = False
|
|
|
27
27
|
# Have a way to disable the autorelease pool behaviour
|
|
28
28
|
_usepool = not _os.environ.get("PYOBJC_NO_AUTORELEASE")
|
|
29
29
|
|
|
30
|
-
# XXX: Python 2 Compatibility for the PyObjC Test Suite
|
|
31
|
-
try:
|
|
32
|
-
unicode
|
|
33
|
-
except NameError:
|
|
34
|
-
unicode = str
|
|
35
|
-
|
|
36
|
-
try:
|
|
37
|
-
long
|
|
38
|
-
except NameError:
|
|
39
|
-
long = int
|
|
40
|
-
|
|
41
|
-
try:
|
|
42
|
-
basestring
|
|
43
|
-
except NameError:
|
|
44
|
-
basestring = str
|
|
45
|
-
|
|
46
|
-
try:
|
|
47
|
-
unichr
|
|
48
|
-
except NameError:
|
|
49
|
-
unichr = chr
|
|
50
|
-
|
|
51
30
|
|
|
52
31
|
def _typemap(tp):
|
|
53
32
|
if tp is None:
|
|
@@ -176,6 +155,10 @@ def os_release():
|
|
|
176
155
|
if _os_release is not None:
|
|
177
156
|
return _os_release
|
|
178
157
|
|
|
158
|
+
# NOTE: This calls 'sw_vers' because system APIs lie
|
|
159
|
+
# to us during some system transitions (e.g.
|
|
160
|
+
# from 10.15 to 11.0 and from 15.0 to 26.0) until
|
|
161
|
+
# Python itself is rebuild using a newer SDK.
|
|
179
162
|
_os_release = (
|
|
180
163
|
_subprocess.check_output(["sw_vers", "-productVersion"]).decode().strip()
|
|
181
164
|
)
|
|
@@ -318,7 +301,7 @@ def os_level_between(min_release, max_release):
|
|
|
318
301
|
_poolclass = objc.lookUpClass("NSAutoreleasePool")
|
|
319
302
|
|
|
320
303
|
# NOTE: On at least macOS 10.8 there are multiple proxy classes for CFTypeRef...
|
|
321
|
-
_nscftype = tuple(cls for cls in objc.getClassList(
|
|
304
|
+
_nscftype = tuple(cls for cls in objc.getClassList(True) if "NSCFType" in cls.__name__)
|
|
322
305
|
|
|
323
306
|
_typealias = {}
|
|
324
307
|
|
|
@@ -631,7 +614,7 @@ class TestCase(_unittest.TestCase):
|
|
|
631
614
|
|
|
632
615
|
def assertIsInitializer(self, method, message=None):
|
|
633
616
|
if not isinstance(method, objc.selector):
|
|
634
|
-
|
|
617
|
+
self.fail(message or f"{method!r} is not a selector")
|
|
635
618
|
|
|
636
619
|
info = method.__metadata__()
|
|
637
620
|
if not info.get("initializer", False):
|
|
@@ -639,7 +622,7 @@ class TestCase(_unittest.TestCase):
|
|
|
639
622
|
|
|
640
623
|
def assertIsNotInitializer(self, method, message=None):
|
|
641
624
|
if not isinstance(method, objc.selector):
|
|
642
|
-
|
|
625
|
+
self.fail(message or f"{method!r} is not a selector")
|
|
643
626
|
|
|
644
627
|
info = method.__metadata__()
|
|
645
628
|
if info.get("initializer", False):
|
|
@@ -647,7 +630,7 @@ class TestCase(_unittest.TestCase):
|
|
|
647
630
|
|
|
648
631
|
def assertDoesFreeResult(self, method, message=None):
|
|
649
632
|
if not isinstance(method, objc.selector):
|
|
650
|
-
|
|
633
|
+
self.fail(message or f"{method!r} is not a selector")
|
|
651
634
|
|
|
652
635
|
info = method.__metadata__()
|
|
653
636
|
if not info.get("free_result", False):
|
|
@@ -655,7 +638,7 @@ class TestCase(_unittest.TestCase):
|
|
|
655
638
|
|
|
656
639
|
def assertDoesNotFreeResult(self, method, message=None):
|
|
657
640
|
if not isinstance(method, objc.selector):
|
|
658
|
-
|
|
641
|
+
self.fail(message or f"{method!r} is not a selector")
|
|
659
642
|
|
|
660
643
|
info = method.__metadata__()
|
|
661
644
|
if info.get("free_result", False):
|
|
@@ -686,6 +669,20 @@ class TestCase(_unittest.TestCase):
|
|
|
686
669
|
def assertResultHasType(self, method, tp, message=None):
|
|
687
670
|
info = method.__metadata__()
|
|
688
671
|
typestr = info.get("retval").get("type", b"v")
|
|
672
|
+
if isinstance(tp, tuple):
|
|
673
|
+
for item in tp:
|
|
674
|
+
if (
|
|
675
|
+
typestr == item
|
|
676
|
+
or _typemap(typestr) == _typemap(item)
|
|
677
|
+
or _typealias.get(typestr, typestr) == _typealias.get(item, item)
|
|
678
|
+
):
|
|
679
|
+
break
|
|
680
|
+
else:
|
|
681
|
+
self.fail(
|
|
682
|
+
message
|
|
683
|
+
or f"result of {method!r} is not of type {tp!r}, but {typestr!r}"
|
|
684
|
+
)
|
|
685
|
+
return
|
|
689
686
|
if (
|
|
690
687
|
typestr != tp
|
|
691
688
|
and _typemap(typestr) != _typemap(tp)
|
|
@@ -714,15 +711,28 @@ class TestCase(_unittest.TestCase):
|
|
|
714
711
|
else:
|
|
715
712
|
typestr = i.get("type", b"@")
|
|
716
713
|
|
|
714
|
+
if isinstance(tp, tuple):
|
|
715
|
+
for item in tp:
|
|
716
|
+
if (
|
|
717
|
+
typestr == item
|
|
718
|
+
or _typemap(typestr) == _typemap(item)
|
|
719
|
+
or _typealias.get(typestr, typestr) == _typealias.get(item, item)
|
|
720
|
+
):
|
|
721
|
+
break
|
|
722
|
+
else:
|
|
723
|
+
self.fail(
|
|
724
|
+
message
|
|
725
|
+
or f"arg {argno} of {method!r} is not of type {tp!r}, but {typestr!r}"
|
|
726
|
+
)
|
|
727
|
+
return
|
|
728
|
+
|
|
717
729
|
if (
|
|
718
730
|
typestr != tp
|
|
719
731
|
and _typemap(typestr) != _typemap(tp)
|
|
720
732
|
and _typealias.get(typestr, typestr) != _typealias.get(tp, tp)
|
|
721
733
|
):
|
|
722
734
|
self.fail(
|
|
723
|
-
message
|
|
724
|
-
or "arg %d of %s is not of type %r, but %r"
|
|
725
|
-
% (argno, method, tp, typestr)
|
|
735
|
+
message or f"arg {argno} of {method} is not of type {tp}, but {typestr}"
|
|
726
736
|
)
|
|
727
737
|
|
|
728
738
|
def assertArgIsFunction(self, method, argno, sel_type, retained, message=None):
|
|
@@ -1374,27 +1384,35 @@ class TestCase(_unittest.TestCase):
|
|
|
1374
1384
|
# Calculate all (interesting) names in the module. This pokes into
|
|
1375
1385
|
# the implementation details of objc.ObjCLazyModule to avoid loading
|
|
1376
1386
|
# all attributes (which is expensive for larger bindings).
|
|
1377
|
-
|
|
1387
|
+
def is_pyobjc_lazy(module):
|
|
1388
|
+
getter = getattr(module, "__getattr__", None)
|
|
1389
|
+
if getter is None:
|
|
1390
|
+
return False
|
|
1391
|
+
return hasattr(getter, "_pyobjc_parents")
|
|
1392
|
+
|
|
1393
|
+
if is_pyobjc_lazy(module):
|
|
1394
|
+
getter = getattr(module, "__getattr__", None)
|
|
1378
1395
|
module_names = []
|
|
1379
1396
|
module_names.extend(
|
|
1380
1397
|
cls.__name__
|
|
1381
|
-
for cls in objc.getClassList()
|
|
1398
|
+
for cls in objc.getClassList(True)
|
|
1382
1399
|
if (not cls.__name__.startswith("_")) and ("." not in cls.__name__)
|
|
1383
1400
|
)
|
|
1384
|
-
module_names.extend(
|
|
1385
|
-
|
|
1386
|
-
todo = list(module._ObjCLazyModule__parents or [])
|
|
1401
|
+
module_names.extend(getattr(getter, "_pyobjc_funcmap", None) or [])
|
|
1402
|
+
todo = list(getter._pyobjc_parents)
|
|
1387
1403
|
while todo:
|
|
1388
1404
|
parent = todo.pop()
|
|
1389
|
-
if
|
|
1390
|
-
|
|
1391
|
-
|
|
1405
|
+
if is_pyobjc_lazy(parent):
|
|
1406
|
+
getter = getattr(parent, "__getattr__", None)
|
|
1407
|
+
module_names.extend(getattr(getter, "_pyobjc_funcmap", None) or [])
|
|
1408
|
+
todo.extend(getter._pyobjc_parents or ())
|
|
1392
1409
|
module_names.extend(parent.__dict__.keys())
|
|
1410
|
+
|
|
1393
1411
|
else:
|
|
1394
|
-
module_names.extend(dir(
|
|
1412
|
+
module_names.extend(dir(parent))
|
|
1395
1413
|
|
|
1396
|
-
# The module_names list might contain duplicates
|
|
1397
1414
|
module_names = sorted(set(module_names))
|
|
1415
|
+
|
|
1398
1416
|
else:
|
|
1399
1417
|
module_names = sorted(set(dir(module)))
|
|
1400
1418
|
|
|
@@ -1407,43 +1425,49 @@ class TestCase(_unittest.TestCase):
|
|
|
1407
1425
|
|
|
1408
1426
|
try:
|
|
1409
1427
|
value = getattr(module, nm)
|
|
1410
|
-
except AttributeError:
|
|
1411
|
-
continue
|
|
1428
|
+
except AttributeError: # pragma: no cover
|
|
1429
|
+
continue # pragma: no cover
|
|
1412
1430
|
if isinstance(value, objc.objc_class):
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
for attr_name, attr in value.pyobjc_instanceMethods.__dict__.items():
|
|
1418
|
-
if attr_name in exclude_method_names:
|
|
1419
|
-
continue
|
|
1420
|
-
if (nm, attr_name) in exclude_attrs:
|
|
1421
|
-
continue
|
|
1422
|
-
if attr_name.startswith("_"):
|
|
1423
|
-
# Skip private names
|
|
1431
|
+
with objc.autorelease_pool():
|
|
1432
|
+
if value.__name__ == "Object":
|
|
1433
|
+
# Root class, does not conform to the NSObject
|
|
1434
|
+
# protocol and useless to test.
|
|
1424
1435
|
continue
|
|
1436
|
+
instanceMethodDict = value.pyobjc_instanceMethods.__dict__
|
|
1437
|
+
for attr_name, attr in instanceMethodDict.items():
|
|
1438
|
+
if attr_name in exclude_method_names:
|
|
1439
|
+
continue
|
|
1440
|
+
if (nm, attr_name) in exclude_attrs:
|
|
1441
|
+
continue
|
|
1442
|
+
if attr_name.startswith("_"):
|
|
1443
|
+
# Skip private names
|
|
1444
|
+
continue
|
|
1425
1445
|
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1446
|
+
with self.subTest(classname=nm, instance_method=attr_name):
|
|
1447
|
+
if isinstance(attr, objc.selector): # pragma: no branch
|
|
1448
|
+
self._validateCallableMetadata(
|
|
1449
|
+
attr,
|
|
1450
|
+
nm,
|
|
1451
|
+
skip_simple_charptr_check=not exclude_cocoa,
|
|
1452
|
+
)
|
|
1453
|
+
|
|
1454
|
+
for attr_name, attr in value.pyobjc_classMethods.__dict__.items():
|
|
1455
|
+
if attr_name in exclude_method_names: # pragma: no branch
|
|
1456
|
+
continue # pragma: no cover
|
|
1457
|
+
if (nm, attr_name) in exclude_attrs:
|
|
1458
|
+
continue
|
|
1459
|
+
if attr_name.startswith("_"):
|
|
1460
|
+
# Skip private names
|
|
1461
|
+
continue
|
|
1440
1462
|
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1463
|
+
with self.subTest(classname=nm, instance_method=attr_name):
|
|
1464
|
+
attr = getattr(value.pyobjc_classMethods, attr_name, None)
|
|
1465
|
+
if isinstance(attr, objc.selector): # pragma: no branch
|
|
1466
|
+
self._validateCallableMetadata(
|
|
1467
|
+
attr,
|
|
1468
|
+
nm,
|
|
1469
|
+
skip_simple_charptr_check=not exclude_cocoa,
|
|
1470
|
+
)
|
|
1447
1471
|
elif isinstance(value, objc.function):
|
|
1448
1472
|
with self.subTest(function=nm):
|
|
1449
1473
|
self._validateCallableMetadata(value)
|
|
@@ -45,6 +45,7 @@ from . import _callable_docstr # noqa: F401, F403, E402
|
|
|
45
45
|
from . import _pycoder # noqa: F401, F403, E402
|
|
46
46
|
from ._informal_protocol import * # noqa: F401, F403, E402
|
|
47
47
|
from . import _new # noqa: F401, E402
|
|
48
|
+
from ._types import * # noqa: F401, F403, E402
|
|
48
49
|
|
|
49
50
|
|
|
50
51
|
# Helper function for new-style metadata modules
|
|
@@ -133,7 +133,7 @@ def nsarray__getitem__(self, idx):
|
|
|
133
133
|
return [self[i] for i in range(start, stop, step)]
|
|
134
134
|
|
|
135
135
|
elif not isinstance(idx, int):
|
|
136
|
-
raise TypeError("
|
|
136
|
+
raise TypeError("list indices must be integers or slices")
|
|
137
137
|
|
|
138
138
|
if idx < 0:
|
|
139
139
|
idx += len(self)
|
|
@@ -442,6 +442,9 @@ def createFrameworkDirAndGetattr(
|
|
|
442
442
|
expressions_mapping = ChainMap(globals_dict, _GetAttrMap(__getattr__))
|
|
443
443
|
load_cftypes(metadict.get("cftypes"))
|
|
444
444
|
|
|
445
|
+
__getattr__._pyobjc_parents = parents
|
|
446
|
+
__getattr__._pyobjc_funcmap = funcmap
|
|
447
|
+
|
|
445
448
|
return __dir__, __getattr__
|
|
446
449
|
|
|
447
450
|
|
|
@@ -87,12 +87,22 @@ class function_wrapper:
|
|
|
87
87
|
def __doc__(self):
|
|
88
88
|
return calculate_new_doc(self._cls)
|
|
89
89
|
|
|
90
|
+
@property
|
|
91
|
+
def __module__(self):
|
|
92
|
+
return self._cls.__module__
|
|
93
|
+
|
|
90
94
|
def __getattr__(self, name):
|
|
95
|
+
if name == "__qualname__":
|
|
96
|
+
return (
|
|
97
|
+
(self._cls.__module__ or "objc") + "." + self._cls.__name__ + ".__new__"
|
|
98
|
+
)
|
|
99
|
+
elif name == "__name__":
|
|
100
|
+
return "__new__"
|
|
91
101
|
return getattr(self._function, name)
|
|
92
102
|
|
|
93
103
|
def __setattr__(self, name, value):
|
|
94
104
|
if name in ("_function", "_cls"):
|
|
95
|
-
object.__setattr__(self, name, value)
|
|
105
|
+
return object.__setattr__(self, name, value)
|
|
96
106
|
return setattr(self._function, name, value)
|
|
97
107
|
|
|
98
108
|
def __call__(self, *args, **kwds):
|
|
@@ -154,25 +164,8 @@ def new_func(cls, *args, **kwds):
|
|
|
154
164
|
raise TypeError(f"{cls.__name__}() requires keyword arguments")
|
|
155
165
|
|
|
156
166
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
def make_generic_new(cls, *, FunctionType=FunctionType, new_func=new_func):
|
|
161
|
-
|
|
162
|
-
# XXX: Settings these helps, but does not yet result in the correct
|
|
163
|
-
# output from help()
|
|
164
|
-
|
|
165
|
-
result = FunctionType(
|
|
166
|
-
new_func.__code__,
|
|
167
|
-
new_func.__globals__,
|
|
168
|
-
cls.__name__ + ".__new__",
|
|
169
|
-
new_func.__defaults__,
|
|
170
|
-
new_func.__closure__,
|
|
171
|
-
)
|
|
172
|
-
result.__qualname__ = result.__name__
|
|
173
|
-
result.__module__ = cls.__module__
|
|
174
|
-
result = function_wrapper(result, cls)
|
|
175
|
-
return result
|
|
167
|
+
def make_generic_new(cls):
|
|
168
|
+
return function_wrapper(new_func, cls)
|
|
176
169
|
|
|
177
170
|
|
|
178
171
|
objc.options._genericNewClass = function_wrapper
|
|
@@ -532,12 +532,12 @@ def transformAttribute(name, value, class_object, protocols):
|
|
|
532
532
|
if pos_default:
|
|
533
533
|
raise objc.BadPrototypeError(
|
|
534
534
|
f"{selname.decode()!r} expects {argcount} arguments, "
|
|
535
|
-
f"{value!r} has between {pos-pos_default-1} and {pos-1} positional arguments"
|
|
535
|
+
f"{value!r} has between {pos - pos_default - 1} and {pos - 1} positional arguments"
|
|
536
536
|
)
|
|
537
537
|
else:
|
|
538
538
|
raise objc.BadPrototypeError(
|
|
539
539
|
f"{selname.decode()!r} expects {argcount} arguments, "
|
|
540
|
-
f"{value!r} has {pos-1} positional arguments"
|
|
540
|
+
f"{value!r} has {pos - 1} positional arguments"
|
|
541
541
|
)
|
|
542
542
|
|
|
543
543
|
# XXX: This is needed because SomeClass.pyobjc_instanceMethods.hiddenSelector.isHidden
|
|
@@ -605,9 +605,11 @@ def returns_value(func):
|
|
|
605
605
|
elif prev.opname != "LOAD_CONST":
|
|
606
606
|
return True
|
|
607
607
|
|
|
608
|
-
elif
|
|
609
|
-
|
|
610
|
-
|
|
608
|
+
elif ( # pragma: no branch
|
|
609
|
+
inst.opname == "RETURN_CONST" and consts[inst.arg] is not None
|
|
610
|
+
):
|
|
611
|
+
# New in Python 3.12, dropped in 3.14
|
|
612
|
+
return True # pragma: no cover
|
|
611
613
|
prev = inst
|
|
612
614
|
|
|
613
615
|
return False
|
|
@@ -674,6 +676,10 @@ class objc_method:
|
|
|
674
676
|
self.signature = signature
|
|
675
677
|
self.isclass = isclass
|
|
676
678
|
|
|
679
|
+
@property
|
|
680
|
+
def __name__(self):
|
|
681
|
+
return self.__wrapped__.__name__
|
|
682
|
+
|
|
677
683
|
def __call__(self, *args, **kwds):
|
|
678
684
|
if self.__wrapped__ is None:
|
|
679
685
|
if len(kwds) != 0:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-core
|
|
3
|
-
Version:
|
|
3
|
+
Version: 12.1
|
|
4
4
|
Summary: Python<->ObjC Interoperability Module
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren, bbum, SteveM, LeleG, many others stretching back through the reaches of time...
|
|
@@ -19,17 +19,18 @@ Classifier: Operating System :: MacOS :: MacOS X
|
|
|
19
19
|
Classifier: Programming Language :: Python
|
|
20
20
|
Classifier: Programming Language :: Python :: 3
|
|
21
21
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.10
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.11
|
|
25
24
|
Classifier: Programming Language :: Python :: 3.12
|
|
26
25
|
Classifier: Programming Language :: Python :: 3.13
|
|
27
26
|
Classifier: Programming Language :: Python :: 3.14
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
28
28
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
29
|
+
Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
|
|
29
30
|
Classifier: Programming Language :: Objective C
|
|
30
31
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
31
32
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
32
|
-
Requires-Python: >=3.
|
|
33
|
+
Requires-Python: >=3.10
|
|
33
34
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
34
35
|
Dynamic: author
|
|
35
36
|
Dynamic: author-email
|
|
@@ -52,6 +52,7 @@ Lib/objc/_pycoder.py
|
|
|
52
52
|
Lib/objc/_pythonify.py
|
|
53
53
|
Lib/objc/_structtype.py
|
|
54
54
|
Lib/objc/_transform.py
|
|
55
|
+
Lib/objc/_types.py
|
|
55
56
|
Lib/objc/simd.py
|
|
56
57
|
Lib/pyobjc_core.egg-info/PKG-INFO
|
|
57
58
|
Lib/pyobjc_core.egg-info/SOURCES.txt
|
|
@@ -174,7 +175,6 @@ Modules/objc/proxy-registry.h
|
|
|
174
175
|
Modules/objc/proxy-registry.m
|
|
175
176
|
Modules/objc/pyobjc-api.h
|
|
176
177
|
Modules/objc/pyobjc-api.m
|
|
177
|
-
Modules/objc/pyobjc-assert.h
|
|
178
178
|
Modules/objc/pyobjc-compat.h
|
|
179
179
|
Modules/objc/pyobjc-compat.m
|
|
180
180
|
Modules/objc/pyobjc-unittest.h
|
|
@@ -201,6 +201,7 @@ Modules/objc/weakref.m
|
|
|
201
201
|
Modules/objc/test/NULL.m
|
|
202
202
|
Modules/objc/test/arrayint.m
|
|
203
203
|
Modules/objc/test/arrays.m
|
|
204
|
+
Modules/objc/test/authorizationitem.m
|
|
204
205
|
Modules/objc/test/block.m
|
|
205
206
|
Modules/objc/test/block2.m
|
|
206
207
|
Modules/objc/test/bufsizeinarg.m
|
|
@@ -278,6 +279,7 @@ Modules/objc/test/clinmeth.m
|
|
|
278
279
|
Modules/objc/test/coding.m
|
|
279
280
|
Modules/objc/test/copying.m
|
|
280
281
|
Modules/objc/test/corefoundation.m
|
|
282
|
+
Modules/objc/test/customcallers.m
|
|
281
283
|
Modules/objc/test/dataint.m
|
|
282
284
|
Modules/objc/test/dateint.m
|
|
283
285
|
Modules/objc/test/decimal.m
|
|
@@ -298,6 +300,7 @@ Modules/objc/test/instanceVariables.m
|
|
|
298
300
|
Modules/objc/test/locking.m
|
|
299
301
|
Modules/objc/test/metadata.m
|
|
300
302
|
Modules/objc/test/metadatafunction.m
|
|
303
|
+
Modules/objc/test/metadataorder.m
|
|
301
304
|
Modules/objc/test/methodaccess.m
|
|
302
305
|
Modules/objc/test/methodlookup.m
|
|
303
306
|
Modules/objc/test/methres1.m
|
|
@@ -324,6 +327,7 @@ Modules/objc/test/structargs.m
|
|
|
324
327
|
Modules/objc/test/structpointer1.m
|
|
325
328
|
Modules/objc/test/structpointer2.m
|
|
326
329
|
Modules/objc/test/structs.m
|
|
330
|
+
Modules/objc/test/supercall.m
|
|
327
331
|
Modules/objc/test/testbndl.m
|
|
328
332
|
Modules/objc/test/testbndl2.m
|
|
329
333
|
Modules/objc/test/testclassandinst.m
|
|
@@ -349,6 +353,7 @@ PyObjCTest/test_array_interface.py
|
|
|
349
353
|
PyObjCTest/test_array_property.py
|
|
350
354
|
PyObjCTest/test_arrays.py
|
|
351
355
|
PyObjCTest/test_assocations.py
|
|
356
|
+
PyObjCTest/test_authorizationitem.py
|
|
352
357
|
PyObjCTest/test_blocks.py
|
|
353
358
|
PyObjCTest/test_bridged_classes.py
|
|
354
359
|
PyObjCTest/test_bridges.py
|
|
@@ -369,6 +374,7 @@ PyObjCTest/test_conversion.py
|
|
|
369
374
|
PyObjCTest/test_copying.py
|
|
370
375
|
PyObjCTest/test_corefoundation.py
|
|
371
376
|
PyObjCTest/test_ctests.py
|
|
377
|
+
PyObjCTest/test_customcallers.py
|
|
372
378
|
PyObjCTest/test_data_proxy.py
|
|
373
379
|
PyObjCTest/test_date_proxy.py
|
|
374
380
|
PyObjCTest/test_default_selector.py
|
|
@@ -409,6 +415,7 @@ PyObjCTest/test_metadata_imp.py
|
|
|
409
415
|
PyObjCTest/test_metadata_inheritance.py
|
|
410
416
|
PyObjCTest/test_metadata_py.py
|
|
411
417
|
PyObjCTest/test_metadata_py2py.py
|
|
418
|
+
PyObjCTest/test_metadataorder.py
|
|
412
419
|
PyObjCTest/test_method_prototypes.py
|
|
413
420
|
PyObjCTest/test_methodaccess.py
|
|
414
421
|
PyObjCTest/test_methodedits.py
|
|
@@ -422,6 +429,7 @@ PyObjCTest/test_nsdate_proxy.py
|
|
|
422
429
|
PyObjCTest/test_nsdecimal.py
|
|
423
430
|
PyObjCTest/test_nsinvocation.py
|
|
424
431
|
PyObjCTest/test_nsobject.py
|
|
432
|
+
PyObjCTest/test_nsproxy.py
|
|
425
433
|
PyObjCTest/test_nsunavailable.py
|
|
426
434
|
PyObjCTest/test_nulldelimited.py
|
|
427
435
|
PyObjCTest/test_number_proxy.py
|
|
@@ -497,6 +505,7 @@ Tools/free-threading/_tools.py
|
|
|
497
505
|
Tools/free-threading/concurrent-class-list.py
|
|
498
506
|
Tools/free-threading/concurrent-dict-getting.py
|
|
499
507
|
Tools/free-threading/concurrent-iteration.py
|
|
508
|
+
Tools/free-threading/concurrent-methinfo.py
|
|
500
509
|
Tools/free-threading/concurrent-registration.py
|
|
501
510
|
Tools/free-threading/concurrent-value-getting.py
|
|
502
511
|
Tools/results/pyobjcbench-7.3.txt
|
|
@@ -53,8 +53,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
53
53
|
/*
|
|
54
54
|
* Only add items to the end of this list!
|
|
55
55
|
*/
|
|
56
|
+
|
|
56
57
|
typedef int(RegisterMethodMappingFunctionType)(
|
|
57
|
-
Class, SEL,
|
|
58
|
+
Class _Nullable, SEL,
|
|
58
59
|
PyObject* _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull,
|
|
59
60
|
PyObject* _Nonnull const* _Nonnull, size_t),
|
|
60
61
|
IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
|
|
@@ -83,7 +84,8 @@ struct pyobjc_api {
|
|
|
83
84
|
PyObject* _Nullable (*_Nonnull unsupported_method_caller)(
|
|
84
85
|
PyObject* _Nonnull, PyObject* _Nonnull, PyObject* _Nonnull const* _Nonnull,
|
|
85
86
|
size_t);
|
|
86
|
-
void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state)
|
|
87
|
+
void (*_Nonnull err_python_to_objc_gil)(PyGILState_STATE* _Nonnull state)
|
|
88
|
+
__attribute__((__noreturn__));
|
|
87
89
|
int (*_Nonnull simplify_sig)(const char* signature, char* buf, size_t buflen);
|
|
88
90
|
void (*_Nonnull free_c_array)(int, Py_buffer*);
|
|
89
91
|
int (*_Nonnull py_to_c_array)(BOOL, BOOL, const char* _Nonnull, PyObject* _Nonnull,
|
|
@@ -113,7 +115,8 @@ struct pyobjc_api {
|
|
|
113
115
|
int (*_Nonnull checknokwnames)(PyObject* _Nonnull callable,
|
|
114
116
|
PyObject* _Nullable kwnames);
|
|
115
117
|
|
|
116
|
-
PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
|
|
118
|
+
PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
|
|
119
|
+
const char*);
|
|
117
120
|
};
|
|
118
121
|
|
|
119
122
|
#ifndef PYOBJC_BUILD
|