pyobjc-framework-GameController 12.0__tar.gz → 12.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/GameController/_metadata.py +15 -2
  2. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/pyobjc_framework_GameController.egg-info/PKG-INFO +5 -6
  3. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/pyobjc_framework_GameController.egg-info/SOURCES.txt +3 -2
  4. pyobjc_framework_gamecontroller-12.2/Lib/pyobjc_framework_GameController.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_gamecontroller-12.2/Lib/pyobjc_framework_GameController.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Modules/_GameController_protocols.m +4 -0
  7. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Modules/pyobjc-compat.h +24 -50
  8. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PKG-INFO +5 -6
  9. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcinputnames.py +5 -0
  10. pyobjc_framework_gamecontroller-12.2/PyObjCTest/test_gcphysicalinputextents.py +32 -0
  11. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/metadata/GameController.fwinfo +207 -207
  12. pyobjc_framework_gamecontroller-12.0/metadata/raw/arm64-26.0.fwinfo → pyobjc_framework_gamecontroller-12.2/metadata/raw/arm64-26.5.fwinfo +2620 -214
  13. pyobjc_framework_gamecontroller-12.0/metadata/raw/x86_64-26.0.fwinfo → pyobjc_framework_gamecontroller-12.2/metadata/raw/x86_64-26.5.fwinfo +2620 -214
  14. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/pyobjc_setup.py +4 -5
  15. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/setup.py +1 -1
  16. pyobjc_framework_gamecontroller-12.0/Lib/pyobjc_framework_GameController.egg-info/pyobjc-build-info.txt +0 -3
  17. pyobjc_framework_gamecontroller-12.0/Lib/pyobjc_framework_GameController.egg-info/requires.txt +0 -2
  18. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/GameController/__init__.py +0 -0
  19. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/pyobjc_framework_GameController.egg-info/dependency_links.txt +0 -0
  20. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/pyobjc_framework_GameController.egg-info/not-zip-safe +0 -0
  21. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Lib/pyobjc_framework_GameController.egg-info/top_level.txt +0 -0
  22. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/License.txt +0 -0
  23. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/MANIFEST.in +0 -0
  24. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Modules/_GameController.m +0 -0
  25. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/Modules/pyobjc-api.h +0 -0
  26. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/__init__.py +0 -0
  27. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gamecontroller.py +0 -0
  28. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gamepad.py +0 -0
  29. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcaxiselement.py +0 -0
  30. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcaxisinput.py +0 -0
  31. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcbuttonelement.py +0 -0
  32. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gccontroller.py +0 -0
  33. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gccontrolleraxisinput.py +0 -0
  34. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gccontrollerbuttoninput.py +0 -0
  35. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gccontrollerdirectionpad.py +0 -0
  36. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gccontrollerelement.py +0 -0
  37. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gccontrollertouchpad.py +0 -0
  38. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdevice.py +0 -0
  39. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdevicebattery.py +0 -0
  40. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdevicehaptics.py +0 -0
  41. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdevicephysicalinput.py +0 -0
  42. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdevicephysicalinputstate.py +0 -0
  43. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdevicephysicalinputstatediff.py +0 -0
  44. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdirectionalgamepad.py +0 -0
  45. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdirectionpadelement.py +0 -0
  46. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcdualsenseadaptivetrigger.py +0 -0
  47. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gceventviewcontroller.py +0 -0
  48. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcextendedgamepad.py +0 -0
  49. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcextendedgamepadsnapshot.py +0 -0
  50. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcgamepadsnapshot.py +0 -0
  51. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gckeyboard.py +0 -0
  52. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gckeyboardinput.py +0 -0
  53. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gckeycodes.py +0 -0
  54. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gckeynames.py +0 -0
  55. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gclinearinput.py +0 -0
  56. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcmicrogamepad.py +0 -0
  57. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcmicrogamepadsnapshot.py +0 -0
  58. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcmotion.py +0 -0
  59. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcmouse.py +0 -0
  60. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcmouseinput.py +0 -0
  61. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcphysicalinputelement.py +0 -0
  62. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcphysicalinputprofile.py +0 -0
  63. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcphysicalinputsource.py +0 -0
  64. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcpressedstateinput.py +0 -0
  65. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcproductcategories.py +0 -0
  66. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcracingwheel.py +0 -0
  67. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcrelativeinput.py +0 -0
  68. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcstylus.py +0 -0
  69. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcswitchelement.py +0 -0
  70. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcswitchpositioninput.py +0 -0
  71. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gcsyntheticdevicekeys.py +0 -0
  72. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/PyObjCTest/test_gctouchedstateinput.py +0 -0
  73. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/metadata/metadata.ini +0 -0
  74. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/pyproject.toml +0 -0
  75. {pyobjc_framework_gamecontroller-12.0 → pyobjc_framework_gamecontroller-12.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Fri Jul 25 09:59:12 2025
3
+ # Last update: Thu May 28 22:00:51 2026
4
4
  #
5
5
  # flake8: noqa
6
6
 
@@ -144,7 +144,7 @@ misc.update(
144
144
  ),
145
145
  }
146
146
  )
