./devel/py-pyobjc-core, Bridge between Python and Objective-C

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 9.0.1, Package name: py310-pyobjc-core-9.0.1, Maintainer: pkgsrc-users

The PyObjC project aims to provide a bridge between the Python and Objective-C
programming languages. The bridge is intended to be fully bidirectional,
allowing the Python programmer to take full advantage of the power provided by
various Objective-C based toolkits and the Objective-C programmer transparent
access to Python based functionality.

Required to run:
[devel/py-setuptools] [devel/libffi] [lang/python37]

Required to build:

Master sites:

Filesize: 856.628 KB

Version history: (Expand)

CVS history: (Expand)

   2023-04-07 07:17:24 by Adam Ciarcinski | Files touched by this commit (4)
Log message:
py-pyobjc-core: avoid -Werror
   2022-09-27 20:13:03 by Adam Ciarcinski | Files touched by this commit (177) | Package updated
Log message:
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 \ 

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 \ 

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 \ 

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.

While fixing this issue I found problems with the metadata for these functions:

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 \ 
   2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595)
Log message:
*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
   2021-12-08 17:07:18 by Adam Ciarcinski | Files touched by this commit (3063)
Log message:
revbump for icu and libffi
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:

The following distfiles were unfetchable (note: some may be only fetched

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2020-07-09 10:36:43 by Adam Ciarcinski | Files touched by this commit (85) | Package updated
Log message:
py-pyobjc: updated to 6.2.2

Version 6.2.2
Build for the Metal bindings failed on macOS 10.14
Fix incompatibility with macOS 11 in framework loader
Another attempt at giving a nice error message when trying to install on \ 
platforms other than macOS.
The classifiers now correctly identify supported Python versions
   2020-07-08 15:12:44 by Adam Ciarcinski | Files touched by this commit (85) | Package updated
Log message:
py-pyobjc: updated to 6.2.1

Version 6.2.1
* Ensure package ‘pyobjc’ won’t try to build the PubSub bindings on macOS 10.15
* Minor tweaks to build and pass tests on macOS 10.14 with the latest Xcode that \ 
can be installed on that version of macOS.
* Fix SystemError in block edge case
* PyObjC raised a SystemError when converting a callable into an ObjC block when \ 
the callable is a bound method without positional arguments.
* Fix crash on catalina caused by writing to read-only memory.
* Make sure the SDK detection works when the version is not in the SDK name
* There were no SDK updates in Xcode 11.5 and Xcode 11.6 (beta)