{"library":"pyobjc-framework-coretext","title":"PyObjC CoreText Framework Bindings","description":"This library provides Python wrappers for the CoreText framework on macOS, enabling Python applications to interact with macOS's advanced text layout and font rendering capabilities. It is part of the larger PyObjC project, which bridges Python and Objective-C/Cocoa. The current version is 12.1, and releases typically align with new macOS SDKs and Python versions.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install pyobjc-framework-coretext"],"cli":null},"imports":["from CoreText import CTFontCreateWithFontDescriptor","from CoreText import CTFontDescriptorCreateWithNameAndSize"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from CoreText import CTFontDescriptorCreateWithNameAndSize, CTFontCreateWithFontDescriptor, CTFontGetDisplayName\nfrom Foundation import NSBundle\n\n# Check if CoreText is available (generally true on macOS)\nif NSBundle.bundleWithPath_('/System/Library/Frameworks/CoreText.framework'):\n    print('CoreText framework is available.')\n\n    # Create a font descriptor for Helvetica at 16 points\n    font_descriptor = CTFontDescriptorCreateWithNameAndSize('Helvetica', 16.0)\n    if font_descriptor:\n        # Create a CTFontRef object from the descriptor\n        font = CTFontCreateWithFontDescriptor(font_descriptor, 0.0) # 0.0 for default font matrix\n        if font:\n            font_name = CTFontGetDisplayName(font)\n            print(f'Successfully created font: {font_name}')\n            print(f'Font object type: {type(font)}')\n        else:\n            print('Failed to create font from descriptor.')\n    else:\n        print('Failed to create font descriptor.')\nelse:\n    print('CoreText framework not found on this system.')\n","lang":"python","description":"This example demonstrates how to import and use basic CoreText functions to create and inspect a font object. It checks for the framework's availability and then uses `CTFontDescriptorCreateWithNameAndSize` and `CTFontCreateWithFontDescriptor` to instantiate a font, finally printing its display name.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","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-coretext","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-coretext","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-coretext","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-coretext","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-coretext","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-coretext","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-coretext","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-coretext","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.5,"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-coretext","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-coretext","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.5,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}