147
- constants = """$GCControllerDidBecomeCurrentNotification$GCControllerDidConnectNotification$GCControllerDidDisconnectNotification$GCControllerDidStopBeingCurrentNotification$GCControllerUserCustomizationsDidChangeNotification$GCCurrentExtendedGamepadSnapshotDataVersion@q$GCCurrentMicroGamepadSnapshotDataVersion@q$GCHapticDurationInfinite@f$GCHapticsLocalityAll$GCHapticsLocalityDefault$GCHapticsLocalityHandles$GCHapticsLocalityLeftHandle$GCHapticsLocalityLeftTrigger$GCHapticsLocalityRightHandle$GCHapticsLocalityRightTrigger$GCHapticsLocalityTriggers$GCInputButtonA$GCInputButtonB$GCInputButtonHome$GCInputButtonMenu$GCInputButtonOptions$GCInputButtonShare$GCInputButtonX$GCInputButtonY$GCInputDirectionPad$GCInputDirectionalCardinalDpad$GCInputDirectionalCenterButton$GCInputDirectionalDpad$GCInputDirectionalTouchSurfaceButton$GCInputDualShockTouchpadButton$GCInputDualShockTouchpadOne$GCInputDualShockTouchpadTwo$GCInputGripButton$GCInputLeftBumper$GCInputLeftPaddle$GCInputLeftShoulder$GCInputLeftThumbstick$GCInputLeftThumbstickButton$GCInputLeftTrigger$GCInputMicroGamepadButtonA$GCInputMicroGamepadButtonMenu$GCInputMicroGamepadButtonX$GCInputMicroGamepadDpad$GCInputPedalAccelerator$GCInputPedalBrake$GCInputPedalClutch$GCInputRightBumper$GCInputRightPaddle$GCInputRightShoulder$GCInputRightThumbstick$GCInputRightThumbstickButton$GCInputRightTrigger$GCInputShifter$GCInputSteeringWheel$GCInputStylusPrimaryButton$GCInputStylusSecondaryButton$GCInputStylusTip$GCInputThumbstick$GCInputThumbstickButton$GCInputTrigger$GCInputXboxPaddleFour$GCInputXboxPaddleOne$GCInputXboxPaddleThree$GCInputXboxPaddleTwo$GCKeyA$GCKeyApplication$GCKeyB$GCKeyBackslash$GCKeyC$GCKeyCapsLock$GCKeyCloseBracket$GCKeyCodeApplication@q$GCKeyCodeBackslash@q$GCKeyCodeCapsLock@q$GCKeyCodeCloseBracket@q$GCKeyCodeComma@q$GCKeyCodeDeleteForward@q$GCKeyCodeDeleteOrBackspace@q$GCKeyCodeDownArrow@q$GCKeyCodeEight@q$GCKeyCodeEnd@q$GCKeyCodeEqualSign@q$GCKeyCodeEscape@q$GCKeyCodeF1@q$GCKeyCodeF10@q$GCKeyCodeF11@q$GCKeyCodeF12@q$GCKeyCodeF13@q$GCKeyCodeF14@q$GCKeyCodeF15@q$GCKeyCodeF16@q$GCKeyCodeF17@q$GCKeyCodeF18@q$GCKeyCodeF19@q$GCKeyCodeF2@q$GCKeyCodeF20@q$GCKeyCodeF3@q$GCKeyCodeF4@q$GCKeyCodeF5@q$GCKeyCodeF6@q$GCKeyCodeF7@q$GCKeyCodeF8@q$GCKeyCodeF9@q$GCKeyCodeFive@q$GCKeyCodeFour@q$GCKeyCodeGraveAccentAndTilde@q$GCKeyCodeHome@q$GCKeyCodeHyphen@q$GCKeyCodeInsert@q$GCKeyCodeInternational1@q$GCKeyCodeInternational2@q$GCKeyCodeInternational3@q$GCKeyCodeInternational4@q$GCKeyCodeInternational5@q$GCKeyCodeInternational6@q$GCKeyCodeInternational7@q$GCKeyCodeInternational8@q$GCKeyCodeInternational9@q$GCKeyCodeKeyA@q$GCKeyCodeKeyB@q$GCKeyCodeKeyC@q$GCKeyCodeKeyD@q$GCKeyCodeKeyE@q$GCKeyCodeKeyF@q$GCKeyCodeKeyG@q$GCKeyCodeKeyH@q$GCKeyCodeKeyI@q$GCKeyCodeKeyJ@q$GCKeyCodeKeyK@q$GCKeyCodeKeyL@q$GCKeyCodeKeyM@q$GCKeyCodeKeyN@q$GCKeyCodeKeyO@q$GCKeyCodeKeyP@q$GCKeyCodeKeyQ@q$GCKeyCodeKeyR@q$GCKeyCodeKeyS@q$GCKeyCodeKeyT@q$GCKeyCodeKeyU@q$GCKeyCodeKeyV@q$GCKeyCodeKeyW@q$GCKeyCodeKeyX@q$GCKeyCodeKeyY@q$GCKeyCodeKeyZ@q$GCKeyCodeKeypad0@q$GCKeyCodeKeypad1@q$GCKeyCodeKeypad2@q$GCKeyCodeKeypad3@q$GCKeyCodeKeypad4@q$GCKeyCodeKeypad5@q$GCKeyCodeKeypad6@q$GCKeyCodeKeypad7@q$GCKeyCodeKeypad8@q$GCKeyCodeKeypad9@q$GCKeyCodeKeypadAsterisk@q$GCKeyCodeKeypadEnter@q$GCKeyCodeKeypadEqualSign@q$GCKeyCodeKeypadHyphen@q$GCKeyCodeKeypadNumLock@q$GCKeyCodeKeypadPeriod@q$GCKeyCodeKeypadPlus@q$GCKeyCodeKeypadSlash@q$GCKeyCodeLANG1@q$GCKeyCodeLANG2@q$GCKeyCodeLANG3@q$GCKeyCodeLANG4@q$GCKeyCodeLANG5@q$GCKeyCodeLANG6@q$GCKeyCodeLANG7@q$GCKeyCodeLANG8@q$GCKeyCodeLANG9@q$GCKeyCodeLeftAlt@q$GCKeyCodeLeftArrow@q$GCKeyCodeLeftControl@q$GCKeyCodeLeftGUI@q$GCKeyCodeLeftShift@q$GCKeyCodeNine@q$GCKeyCodeNonUSBackslash@q$GCKeyCodeNonUSPound@q$GCKeyCodeOne@q$GCKeyCodeOpenBracket@q$GCKeyCodePageDown@q$GCKeyCodePageUp@q$GCKeyCodePause@q$GCKeyCodePeriod@q$GCKeyCodePower@q$GCKeyCodePrintScreen@q$GCKeyCodeQuote@q$GCKeyCodeReturnOrEnter@q$GCKeyCodeRightAlt@q$GCKeyCodeRightArrow@q$GCKeyCodeRightControl@q$GCKeyCodeRightGUI@q$GCKeyCodeRightShift@q$GCKeyCodeScrollLock@q$GCKeyCodeSemicolon@q$GCKeyCodeSeven@q$GCKeyCodeSix@q$GCKeyCodeSlash@q$GCKeyCodeSpacebar@q$GCKeyCodeTab@q$GCKeyCodeThree@q$GCKeyCodeTwo@q$GCKeyCodeUpArrow@q$GCKeyCodeZero@q$GCKeyComma$GCKeyD$GCKeyDeleteForward$GCKeyDeleteOrBackspace$GCKeyDownArrow$GCKeyE$GCKeyEight$GCKeyEnd$GCKeyEqualSign$GCKeyEscape$GCKeyF$GCKeyF1$GCKeyF10$GCKeyF11$GCKeyF12$GCKeyF13$GCKeyF14$GCKeyF15$GCKeyF16$GCKeyF17$GCKeyF18$GCKeyF19$GCKeyF2$GCKeyF20$GCKeyF3$GCKeyF4$GCKeyF5$GCKeyF6$GCKeyF7$GCKeyF8$GCKeyF9$GCKeyFive$GCKeyFour$GCKeyG$GCKeyGraveAccentAndTilde$GCKeyH$GCKeyHome$GCKeyHyphen$GCKeyI$GCKeyInsert$GCKeyInternational1$GCKeyInternational2$GCKeyInternational3$GCKeyInternational4$GCKeyInternational5$GCKeyInternational6$GCKeyInternational7$GCKeyInternational8$GCKeyInternational9$GCKeyJ$GCKeyK$GCKeyKeypad0$GCKeyKeypad1$GCKeyKeypad2$GCKeyKeypad3$GCKeyKeypad4$GCKeyKeypad5$GCKeyKeypad6$GCKeyKeypad7$GCKeyKeypad8$GCKeyKeypad9$GCKeyKeypadAsterisk$GCKeyKeypadEnter$GCKeyKeypadEqualSign$GCKeyKeypadHyphen$GCKeyKeypadNumLock$GCKeyKeypadPeriod$GCKeyKeypadPlus$GCKeyKeypadSlash$GCKeyL$GCKeyLANG1$GCKeyLANG2$GCKeyLANG3$GCKeyLANG4$GCKeyLANG5$GCKeyLANG6$GCKeyLANG7$GCKeyLANG8$GCKeyLANG9$GCKeyLeftAlt$GCKeyLeftArrow$GCKeyLeftControl$GCKeyLeftGUI$GCKeyLeftShift$GCKeyM$GCKeyN$GCKeyNine$GCKeyNonUSBackslash$GCKeyNonUSPound$GCKeyO$GCKeyOne$GCKeyOpenBracket$GCKeyP$GCKeyPageDown$GCKeyPageUp$GCKeyPause$GCKeyPeriod$GCKeyPower$GCKeyPrintScreen$GCKeyQ$GCKeyQuote$GCKeyR$GCKeyReturnOrEnter$GCKeyRightAlt$GCKeyRightArrow$GCKeyRightControl$GCKeyRightGUI$GCKeyRightShift$GCKeyS$GCKeyScrollLock$GCKeySemicolon$GCKeySeven$GCKeySix$GCKeySlash$GCKeySpacebar$GCKeyT$GCKeyTab$GCKeyThree$GCKeyTwo$GCKeyU$GCKeyUpArrow$GCKeyV$GCKeyW$GCKeyX$GCKeyY$GCKeyZ$GCKeyZero$GCKeyboardDidConnectNotification$GCKeyboardDidDisconnectNotification$GCMouseDidBecomeCurrentNotification$GCMouseDidConnectNotification$GCMouseDidDisconnectNotification$GCMouseDidStopBeingCurrentNotification$GCPoint2Zero@{GCPoint2=ff}$GCProductCategoryArcadeStick$GCProductCategoryCoalescedRemote$GCProductCategoryControlCenterRemote$GCProductCategoryDualSense$GCProductCategoryDualShock4$GCProductCategoryHID$GCProductCategoryKeyboard$GCProductCategoryMFi$GCProductCategoryMouse$GCProductCategorySiriRemote1stGen$GCProductCategorySiriRemote2ndGen$GCProductCategorySpatialController$GCProductCategorySpatialStylus$GCProductCategoryUniversalElectronicsRemote$GCProductCategoryXboxOne$GCRacingWheelDidConnectNotification$GCRacingWheelDidDisconnectNotification$GCStylusDidConnectNotification$GCStylusDidDisconnectNotification$"""
147
+ constants = """$GCControllerDidBecomeCurrentNotification$GCControllerDidConnectNotification$GCControllerDidDisconnectNotification$GCControllerDidStopBeingCurrentNotification$GCControllerUserCustomizationsDidChangeNotification$GCCurrentExtendedGamepadSnapshotDataVersion@q$GCCurrentMicroGamepadSnapshotDataVersion@q$GCHapticDurationInfinite@f$GCHapticsLocalityAll$GCHapticsLocalityDefault$GCHapticsLocalityHandles$GCHapticsLocalityLeftHandle$GCHapticsLocalityLeftTrigger$GCHapticsLocalityRightHandle$GCHapticsLocalityRightTrigger$GCHapticsLocalityTriggers$GCInputButtonA$GCInputButtonB$GCInputButtonHome$GCInputButtonMenu$GCInputButtonOptions$GCInputButtonShare$GCInputButtonX$GCInputButtonY$GCInputDirectionPad$GCInputDirectionalCardinalDpad$GCInputDirectionalCenterButton$GCInputDirectionalDpad$GCInputDirectionalTouchSurfaceButton$GCInputDualShockTouchpadButton$GCInputDualShockTouchpadOne$GCInputDualShockTouchpadTwo$GCInputGripButton$GCInputLeftBumper$GCInputLeftPaddle$GCInputLeftShoulder$GCInputLeftSideButton$GCInputLeftThumbstick$GCInputLeftThumbstickButton$GCInputLeftTrigger$GCInputMicroGamepadButtonA$GCInputMicroGamepadButtonMenu$GCInputMicroGamepadButtonX$GCInputMicroGamepadDpad$GCInputPedalAccelerator$GCInputPedalBrake$GCInputPedalClutch$GCInputRightBumper$GCInputRightPaddle$GCInputRightShoulder$GCInputRightSideButton$GCInputRightThumbstick$GCInputRightThumbstickButton$GCInputRightTrigger$GCInputShifter$GCInputSteeringWheel$GCInputStylusPrimaryButton$GCInputStylusSecondaryButton$GCInputStylusTip$GCInputThumbstick$GCInputThumbstickButton$GCInputTrigger$GCInputXboxPaddleFour$GCInputXboxPaddleOne$GCInputXboxPaddleThree$GCInputXboxPaddleTwo$GCKeyA$GCKeyApplication$GCKeyB$GCKeyBackslash$GCKeyC$GCKeyCapsLock$GCKeyCloseBracket$GCKeyCodeApplication@q$GCKeyCodeBackslash@q$GCKeyCodeCapsLock@q$GCKeyCodeCloseBracket@q$GCKeyCodeComma@q$GCKeyCodeDeleteForward@q$GCKeyCodeDeleteOrBackspace@q$GCKeyCodeDownArrow@q$GCKeyCodeEight@q$GCKeyCodeEnd@q$GCKeyCodeEqualSign@q$GCKeyCodeEscape@q$GCKeyCodeF1@q$GCKeyCodeF10@q$GCKeyCodeF11@q$GCKeyCodeF12@q$GCKeyCodeF13@q$GCKeyCodeF14@q$GCKeyCodeF15@q$GCKeyCodeF16@q$GCKeyCodeF17@q$GCKeyCodeF18@q$GCKeyCodeF19@q$GCKeyCodeF2@q$GCKeyCodeF20@q$GCKeyCodeF3@q$GCKeyCodeF4@q$GCKeyCodeF5@q$GCKeyCodeF6@q$GCKeyCodeF7@q$GCKeyCodeF8@q$GCKeyCodeF9@q$GCKeyCodeFive@q$GCKeyCodeFour@q$GCKeyCodeGraveAccentAndTilde@q$GCKeyCodeHome@q$GCKeyCodeHyphen@q$GCKeyCodeInsert@q$GCKeyCodeInternational1@q$GCKeyCodeInternational2@q$GCKeyCodeInternational3@q$GCKeyCodeInternational4@q$GCKeyCodeInternational5@q$GCKeyCodeInternational6@q$GCKeyCodeInternational7@q$GCKeyCodeInternational8@q$GCKeyCodeInternational9@q$GCKeyCodeKeyA@q$GCKeyCodeKeyB@q$GCKeyCodeKeyC@q$GCKeyCodeKeyD@q$GCKeyCodeKeyE@q$GCKeyCodeKeyF@q$GCKeyCodeKeyG@q$GCKeyCodeKeyH@q$GCKeyCodeKeyI@q$GCKeyCodeKeyJ@q$GCKeyCodeKeyK@q$GCKeyCodeKeyL@q$GCKeyCodeKeyM@q$GCKeyCodeKeyN@q$GCKeyCodeKeyO@q$GCKeyCodeKeyP@q$GCKeyCodeKeyQ@q$GCKeyCodeKeyR@q$GCKeyCodeKeyS@q$GCKeyCodeKeyT@q$GCKeyCodeKeyU@q$GCKeyCodeKeyV@q$GCKeyCodeKeyW@q$GCKeyCodeKeyX@q$GCKeyCodeKeyY@q$GCKeyCodeKeyZ@q$GCKeyCodeKeypad0@q$GCKeyCodeKeypad1@q$GCKeyCodeKeypad2@q$GCKeyCodeKeypad3@q$GCKeyCodeKeypad4@q$GCKeyCodeKeypad5@q$GCKeyCodeKeypad6@q$GCKeyCodeKeypad7@q$GCKeyCodeKeypad8@q$GCKeyCodeKeypad9@q$GCKeyCodeKeypadAsterisk@q$GCKeyCodeKeypadEnter@q$GCKeyCodeKeypadEqualSign@q$GCKeyCodeKeypadHyphen@q$GCKeyCodeKeypadNumLock@q$GCKeyCodeKeypadPeriod@q$GCKeyCodeKeypadPlus@q$GCKeyCodeKeypadSlash@q$GCKeyCodeLANG1@q$GCKeyCodeLANG2@q$GCKeyCodeLANG3@q$GCKeyCodeLANG4@q$GCKeyCodeLANG5@q$GCKeyCodeLANG6@q$GCKeyCodeLANG7@q$GCKeyCodeLANG8@q$GCKeyCodeLANG9@q$GCKeyCodeLeftAlt@q$GCKeyCodeLeftArrow@q$GCKeyCodeLeftControl@q$GCKeyCodeLeftGUI@q$GCKeyCodeLeftShift@q$GCKeyCodeNine@q$GCKeyCodeNonUSBackslash@q$GCKeyCodeNonUSPound@q$GCKeyCodeOne@q$GCKeyCodeOpenBracket@q$GCKeyCodePageDown@q$GCKeyCodePageUp@q$GCKeyCodePause@q$GCKeyCodePeriod@q$GCKeyCodePower@q$GCKeyCodePrintScreen@q$GCKeyCodeQuote@q$GCKeyCodeReturnOrEnter@q$GCKeyCodeRightAlt@q$GCKeyCodeRightArrow@q$GCKeyCodeRightControl@q$GCKeyCodeRightGUI@q$GCKeyCodeRightShift@q$GCKeyCodeScrollLock@q$GCKeyCodeSemicolon@q$GCKeyCodeSeven@q$GCKeyCodeSix@q$GCKeyCodeSlash@q$GCKeyCodeSpacebar@q$GCKeyCodeTab@q$GCKeyCodeThree@q$GCKeyCodeTwo@q$GCKeyCodeUpArrow@q$GCKeyCodeZero@q$GCKeyComma$GCKeyD$GCKeyDeleteForward$GCKeyDeleteOrBackspace$GCKeyDownArrow$GCKeyE$GCKeyEight$GCKeyEnd$GCKeyEqualSign$GCKeyEscape$GCKeyF$GCKeyF1$GCKeyF10$GCKeyF11$GCKeyF12$GCKeyF13$GCKeyF14$GCKeyF15$GCKeyF16$GCKeyF17$GCKeyF18$GCKeyF19$GCKeyF2$GCKeyF20$GCKeyF3$GCKeyF4$GCKeyF5$GCKeyF6$GCKeyF7$GCKeyF8$GCKeyF9$GCKeyFive$GCKeyFour$GCKeyG$GCKeyGraveAccentAndTilde$GCKeyH$GCKeyHome$GCKeyHyphen$GCKeyI$GCKeyInsert$GCKeyInternational1$GCKeyInternational2$GCKeyInternational3$GCKeyInternational4$GCKeyInternational5$GCKeyInternational6$GCKeyInternational7$GCKeyInternational8$GCKeyInternational9$GCKeyJ$GCKeyK$GCKeyKeypad0$GCKeyKeypad1$GCKeyKeypad2$GCKeyKeypad3$GCKeyKeypad4$GCKeyKeypad5$GCKeyKeypad6$GCKeyKeypad7$GCKeyKeypad8$GCKeyKeypad9$GCKeyKeypadAsterisk$GCKeyKeypadEnter$GCKeyKeypadEqualSign$GCKeyKeypadHyphen$GCKeyKeypadNumLock$GCKeyKeypadPeriod$GCKeyKeypadPlus$GCKeyKeypadSlash$GCKeyL$GCKeyLANG1$GCKeyLANG2$GCKeyLANG3$GCKeyLANG4$GCKeyLANG5$GCKeyLANG6$GCKeyLANG7$GCKeyLANG8$GCKeyLANG9$GCKeyLeftAlt$GCKeyLeftArrow$GCKeyLeftControl$GCKeyLeftGUI$GCKeyLeftShift$GCKeyM$GCKeyN$GCKeyNine$GCKeyNonUSBackslash$GCKeyNonUSPound$GCKeyO$GCKeyOne$GCKeyOpenBracket$GCKeyP$GCKeyPageDown$GCKeyPageUp$GCKeyPause$GCKeyPeriod$GCKeyPower$GCKeyPrintScreen$GCKeyQ$GCKeyQuote$GCKeyR$GCKeyReturnOrEnter$GCKeyRightAlt$GCKeyRightArrow$GCKeyRightControl$GCKeyRightGUI$GCKeyRightShift$GCKeyS$GCKeyScrollLock$GCKeySemicolon$GCKeySeven$GCKeySix$GCKeySlash$GCKeySpacebar$GCKeyT$GCKeyTab$GCKeyThree$GCKeyTwo$GCKeyU$GCKeyUpArrow$GCKeyV$GCKeyW$GCKeyX$GCKeyY$GCKeyZ$GCKeyZero$GCKeyboardDidConnectNotification$GCKeyboardDidDisconnectNotification$GCMouseDidBecomeCurrentNotification$GCMouseDidConnectNotification$GCMouseDidDisconnectNotification$GCMouseDidStopBeingCurrentNotification$GCPoint2Zero@{GCPoint2=ff}$GCProductCategoryArcadeStick$GCProductCategoryCoalescedRemote$GCProductCategoryControlCenterRemote$GCProductCategoryDualSense$GCProductCategoryDualShock4$GCProductCategoryHID$GCProductCategoryKeyboard$GCProductCategoryMFi$GCProductCategoryMouse$GCProductCategorySiriRemote1stGen$GCProductCategorySiriRemote2ndGen$GCProductCategorySpatialController$GCProductCategorySpatialStylus$GCProductCategoryUniversalElectronicsRemote$GCProductCategoryXboxOne$GCRacingWheelDidConnectNotification$GCRacingWheelDidDisconnectNotification$GCStylusDidConnectNotification$GCStylusDidDisconnectNotification$"""
148
148
  enums = """$GCControllerPlayerIndex1@0$GCControllerPlayerIndex2@1$GCControllerPlayerIndex3@2$GCControllerPlayerIndex4@3$GCControllerPlayerIndexUnset@-1$GCDeviceBatteryStateCharging@1$GCDeviceBatteryStateDischarging@0$GCDeviceBatteryStateFull@2$GCDeviceBatteryStateUnknown@-1$GCDevicePhysicalInputElementChanged@1$GCDevicePhysicalInputElementNoChange@0$GCDevicePhysicalInputElementUnknownChange@-1$GCDualSenseAdaptiveTriggerDiscretePositionCount@10$GCDualSenseAdaptiveTriggerModeFeedback@1$GCDualSenseAdaptiveTriggerModeOff@0$GCDualSenseAdaptiveTriggerModeSlopeFeedback@4$GCDualSenseAdaptiveTriggerModeVibration@3$GCDualSenseAdaptiveTriggerModeWeapon@2$GCDualSenseAdaptiveTriggerStatusFeedbackLoadApplied@1$GCDualSenseAdaptiveTriggerStatusFeedbackNoLoad@0$GCDualSenseAdaptiveTriggerStatusSlopeFeedbackApplyingLoad@8$GCDualSenseAdaptiveTriggerStatusSlopeFeedbackFinished@9$GCDualSenseAdaptiveTriggerStatusSlopeFeedbackReady@7$GCDualSenseAdaptiveTriggerStatusUnknown@-1$GCDualSenseAdaptiveTriggerStatusVibrationIsVibrating@6$GCDualSenseAdaptiveTriggerStatusVibrationNotVibrating@5$GCDualSenseAdaptiveTriggerStatusWeaponFired@4$GCDualSenseAdaptiveTriggerStatusWeaponFiring@3$GCDualSenseAdaptiveTriggerStatusWeaponReady@2$GCExtendedGamepadSnapshotDataVersion1@256$GCExtendedGamepadSnapshotDataVersion2@257$GCMicroGamepadSnapshotDataVersion1@256$GCPhysicalInputSourceDirectionDown@4$GCPhysicalInputSourceDirectionLeft@8$GCPhysicalInputSourceDirectionNotApplicable@0$GCPhysicalInputSourceDirectionRight@2$GCPhysicalInputSourceDirectionUp@1$GCSystemGestureStateAlwaysReceive@1$GCSystemGestureStateDisabled@2$GCSystemGestureStateEnabled@0$GCTouchStateDown@1$GCTouchStateMoving@2$GCTouchStateUp@0$"""
