API Notes: OpenDirectory and CFOpenDirectory frameworks


An introduction to PyObjC describes the general method for translating Objective-C calls into Python calls, including the handling of pass-by-reference arguments and buffers.

This document describes where the PyObjC bindings for this framework are different from the general rule, such as mentioning APIs that are not supported or where the interface is different than expected.

The full API is described in Apple’s documentation, both the C and Objective-C APIs are available (but see the API Notes below).

These bindings are accessed through the OpenDirectory package (that is, import OpenDirectory).

API Notes

Both the OpenDirectory framework and the embedded CFOpenDirectory framework are fully wrapped and can be used as described in the generic PyObjC documentation.


The callback function is stored by the framework, the callable can therefore not be a generic callable, but must be a callable that is annotated using the objc.callbackFor decorator:

def query_callback(query, value, context, error, info):

The userInfo argument needs to be an integer.


This function is not supported because PyObjC doesn’t interface with dispatch queues yet.