pkgsrc/devel/py-pyobjc-framework-MetricKit/Makefile
adam 072843c95e py-pyobjc*: updated to 8.5.1
Version 8.5

This release continues the work on test coverage in pyobjc-core, resulting in a number of minor bug fixes.

Added two options to the build_ext command in the setup.py of pyobjc-core:

--no-lto: Disable link time optimization
--no-warnings-as-errors: Disable -Werror
For struct bindings in frameworks the “in” operator no longer swallows exceptions raised by the __eq__ method.

Improved handing of invalid type encodings for struct types.

Fix crash while handling a struct wrapper with an invalid type encoding.

Fix handling of empty structs (such as struct foo { }; in objc.repythonify().

The type for NSObject.pyobjc_instanceMethod and NSObject.pyobjc_classMethods now supports the GC protocol to avoid garbage collection issues when the value for these properties is stored as an attribute (which introduces a reference cycle)

PyObjC should work with Python 3.11 alpha release, starting at alpha 6. Earlier alpha’s are not supported due to reverting a workaround for a bug that was fixed in alpha 6.

NSObject.alloc = 42 now fails. It was already impossible to replace a selector by something else through instances (NSObject.new().description = 42 raises).

Added objc.ObjCPointer.typestr with the same value as objc.ObjCPonter.type. The latter is now deprecated and will be removed in PyObjC 9.

Better error messages when a class implementing a protocol inherits a method of the wrong kind (“class” vs. “instance”).

The value of __slots__ in a class definition is now kept in the created class (previous versions always set the attribute to an empty tuple).

This is primarily useful when __slots__ is a dict that is used to document attributes.

Raise the correct exception when the name of a method is not an ASCII string.

objc.loadSpecialVar() now better enforces that the module_globals argument is a Python dictionary.

Fixed a crash in objc.loadSpecialVar() due to a missing pointer dereference.

pip install pyobjc-framework-... for a framework that is not present on the current machine will now give a better error message when the “wheel” package is not installed.

Setting an integer option in objc.options to a value of an incompatible type (such as a string) will now raise an exception as intended, instead of breaking the interpreter.

Trying to delete an attribute from objc.options now raises :type:`AttributeError` instead of :type:`TypeError`.

objc.selector now copies the default signature from its argument when that argument is another objc.selector.

Until now this would raise an exception.

Added some missing error checking in calls to PyObject_New() and PyObject_GC_New().

It is now possible to create an objc.selector from a callable that is not a function or bound method. This may require specifying the method signature in the call to objc.selector.

For pyobjc-core the build_ext command in setup.py now includes the command-line option from the standaard command, which means python setup.py build_ext -j 4 can now be used for parallel builds.

On my M1 laptop using python setup.py build_ext -j 8 halves the time needed to build the extension.

The test command setup.py now supports the -v option to print test cases while they are run, in previoius versions this required using the --verbosity option.

Improve error handling when dealing with “isHidden” selectors.

Added pyobjc_hiddenSelectors(classmethods) to objc.objc_class

This method returns a copy of the dictionary with “hidden” selectors, that is Objective-C selectors that are hidden from view.

The method is primarily a debugging aid for development of PyObjC itself.

ApplicationServices.AXIsProcessTrustedWithOptions and Quartrz.CGPDFArrayGetObject had incorrect metadata.

The testsuites for the various framework bindings now have a test that does some basic checks on function and selector metadata. This test found the problem with CGPDFArrayGetObject.

Added objc._C_ATOMIC and objc._C_COMPLEX, both extracted from the clang sources after finding some type encodings that PyObjC could not decode.

objc._C_ATOMIC is ignored by PyObjC (for now), and objc._C_COMPLEX is not yet supported.

Fix internal error for _C_OUT argument markup on arguments that are CoreFoundation types.

This can only happen with invalid metadata definitions in framework bindings, and earlier versions this resulted in an internal assertion error. With this change the “output” argument is always None in the result.

Fix metadata for a number of functions with a C string argument

The metadata for the following functions was changed to have the correct type encoding for string argument, to fix issues with using non-ASCII (byte) strings.

ApplicationServices.PMWorkflowSubmitPDFWithOptions
CoreServices.LocaleRefGetPartString
Foundation.NSGetSizeAndAlignment
Network.nw_advertise_descriptor_create_bonjour_service
Network.nw_browse_descriptor_create_bonjour_service
Network.nw_browse_descriptor_get_bonjour_service_domain
Network.nw_browse_descriptor_get_bonjour_service_type
Network.nw_connection_copy_description
Network.nw_content_context_create
Network.nw_content_context_get_identifier
Network.nw_endpoint_copy_address_string
Network.nw_endpoint_copy_port_string
Network.nw_endpoint_create_bonjour_service
Network.nw_endpoint_create_host
Network.nw_endpoint_create_url
Network.nw_endpoint_get_bonjour_service_domain
Network.nw_endpoint_get_bonjour_service_name
Network.nw_endpoint_get_bonjour_service_type
Network.nw_endpoint_get_hostname
Network.nw_framer_create_definition
Network.nw_framer_message_access_value
Network.nw_framer_message_copy_object_value
Network.nw_framer_message_set_object_value
Network.nw_framer_message_set_value
Network.nw_framer_options_set_object_value
Network.nw_listener_create_with_port
Network.nw_privacy_context_create
Network.nw_quic_get_application_error_reason
Network.nw_quic_set_application_error
Network.nw_txt_record_access_key
Network.nw_ws_options_add_additional_header
Network.nw_ws_options_add_subprotocol
Quartz.CGContextSelectFont
Quartz.CGContextShowText
Quartz.CGContextShowTextAtPoint
Quartz.CGDataProviderCreateWithFilename
Quartz.CGPDFArrayGetName
Quartz.CGPDFContentStreamGetResource
Quartz.CGPDFDictionaryGetArray
Quartz.CGPDFDictionaryGetBoolean
Quartz.CGPDFDictionaryGetName
Quartz.CGPDFDocumentUnlockWithPassword
Quartz.CGPDFScannerPopName
Quartz.CGPDFTagTypeGetName
While fixing this issue I found problems with the metadata for these functions:

CoreMIDI.MIDIExternalDeviceCreate
CoreMedia.CMBlockBufferAccessDataBytes
CoreMedia.CMBlockBufferGetDataPointer
CoreMedia.CMBufferQueueInstallTriggerHandler
CoreMedia.CMBufferQueueInstallTriggerHandlerWithIntegerThreshold
CoreMedia.CMTextFormatDescriptionGetJustification
CoreServices.TECGetTextEncodingFromInternetNameOrMIB
DVDPlayback.DVDGetScanRate
MediaAccessibility.MACaptionAppearanceAddSelectedLanguage
There’s also a new test that checks for this problem in all exposed functions.

Fix incorrect reset of the “inline_list” attribute of the lazy importer, this could result in an incorrect TypeError when trying to access an non-existing attribute after looking at __all__.

Fix uniqueness of symbols exposed in the OpenDirectory bindings.

Unhide manual bindings for Security.SecKeychainFindGenericPassword and Security.SecKeychainFindInternetPassword.
2022-09-27 18:12:46 +00:00

20 lines
678 B
Makefile

# $NetBSD: Makefile,v 1.1 2022/09/27 18:12:57 adam Exp $
.include "../../devel/py-pyobjc/Makefile.common"
DISTNAME= pyobjc-framework-MetricKit-${PYOBJC_VERS}
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= devel python
MASTER_SITES= ${MASTER_SITE_PYPI:=p/pyobjc-framework-MetricKit/}
COMMENT= Wrappers for the framework MetricKit on macOS
NOT_FOR_PLATFORM= Darwin-1[0-9].*-* Darwin-[0-9].*-* # 11.0+
USE_LANGUAGES= c objc
DEPENDS+= ${PYPKGPREFIX}-pyobjc-core>=${PYOBJC_VERS}:../../devel/py-pyobjc-core
DEPENDS+= ${PYPKGPREFIX}-pyobjc-framework-Cocoa>=${PYOBJC_VERS}:../../devel/py-pyobjc-framework-Cocoa
.include "../../lang/python/egg.mk"
.include "../../mk/bsd.pkg.mk"