Registry / http-networking / pyobjc-framework-metalfx

pyobjc-framework-metalfx

JSON →
library12.2pypypiunverified

PyObjC Framework MetalFX provides Python wrappers for Apple's MetalFX framework on macOS. It enables Python developers to interact with MetalFX APIs, which are part of Apple's graphics technologies for upscaling, anti-aliasing, and other visual effects. The library is part of the broader PyObjC project, which bridges Python and Objective-C, offering bindings to most macOS Objective-C frameworks. Version 12.1 was released in November 2025 and the project maintains an active release cadence, typically aligning with macOS SDK updates.

pip install pyobjc-framework-metalfx
INSTALL
IMPORT
SIG · PYOBJC-FRAMEWORK-M
P
pyobjc-framework-metalfx
http-networkingpythonv12.2
Install
—
Import
—
Disk
—
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.9–3.13
musl
3.9–3.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.10–3.920 runs
build_error
glibc
py 3.10–3.920 runs
build_error
Code
Verified usage

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

MetalFX
✓ import MetalFX
Framework wrappers are typically imported directly by their framework name, exposing Objective-C classes, functions, and constants under this module.

This quickstart demonstrates how to import the `MetalFX` framework bindings and access an Objective-C class through PyObjC. It also includes a common pattern for subclassing a `Foundation.NSObject` in Python, illustrating the core interoperability.

import Foundation import MetalFX # Basic import to verify the MetalFX framework bindings are accessible. print(f"MetalFX module imported: {MetalFX}") # Attempt to access a known class from the MetalFX framework # (e.g., MTLFXTemporalScaler is a prominent class in MetalFX for temporal upscaling) # Note: Actual usage requires a Metal-compatible GPU and specific setup. try: MTLFXTemporalScaler = MetalFX.MTLFXTemporalScaler print(f"Successfully accessed MetalFX.MTLFXTemporalScaler: {MTLFXTemporalScaler}") print(f"Objective-C class name: {MTLFXTemporalScaler.className()}") except AttributeError: print("Could not find MTLFXTemporalScaler, perhaps due to SDK version or framework availability.") print("Verify your macOS SDK supports the class or check PyObjC documentation for alternatives.") # Example showing interaction with a common Foundation class (often used alongside other frameworks) NSObject = Foundation.NSObject class MyPythonObject(NSObject): def init(self): self = super().init() if self: print("MyPythonObject (subclassing Foundation.NSObject) initialized!") return self my_obj = MyPythonObject.alloc().init()
Debug
Known issues
breakingPyObjC 12.0 (and thus its framework wrappers) dropped support for Python 3.9. Projects must upgrade to Python 3.10 or later. PyObjC 11.0 dropped Python 3.8 support.
fix
Upgrade your Python environment to 3.10 or newer (3.10+ for PyObjC 12.x, 3.9+ for PyObjC 11.x).
affects: 11.0, 12.0+
gotchaPyObjC 11.1 introduced significant changes to how initializer methods (`init` family) are handled, aligning with `clang`'s Automatic Reference Counting documentation. Incorrect handling of `self` reference stealing in initializers can lead to unexpected behavior.
fix
Review Objective-C initializer method implementations in Python subclasses to ensure `self = super().init()` patterns correctly handle reference ownership and return values.
affects: 11.1+
gotchaWhile PyObjC 11.0 introduced experimental support for Python 3.13's free-threading (PEP 703), PyObjC itself does not currently support this experimental feature. Using PyObjC with free-threading enabled in Python 3.13 may lead to instability.
fix
Avoid using PyObjC in Python 3.13 environments where free-threading (experimental) is enabled, or monitor PyObjC release notes for full free-threading compatibility.
affects: 11.0+
gotchaIn PyObjC 10.3, support for calling `__init__` in Python subclasses when a user-defined `__new__` was present was temporarily dropped, breaking some projects. This was partially reintroduced in 10.3.1, but code relying on PyObjC's provided `__new__` still cannot use `__init__`.
fix
If implementing `__new__` in a Python subclass of an Objective-C class, ensure `__init__` behavior is compatible with PyObjC's rules or explicitly manage object initialization without relying on `__init__` if using PyObjC's default `__new__`.
affects: 10.3, 10.3.1+
breakingThe `IMServicePlugIn` framework bindings were removed entirely in PyObjC 10.0, as the framework was deprecated in macOS 10.13 and removed in macOS 14. Code relying on these bindings will fail.
fix
Migrate away from the `IMServicePlugIn` framework, as it is no longer available in recent macOS versions or PyObjC bindings.
affects: 10.0+
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredProvides the core bridge between Python and Objective-C, essential for all PyObjC framework wrappers.
Agent activity
17 hits · last 30 days
node
14
Amazon
1
OpenAI (training)
1
Resources
pyobjc-framework-metalfx — pip install pyobjc-framework-metalfx · libregistry