149
149
  misc.update(
150
150
  {
@@ -1041,12 +1041,15 @@ try:
1041
1041
  r(b"NSObject", b"lastValueTimestamp", {"required": True, "retval": {"type": b"d"}})
1042
1042
  r(b"NSObject", b"left", {"required": True, "retval": {"type": b"@"}})
1043
1043
  r(b"NSObject", b"localizedName", {"required": True, "retval": {"type": b"@"}})
1044
+ r(b"NSObject", b"maximumValue", {"required": True, "retval": {"type": b"d"}})
1045
+ r(b"NSObject", b"minimumValue", {"required": True, "retval": {"type": b"d"}})
1044
1046
  r(b"NSObject", b"nextInputState", {"required": True, "retval": {"type": b"@"}})
1045
1047
  r(
1046
1048
  b"NSObject",
1047
1049
  b"objectForKeyedSubscript:",
1048
1050
  {"required": True, "retval": {"type": b"@"}, "arguments": {2: {"type": b"@"}}},
1049
1051
  )
1052
+ r(b"NSObject", b"physicalExtents", {"required": True, "retval": {"type": b"@"}})
1050
1053
  r(
1051
1054
  b"NSObject",
1052
1055
  b"physicalInputProfile",
@@ -1102,6 +1105,7 @@ try:
1102
1105
  r(b"NSObject", b"queue", {"required": True, "retval": {"type": b"@"}})
1103
1106
  r(b"NSObject", b"relativeInput", {"required": True, "retval": {"type": b"@"}})
1104
1107
  r(b"NSObject", b"right", {"required": True, "retval": {"type": b"@"}})
1108
+ r(b"NSObject", b"scaledValue", {"required": True, "retval": {"type": b"d"}})
1105
1109
  r(
1106
1110
  b"NSObject",
1107
1111
  b"setDeltaDidChangeHandler:",
@@ -1316,7 +1320,11 @@ try:
1316
1320
  finally:
1317
1321
  objc._updatingMetadata(False)
1318
1322
 
1323
+ objc.registerNewKeywordsFromSelector("GCColor", b"init")
1319
1324
  objc.registerNewKeywordsFromSelector("GCColor", b"initWithRed:green:blue:")
1325
+ objc.registerNewKeywordsFromSelector("GCDeviceBattery", b"init")
1326
+ objc.registerNewKeywordsFromSelector("GCDeviceHaptics", b"init")
1327
+ objc.registerNewKeywordsFromSelector("GCDeviceLight", b"init")
1320
1328
  objc.registerNewKeywordsFromSelector(
1321
1329
  "GCExtendedGamepadSnapshot", b"initWithController:snapshotData:"
1322
1330
  )
@@ -1331,6 +1339,11 @@ objc.registerNewKeywordsFromSelector(
1331
1339
  "GCMicroGamepadSnapshot", b"initWithController:snapshotData:"
1332
1340
  )
1333
1341
  objc.registerNewKeywordsFromSelector("GCMicroGamepadSnapshot", b"initWithSnapshotData:")
1342
+ objc.registerNewKeywordsFromSelector("GCPhysicalInputElementCollection", b"init")
1343
+ objc.registerNewKeywordsFromSelector("GCRacingWheel", b"init")
1344
+ objc.registerNewKeywordsFromSelector("GCSteeringWheelElement", b"init")
1345
+
1346
+ objc.registerNewKeywords("NSValue", ("GCPoint2",), "valueWithGCPoint2_")
1334
1347
  expressions = {}
1335
1348
 
1336
1349
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-GameController
3
- Version: 12.0
3
+ Version: 12.2
4
4
  Summary: Wrappers for the framework GameController on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,7 +17,6 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.9
21
20
  Classifier: Programming Language :: Python :: 3.10
22
21
  Classifier: Programming Language :: Python :: 3.11
23
22
  Classifier: Programming Language :: Python :: 3.12
@@ -25,14 +24,14 @@ Classifier: Programming Language :: Python :: 3.13
25
24
  Classifier: Programming Language :: Python :: 3.14
26
25
  Classifier: Programming Language :: Python :: 3.15
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
- Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
27
+ Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
29
28
  Classifier: Programming Language :: Objective C
30
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
30
  Classifier: Topic :: Software Development :: User Interfaces
32
- Requires-Python: >=3.9
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/x-rst; charset=UTF-8
34
- Requires-Dist: pyobjc-core>=12.0
35
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
33
+ Requires-Dist: pyobjc-core>=12.2
34
+ Requires-Dist: pyobjc-framework-Cocoa>=12.2
36
35
  Dynamic: author
37
36
  Dynamic: author-email
38
37
  Dynamic: classifier
@@ -53,6 +53,7 @@ PyObjCTest/test_gcmotion.py
53
53
  PyObjCTest/test_gcmouse.py
54
54
  PyObjCTest/test_gcmouseinput.py
55
55
  PyObjCTest/test_gcphysicalinputelement.py
56
+ PyObjCTest/test_gcphysicalinputextents.py
56
57
  PyObjCTest/test_gcphysicalinputprofile.py
57
58
  PyObjCTest/test_gcphysicalinputsource.py
58
59
  PyObjCTest/test_gcpressedstateinput.py
@@ -66,5 +67,5 @@ PyObjCTest/test_gcsyntheticdevicekeys.py
66
67
  PyObjCTest/test_gctouchedstateinput.py
67
68
  metadata/GameController.fwinfo
68
69
  metadata/metadata.ini
69
- metadata/raw/arm64-26.0.fwinfo
70
- metadata/raw/x86_64-26.0.fwinfo
70
+ metadata/raw/arm64-26.5.fwinfo
71
+ metadata/raw/x86_64-26.5.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 26.5 (25F71)
2
+ Apple clang version 21.0.0 (clang-2100.1.1.101)
3
+ SDK: macOS 26.5
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=12.2
2
+ pyobjc-framework-Cocoa>=12.2
@@ -53,4 +53,8 @@ use_protocols(void)
53
53
  p = PyObjC_IdToPython(@protocol(GCPhysicalInputSource));
54
54
  Py_XDECREF(p);
55
55
  #endif
56
+ #if PyObjC_BUILD_RELEASE >= 2602
57
+ p = PyObjC_IdToPython(@protocol(GCPhysicalInputExtents));
58
+ Py_XDECREF(p);
59
+ #endif
56
60
  }
@@ -22,12 +22,14 @@ NS_ASSUME_NONNULL_BEGIN
22
22
  * Start of compiler definitions
23
23
  *
24
24
  */
25
+ #if 0
25
26
  #ifndef __has_feature
26
27
  #define __has_feature(x) 0
27
28
  #endif
28
29
  #ifndef __has_extension
29
30
  #define __has_extension(x) __has_feature(x)
30
31
  #endif
32
+ #endif
31
33
 
32
34
  #if __has_extension(c_static_assert)
33
35
  #define STATIC_ASSERT(test, message) _Static_assert(test, message)
@@ -55,46 +57,10 @@ NS_ASSUME_NONNULL_BEGIN
55
57
  /*
56
58
  *
57
59
  * Start of compiler support helpers
58
- *
59
- * XXX: Are these needed?
60
60
  */
61
61
 
62
- #ifdef __GNUC__
63
62
  #define unlikely(x) __builtin_expect(!!(x), 0)
64
63
  #define likely(x) __builtin_expect(!!(x), 1)
65
- #else
66
- #define likely(x) x
67
- #define likely(x) x
68
- #endif
69
-
70
- /* On some versions of GCC <limits.h> defines LONG_LONG_MAX but not LLONG_MAX, compensate.
71
- */
72
- #ifndef LLONG_MIN
73
- #ifdef LONG_LONG_MIN
74
- #define LLONG_MIN LONG_LONG_MIN
75
- #define LLONG_MAX LONG_LONG_MAX
76
- #define ULLONG_MAX ULONG_LONG_MAX
77
- #endif
78
- #endif
79
-
80
- /*
81
- *
82
- * End of compiler support helpers
83
- *
84
- * XXX: These two are no longer needed, all supported platforms
85
- * are 64-bit
86
- */
87
-
88
- #if __LP64__
89
- #define Py_ARG_NSInteger "l"
90
- #define Py_ARG_NSUInteger "k"
91
- #else
92
- #define Py_ARG_NSInteger "i"
93
- #define Py_ARG_NSUInteger "I"
94
- #endif
95
-
96
- #define PyObjC__STR(x) #x
97
- #define PyObjC_STR(x) PyObjC__STR(x)
98
64
 
99
65
  /*
100
66
  *
@@ -131,20 +97,6 @@ NS_ASSUME_NONNULL_BEGIN
131
97
 
132
98
  extern int PyObjC_Cmp(PyObject* o1, PyObject* o2, int* result);
133
99
 
134
- /*
135
- * A micro optimization: when using Python 3.3 or later it
136
- * is possible to access a 'char*' with an ASCII representation
137
- * of a unicode object without first converting it to a bytes
138
- * string (if the string can be encoded as ASCII in the first
139
- * place.
140
- *
141
- * This slightly reduces the object allocation rate during
142
- * attribute access.
143
- *
144
- * XXX: Use PyUnicode_AsUTF8 instead.
145
- */
146
- extern const char* _Nullable PyObjC_Unicode_Fast_Bytes(PyObject* object);
147
-
148
100
  #ifdef __clang__
149
101
 
150
102
  #ifndef Py_LIMITED_API
@@ -286,6 +238,23 @@ static inline PyObject* _Nullable PyList_GetItemRef(PyObject* l, Py_ssize_t i)
286
238
  Py_XINCREF(result);
287
239
  return result;
288
240
  }
241
+
242
+ static inline int
243
+ PyDict_SetDefaultRef(PyObject* p, PyObject* key, PyObject* default_value,
244
+ PyObject* _Nonnull* _Nullable result)
245
+ {
246
+ *result = PyDict_SetDefault(p, key, default_value);
247
+ if (*result == NULL) {
248
+ return -1;
249
+ }
250
+ Py_INCREF(*result);
251
+
252
+ /* This does not follow the spec, should return 1 when the key was already
253
+ * in the dict. That part of the API is not used in PyObjC though.
254
+ */
255
+ return 0;
256
+ }
257
+
289
258
  #endif
290
259
 
291
260
  #if PY_VERSION_HEX < 0x030c0000
@@ -392,6 +361,11 @@ PyUnstable_TryIncRef(PyObject* op __attribute__((__unused__)))
392
361
  }
393
362
  #endif
394
363
 
364
+ #if PY_VERSION_HEX < 0x030f00a7
365
+ #define PyAnyDict_CheckExact PyDict_CheckExact
366
+ #define PyAnyDict_Check PyDict_Check
367
+ #endif
368
+
395
369
  NS_ASSUME_NONNULL_END
396
370
 
397
371
  #endif /* PyObjC_COMPAT_H */
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-GameController
3
- Version: 12.0
3
+ Version: 12.2
4
4
  Summary: Wrappers for the framework GameController on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,7 +17,6 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.9
21
20
  Classifier: Programming Language :: Python :: 3.10
22
21
  Classifier: Programming Language :: Python :: 3.11
23
22
  Classifier: Programming Language :: Python :: 3.12
@@ -25,14 +24,14 @@ Classifier: Programming Language :: Python :: 3.13
25
24
  Classifier: Programming Language :: Python :: 3.14
26
25
  Classifier: Programming Language :: Python :: 3.15
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
- Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
27
+ Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
29
28
  Classifier: Programming Language :: Objective C
30
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
30
  Classifier: Topic :: Software Development :: User Interfaces
32
- Requires-Python: >=3.9
31
+ Requires-Python: >=3.10
33
32
  Description-Content-Type: text/x-rst; charset=UTF-8
34
- Requires-Dist: pyobjc-core>=12.0
35
- Requires-Dist: pyobjc-framework-Cocoa>=12.0
33
+ Requires-Dist: pyobjc-core>=12.2
34
+ Requires-Dist: pyobjc-framework-Cocoa>=12.2
36
35
  Dynamic: author
37
36
  Dynamic: author-email
38
37
  Dynamic: classifier
@@ -58,6 +58,11 @@ class TestGCInputNames(TestCase):
58
58
  self.assertIsInstance(GameController.GCInputStylusPrimaryButton, str)
59
59
  self.assertIsInstance(GameController.GCInputStylusSecondaryButton, str)
60
60
 
61
+ @min_os_level("26.4")
62
+ def test_constants26_4(self):
63
+ self.assertIsInstance(GameController.GCInputLeftSideButton, str)
64
+ self.assertIsInstance(GameController.GCInputRightSideButton, str)
65
+
61
66
  def test_enum_types(self):
62
67
  self.assertIsTypedEnum(GameController.GCInputElementName, str)
63
68
  self.assertIsTypedEnum(GameController.GCInputButtonName, str)
@@ -0,0 +1,32 @@
1
+ from PyObjCTools.TestSupport import TestCase, min_sdk_level
2
+ import objc
3
+
4
+ import GameController
5
+
6
+
7
+ class TestGCPhysicalInputExtentsHelper(GameController.NSObject):
8
+ def scaledValue(self):
9
+ return 1
10
+
11
+ def minimumValue(self):
12
+ return 1
13
+
14
+ def maximumValue(self):
15
+ return 1
16
+
17
+
18
+ class TestGCPhysicalInputExtents(TestCase):
19
+ @min_sdk_level("26.2")
20
+ def test_protocols(self):
21
+ self.assertProtocolExists("GCPhysicalInputExtents")
22
+
23
+ def test_protocol_methods(self):
24
+ self.assertResultHasType(
25
+ TestGCPhysicalInputExtentsHelper.scaledValue, objc._C_DBL
26
+ )
27
+ self.assertResultHasType(
28
+ TestGCPhysicalInputExtentsHelper.minimumValue, objc._C_DBL
29
+ )
30
+ self.assertResultHasType(
31
+ TestGCPhysicalInputExtentsHelper.maximumValue, objc._C_DBL
32
+ )