{"id":6080,"library":"pyobjc-framework-cinematic","title":"PyObjC Framework Cinematic","description":"PyObjC is a bridge between Python and Objective-C, enabling Python scripts to use macOS frameworks. This specific package, `pyobjc-framework-cinematic` (version 12.1), provides Python wrappers for Apple's Cinematic framework on macOS. PyObjC generally has a regular release cadence, aligning with macOS SDK updates and Python version support changes.","status":"active","version":"12.1","language":"en","source_language":"en","source_url":"https://github.com/ronaldoussoren/pyobjc","tags":["macOS","objective-c","cocoa","apple","framework","cinematic"],"install":[{"cmd":"pip install pyobjc-framework-cinematic","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Provides the core Python-Objective-C bridge functionality.","package":"pyobjc-core"}],"imports":[{"note":"Most classes and functions from the Cinematic framework are exposed directly under the 'Cinematic' module.","symbol":"Cinematic","correct":"import Cinematic"},{"note":"The core PyObjC bridge module for utility functions and types.","symbol":"objc","correct":"import objc"},{"note":"Often needed for basic macOS types and utilities, typically from `pyobjc-framework-Cocoa` (a common `pyobjc` meta-package dependency).","symbol":"Foundation","correct":"import Foundation"}],"quickstart":{"code":"import Cinematic\nimport Foundation\nimport objc\n\n# Note: This is a placeholder. Actual usage requires consulting Apple's\n# Cinematic framework documentation for available classes and methods.\n\n# Attempt to get a hypothetical Cinematic object (replace with actual class/method)\ntry:\n    # Example: Trying to access a class like CIMovie, common pattern is 'FrameworkName.ClassName'\n    movie_manager_class = Cinematic.NSObject.alloc().init() # Fallback to NSObject as a generic example\n    print(f\"Successfully accessed a Cinematic-related object: {movie_manager_class}\")\n    # Further interaction would depend on the specific Cinematic API\nexcept Exception as e:\n    print(f\"Could not access Cinematic framework classes (this is expected if no specific Cinematic API is called): {e}\")\n\n# Example of using a basic Foundation type\nns_string = Foundation.NSString.stringWithString_(\"Hello from PyObjC Cinematic!\")\nprint(f\"Foundation NSString example: {ns_string}\")\n\n# Example of using a core objc bridge utility\nprint(f\"PyObjC bridge version: {objc.__version__}\")","lang":"python","description":"This quickstart demonstrates importing the `Cinematic` framework module along with `Foundation` (for common macOS types) and the core `objc` bridge. It shows a generic pattern for instantiating a (placeholder) class within the `Cinematic` module. Actual functional code would require referring to Apple's Cinematic framework documentation for specific classes and methods, as PyObjC provides direct Pythonic access to these Objective-C APIs."},"warnings":[{"fix":"Upgrade Python to 3.10 or later, or use an older PyObjC version (e.g., v11.x) that supports Python 3.9.","message":"PyObjC v12.0 and later dropped support for Python 3.9. Ensure your Python environment is 3.10 or newer.","severity":"breaking","affected_versions":">=12.0"},{"fix":"Upgrade Python to 3.9 or later.","message":"PyObjC v11.0 and later dropped support for Python 3.8. Ensure your Python environment is 3.9 or newer.","severity":"breaking","affected_versions":">=11.0"},{"fix":"Migrate away from the `IMServicePlugIn` framework, as it is no longer supported by macOS or PyObjC.","message":"The `IMServicePlugIn` framework bindings were removed in PyObjC v10.0 as the entire framework was deprecated and removed by Apple in macOS 14.","severity":"breaking","affected_versions":">=10.0"},{"fix":"Review custom Objective-C initializers implemented in Python, particularly those interacting with `alloc` and `init` patterns, to ensure they adhere to ARC expectations.","message":"PyObjC v11.1 introduced changes to how initializer methods are handled to align with `clang`'s Automatic Reference Counting (ARC) documentation. Methods in the 'init' family now correctly model stealing a reference to `self` and returning a new reference. This might subtly change memory management behavior for custom initializers.","severity":"gotcha","affected_versions":">=11.1"},{"fix":"Avoid using `__init__` for classes that rely on PyObjC's default `__new__` implementation or carefully test `__init__` behavior if you provide a custom `__new__`.","message":"PyObjC v10.3 temporarily broke the ability to use `__init__` when a class or its superclasses implement `__new__`. While partially re-introduced in v10.3.1 for user-implemented `__new__`, code relying on PyObjC's provided `__new__` still cannot use `__init__` for custom initialization.","severity":"gotcha","affected_versions":"10.3.0, >=10.3.1 (specific scenarios)"},{"fix":"For PyObjC v12.0, ensure your Python environment is 3.10 or newer. For Python 3.9, you must use an older PyObjC version (e.g., v11.x) or upgrade to PyObjC v12.1+ if Python 3.10+ is available.","message":"PyObjC v12.0's packaging metadata incorrectly indicated Python 3.9 support, leading to potential installation issues on Python 3.9. This was corrected in v12.1.","severity":"gotcha","affected_versions":"12.0"}],"env_vars":null,"last_verified":"2026-04-14T00:00:00.000Z","next_check":"2026-07-13T00:00:00.000Z"}