{"library":"pyobjc-framework-discrecordingui","title":"PyObjC DiscRecordingUI Framework","description":"PyObjC is a bidirectional bridge that allows Python programs to interact with Objective-C frameworks on macOS. This package, `pyobjc-framework-discrecordingui`, provides Python wrappers for the DiscRecordingUI framework, enabling developers to integrate disc burning and erasing user interfaces into their macOS applications. The library is actively maintained, currently at version 12.1, with releases often tied to new macOS SDK updates and Python version support cycles.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-discrecordingui"],"cli":null},"imports":["from DiscRecordingUI import DRBurnSetup","from DiscRecordingUI import DRBurnSession","from DiscRecordingUI import DRBurnSetupPanel"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import objc\nfrom Foundation import NSObject, NSApplication\nfrom AppKit import NSApplicationActivationPolicyRegular\nfrom PyObjCTools import AppHelper\nfrom DiscRecordingUI import DRBurnSetupPanel, DRBurnSetup, DRBurnCompletionAction\n\n\nclass AppDelegate(NSObject):\n    def applicationDidFinishLaunching_(self, notification):\n        print(\"Application started.\")\n        # Create a burn setup panel (example usage)\n        panel = DRBurnSetupPanel.new()\n        \n        # In a real application, you'd present this panel and handle its delegate methods\n        # For demonstration, we'll just show its existence.\n        print(f\"Created DRBurnSetupPanel: {panel}\")\n        \n        # To prevent the app from immediately quitting in a simple script,\n        # a real UI event loop is needed. For CLI demo, we can just let it exit.\n        # If you were to present a panel, you'd typically do something like:\n        # panel.beginSetupSheetForWindow_modalDelegate_didEndSelector_contextInfo_(\n        #    None, self, 'burnSetupSheetDidEnd_returnCode_contextInfo:', None)\n        \n        # For a truly minimal UI app to stay open:\n        # NSApp.run()\n\n    def applicationWillTerminate_(self, notification):\n        print(\"Application will terminate.\")\n\nif __name__ == '__main__':\n    # Initialize the NSApplication\n    app = NSApplication.sharedApplication()\n    app.setActivationPolicy_(NSApplicationActivationPolicyRegular)\n\n    # Create and set the delegate\n    delegate = AppDelegate.alloc().init()\n    app.setDelegate_(delegate)\n\n    # Run the application event loop\n    # For a real GUI app, this keeps it running.\n    # For this minimal example, it might exit quickly if no windows are shown.\n    AppHelper.runEventLoop()","lang":"python","description":"This quickstart demonstrates the basic structure of a PyObjC application, using `NSApplication` and `PyObjCTools.AppHelper` to manage the event loop. It shows how to import and instantiate a class from the `DiscRecordingUI` framework (e.g., `DRBurnSetupPanel`). In a full application, you would present UI elements and implement delegate methods to interact with them.","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-discrecordingui","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-discrecordingui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3,"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-discrecordingui","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-discrecordingui","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-discrecordingui","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-discrecordingui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3,"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-discrecordingui","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-discrecordingui","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-discrecordingui","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-discrecordingui","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.9,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}