pyobjc-core 10.0__tar.gz → 10.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/PyObjCTools/TestSupport.py +37 -11
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_bridges.py +14 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_properties.py +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_protocols.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_pycoder.py +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_transform.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/PKG-INFO +2 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/SOURCES.txt +3 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/License.txt +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonArray.m +5 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonDictionary.m +3 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonNumber.m +23 -2
- pyobjc-core-10.2/Modules/objc/OC_PythonURL.h +14 -0
- pyobjc-core-10.2/Modules/objc/OC_PythonURL.m +128 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonUnicode.m +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/block_support.m +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/bundle-variables.m +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/class-builder.m +2 -2
- pyobjc-core-10.2/Modules/objc/class-list.m +522 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/closure_pool.h +11 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/formal-protocol.m +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsdecimal.m +3 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-vector.m +155 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/libffi_extra.m +3 -3
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/libffi_support.m +8 -8
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/module.m +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc_support.m +165 -84
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc_util.m +4 -3
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/opaque-pointer.m +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/options.h +1 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/options.m +3 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc.h +2 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/struct-wrapper.m +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/metadata.m +9 -9
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/metadatafunction.m +3 -4
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/objectint.m +3 -3
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/pythonset.m +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/sequence.m +4 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/vector.m +11 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/vectorcall.m +197 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PKG-INFO +2 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_archive_python.py +5 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_archiving_interop.py +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_archiving_secure_interop.py +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_blocks.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_bridgesupport.py +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_convenience.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_data_proxy.py +2 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_date_proxy.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_internals.py +21 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_keyvaluecoding.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_methodaccess.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nsdata.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nsdecimal.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nsobject.py +1 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_opaque.py +3 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_pointer_compat.py +3 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_protocol.py +0 -9
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_splitsig.py +4 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_structs.py +28 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_subclass.py +6 -2
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_testsupport.py +1 -1
- pyobjc-core-10.2/PyObjCTest/test_urlproxy.py +21 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_vector_proxy.py +3 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_vectorcall.py +711 -425
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/generate-helpers-vector.py +10 -1
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/pyobjc_setup.py +5 -4
- {pyobjc-core-10.0 → pyobjc-core-10.2}/setup.cfg +1 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/setup.py +18 -0
- pyobjc-core-10.0/Modules/objc/class-list.m +0 -105
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/00ReadMe.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/GUITests/00ReadMe.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/GUITests/test_modalsession.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/AsyncPythonInterpreter.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/ConsoleReactor.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/classes.nib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/info.nib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/MainMenu.nib/keyedobjects.nib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/classes.nib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/info.nib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/English.lproj/RemotePyInterpreterDocument.nib/keyedobjects.nib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/README.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/RemotePyInterpreter.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/netrepr.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/remote_bootstrap.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/remote_console.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/remote_pipe.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/setup.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/tcpinterpreter.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/NonFunctional/RemotePyInterpreter/test_client.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/HelloWorld.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/autoreadme.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/instrumentSends.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/kvo-debugging.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/signal-demo.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/stdinreader.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/subclassing-objective-c.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Examples/Scripts/wmEnable.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/HISTORIC.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Install.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/PyObjCTools/KeyValueCoding.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/PyObjCTools/MachSignals.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/PyObjCTools/Signals.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/__init__.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_bridgesupport.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_callable_docstr.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_category.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_compat.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_context.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_mapping.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsarray.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsdata.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsdecimal.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsdictionary.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsobject.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsset.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_nsstring.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_convenience_sequence.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_descriptors.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_dyld.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_framework.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_informal_protocol.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_lazyimport.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_locking.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_pythonify.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/_structtype.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/objc/simd.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/dependency_links.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/include/pyobjc-api.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/include/pyobjc-compat.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/not-zip-safe +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Lib/pyobjc_core.egg-info/top_level.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/MANIFEST +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/MANIFEST.in +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Misc/announcement.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/_machsignals.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonArray.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonArray.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonData.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonData.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDate.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDate.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDictionary.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonDictionary.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonNumber.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonNumber.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonSet.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonSet.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonUnicode.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_BuiltinPythonUnicode.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_NSBundleHack.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_NSBundleHack.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonArray.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonData.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonData.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonDate.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonDate.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonDictionary.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonEnumerator.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonEnumerator.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonNumber.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonObject.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonObject.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonSet.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonSet.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/OC_PythonUnicode.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/ObjCPointer.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/ObjCPointer.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/block_support.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/bundle-variables.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/class-builder.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/class-list.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/closure_pool.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/corefoundation.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/corefoundation.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/ctests.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/ctests.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/file_wrapper.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/file_wrapper.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/formal-protocol.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/fsref.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/fsref.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/function.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/function.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-authorization.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nscoder.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsdata.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsinvocation.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers-foundation-nsobject.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/helpers.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/instance-var.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/instance-var.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/ivar-accessor.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/ivar-accessor.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/libffi_extra.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/libffi_support.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/memview.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/memview.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/meth-func.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/meth-func.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/method-accessor.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/method-accessor.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/method-imp.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/method-imp.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/method-signature.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/method-signature.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-NULL.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-NULL.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-class.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-class.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-object.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-object.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-runtime-compat.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc-runtime-compat.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc_super.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc_super.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc_support.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/objc_util.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/opaque-pointer.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pointer-support.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pointer-support.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/proxy-registry.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/proxy-registry.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc-api.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc-api.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc-assert.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc-compat.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc-compat.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc-unittest.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc_unicode.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/pyobjc_unicode.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/python-api-used.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/registry.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/registry.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/released-buffer.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/released-buffer.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/selector.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/selector.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/struct-sockaddr.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/struct-sockaddr.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/struct-wrapper.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/super-call.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/super-call.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/NULL.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/arrayint.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/arrays.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/block.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/bufsizeinarg.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/categories_base.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c42.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c43.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c44.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c45.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c46.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c47.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c48.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c49.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c50.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c51.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c52.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c53.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c54.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c55.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c56.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c57.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c58.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_c59.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp10.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp11.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp12.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp13.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp14.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp15.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp16.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp17.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp18.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp19.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp20.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp21.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp22.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp23.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp24.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp27.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp3.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp30.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp33.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp36.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp39.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp42.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp45.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp48.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp51.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp54.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp57.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp6.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp7.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp8.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_gp9.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p24.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p25.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p26.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p27.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p28.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p29.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p30.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p31.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p32.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p33.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p34.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p35.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p36.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p37.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p38.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p39.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p40.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/category_p41.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/cfsocket.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/classes.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/clinmeth.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/coding.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/copying.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/corefoundation.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/dataint.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/dateint.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/decimal.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/deprecations.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/dictint.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/enumeration.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/exceptions.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/filepointer.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/fsref.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/gcov.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/helpernsdata.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/helpernsobject.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/identity.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/initialize.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/instanceVariables.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/locking.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/methodaccess.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/methodlookup.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/methres1.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/methres2.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/misc.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/missing1.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/missing2.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/missing3.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/nsobjectcategory.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/nulldelimitedresult.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/opaque.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/pointersupport.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/properties.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/protected.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/protocol.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/pythonnumber.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/sockaddr.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/specialtypecodes.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/stringint.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/structargs.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/structpointer1.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/structpointer2.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/structs.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/testbndl.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/testbndl2.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/testclassandinst.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/testoutputinitializer.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/test/voidpointer.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/varlist.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/varlist.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/weakref.h +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Modules/objc/weakref.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/__init__.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/archives/py2-oc2.3.keyed +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/archives/py2-oc2.3.plain +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/archives/py3-oc3.0.keyed +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/archives/py3-oc3.0.plain +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/bundle_data/Test.bridgesupport +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/with_data/Test.bridgesupport +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.bridgesupport +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/data_bridgesupport/with_data_dylib/Test.dylib +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/dump-nsarchive-securecoding.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/dump-nsarchive.m +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/fnd.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/helper_bridgesupport.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/keyvaluehelper.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/loader.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_NULL.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_allocatebuffer.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_api_import.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_array_interface.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_array_property.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_arrays.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_assocations.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_bridged_classes.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_bridges.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_bufsizeinarg.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_bundleFunctions.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_bundleVariables.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_callable_docstr.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_callbacks.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_categories.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_classandinst.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_classhooks.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_clinmeth.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_compat.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_context.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_conversion.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_copying.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_corefoundation.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_ctests.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_default_selector.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_deprecations.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_descriptors.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_dict_interface.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_dict_property.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_dict_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_dyld.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_enumerator.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_exceptions.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_filepointer.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_final.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_framework.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_fsref.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_functions.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_generic_class.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_hidden_selector.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_identity.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_imp.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_initialized.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_inspect_signatures.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_ivar.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_keyvalue.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_keyvalue_prop.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_lazy_import.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_leaks.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_list_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_locking.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_machsignals.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_metadata.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_metadata_function.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_metadata_imp.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_metadata_inheritance.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_metadata_py.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_metadata_py2py.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_method_prototypes.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_methodedits.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_methodlookup.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_methods.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_methods2.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_methres.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nscoder.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nsdate_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nsinvocation.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_nulldelimited.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_number_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_objc.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_objcpointer.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_object_property.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_object_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_options.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_outputinitializer.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_pickle.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_pickling_objc.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_posing.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_propertiesforclass.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_protected.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_protocolNamed.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_python_method.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_regr.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_set_interface.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_set_property.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_set_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_signals.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_signatures.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_simd.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_sockaddr.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_charbyte.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_charint.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_methdef.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_nsbool.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_struct.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_specialtypecodes_unichar.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_string_proxy.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_structpointer.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_synthesize.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_transform.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_transform_integration.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_typecheck.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_unicode.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_usekvo.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_varargs.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_varlist.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_version_support.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_voidpointer.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/PyObjCTest/test_weakref.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/README.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/MANIFEST.in +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/comparebench.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/gen_archive.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/generate-category-tests.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/pyobjcbench.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/results/pyobjcbench-7.3.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/results/pyobjcbench-8.0b1.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/results/pyobjcbench-8.0b2.txt +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/runtests-with-nuitka.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/Tools/runtests.py +0 -0
- {pyobjc-core-10.0 → pyobjc-core-10.2}/pyproject.toml +0 -0
|
@@ -276,7 +276,7 @@ def min_os_level(release):
|
|
|
276
276
|
"""
|
|
277
277
|
return _unittest.skipUnless(
|
|
278
278
|
os_level_key(os_release()) >= os_level_key(release),
|
|
279
|
-
f"Requires
|
|
279
|
+
f"Requires macOS {release} or later",
|
|
280
280
|
)
|
|
281
281
|
|
|
282
282
|
|
|
@@ -292,7 +292,7 @@ def max_os_level(release):
|
|
|
292
292
|
"""
|
|
293
293
|
return _unittest.skipUnless(
|
|
294
294
|
os_level_key(os_release()) <= os_level_key(release),
|
|
295
|
-
f"Requires
|
|
295
|
+
f"Requires macOS up to {release}",
|
|
296
296
|
)
|
|
297
297
|
|
|
298
298
|
|
|
@@ -310,13 +310,13 @@ def os_level_between(min_release, max_release):
|
|
|
310
310
|
os_level_key(min_release)
|
|
311
311
|
<= os_level_key(os_release())
|
|
312
312
|
<= os_level_key(max_release),
|
|
313
|
-
f"Requires
|
|
313
|
+
f"Requires macOS {min_release} up to {max_release}",
|
|
314
314
|
)
|
|
315
315
|
|
|
316
316
|
|
|
317
317
|
_poolclass = objc.lookUpClass("NSAutoreleasePool")
|
|
318
318
|
|
|
319
|
-
# NOTE: On at least
|
|
319
|
+
# NOTE: On at least macOS 10.8 there are multiple proxy classes for CFTypeRef...
|
|
320
320
|
_nscftype = tuple(cls for cls in objc.getClassList(1) if "NSCFType" in cls.__name__)
|
|
321
321
|
|
|
322
322
|
_typealias = {}
|
|
@@ -1199,7 +1199,6 @@ class TestCase(_unittest.TestCase):
|
|
|
1199
1199
|
"c_array_delimited_by_null",
|
|
1200
1200
|
"c_array_of_variable_length",
|
|
1201
1201
|
"c_array_length_in_arg",
|
|
1202
|
-
"c_array_delimited_by_null",
|
|
1203
1202
|
"c_array_size_in_arg",
|
|
1204
1203
|
}
|
|
1205
1204
|
):
|
|
@@ -1230,13 +1229,16 @@ class TestCase(_unittest.TestCase):
|
|
|
1230
1229
|
)
|
|
1231
1230
|
|
|
1232
1231
|
if exclude_cocoa:
|
|
1233
|
-
|
|
1232
|
+
try:
|
|
1233
|
+
import Cocoa
|
|
1234
1234
|
|
|
1235
|
-
|
|
1235
|
+
exclude_names = set(dir(Cocoa))
|
|
1236
1236
|
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
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()
|
|
1240
1242
|
else:
|
|
1241
1243
|
exclude_names = set()
|
|
1242
1244
|
|
|
@@ -1291,6 +1293,24 @@ class TestCase(_unittest.TestCase):
|
|
|
1291
1293
|
)
|
|
1292
1294
|
)
|
|
1293
1295
|
|
|
1296
|
+
# Two (private) classes that end up being found in
|
|
1297
|
+
# test runs on macOS 10.12 and 10.13
|
|
1298
|
+
exclude_attrs.add("ABCDContact_ABCDContact_")
|
|
1299
|
+
exclude_attrs.add("ABCDGroup_ABCDGroup_")
|
|
1300
|
+
|
|
1301
|
+
# Some bindings in CoreAudio with false positives
|
|
1302
|
+
exclude_attrs.add("AudioHardwareClaimAudioDeviceID")
|
|
1303
|
+
exclude_attrs.add("AudioHardwareClaimAudioStreamID")
|
|
1304
|
+
exclude_attrs.add("AudioHardwareDevicePropertyChanged")
|
|
1305
|
+
exclude_attrs.add("AudioHardwareDevicesCreated")
|
|
1306
|
+
exclude_attrs.add("AudioHardwareDevicesDied")
|
|
1307
|
+
exclude_attrs.add("AudioHardwareStreamPropertyChanged")
|
|
1308
|
+
exclude_attrs.add("AudioHardwareStreamsCreated")
|
|
1309
|
+
exclude_attrs.add("AudioHardwareStreamsDied")
|
|
1310
|
+
exclude_attrs.add("AudioObjectCreate")
|
|
1311
|
+
exclude_attrs.add("AudioObjectPropertiesChanged")
|
|
1312
|
+
exclude_attrs.add("AudioObjectsPublishedAndDied")
|
|
1313
|
+
|
|
1294
1314
|
# Calculate all (interesting) names in the module. This pokes into
|
|
1295
1315
|
# the implementation details of objc.ObjCLazyModule to avoid loading
|
|
1296
1316
|
# all attributes (which is expensive for larger bindings).
|
|
@@ -1364,7 +1384,6 @@ class TestCase(_unittest.TestCase):
|
|
|
1364
1384
|
self._validateCallableMetadata(
|
|
1365
1385
|
attr, nm, skip_simple_charptr_check=not exclude_cocoa
|
|
1366
1386
|
)
|
|
1367
|
-
|
|
1368
1387
|
elif isinstance(value, objc.function):
|
|
1369
1388
|
with self.subTest(function=nm):
|
|
1370
1389
|
self._validateCallableMetadata(value)
|
|
@@ -1387,6 +1406,13 @@ class TestCase(_unittest.TestCase):
|
|
|
1387
1406
|
Run the test, same as unittest.TestCase.run, but every test is
|
|
1388
1407
|
run with a fresh autorelease pool.
|
|
1389
1408
|
"""
|
|
1409
|
+
try:
|
|
1410
|
+
cls = objc.lookUpClass("NSApplication")
|
|
1411
|
+
except objc.error:
|
|
1412
|
+
pass
|
|
1413
|
+
else:
|
|
1414
|
+
cls.sharedApplication()
|
|
1415
|
+
|
|
1390
1416
|
if _usepool and not self._skip_usepool:
|
|
1391
1417
|
p = _poolclass.alloc().init()
|
|
1392
1418
|
else:
|
|
@@ -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)
|
|
@@ -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):
|
|
@@ -25,7 +25,7 @@ def protocolNamed(name):
|
|
|
25
25
|
PROTOCOL_CACHE.setdefault(pname, p)
|
|
26
26
|
if pname == name:
|
|
27
27
|
return p
|
|
28
|
-
for cls in _objc.getClassList(
|
|
28
|
+
for cls in _objc.getClassList(True):
|
|
29
29
|
for p in _objc.protocolsForClass(cls):
|
|
30
30
|
pname = p.__name__
|
|
31
31
|
PROTOCOL_CACHE.setdefault(pname, p)
|
|
@@ -493,10 +493,10 @@ def load_reduce(coder, setValue):
|
|
|
493
493
|
|
|
494
494
|
for k in state:
|
|
495
495
|
v = state[k]
|
|
496
|
-
if type(k)
|
|
496
|
+
if type(k) is objc.pyobjc_unicode:
|
|
497
497
|
inst_dict[intern(k)] = v
|
|
498
498
|
|
|
499
|
-
elif type(k)
|
|
499
|
+
elif type(k) is str:
|
|
500
500
|
inst_dict[intern(k)] = v
|
|
501
501
|
|
|
502
502
|
else:
|
|
@@ -497,7 +497,7 @@ def transformAttribute(name, value, class_object, protocols):
|
|
|
497
497
|
for cls in class_object.mro(): # pragma: no branch
|
|
498
498
|
if not issubclass(cls, objc.objc_object):
|
|
499
499
|
# Skip all non-objc class in the MRO to ignore
|
|
500
|
-
# mixin
|
|
500
|
+
# mixin classes.
|
|
501
501
|
continue
|
|
502
502
|
if selname in cls.pyobjc_hiddenSelectors(isclass):
|
|
503
503
|
ishidden = True
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyobjc-core
|
|
3
|
-
Version: 10.
|
|
3
|
+
Version: 10.2
|
|
4
4
|
Summary: Python<->ObjC Interoperability Module
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren, bbum, SteveM, LeleG, many others stretching back through the reaches of time...
|
|
@@ -25,6 +25,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
|
25
25
|
Classifier: Programming Language :: Python :: 3.10
|
|
26
26
|
Classifier: Programming Language :: Python :: 3.11
|
|
27
27
|
Classifier: Programming Language :: Python :: 3.12
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
28
29
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
29
30
|
Classifier: Programming Language :: Objective C
|
|
30
31
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
@@ -110,6 +110,8 @@ Modules/objc/OC_PythonObject.h
|
|
|
110
110
|
Modules/objc/OC_PythonObject.m
|
|
111
111
|
Modules/objc/OC_PythonSet.h
|
|
112
112
|
Modules/objc/OC_PythonSet.m
|
|
113
|
+
Modules/objc/OC_PythonURL.h
|
|
114
|
+
Modules/objc/OC_PythonURL.m
|
|
113
115
|
Modules/objc/OC_PythonUnicode.h
|
|
114
116
|
Modules/objc/OC_PythonUnicode.m
|
|
115
117
|
Modules/objc/ObjCPointer.h
|
|
@@ -472,6 +474,7 @@ PyObjCTest/test_transform.py
|
|
|
472
474
|
PyObjCTest/test_transform_integration.py
|
|
473
475
|
PyObjCTest/test_typecheck.py
|
|
474
476
|
PyObjCTest/test_unicode.py
|
|
477
|
+
PyObjCTest/test_urlproxy.py
|
|
475
478
|
PyObjCTest/test_usekvo.py
|
|
476
479
|
PyObjCTest/test_varargs.py
|
|
477
480
|
PyObjCTest/test_varlist.py
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
(This is the MIT license, note that libffi-src is a separate product with its own license)
|
|
2
2
|
|
|
3
3
|
Copyright 2002, 2003 - Bill Bumgarner, Ronald Oussoren, Steve Majewski, Lele Gaifax, et.al.
|
|
4
|
-
Copyright 2003-
|
|
4
|
+
Copyright 2003-2024 - Ronald Oussoren
|
|
5
5
|
|
|
6
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
7
7
|
|
|
@@ -622,6 +622,9 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
622
622
|
}
|
|
623
623
|
}
|
|
624
624
|
|
|
625
|
+
#pragma clang diagnostic push
|
|
626
|
+
#pragma clang diagnostic ignored "-Wunused-parameter"
|
|
627
|
+
|
|
625
628
|
- (id)copyWithZone:(NSZone* _Nullable)zone
|
|
626
629
|
{
|
|
627
630
|
if (PyObjC_CopyFunc && PyObjC_CopyFunc != Py_None) {
|
|
@@ -651,6 +654,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
651
654
|
}
|
|
652
655
|
}
|
|
653
656
|
|
|
657
|
+
|
|
654
658
|
- (id)mutableCopyWithZone:(NSZone* _Nullable)zone
|
|
655
659
|
{
|
|
656
660
|
NSObject* result;
|
|
@@ -672,6 +676,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
672
676
|
[result retain];
|
|
673
677
|
return result;
|
|
674
678
|
}
|
|
679
|
+
#pragma clang diagnostic pop
|
|
675
680
|
|
|
676
681
|
+ (NSArray*)classFallbacksForKeyedArchiver
|
|
677
682
|
{
|
|
@@ -570,6 +570,8 @@ PyObjC_FINAL_CLASS @interface OC_PythonDictionaryEnumerator : NSEnumerator {
|
|
|
570
570
|
}
|
|
571
571
|
}
|
|
572
572
|
|
|
573
|
+
#pragma clang diagnostic push
|
|
574
|
+
#pragma clang diagnostic ignored "-Wunused-parameter"
|
|
573
575
|
- (id)mutableCopyWithZone:(NSZone* _Nullable)zone
|
|
574
576
|
{
|
|
575
577
|
NSObject* result;
|
|
@@ -600,6 +602,7 @@ PyObjC_FINAL_CLASS @interface OC_PythonDictionaryEnumerator : NSEnumerator {
|
|
|
600
602
|
[result retain];
|
|
601
603
|
return result;
|
|
602
604
|
}
|
|
605
|
+
#pragma clang diagnostic pop
|
|
603
606
|
|
|
604
607
|
@end /* interface OC_PythonDictionary */
|
|
605
608
|
|
|
@@ -123,7 +123,15 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
123
123
|
|
|
124
124
|
- (BOOL)boolValue
|
|
125
125
|
{
|
|
126
|
-
|
|
126
|
+
int r;
|
|
127
|
+
PyObjC_BEGIN_WITH_GIL
|
|
128
|
+
r = PyObject_IsTrue(value);
|
|
129
|
+
if (r == -1) {
|
|
130
|
+
PyObjC_GIL_FORWARD_EXC();
|
|
131
|
+
}
|
|
132
|
+
PyObjC_END_WITH_GIL
|
|
133
|
+
|
|
134
|
+
return !!r;
|
|
127
135
|
}
|
|
128
136
|
|
|
129
137
|
- (char)charValue
|
|
@@ -209,12 +217,19 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
209
217
|
}
|
|
210
218
|
|
|
211
219
|
- (long long)longLongValue
|
|
220
|
+
/* Disable float-cast-overflow checking when running
|
|
221
|
+
* with undefined behaviour sanitizer. The float cast
|
|
222
|
+
* below can result in undefined behaviour but is
|
|
223
|
+
* necessary to match Cocoa semantics.
|
|
224
|
+
*/
|
|
225
|
+
__attribute__((no_sanitize("float-cast-overflow")))
|
|
212
226
|
{
|
|
213
227
|
long long result;
|
|
214
228
|
|
|
215
229
|
PyObjC_BEGIN_WITH_GIL
|
|
216
230
|
if (PyFloat_Check(value)) {
|
|
217
|
-
|
|
231
|
+
double float_result = PyFloat_AsDouble(value);
|
|
232
|
+
result = (long long)float_result;
|
|
218
233
|
PyObjC_GIL_RETURN(result);
|
|
219
234
|
} else if (PyLong_Check(value)) {
|
|
220
235
|
result = PyLong_AsUnsignedLongLongMask(value);
|
|
@@ -231,6 +246,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
231
246
|
}
|
|
232
247
|
|
|
233
248
|
- (unsigned long long)unsignedLongLongValue
|
|
249
|
+
/* Disable float-cast-overflow checking when running
|
|
250
|
+
* with undefined behaviour sanitizer. The float cast
|
|
251
|
+
* below can result in undefined behaviour but is
|
|
252
|
+
* necessary to match Cocoa semantics.
|
|
253
|
+
*/
|
|
254
|
+
__attribute__((no_sanitize("float-cast-overflow")))
|
|
234
255
|
{
|
|
235
256
|
unsigned long long result;
|
|
236
257
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
2
|
+
|
|
3
|
+
PyObjC_FINAL_CLASS
|
|
4
|
+
@interface OC_PythonURL : NSURL {
|
|
5
|
+
PyObject* value;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
+ (instancetype _Nullable)URLWithPythonObject:(PyObject*)value;
|
|
9
|
+
- (id _Nullable)initWithPythonObject:(PyObject*)value;
|
|
10
|
+
- (PyObject*)__pyobjc_PythonObject__;
|
|
11
|
+
|
|
12
|
+
@end
|
|
13
|
+
|
|
14
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#include "pyobjc.h"
|
|
2
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
3
|
+
|
|
4
|
+
@implementation OC_PythonURL
|
|
5
|
+
|
|
6
|
+
+ (instancetype _Nullable)URLWithPythonObject:(PyObject*)object
|
|
7
|
+
{
|
|
8
|
+
return [[[self alloc] initWithPythonObject:object] autorelease];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
- (id _Nullable)initWithPythonObject:(PyObject*)object
|
|
12
|
+
{
|
|
13
|
+
PyObject* fspath = PyOS_FSPath(object);
|
|
14
|
+
if (fspath == NULL) {
|
|
15
|
+
return nil;
|
|
16
|
+
}
|
|
17
|
+
if (!PyUnicode_Check(fspath)) {
|
|
18
|
+
Py_DECREF(fspath);
|
|
19
|
+
PyErr_Format(PyExc_ValueError, "os.fspath(%R) did not return a string", object);
|
|
20
|
+
return nil;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const char* utf8;
|
|
24
|
+
Py_ssize_t utf8_size;
|
|
25
|
+
|
|
26
|
+
utf8 = PyUnicode_AsUTF8AndSize(fspath, &utf8_size);
|
|
27
|
+
if (utf8 == NULL) {
|
|
28
|
+
Py_DECREF(fspath);
|
|
29
|
+
return nil;
|
|
30
|
+
}
|
|
31
|
+
if (utf8_size != (Py_ssize_t)strlen(utf8)) {
|
|
32
|
+
Py_DECREF(fspath);
|
|
33
|
+
PyErr_Format(PyExc_ValueError, "os.fspath(%R) result has embedded NULs", object);
|
|
34
|
+
return nil;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
NSString* path = [[NSString alloc] initWithUTF8String:utf8];
|
|
38
|
+
Py_DECREF(fspath);
|
|
39
|
+
if (path == nil) {
|
|
40
|
+
return nil;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
self = [super initFileURLWithPath:path];
|
|
44
|
+
[path release];
|
|
45
|
+
if (self == nil) {
|
|
46
|
+
return nil;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
SET_FIELD_INCREF(value, object);
|
|
50
|
+
return self;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
- (oneway void)release
|
|
54
|
+
{
|
|
55
|
+
/* See comment in OC_PythonUnicode */
|
|
56
|
+
if (unlikely(!Py_IsInitialized())) { // LCOV_BR_EXCL_LINE
|
|
57
|
+
// LCOV_EXCL_START
|
|
58
|
+
[super release];
|
|
59
|
+
return;
|
|
60
|
+
// LCOV_EXCL_STOP
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
PyObjC_BEGIN_WITH_GIL
|
|
64
|
+
@try {
|
|
65
|
+
[super release];
|
|
66
|
+
// LCOV_EXCL_START
|
|
67
|
+
} @catch (NSObject* exc) {
|
|
68
|
+
/* I'm 99% sure this path cannot be hit,
|
|
69
|
+
* this class cannot be subclassesed and
|
|
70
|
+
* -dealloc cannot raise.
|
|
71
|
+
*/
|
|
72
|
+
PyObjC_LEAVE_GIL;
|
|
73
|
+
@throw;
|
|
74
|
+
}
|
|
75
|
+
// LCOV_EXCL_STOP
|
|
76
|
+
|
|
77
|
+
PyObjC_END_WITH_GIL
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
- (void)dealloc
|
|
81
|
+
{
|
|
82
|
+
if (unlikely(!Py_IsInitialized())) { // LCOV_BR_EXCL_LINE
|
|
83
|
+
// LCOV_EXCL_START
|
|
84
|
+
[super dealloc];
|
|
85
|
+
return;
|
|
86
|
+
// LCOV_EXCL_STOP
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
PyObjC_BEGIN_WITH_GIL
|
|
90
|
+
Py_XDECREF(value);
|
|
91
|
+
PyObjC_END_WITH_GIL
|
|
92
|
+
|
|
93
|
+
[super dealloc];
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/*
|
|
97
|
+
* NSURL implements safe coding, that's something we cannot
|
|
98
|
+
* do for arbitrary python objects. Therefore punt and encode
|
|
99
|
+
* as a regular NSURL.
|
|
100
|
+
*/
|
|
101
|
+
- (Class)classForCoder
|
|
102
|
+
{
|
|
103
|
+
return [NSURL class];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
- (Class _Nullable)classForKeyedArchiver
|
|
107
|
+
{
|
|
108
|
+
return [NSURL class];
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
- (PyObject*)__pyobjc_PythonObject__
|
|
113
|
+
{
|
|
114
|
+
Py_XINCREF(value);
|
|
115
|
+
return value;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
- (PyObject*)__pyobjc_PythonTransient__:(int*)cookie
|
|
119
|
+
{
|
|
120
|
+
*cookie = 0;
|
|
121
|
+
Py_XINCREF(value);
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
@end
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -180,12 +180,12 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
180
180
|
|
|
181
181
|
- (void)getCharacters:(unichar*)buffer range:(NSRange)aRange
|
|
182
182
|
{
|
|
183
|
-
|
|
183
|
+
[[self __realObject__] getCharacters:buffer range:aRange];
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
- (void)getCharacters:(unichar*)buffer
|
|
187
187
|
{
|
|
188
|
-
|
|
188
|
+
[[self __realObject__] getCharacters:buffer];
|
|
189
189
|
}
|
|
190
190
|
|
|
191
191
|
/*
|
|
@@ -385,7 +385,7 @@ error:
|
|
|
385
385
|
static void
|
|
386
386
|
PyObjCBlock_CleanupCapsule(PyObject* ptr)
|
|
387
387
|
{
|
|
388
|
-
|
|
388
|
+
PyObjCBlockFunction block_func = (PyObjCBlockFunction)PyCapsule_GetPointer(ptr, "objc.__block_release__");
|
|
389
389
|
if (block_func == NULL)
|
|
390
390
|
return;
|
|
391
391
|
|
|
@@ -458,7 +458,7 @@ void* _Nullable PyObjCBlock_Create(PyObjCMethodSignature* signature, PyObject* c
|
|
|
458
458
|
}
|
|
459
459
|
block->invoke = block_func;
|
|
460
460
|
|
|
461
|
-
block->invoke_cleanup = PyCapsule_New(block->invoke, "objc.__block_release__",
|
|
461
|
+
block->invoke_cleanup = PyCapsule_New((void*)(block->invoke), "objc.__block_release__",
|
|
462
462
|
PyObjCBlock_CleanupCapsule);
|
|
463
463
|
if (block->invoke_cleanup == NULL) { // LCOV_BR_EXCL_LINE
|
|
464
464
|
PyObjCFFI_FreeBlockFunction(block->invoke); // LCOV_EXCL_LINE
|
|
@@ -387,7 +387,7 @@ PyObject* _Nullable PyObjC_loadFunctionList(PyObject* self __attribute__((__unus
|
|
|
387
387
|
len = PySequence_Fast_GET_SIZE(seq);
|
|
388
388
|
for (i = 0; i < len; i++) {
|
|
389
389
|
PyObject* item = PySequence_Fast_GET_ITEM(seq, i);
|
|
390
|
-
|
|
390
|
+
function value;
|
|
391
391
|
char* signature;
|
|
392
392
|
PyObject* name;
|
|
393
393
|
PyObject* doc;
|
|
@@ -417,7 +417,7 @@ PyObject* _Nullable PyObjC_loadFunctionList(PyObject* self __attribute__((__unus
|
|
|
417
417
|
}
|
|
418
418
|
|
|
419
419
|
} else {
|
|
420
|
-
PyObject* py_val = PyObjCFunc_New(name, value, signature, doc, meta);
|
|
420
|
+
PyObject* py_val = PyObjCFunc_New(name, (void*)value, signature, doc, meta);
|
|
421
421
|
if (py_val == NULL) {
|
|
422
422
|
Py_DECREF(seq);
|
|
423
423
|
return NULL;
|
|
@@ -749,13 +749,13 @@ object_method_dealloc(ffi_cif* cif __attribute__((__unused__)),
|
|
|
749
749
|
PyObject* args[2] = {NULL, s};
|
|
750
750
|
obj = PyObject_Vectorcall(delmethod, args + 1,
|
|
751
751
|
1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
|
|
752
|
-
_PyObjCObject_FreeDeallocHelper(s);
|
|
753
752
|
if (obj == NULL) {
|
|
754
753
|
PyErr_WriteUnraisable(delmethod);
|
|
755
754
|
} else {
|
|
756
755
|
Py_DECREF(obj);
|
|
757
756
|
}
|
|
758
757
|
Py_DECREF(delmethod);
|
|
758
|
+
_PyObjCObject_FreeDeallocHelper(s);
|
|
759
759
|
}
|
|
760
760
|
}
|
|
761
761
|
|
|
@@ -995,7 +995,7 @@ object_method_valueForKey_(ffi_cif* cif __attribute__((__unused__)), void* retva
|
|
|
995
995
|
/* Parent doesn't know the key, try to create in the
|
|
996
996
|
* python side, just like for plain python objects.
|
|
997
997
|
*
|
|
998
|
-
* NOTE: We have to be
|
|
998
|
+
* NOTE: We have to be extremely careful in here, some classes,
|
|
999
999
|
* like NSManagedContext convert __getattr__ into a -valueForKey:,
|
|
1000
1000
|
* and that can cause infinite loops.
|
|
1001
1001
|
*
|