Pyobjc

Latest version: v11.0

Safety actively analyzes 701298 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 14 of 18

1.1

------------------------

- KVO now actually works from Python without using nasty hacks.

- Added Xcode template for document-based applications

1.1b2

--------------------------

- More fine-grained multi-threading support

- Xcode templates use a smarter embedded main program

- Add support for WebObjects 4.5 (a one-line patch!)

- Add a PackageManager clone to the Examples directory

- Add better support for NSProxy

This makes it possible to use at Distributed Objects, although this
feature has not received much testing

- Function 'objc.protocolNamed' is the Python equivalent of the protocol
expression in Objective-C.

- Add several new examples

1.1b1

---------------------------

- Fixes some regressions in 1.1 w.r.t. 1.0

- Add Xcode templates for python files

You can now select a new python file in the 'add file...' dialog in Xcode

- Fix installer for Panther: the 1.1a0 version didn't behave correctly

- There is now an easier way to define methods that conform to the expectations
of Cocoa bindings:

.. sourcecode:: python

class MyClass (NSObject):

objc.accessor
def setSomething_(self, value):
pass

objc.accessor
def something(self):
return "something!"


It is not necessary to use ``objc.accessor`` when overriding an existing
accessor method.

1.1a0

--------------------------

- Objective-C structs can now be wrapped using struct-like types. This has
been used to implement wrapper types for NSPoint, NSSize, NSRange and NSRect
in Foundation and NSAffineTransformStruct in AppKit.

This means you can now access the x-coordinate of a point as ``aPoint.x``,
accessing ``aPoint[0]`` is still supported for compatibility with older
versions of PyObjC.

It is still allowed to use tuples, or other sequences, to represent
Objective-C structs.

NOTE: This has two side-effects that may require changes in your programs:
the values of the types mentioned above are no longer immutable and cannot
be used as keys in dicts or elements in sets. Another side-effect is that
a pickle containing these values created using this version of PyObjC cannot
be unpickled on older versions of PyObjC.

- This version adds support for NSDecimal. This is a fixed-point type defined
in Cocoa.

- NSDecimalNumbers are no longer converted to floats, that would loose
information.

- If an Objective-C method name is a Python keyword you can now access it
by appending two underscores to its name, e.g. someObject.class__().

The same is true for defining methods, if you define a method ``raise__`` in
a subclass of NSObject it will registered with the runtime as ``raise``.

NOTE: Currently only ``class`` and ``raise`` are treated like this, because
those are the only Python keywords that are actually used as Objective-C
method names.

- Experimental support for ``instanceMethodForSelector:`` and
``methodForSelector:``.
This support is not 100% stable, and might change in the future.

- Backward incompatible change: class methods are no longer callable through
the instances.

- Integrates full support for MacOS X 10.3 (aka Panther)

- Adds a convenience/wrapper module for SecurityInterface

- It is now safe to call from Objective-C to Python in arbitrary threads, but
only when using Python 2.3 or later.

- Fixes some issues with passing structs between Python and Objective-C.

- Uses the Panther version of ``NSKeyValueCoding``, the Jaguar version is still
supported.

- method ``updateNSString`` of ``objc.pyobjc_unicode`` is deprecated, use
create a new unicode object using ``unicode(mutableStringInstance)`` instead.

- NSAppleEventDescriptor bridged to Carbon.AE

- LibFFI is used more aggressivly, this should have no user-visible effects
other than fixing a bug related to key-value observing.


- Adds a number of new Examples:

* OpenGLDemo

Shows how to use OpenGL with PyObjC

* SillyBallsSaver

Shows how to write a screensaver in Python. Requires a framework install
of Python (that is, MacOS X 10.3 or MacPython 2.3 on MacOS X 10.2).

* Twisted/WebServicesTool

Shows how to integrate Twisted (1.1 or later) with Cocoa, it is a
refactor of the WebServicesTool example that is made much simpler
by using Twisted.

* Twisted/WebServicesTool-ControllerLayer

Shows how to integrate Twisted (1.1 or later) with Cocoa, it is a
refactor of the WebServicesTool example that is made much simpler
by using Twisted as it does not need threads. This one also uses
NSController and therefore requires MacOS X 10.3.

1.0

------------------------

- This version includes a new version of libffi that properly deals with
complex types on MacOS X.

1.0rc3

---------------------------

- 1.0rc2 didn't include the nibclassbuilder script

- Fix bug in NSRectFillList

Page 14 of 18

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.