Registry / serialization / pyobjc-framework-devicediscoveryextension

pyobjc-framework-devicediscoveryextension

JSON →
library12.2pypypiunverified

PyObjC is a bridge between Python and Objective-C, enabling Python scripts to use and extend existing Objective-C class libraries, most notably Apple's Cocoa frameworks on macOS. This specific package provides Python wrappers for the DeviceDiscoveryExtension framework. It is currently at version 12.1 and is actively maintained as part of the broader PyObjC project, which typically sees releases monthly or bi-monthly, with framework updates following macOS SDK releases.

pip install pyobjc-framework-devicediscoveryextension
INSTALL
IMPORT
SIG · PYOBJC-FRAMEWORK-D
P
pyobjc-framework-devicediscoveryextension
serializationpythonv12.2
Install
Import
Disk
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v? · pip install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
build_error
glibc
py 3.103.920 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

DeviceDiscoveryExtension
import DeviceDiscoveryExtension
Frameworks are typically imported directly by their name, which provides access to their classes, functions, and constants.

This quickstart demonstrates the basic PyObjC pattern for importing and interacting with a macOS framework using `Foundation`. The same import and object instantiation principles apply to `DeviceDiscoveryExtension`. Note that direct usage of `DeviceDiscoveryExtension` requires specific macOS versions (macOS 15+) and an understanding of its API as per Apple's documentation.

import Foundation # PyObjC allows you to interact with macOS frameworks. # This example uses Foundation, a core Cocoa framework. # For DeviceDiscoveryExtension, the import pattern is similar. # Most Cocoa objects use a two-phase initialization: allocation followed by initialization. my_object = Foundation.NSObject.alloc().init() print(f"Successfully created a Foundation.NSObject: {my_object}") print(f"Class name of the object: {my_object.className()}") # To use DeviceDiscoveryExtension, you would follow a similar pattern: # import DeviceDiscoveryExtension # from DeviceDiscoveryExtension import DDEDiscoverySession # session = DDEDiscoverySession.alloc().init() # Example for a potential class within the framework # print(f"DeviceDiscoveryExtension session created (conceptual): {session}")
Debug
Known issues
breakingPython 3.9 support was dropped in PyObjC 12.0. Projects using PyObjC 12.0 or later (including `pyobjc-framework-devicediscoveryextension` 12.x) must use Python 3.10 or newer.
fix
Upgrade your Python environment to 3.10 or later, or pin `pyobjc` and its framework wrappers to a version less than 12.0 (e.g., `<12.0`).
affects: >=12.0
breakingPython 3.8 support was dropped in PyObjC 11.0. Projects using PyObjC 11.0 or later must use Python 3.9 or newer.
fix
Upgrade your Python environment to 3.9 or later, or pin `pyobjc` and its framework wrappers to a version less than 11.0 (e.g., `<11.0`).
affects: >=11.0, <12.0
breakingPyObjC 11.1 introduced significant changes to how automatic reference counting (ARC) is modeled, specifically for Objective-C initializer methods (those in the 'init' family). This aligns PyObjC with `clang`'s documentation, where these methods now 'steal' a reference to `self` and return a new one. Code relying on previous reference counting behavior for initializers may break.
fix
Review and update code involving custom Objective-C initializer methods or subclasses to ensure correct reference management according to ARC principles. Refer to PyObjC 11.1 changelog and `clang` ARC documentation.
affects: >=11.1
gotchaPyObjC framework wrappers are tightly coupled to macOS SDK versions. The `DeviceDiscoveryExtension` framework itself was introduced in macOS 15. Using a `pyobjc-framework-devicediscoveryextension` version compiled with a newer SDK on an older macOS version (especially below macOS 15) can lead to runtime errors due to missing symbols or API incompatibility.
fix
Ensure your macOS version is compatible with the `DeviceDiscoveryExtension` framework (macOS 15 or newer). When building from source, use an Xcode/Command Line Tools version with an SDK that matches or is newer than your target deployment macOS version. For binary wheels, ensure the wheel's metadata indicates compatibility with your macOS version.
affects: all
gotchaPyObjC 10.3 changed the interaction between user-defined `__init__` and `__new__` methods in Python subclasses of Objective-C classes. While 10.3.1 partially reverted this, if PyObjC provides the `__new__` implementation (e.g., for default object creation), a user-defined `__init__` *still cannot be used* without carefully understanding PyObjC's two-phase instantiation model.
fix
If subclassing Objective-C classes, always adhere to PyObjC's two-phase instantiation (alloc then init) and ensure custom `__new__` or `__init__` methods correctly call the superclass's designated initializer. Avoid overriding `__init__` directly if relying on PyObjC's default `__new__` for Objective-C classes.
affects: >=10.3, <10.3.2
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredRequired as the core bridge between Python and Objective-C, providing fundamental types and functionality for all PyObjC framework wrappers.
Agent activity
7 hits · last 30 days
node
6
OpenAI (training)
1
Resources
pyobjc-framework-devicediscoveryextension — pip install pyobjc-framework-devicediscoveryextension · libregistry