{"library":"pyobjc-framework-preferencepanes","title":"PyObjC PreferencePanes Framework Bindings","description":"This library provides Python wrappers for Apple's `PreferencePanes.framework` on macOS, allowing Python applications to interact with or create System Preference panes. It's part of the larger PyObjC project, which offers Python bindings for many macOS frameworks. The current version is 12.1, with releases closely following macOS SDK updates and Python version support cycles.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-preferencepanes"],"cli":null},"imports":["from PreferencePanes import NSPreferencePane"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import sys\nimport platform\nfrom Foundation import NSBundle\n\n# Check macOS version as PreferencePanes.framework is deprecated\nmacos_version_tuple = tuple(map(int, platform.mac_ver()[0].split('.')))\nif macos_version_tuple >= (13, 0):\n    print(\"Warning: PreferencePanes.framework is deprecated in macOS 13+ (Ventura) and removed from the SDK in macOS 14+ (Sonoma).\")\n    print(\"This library's functionality is highly platform-dependent and may not work on recent macOS versions or with recent Xcode SDKs.\")\n    print(\"For modern macOS, consider using the Settings.framework or ServiceManagement.framework if applicable.\")\n\ntry:\n    from PreferencePanes import NSPreferencePane\n    print(f\"Successfully imported NSPreferencePane: {NSPreferencePane}\")\n\n    # Example: Trying to access a system bundle to demonstrate framework interaction\n    # Note: Creating a functional preference pane requires more complex setup (e.g., bundle structure, Info.plist)\n    bundle = NSBundle.mainBundle()\n    print(f\"Main application bundle ID: {bundle.bundleIdentifier()}\")\n\nexcept ImportError:\n    print(\"Failed to import PreferencePanes. This usually means the framework is not available on your macOS version or SDK.\")\n    print(\"Ensure you are running on macOS 12 (Monterey) or earlier for full PreferencePanes functionality, or have an older SDK installed.\")\nexcept Exception as e:\n    print(f\"An unexpected error occurred: {e}\")","lang":"python","description":"This quickstart attempts to import the main class from the `PreferencePanes` framework. It includes a critical warning about the framework's deprecation by Apple, which impacts its usability on modern macOS versions. It then demonstrates basic interaction by getting the main application bundle ID, a common pattern in macOS development.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"12.1","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.4,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.1,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.6,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyobjc-framework-preferencepanes","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":4.1,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}