pythonnative 0.53.0__tar.gz → 0.54.0__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 (727) hide show
  1. {pythonnative-0.53.0/src/pythonnative.egg-info → pythonnative-0.54.0}/PKG-INFO +4 -4
  2. {pythonnative-0.53.0 → pythonnative-0.54.0}/README.md +3 -3
  3. {pythonnative-0.53.0 → pythonnative-0.54.0}/pyproject.toml +1 -1
  4. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/__init__.py +89 -28
  5. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/audio/native/schema.json +1 -1
  6. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/background/native/schema.json +1 -1
  7. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/biometrics/native/schema.json +1 -1
  8. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/__init__.py +8 -5
  9. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/android.py +7 -3
  10. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/codec.py +2 -2
  11. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/core.py +72 -10
  12. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/fake.py +84 -13
  13. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/ios.py +7 -3
  14. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bridge/web.py +7 -3
  15. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/schema.json +45 -97
  16. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/_base.py +1 -7
  17. pythonnative-0.54.0/src/pythonnative/components/bottom_sheet.py +284 -0
  18. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/controls.py +7 -7
  19. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/events.py +4 -3
  20. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/graphics.py +4 -4
  21. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/lists.py +55 -6
  22. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/media.py +3 -3
  23. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/props.py +43 -4
  24. pythonnative-0.54.0/src/pythonnative/components/swipeable.py +182 -0
  25. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/text.py +4 -4
  26. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/compat.py +1 -2
  27. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/core/mount.js +76 -10
  28. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/core/pn_core.js +1 -1
  29. pythonnative-0.54.0/src/pythonnative/devserver/static/core/pn_core.wasm +0 -0
  30. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/preview.css +3 -1
  31. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/renderer.js +604 -97
  32. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/shell.js +2 -1
  33. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/events.py +43 -5
  34. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/gestures.py +63 -33
  35. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/hot_reload.py +14 -0
  36. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/icons/__init__.py +2 -2
  37. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/journal.py +1 -1
  38. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/lint.py +112 -6
  39. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/location/native/schema.json +1 -1
  40. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/native/schema.json +45 -97
  41. pythonnative-0.54.0/src/pythonnative/motion/__init__.py +127 -0
  42. pythonnative-0.54.0/src/pythonnative/motion/animations.py +686 -0
  43. pythonnative-0.54.0/src/pythonnative/motion/compiler.py +766 -0
  44. pythonnative-0.54.0/src/pythonnative/motion/hooks.py +185 -0
  45. pythonnative-0.54.0/src/pythonnative/motion/layout.py +264 -0
  46. pythonnative-0.54.0/src/pythonnative/motion/precompile.py +159 -0
  47. pythonnative-0.54.0/src/pythonnative/motion/program.py +147 -0
  48. pythonnative-0.54.0/src/pythonnative/motion/runtime.py +478 -0
  49. pythonnative-0.54.0/src/pythonnative/motion/shared.py +95 -0
  50. pythonnative-0.54.0/src/pythonnative/motion/transitions.py +60 -0
  51. pythonnative-0.54.0/src/pythonnative/motion/worklets.py +360 -0
  52. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/cpp/pncore_jni.cpp +12 -0
  53. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +24 -4
  54. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +2 -2
  55. pythonnative-0.54.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/MotionTiming.kt +163 -0
  56. pythonnative-0.54.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNItemAnimator.kt +212 -0
  57. pythonnative-0.54.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNMotionApplier.kt +53 -0
  58. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +28 -5
  59. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +14 -1
  60. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +103 -1
  61. pythonnative-0.54.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SharedElementFlight.kt +158 -0
  62. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +0 -8
  63. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +18 -31
  64. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +37 -0
  65. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/core/PNCore.kt +35 -8
  66. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/mount/MountDecoder.kt +32 -6
  67. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/mount/Mounter.kt +126 -3
  68. pythonnative-0.54.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/MotionRobolectricTest.kt +309 -0
  69. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/MountDecoderTest.kt +28 -10
  70. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/include/pn_core.h +27 -7
  71. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/core.cpp +46 -16
  72. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/core.h +5 -2
  73. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/gestures.cpp +0 -1
  74. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/gestures.h +0 -1
  75. pythonnative-0.54.0/src/pythonnative/native/core/src/motion_anim.cpp +657 -0
  76. pythonnative-0.54.0/src/pythonnative/native/core/src/motion_anim.h +52 -0
  77. pythonnative-0.54.0/src/pythonnative/native/core/src/motion_runtime.cpp +1431 -0
  78. pythonnative-0.54.0/src/pythonnative/native/core/src/motion_runtime.h +230 -0
  79. pythonnative-0.54.0/src/pythonnative/native/core/src/motion_vm.cpp +1584 -0
  80. pythonnative-0.54.0/src/pythonnative/native/core/src/motion_vm.h +226 -0
  81. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/mount.cpp +102 -14
  82. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/mount.h +9 -3
  83. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/shadow.cpp +170 -2
  84. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/shadow.h +35 -2
  85. pythonnative-0.54.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNMotionApplier.swift +177 -0
  86. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCoreBridge.swift +4 -2
  87. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +20 -6
  88. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +35 -3
  89. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +133 -6
  90. pythonnative-0.54.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNSharedElementTransition.swift +302 -0
  91. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +5 -46
  92. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +0 -3
  93. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +177 -6
  94. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +24 -4
  95. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +2 -2
  96. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +31 -0
  97. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Mount/PNMountDecoder.swift +35 -6
  98. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Mount/PNMounter.swift +119 -17
  99. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +14 -3
  100. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/project.pbxproj +4 -2
  101. pythonnative-0.54.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/contracts.json +1 -0
  102. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNCoreHarness.swift +10 -6
  103. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +47 -14
  104. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +33 -0
  105. pythonnative-0.54.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNMotionTests.swift +479 -0
  106. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNMountTests.swift +2 -0
  107. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNParityTests.swift +1 -65
  108. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_views/bridge_backend.py +40 -36
  109. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/linking.py +51 -3
  110. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/navigators.py +104 -26
  111. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/notifications/native/schema.json +1 -1
  112. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/pickers/native/schema.json +1 -1
  113. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/builder.py +19 -1
  114. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/purchases/native/schema.json +1 -1
  115. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/push/native/schema.json +1 -1
  116. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/reconciler/core.py +17 -14
  117. pythonnative-0.54.0/src/pythonnative/sdk/_builtin_contracts.json +1 -0
  118. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/_components.py +5 -3
  119. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/builtins.py +14 -15
  120. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/schema.py +13 -1
  121. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/types.py +13 -5
  122. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sensors/native/schema.json +1 -1
  123. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/style.py +48 -6
  124. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/testing/backend.py +18 -2
  125. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/testing/harness.py +61 -0
  126. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/testing/pytest_plugin.py +1 -2
  127. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/video/native/schema.json +45 -95
  128. {pythonnative-0.53.0 → pythonnative-0.54.0/src/pythonnative.egg-info}/PKG-INFO +4 -4
  129. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative.egg-info/SOURCES.txt +31 -9
  130. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_bridge.py +6 -33
  131. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_cli.py +2 -3
  132. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_codegen.py +22 -1
  133. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_core.py +396 -79
  134. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_e2e_suite_renders.py +271 -21
  135. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_lint.py +47 -1
  136. pythonnative-0.54.0/tests/test_motion.py +605 -0
  137. pythonnative-0.54.0/tests/test_motion_compiler.py +182 -0
  138. pythonnative-0.53.0/tests/test_animated_easing.py → pythonnative-0.54.0/tests/test_motion_easing.py +10 -76
  139. pythonnative-0.54.0/tests/test_motion_vm.py +320 -0
  140. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_navigation.py +234 -5
  141. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_release_packaging.py +0 -1
  142. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_runtime_contracts.py +0 -50
  143. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_style.py +12 -1
  144. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_typed_events.py +2 -10
  145. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_web_transport.py +10 -8
  146. pythonnative-0.53.0/src/pythonnative/animated.py +0 -1988
  147. pythonnative-0.53.0/src/pythonnative/animation_graph.py +0 -108
  148. pythonnative-0.53.0/src/pythonnative/devserver/static/core/pn_core.wasm +0 -0
  149. pythonnative-0.53.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +0 -48
  150. pythonnative-0.53.0/src/pythonnative/native/core/src/animation.cpp +0 -643
  151. pythonnative-0.53.0/src/pythonnative/native/core/src/animation.h +0 -121
  152. pythonnative-0.53.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +0 -91
  153. pythonnative-0.53.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/contracts.json +0 -1
  154. pythonnative-0.53.0/src/pythonnative/sdk/_builtin_contracts.json +0 -1
  155. pythonnative-0.53.0/tests/test_animated.py +0 -714
  156. pythonnative-0.53.0/tests/test_animated_graph.py +0 -460
  157. {pythonnative-0.53.0 → pythonnative-0.54.0}/.github/workflows/release.yml +0 -0
  158. {pythonnative-0.53.0 → pythonnative-0.54.0}/LICENSE +0 -0
  159. {pythonnative-0.53.0 → pythonnative-0.54.0}/MANIFEST.in +0 -0
  160. {pythonnative-0.53.0 → pythonnative-0.54.0}/scripts/check-distributions.py +0 -0
  161. {pythonnative-0.53.0 → pythonnative-0.54.0}/scripts/cibuildwheel.toml +0 -0
  162. {pythonnative-0.53.0 → pythonnative-0.54.0}/scripts/release-assets.py +0 -0
  163. {pythonnative-0.53.0 → pythonnative-0.54.0}/setup.cfg +0 -0
  164. {pythonnative-0.53.0 → pythonnative-0.54.0}/setup.py +0 -0
  165. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/_ios_log.py +0 -0
  166. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/alerts.py +0 -0
  167. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/appearance.py +0 -0
  168. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/assets/__init__.py +0 -0
  169. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/assets/fonts.py +0 -0
  170. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/audio/__init__.py +0 -0
  171. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/audio/native/android/com/pythonnative/plugins/audio/AudioPlugin.kt +0 -0
  172. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/audio/native/ios/AudioPlugin.swift +0 -0
  173. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/audio/native/pn_plugin.json +0 -0
  174. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/audio/native/web/index.js +0 -0
  175. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/background/__init__.py +0 -0
  176. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/background/native/android/com/pythonnative/plugins/background/BackgroundPlugin.kt +0 -0
  177. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/background/native/ios/BackgroundPlugin.swift +0 -0
  178. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/background/native/pn_plugin.json +0 -0
  179. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/biometrics/__init__.py +0 -0
  180. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/biometrics/native/android/com/pythonnative/plugins/biometrics/BiometricsPlugin.kt +0 -0
  181. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/biometrics/native/ios/BiometricsPlugin.swift +0 -0
  182. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/biometrics/native/pn_plugin.json +0 -0
  183. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/bootstrap.py +0 -0
  184. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/__init__.py +0 -0
  185. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/android/application.xml +0 -0
  186. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/android/com/pythonnative/plugins/camera/CameraPlugin.kt +0 -0
  187. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/android/manifest.xml +0 -0
  188. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/android/res/xml/pn_camera_file_paths.xml +0 -0
  189. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/ios/CameraPlugin.swift +0 -0
  190. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/pn_plugin.json +0 -0
  191. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/camera/native/web/index.js +0 -0
  192. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/cli/__init__.py +0 -0
  193. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/cli/keys.py +0 -0
  194. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/cli/launch.py +0 -0
  195. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/cli/pn.py +0 -0
  196. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/component.py +0 -0
  197. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/__init__.py +0 -0
  198. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/layout.py +0 -0
  199. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/overlays.py +0 -0
  200. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/pressable.py +0 -0
  201. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/components/structural.py +0 -0
  202. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devclient.py +0 -0
  203. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/__init__.py +0 -0
  204. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/auth.py +0 -0
  205. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/editor.py +0 -0
  206. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/hub.py +0 -0
  207. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/packages.py +0 -0
  208. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/qr.py +0 -0
  209. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/server.py +0 -0
  210. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/assets.js +0 -0
  211. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/bridge.js +0 -0
  212. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/colors.js +0 -0
  213. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devsupport.js +0 -0
  214. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/connection.js +0 -0
  215. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/devtools.css +0 -0
  216. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/devtools.js +0 -0
  217. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/index.html +0 -0
  218. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/components.js +0 -0
  219. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/connect.js +0 -0
  220. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/console.js +0 -0
  221. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/network.js +0 -0
  222. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/panel.js +0 -0
  223. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/performance.js +0 -0
  224. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/panels/problems.js +0 -0
  225. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/report.js +0 -0
  226. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/tree.js +0 -0
  227. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/util.js +0 -0
  228. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/devtools/values.js +0 -0
  229. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/host.js +0 -0
  230. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/static/index.html +0 -0
  231. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/watcher.py +0 -0
  232. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devserver/ws.py +0 -0
  233. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devtools/__init__.py +0 -0
  234. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devtools/agent.py +0 -0
  235. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devtools/console.py +0 -0
  236. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devtools/debugger.py +0 -0
  237. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devtools/inspector.py +0 -0
  238. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/devtools/perf.py +0 -0
  239. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/diagnostics.py +0 -0
  240. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/element.py +0 -0
  241. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/equality.py +0 -0
  242. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/errors.py +0 -0
  243. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/handles.py +0 -0
  244. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/hooks.py +0 -0
  245. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/hosts/__init__.py +0 -0
  246. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/hosts/base.py +0 -0
  247. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/hosts/native.py +0 -0
  248. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/icons/LICENSE-lucide.txt +0 -0
  249. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/icons/_lucide.json +0 -0
  250. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/icons/_names.py +0 -0
  251. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/list_data.py +0 -0
  252. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/location/__init__.py +0 -0
  253. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/location/native/android/com/pythonnative/plugins/location/LocationPlugin.kt +0 -0
  254. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/location/native/ios/LocationPlugin.swift +0 -0
  255. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/location/native/pn_plugin.json +0 -0
  256. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/location/native/web/index.js +0 -0
  257. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/__init__.py +0 -0
  258. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/native/android/application.xml +0 -0
  259. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/native/android/com/pythonnative/plugins/maps/MapsPlugin.kt +0 -0
  260. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/native/ios/MapsPlugin.swift +0 -0
  261. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/native/pn_plugin.json +0 -0
  262. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/maps/native/web/index.js +0 -0
  263. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/mutations.py +0 -0
  264. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/build.gradle +0 -0
  265. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/gradle.properties +0 -0
  266. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/settings.gradle +0 -0
  267. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/AndroidManifest.xml +0 -0
  268. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/cpp/CMakeLists.txt +0 -0
  269. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +0 -0
  270. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeValues.kt +0 -0
  271. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +0 -0
  272. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +0 -0
  273. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/FrameClock.kt +0 -0
  274. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/assets/PNAssets.kt +0 -0
  275. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +0 -0
  276. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +0 -0
  277. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +0 -0
  278. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +0 -0
  279. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +0 -0
  280. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +0 -0
  281. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +0 -0
  282. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +0 -0
  283. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +0 -0
  284. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +0 -0
  285. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/EffectManagers.kt +0 -0
  286. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +0 -0
  287. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +0 -0
  288. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +0 -0
  289. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNTheme.kt +0 -0
  290. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +0 -0
  291. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +0 -0
  292. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +0 -0
  293. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenTransitions.kt +0 -0
  294. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +0 -0
  295. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +0 -0
  296. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +0 -0
  297. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SvgManager.kt +0 -0
  298. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +0 -0
  299. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +0 -0
  300. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +0 -0
  301. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/TouchForwarder.kt +0 -0
  302. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/graphics/SvgPath.kt +0 -0
  303. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/Measurement.kt +0 -0
  304. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/AssetModules.kt +0 -0
  305. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +0 -0
  306. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DevSupportModule.kt +0 -0
  307. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +0 -0
  308. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/ErrorOverlay.kt +0 -0
  309. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +0 -0
  310. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +0 -0
  311. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PNLifecycle.kt +0 -0
  312. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +0 -0
  313. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PlatformModules.kt +0 -0
  314. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +0 -0
  315. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +0 -0
  316. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +0 -0
  317. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNKeyboard.kt +0 -0
  318. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +0 -0
  319. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +0 -0
  320. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/text/PNTextLayout.kt +0 -0
  321. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +0 -0
  322. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +0 -0
  323. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +0 -0
  324. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +0 -0
  325. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNScrollViews.kt +0 -0
  326. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_fade_in.xml +0 -0
  327. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_fade_out.xml +0 -0
  328. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_hold.xml +0 -0
  329. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_bottom.xml +0 -0
  330. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_left.xml +0 -0
  331. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_right.xml +0 -0
  332. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_bottom.xml +0 -0
  333. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_left.xml +0 -0
  334. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_right.xml +0 -0
  335. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/drawable/pn_ic_arrow_back.xml +0 -0
  336. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/values/pn_ids.xml +0 -0
  337. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/main/res/xml/pn_file_paths.xml +0 -0
  338. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/generated/PNRecordFixtures.kt +0 -0
  339. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AssetsAndSvgTest.kt +0 -0
  340. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/DevSupportRobolectricTest.kt +0 -0
  341. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/NativeLifecycleTest.kt +0 -0
  342. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +0 -0
  343. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +0 -0
  344. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundOneRobolectricTest.kt +0 -0
  345. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoLogicTest.kt +0 -0
  346. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoRobolectricTest.kt +0 -0
  347. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ScreenTransitionsTest.kt +0 -0
  348. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/StyleAccessibilityDeviceTest.kt +0 -0
  349. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/CMakeLists.txt +0 -0
  350. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/Package.swift +0 -0
  351. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/include/module.modulemap +0 -0
  352. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/python.cpp +0 -0
  353. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/contracts.cpp +0 -0
  354. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/contracts.h +0 -0
  355. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/lists.cpp +0 -0
  356. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/lists.h +0 -0
  357. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/style.cpp +0 -0
  358. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/style.h +0 -0
  359. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/value.cpp +0 -0
  360. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/src/value.h +0 -0
  361. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/CMakeLists.txt +0 -0
  362. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/LICENSE +0 -0
  363. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/VENDORED.md +0 -0
  364. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGConfig.cpp +0 -0
  365. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGConfig.h +0 -0
  366. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGEnums.cpp +0 -0
  367. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGEnums.h +0 -0
  368. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGMacros.h +0 -0
  369. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGNode.cpp +0 -0
  370. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGNode.h +0 -0
  371. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGNodeLayout.cpp +0 -0
  372. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGNodeLayout.h +0 -0
  373. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGNodeStyle.cpp +0 -0
  374. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGNodeStyle.h +0 -0
  375. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGPixelGrid.cpp +0 -0
  376. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGPixelGrid.h +0 -0
  377. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGValue.cpp +0 -0
  378. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/YGValue.h +0 -0
  379. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/Yoga.h +0 -0
  380. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/AbsoluteLayout.cpp +0 -0
  381. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/AbsoluteLayout.h +0 -0
  382. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/Align.h +0 -0
  383. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/Baseline.cpp +0 -0
  384. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/Baseline.h +0 -0
  385. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/BoundAxis.h +0 -0
  386. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/Cache.cpp +0 -0
  387. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/Cache.h +0 -0
  388. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/CalculateLayout.cpp +0 -0
  389. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/CalculateLayout.h +0 -0
  390. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/FlexDirection.h +0 -0
  391. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/FlexLine.cpp +0 -0
  392. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/FlexLine.h +0 -0
  393. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/PixelGrid.cpp +0 -0
  394. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/PixelGrid.h +0 -0
  395. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/SizingMode.h +0 -0
  396. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/algorithm/TrailingPosition.h +0 -0
  397. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/config/Config.cpp +0 -0
  398. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/config/Config.h +0 -0
  399. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/debug/AssertFatal.cpp +0 -0
  400. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/debug/AssertFatal.h +0 -0
  401. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/debug/Log.cpp +0 -0
  402. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/debug/Log.h +0 -0
  403. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Align.h +0 -0
  404. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/BoxSizing.h +0 -0
  405. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Dimension.h +0 -0
  406. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Direction.h +0 -0
  407. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Display.h +0 -0
  408. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Edge.h +0 -0
  409. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Errata.h +0 -0
  410. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/ExperimentalFeature.h +0 -0
  411. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/FlexDirection.h +0 -0
  412. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Gutter.h +0 -0
  413. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Justify.h +0 -0
  414. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/LogLevel.h +0 -0
  415. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/MeasureMode.h +0 -0
  416. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/NodeType.h +0 -0
  417. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Overflow.h +0 -0
  418. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/PhysicalEdge.h +0 -0
  419. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/PositionType.h +0 -0
  420. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Unit.h +0 -0
  421. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/Wrap.h +0 -0
  422. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/enums/YogaEnums.h +0 -0
  423. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/event/event.cpp +0 -0
  424. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/event/event.h +0 -0
  425. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/module.modulemap +0 -0
  426. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/node/CachedMeasurement.h +0 -0
  427. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/node/LayoutResults.cpp +0 -0
  428. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/node/LayoutResults.h +0 -0
  429. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/node/LayoutableChildren.h +0 -0
  430. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/node/Node.cpp +0 -0
  431. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/node/Node.h +0 -0
  432. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/numeric/Comparison.h +0 -0
  433. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/numeric/FloatOptional.h +0 -0
  434. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/style/SmallValueBuffer.h +0 -0
  435. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/style/Style.h +0 -0
  436. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/style/StyleLength.h +0 -0
  437. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/style/StyleValueHandle.h +0 -0
  438. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/core/yoga/style/StyleValuePool.h +0 -0
  439. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Package.swift +0 -0
  440. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +0 -0
  441. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +0 -0
  442. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +0 -0
  443. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +0 -0
  444. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +0 -0
  445. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +0 -0
  446. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +0 -0
  447. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNEffectManagers.swift +0 -0
  448. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +0 -0
  449. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +0 -0
  450. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +0 -0
  451. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNSvgManager.swift +0 -0
  452. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +0 -0
  453. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +0 -0
  454. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +0 -0
  455. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +0 -0
  456. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +0 -0
  457. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +0 -0
  458. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +0 -0
  459. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeValues.swift +0 -0
  460. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +0 -0
  461. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/DevSupportModule.swift +0 -0
  462. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/EnvironmentModules.swift +0 -0
  463. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +0 -0
  464. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/ImagesModule.swift +0 -0
  465. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +0 -0
  466. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNAppLifecycle.swift +0 -0
  467. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNErrorOverlay.swift +0 -0
  468. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +0 -0
  469. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +0 -0
  470. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +0 -0
  471. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +0 -0
  472. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Resources/PrivacyInfo.xcprivacy +0 -0
  473. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +0 -0
  474. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNAssets.swift +0 -0
  475. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +0 -0
  476. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +0 -0
  477. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +0 -0
  478. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +0 -0
  479. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Text/PNTextLayout.swift +0 -0
  480. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/xcshareddata/xcschemes/NativeTests.xcscheme +0 -0
  481. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/mount.json +0 -0
  482. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/validation.json +0 -0
  483. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAssetTests.swift +0 -0
  484. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +0 -0
  485. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractFixtureTests.swift +0 -0
  486. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNLifecycleTests.swift +0 -0
  487. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +0 -0
  488. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNRecordFixtures.swift +0 -0
  489. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTextLayoutTests.swift +0 -0
  490. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native/ios/Tests/TestHost/main.swift +0 -0
  491. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/__init__.py +0 -0
  492. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/accessibility_info.py +0 -0
  493. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/app_state.py +0 -0
  494. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/battery.py +0 -0
  495. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/clipboard.py +0 -0
  496. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/device.py +0 -0
  497. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/dimensions.py +0 -0
  498. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/fallback.py +0 -0
  499. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/file_system.py +0 -0
  500. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/haptics.py +0 -0
  501. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/images.py +0 -0
  502. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/keyboard.py +0 -0
  503. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/linking.py +0 -0
  504. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/localization.py +0 -0
  505. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/net_info.py +0 -0
  506. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/permissions.py +0 -0
  507. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/registry.py +0 -0
  508. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/secure_store.py +0 -0
  509. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_modules/share.py +0 -0
  510. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/native_views/__init__.py +0 -0
  511. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/__init__.py +0 -0
  512. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/container.py +0 -0
  513. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/handle.py +0 -0
  514. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/hooks.py +0 -0
  515. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/host.py +0 -0
  516. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/ref.py +0 -0
  517. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/screen.py +0 -0
  518. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/navigation/state.py +0 -0
  519. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/net.py +0 -0
  520. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/notifications/__init__.py +0 -0
  521. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/notifications/native/android/application.xml +0 -0
  522. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/notifications/native/android/com/pythonnative/plugins/notifications/NotificationsPlugin.kt +0 -0
  523. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/notifications/native/ios/NotificationsPlugin.swift +0 -0
  524. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/notifications/native/pn_plugin.json +0 -0
  525. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/pickers/__init__.py +0 -0
  526. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/pickers/native/android/com/pythonnative/plugins/pickers/PickersPlugin.kt +0 -0
  527. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/pickers/native/ios/PickersPlugin.swift +0 -0
  528. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/pickers/native/pn_plugin.json +0 -0
  529. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/pickers/native/web/index.js +0 -0
  530. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/platform.py +0 -0
  531. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/platform_metrics.py +0 -0
  532. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/preview.py +0 -0
  533. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/profiling.py +0 -0
  534. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/__init__.py +0 -0
  535. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/android.py +0 -0
  536. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/artifacts.py +0 -0
  537. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/bundle.py +0 -0
  538. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/bytecode.py +0 -0
  539. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/config.py +0 -0
  540. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/deps.py +0 -0
  541. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/devices.py +0 -0
  542. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/doctor.py +0 -0
  543. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/fingerprint.py +0 -0
  544. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/go.py +0 -0
  545. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/icons.py +0 -0
  546. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/ios.py +0 -0
  547. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/links.py +0 -0
  548. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/lockfile.py +0 -0
  549. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/permissions.py +0 -0
  550. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/plugin_config.py +0 -0
  551. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/plugins.py +0 -0
  552. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/runtime_assets.py +0 -0
  553. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/project/submit.py +0 -0
  554. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/prop_checks.py +0 -0
  555. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/purchases/__init__.py +0 -0
  556. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/purchases/native/android/com/pythonnative/plugins/purchases/PurchasesPlugin.kt +0 -0
  557. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/purchases/native/ios/PurchasesPlugin.swift +0 -0
  558. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/purchases/native/pn_plugin.json +0 -0
  559. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/push/__init__.py +0 -0
  560. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/push/native/android/application.xml +0 -0
  561. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/push/native/android/com/pythonnative/plugins/push/PushPlugin.kt +0 -0
  562. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/push/native/ios/PushPlugin.swift +0 -0
  563. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/push/native/pn_plugin.json +0 -0
  564. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/py.typed +0 -0
  565. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/query.py +0 -0
  566. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/reconciler/__init__.py +0 -0
  567. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/reconciler/boundaries.py +0 -0
  568. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/reconciler/children.py +0 -0
  569. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/reconciler/layout_pass.py +0 -0
  570. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/reconciler/vnode.py +0 -0
  571. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/refresh.py +0 -0
  572. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/runtime.py +0 -0
  573. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/scheduler.py +0 -0
  574. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/__init__.py +0 -0
  575. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/codegen.py +0 -0
  576. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/commands.py +0 -0
  577. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/module_codegen.py +0 -0
  578. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/native_types.py +0 -0
  579. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/plugin.py +0 -0
  580. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/services.py +0 -0
  581. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/templates/contracts.kt +0 -0
  582. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/templates/contracts.swift +0 -0
  583. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/templates/values.kt +0 -0
  584. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sdk/templates/values.swift +0 -0
  585. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sensors/__init__.py +0 -0
  586. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sensors/native/android/com/pythonnative/plugins/sensors/SensorsPlugin.kt +0 -0
  587. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sensors/native/ios/SensorsPlugin.swift +0 -0
  588. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sensors/native/pn_plugin.json +0 -0
  589. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/sensors/native/web/index.js +0 -0
  590. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/storage.py +0 -0
  591. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/store.py +0 -0
  592. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/suspense.py +0 -0
  593. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/svg.py +0 -0
  594. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/build.gradle +0 -0
  595. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/proguard-rules.pro +0 -0
  596. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +0 -0
  597. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +0 -0
  598. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +0 -0
  599. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNApplication.kt +0 -0
  600. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +0 -0
  601. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
  602. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -0
  603. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +0 -0
  604. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
  605. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
  606. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  607. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  608. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  609. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  610. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  611. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  612. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  613. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  614. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  615. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  616. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +0 -0
  617. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/values/colors.xml +0 -0
  618. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/values/strings.xml +0 -0
  619. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/values/themes.xml +0 -0
  620. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +0 -0
  621. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +0 -0
  622. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +0 -0
  623. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/build.gradle +0 -0
  624. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
  625. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +0 -0
  626. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/gradle.properties +0 -0
  627. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/gradlew +0 -0
  628. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/gradlew.bat +0 -0
  629. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/android_template/settings.gradle +0 -0
  630. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/PNFinalizePython.sh +0 -0
  631. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/AppDelegate.swift +0 -0
  632. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  633. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  634. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +0 -0
  635. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +0 -0
  636. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/BridgingHeader.h +0 -0
  637. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/Info.plist +0 -0
  638. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/PrivacyInfo.xcprivacy +0 -0
  639. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +0 -0
  640. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +0 -0
  641. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template/ViewController.swift +0 -0
  642. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +0 -0
  643. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  644. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/testing/__init__.py +0 -0
  645. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/testing/clock.py +0 -0
  646. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/testing/queries.py +0 -0
  647. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/theme.py +0 -0
  648. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/utils.py +0 -0
  649. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/video/__init__.py +0 -0
  650. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/video/native/android/com/pythonnative/plugins/video/VideoPlugin.kt +0 -0
  651. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/video/native/ios/VideoPlugin.swift +0 -0
  652. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/video/native/pn_plugin.json +0 -0
  653. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/video/native/web/index.js +0 -0
  654. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative/websocket.py +0 -0
  655. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative.egg-info/dependency_links.txt +0 -0
  656. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative.egg-info/entry_points.txt +0 -0
  657. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative.egg-info/requires.txt +0 -0
  658. {pythonnative-0.53.0 → pythonnative-0.54.0}/src/pythonnative.egg-info/top_level.txt +0 -0
  659. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/contracts/list-trace.json +0 -0
  660. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/contracts/validation.json +0 -0
  661. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_alert.py +0 -0
  662. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_appearance.py +0 -0
  663. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_assets.py +0 -0
  664. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_async_hooks.py +0 -0
  665. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_authoring.py +0 -0
  666. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_cli_keys.py +0 -0
  667. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_components.py +0 -0
  668. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_contract_fixtures.py +0 -0
  669. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_core_semantics.py +0 -0
  670. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_devclient.py +0 -0
  671. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_device_modules.py +0 -0
  672. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_devserver.py +0 -0
  673. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_devserver_session.py +0 -0
  674. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_devserver_ws.py +0 -0
  675. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_devtools.py +0 -0
  676. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_devtools_page.py +0 -0
  677. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_element.py +0 -0
  678. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_equality.py +0 -0
  679. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_errors.py +0 -0
  680. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_events.py +0 -0
  681. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_extended_components.py +0 -0
  682. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_failure_recovery.py +0 -0
  683. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_fieldnotes.py +0 -0
  684. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_gesture_activation.py +0 -0
  685. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_gesture_composition.py +0 -0
  686. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_gestures.py +0 -0
  687. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_handles.py +0 -0
  688. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_hooks.py +0 -0
  689. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_hosts.py +0 -0
  690. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_hot_reload.py +0 -0
  691. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_identity_bailout.py +0 -0
  692. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_inbox.py +0 -0
  693. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_incremental_pipeline.py +0 -0
  694. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_incremental_render.py +0 -0
  695. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_interaction_props.py +0 -0
  696. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_ios_log.py +0 -0
  697. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_layout.py +0 -0
  698. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_list_features.py +0 -0
  699. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_metric_hooks.py +0 -0
  700. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_mutations.py +0 -0
  701. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_native_lists.py +0 -0
  702. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_native_modules.py +0 -0
  703. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_native_values.py +0 -0
  704. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_native_views.py +0 -0
  705. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_net.py +0 -0
  706. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_new_components.py +0 -0
  707. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_performance_budgets.py +0 -0
  708. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_platform.py +0 -0
  709. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_platform_metrics.py +0 -0
  710. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_qr.py +0 -0
  711. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_reconciler.py +0 -0
  712. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_ref.py +0 -0
  713. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_release_workflow.py +0 -0
  714. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_runtime.py +0 -0
  715. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_runtime_correctness.py +0 -0
  716. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_runtime_overhaul.py +0 -0
  717. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_sdk.py +0 -0
  718. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_smoke.py +0 -0
  719. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_storage.py +0 -0
  720. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_store.py +0 -0
  721. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_suspense.py +0 -0
  722. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_testing_library.py +0 -0
  723. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_theme.py +0 -0
  724. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_transitions.py +0 -0
  725. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_typing_conformance.py +0 -0
  726. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_utils.py +0 -0
  727. {pythonnative-0.53.0 → pythonnative-0.54.0}/tests/test_websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonnative
3
- Version: 0.53.0
3
+ Version: 0.54.0
4
4
  Summary: Cross-platform native UI toolkit for Android and iOS
5
5
  Author: Owen Carey
6
6
  License: MIT License
@@ -80,11 +80,11 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
80
80
  - **Declarative components and hooks:** Describe native UI with Python functions, immutable elements, and typed styles. State, effects, context, and suspense boundaries follow one logical application tree across screens, overlays, and mounted list rows. State updates batch automatically, effect errors reach the nearest error boundary, and event callbacks receive typed records instead of dicts.
81
81
  - **React Native's core surface:** `Pressable`, `ScrollView`, `Text`, `TextInput`, `Image`, `Modal`, `FlatList`, and `SectionList` carry the props a React Native developer expects (disabled state and ripples, content insets and snapping, ellipsize modes and pressable spans, controlled selection and key events, sticky headers and inverted lists), plus typed imperative handles on `ref.current` and the full accessibility prop set.
82
82
  - **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The renderer core validates commits, lays out with Yoga off the UI thread using platform measurements for text and intrinsic sizes, and skips mounting layout-only wrappers.
83
- - **Standard asyncio:** Components, effects, event handlers, and tasks run on a dedicated Python application thread. Native UI threads handle widgets, scrolling, and animation frames. Component-owned tasks are canceled on unmount.
83
+ - **Standard asyncio:** Components, effects, event handlers, and tasks run on a dedicated Python application thread. Native UI threads handle widgets, scrolling, animation frames, and worklets. Component-owned tasks are canceled on unmount.
84
84
  - **Incremental reconciliation:** State changes update affected component subtrees. Versioned bridge commits validate operations and acknowledge revisions; events and controlled text inputs carry identities that prevent stale updates.
85
- - **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks.
85
+ - **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks and that worklets compile.
86
86
  - **Native lists and navigation:** UIKit collection views and Android recycler views recycle cells for fixed or variable row sizes, grids, sections, and horizontal lists. Native navigation containers present logical screen roots at every nesting level while providers and component state remain in the shared Python tree; navigators take screen options, groups, tab-bar styles, and a navigation ref usable outside components.
87
- - **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings. Gestures activate with Gesture Handler-style offsets and update supported animation bindings without Python work on every frame.
87
+ - **Motion:** Interaction logic runs on the UI thread as worklets, ordinary type-checked Python functions marked `@pn.worklet` that the renderer core compiles and runs, so a drag keeps tracking and a release decides where to settle while Python is busy. Shared values, `with_timing`, `with_spring`, and `with_decay` animations (awaitable from Python), and animated styles drive paint and layout properties; scroll events and gesture callbacks take worklets; `entering=`, `exiting=`, and `layout=` animate views as the tree changes, including native list rows; and `shared_tag=` flies an element between stack screens. `BottomSheet`, `Swipeable`, and a drawer that follows the finger are built on it. Gestures activate with Gesture Handler-style offsets and composition.
88
88
  - **Assets and graphics:** Drop images, fonts, and SVGs under `app/assets/` and reference them by path. Density variants, bundled fonts, a vector `Icon` set, `Svg` drawing, gradients, and blur render natively on both platforms and in the browser preview.
89
89
  - **Device APIs:** Python facades expose storage, permissions, keyboard, dimensions and pixel ratio, device info, localization, accessibility settings, haptics, and other native services in every app, with a Python fallback for headless tests. Test permissions and platform behavior on your deployment targets.
90
90
  - **First-party capabilities:** Video, audio, camera, maps, location, notifications, push, pickers, sensors, biometrics, background tasks, and in-app purchases ship in the package and compile into your app only when you list them: `[plugins] use = ["camera", "maps"]` in `pythonnative.toml`, then `from pythonnative.camera import CameraView`. An app that doesn't list one contains none of its code, and calling it raises `plugin_not_enabled`. Simulators can't prove everything here: camera capture on iOS, remote push, and purchases need real hardware or store credentials.
@@ -33,11 +33,11 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
33
33
  - **Declarative components and hooks:** Describe native UI with Python functions, immutable elements, and typed styles. State, effects, context, and suspense boundaries follow one logical application tree across screens, overlays, and mounted list rows. State updates batch automatically, effect errors reach the nearest error boundary, and event callbacks receive typed records instead of dicts.
34
34
  - **React Native's core surface:** `Pressable`, `ScrollView`, `Text`, `TextInput`, `Image`, `Modal`, `FlatList`, and `SectionList` carry the props a React Native developer expects (disabled state and ripples, content insets and snapping, ellipsize modes and pressable spans, controlled selection and key events, sticky headers and inverted lists), plus typed imperative handles on `ref.current` and the full accessibility prop set.
35
35
  - **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The renderer core validates commits, lays out with Yoga off the UI thread using platform measurements for text and intrinsic sizes, and skips mounting layout-only wrappers.
36
- - **Standard asyncio:** Components, effects, event handlers, and tasks run on a dedicated Python application thread. Native UI threads handle widgets, scrolling, and animation frames. Component-owned tasks are canceled on unmount.
36
+ - **Standard asyncio:** Components, effects, event handlers, and tasks run on a dedicated Python application thread. Native UI threads handle widgets, scrolling, animation frames, and worklets. Component-owned tasks are canceled on unmount.
37
37
  - **Incremental reconciliation:** State changes update affected component subtrees. Versioned bridge commits validate operations and acknowledge revisions; events and controlled text inputs carry identities that prevent stale updates.
38
- - **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks.
38
+ - **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks and that worklets compile.
39
39
  - **Native lists and navigation:** UIKit collection views and Android recycler views recycle cells for fixed or variable row sizes, grids, sections, and horizontal lists. Native navigation containers present logical screen roots at every nesting level while providers and component state remain in the shared Python tree; navigators take screen options, groups, tab-bar styles, and a navigation ref usable outside components.
40
- - **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings. Gestures activate with Gesture Handler-style offsets and update supported animation bindings without Python work on every frame.
40
+ - **Motion:** Interaction logic runs on the UI thread as worklets, ordinary type-checked Python functions marked `@pn.worklet` that the renderer core compiles and runs, so a drag keeps tracking and a release decides where to settle while Python is busy. Shared values, `with_timing`, `with_spring`, and `with_decay` animations (awaitable from Python), and animated styles drive paint and layout properties; scroll events and gesture callbacks take worklets; `entering=`, `exiting=`, and `layout=` animate views as the tree changes, including native list rows; and `shared_tag=` flies an element between stack screens. `BottomSheet`, `Swipeable`, and a drawer that follows the finger are built on it. Gestures activate with Gesture Handler-style offsets and composition.
41
41
  - **Assets and graphics:** Drop images, fonts, and SVGs under `app/assets/` and reference them by path. Density variants, bundled fonts, a vector `Icon` set, `Svg` drawing, gradients, and blur render natively on both platforms and in the browser preview.
42
42
  - **Device APIs:** Python facades expose storage, permissions, keyboard, dimensions and pixel ratio, device info, localization, accessibility settings, haptics, and other native services in every app, with a Python fallback for headless tests. Test permissions and platform behavior on your deployment targets.
43
43
  - **First-party capabilities:** Video, audio, camera, maps, location, notifications, push, pickers, sensors, biometrics, background tasks, and in-app purchases ship in the package and compile into your app only when you list them: `[plugins] use = ["camera", "maps"]` in `pythonnative.toml`, then `from pythonnative.camera import CameraView`. An app that doesn't list one contains none of its code, and calling it raises `plugin_not_enabled`. Simulators can't prove everything here: camera capture on iOS, remote push, and purchases need real hardware or store credentials.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pythonnative"
7
- version = "0.53.0"
7
+ version = "0.54.0"
8
8
  description = "Cross-platform native UI toolkit for Android and iOS"
9
9
  authors = [
10
10
  { name = "Owen Carey" }
@@ -35,10 +35,13 @@ Key building blocks:
35
35
  its navigators.
36
36
  - **State** lives in hooks for a component and in a typed
37
37
  [`Store`][pythonnative.Store] for the app.
38
- - **Animations** use the ``Animated`` namespace. Serialized graphs
39
- connect values, arithmetic, interpolation, and style bindings.
40
- Native timing, spring, decay, scroll, and gesture drivers update
41
- supported bindings without Python work on every frame.
38
+ - **Motion** (RFC 0009): [`worklet`][pythonnative.worklet] functions run
39
+ on the UI thread inside the renderer core. They read and write
40
+ [`SharedValue`][pythonnative.SharedValue]s, which
41
+ [`use_animated_style`][pythonnative.use_animated_style] turns into
42
+ styles and ``with_timing`` / ``with_spring`` / ``with_decay`` animate.
43
+ Event props and gesture callbacks take worklets, and views take
44
+ ``entering=``, ``exiting=``, ``layout=``, and ``shared_tag=``.
42
45
  - **Gestures** attach to any view via the ``gestures=`` prop using
43
46
  descriptors from ``pythonnative.gestures``
44
47
  ([`Tap`][pythonnative.gestures.Tap],
@@ -81,7 +84,7 @@ Example:
81
84
  ```
82
85
  """
83
86
 
84
- __version__ = "0.53.0"
87
+ __version__ = "0.54.0"
85
88
 
86
89
  import importlib
87
90
  from typing import TYPE_CHECKING, Any
@@ -138,7 +141,7 @@ from .components import (
138
141
  WebView,
139
142
  set_error_fallback,
140
143
  )
141
- from .components.props import AccessibilityProps, ViewProps
144
+ from .components.props import AccessibilityProps, CommonProps, MotionProps, ViewProps
142
145
  from .diagnostics import HookOrderError, set_error_handler
143
146
  from .element import Element, Node
144
147
  from .handles import ScrollOffset, ScrollViewHandle, TextInputHandle, ViewHandle, WebViewHandle
@@ -214,6 +217,7 @@ from .style import (
214
217
  AccessibilityAction,
215
218
  AccessibilityState,
216
219
  AccessibilityValue,
220
+ AnimatedStyle,
217
221
  Color,
218
222
  DynamicColor,
219
223
  EdgeInsets,
@@ -293,6 +297,8 @@ __all__ = [
293
297
  "WebView",
294
298
  # Shared props
295
299
  "AccessibilityProps",
300
+ "CommonProps",
301
+ "MotionProps",
296
302
  "ViewProps",
297
303
  # Typed events
298
304
  "ContentSizeEvent",
@@ -396,13 +402,34 @@ __all__ = [
396
402
  "use_theme",
397
403
  # Appearance
398
404
  "appearance",
399
- # Animation
400
- "Animated",
401
- "AnimatedValue",
402
- "AnimationResult",
405
+ # Motion
406
+ "motion",
407
+ "AnimatedStyle",
408
+ "BottomSheet",
409
+ "BottomSheetHandle",
403
410
  "Easing",
404
- "EasingSpec",
405
- "use_animated_value",
411
+ "FrameInfo",
412
+ "SharedValue",
413
+ "Spring",
414
+ "Swipeable",
415
+ "SwipeableHandle",
416
+ "clamp",
417
+ "interpolate",
418
+ "interpolate_color",
419
+ "run_on_python",
420
+ "snap_point",
421
+ "use_animated_reaction",
422
+ "use_animated_style",
423
+ "use_derived_value",
424
+ "use_frame_callback",
425
+ "use_shared_value",
426
+ "with_decay",
427
+ "with_delay",
428
+ "with_repeat",
429
+ "with_sequence",
430
+ "with_spring",
431
+ "with_timing",
432
+ "worklet",
406
433
  # Gestures
407
434
  "GestureSpec",
408
435
  "SwipeDirection",
@@ -466,14 +493,31 @@ from .list_data import ListData, Section, ViewableItem
466
493
  # ``import pythonnative`` stays fast on a phone. Names, ``__all__``, and
467
494
  # documentation are unchanged, and type checkers see ordinary imports.
468
495
  _LAZY_GROUPS: dict[str, tuple[str, ...]] = {
469
- "animated": (
470
- "Animated",
471
- "AnimatedValue",
472
- "AnimationResult",
496
+ "motion": (
473
497
  "Easing",
474
- "EasingSpec",
475
- "use_animated_value",
498
+ "FrameInfo",
499
+ "SharedValue",
500
+ "Spring",
501
+ "clamp",
502
+ "interpolate",
503
+ "interpolate_color",
504
+ "run_on_python",
505
+ "snap_point",
506
+ "use_animated_reaction",
507
+ "use_animated_style",
508
+ "use_derived_value",
509
+ "use_frame_callback",
510
+ "use_shared_value",
511
+ "with_decay",
512
+ "with_delay",
513
+ "with_repeat",
514
+ "with_sequence",
515
+ "with_spring",
516
+ "with_timing",
517
+ "worklet",
476
518
  ),
519
+ "components.bottom_sheet": ("BottomSheet", "BottomSheetHandle"),
520
+ "components.swipeable": ("Swipeable", "SwipeableHandle"),
477
521
  "gestures": ("GestureSpec", "SwipeDirection"),
478
522
  "icons": ("Icon", "IconName"),
479
523
  "navigation": (
@@ -500,20 +544,37 @@ _LAZY_GROUPS: dict[str, tuple[str, ...]] = {
500
544
  "websocket": ("WebSocket", "WebSocketClosed", "WebSocketError"),
501
545
  }
502
546
  _LAZY = {name: module for module, names in _LAZY_GROUPS.items() for name in names}
503
- _LAZY_MODULES = frozenset({"gestures", "icons"})
547
+ _LAZY_MODULES = frozenset({"gestures", "icons", "motion"})
504
548
 
505
549
  if TYPE_CHECKING:
506
- from . import gestures, icons
507
- from .animated import (
508
- Animated,
509
- AnimatedValue,
510
- AnimationResult,
511
- Easing,
512
- EasingSpec,
513
- use_animated_value,
514
- )
550
+ from . import gestures, icons, motion
551
+ from .components.bottom_sheet import BottomSheet, BottomSheetHandle
552
+ from .components.swipeable import Swipeable, SwipeableHandle
515
553
  from .gestures import GestureSpec, SwipeDirection
516
554
  from .icons import Icon, IconName
555
+ from .motion import (
556
+ Easing,
557
+ FrameInfo,
558
+ SharedValue,
559
+ Spring,
560
+ clamp,
561
+ interpolate,
562
+ interpolate_color,
563
+ run_on_python,
564
+ snap_point,
565
+ use_animated_reaction,
566
+ use_animated_style,
567
+ use_derived_value,
568
+ use_frame_callback,
569
+ use_shared_value,
570
+ with_decay,
571
+ with_delay,
572
+ with_repeat,
573
+ with_sequence,
574
+ with_spring,
575
+ with_timing,
576
+ worklet,
577
+ )
517
578
  from .navigation import (
518
579
  DrawerNavigator,
519
580
  Group,
@@ -353,6 +353,6 @@
353
353
  "name": "Audio"
354
354
  }
355
355
  },
356
- "protocol": 7,
356
+ "protocol": 8,
357
357
  "yoga": "3.2.1"
358
358
  }
@@ -115,6 +115,6 @@
115
115
  "name": "Background"
116
116
  }
117
117
  },
118
- "protocol": 7,
118
+ "protocol": 8,
119
119
  "yoga": "3.2.1"
120
120
  }
@@ -32,6 +32,6 @@
32
32
  "name": "Biometrics"
33
33
  }
34
34
  },
35
- "protocol": 7,
35
+ "protocol": 8,
36
36
  "yoga": "3.2.1"
37
37
  }
@@ -59,8 +59,11 @@ class Transport(Protocol):
59
59
  def command(self, surface: int, tag: int, name: str, args_json: str, call_id: int) -> str:
60
60
  """Queue a view command; its result arrives as a ``command`` message."""
61
61
 
62
- def animate(self, surface: int, tag: int, request_json: str) -> str:
63
- """Queue an animation request behind pending mounts."""
62
+ def motion(self, surface: int, request_json: str) -> str:
63
+ """Queue a motion request behind pending mounts (RFC 0009)."""
64
+
65
+ def shared_read(self, ident: int) -> str:
66
+ """The latest value the UI thread published for a shared value, as JSON."""
64
67
 
65
68
  def measure(self, surface: int, tag: int) -> str:
66
69
  """The shadow and window frames of a view, as JSON."""
@@ -286,10 +289,10 @@ def dispatch(kind: str, tag: int, name: str, payload: str, backend: Any = None)
286
289
  from ..hosts.native import dispatch_host_event
287
290
 
288
291
  dispatch_host_event(int(tag), name, codec.loads(payload))
289
- elif kind == "animation":
290
- from ..animated import native_animation_message
292
+ elif kind == "motion":
293
+ from ..motion.runtime import motion_message
291
294
 
292
- native_animation_message(codec.loads(payload) or {})
295
+ motion_message(codec.loads(payload) or {})
293
296
  else:
294
297
  print(f"[pn.bridge] unknown callback kind {kind!r}")
295
298
  except Exception as exc:
@@ -61,9 +61,13 @@ class AndroidTransport:
61
61
  """Queue a view command behind pending mounts."""
62
62
  return self.core.command(surface, tag, name, args_json, call_id)
63
63
 
64
- def animate(self, surface: int, tag: int, request_json: str) -> str:
65
- """Queue an animation request behind pending mounts."""
66
- return self.core.animate(surface, tag, request_json)
64
+ def motion(self, surface: int, request_json: str) -> str:
65
+ """Queue a motion request behind pending mounts (RFC 0009)."""
66
+ return self.core.motion(surface, request_json)
67
+
68
+ def shared_read(self, ident: int) -> str:
69
+ """The latest value the UI thread published for a shared value, as JSON."""
70
+ return self.core.shared_read(ident)
67
71
 
68
72
  def measure(self, surface: int, tag: int) -> str:
69
73
  """The shadow and window frames of a view."""
@@ -95,8 +95,8 @@ def split_props(
95
95
  ``wire_props`` is JSON-ready; ``python_props`` holds callbacks and
96
96
  fields explicitly declared Python-only. Other unsupported values
97
97
  fail encoding. The backend keeps Python props in a per-tag sidecar.
98
- (The reconciler has already published ``Animated.event`` bindings
99
- under ``_pn_animated_events`` before props reach the codec.)
98
+ (The reconciler has already turned worklet handlers and animated
99
+ styles into ``_pn_motion`` bindings before props reach the codec.)
100
100
  """
101
101
  wire: Dict[str, Any] = {}
102
102
  python: Dict[str, Any] = {}
@@ -21,6 +21,7 @@ from dataclasses import dataclass, field
21
21
  from typing import TYPE_CHECKING, Any, Callable, List, Optional, Sequence, Tuple
22
22
 
23
23
  __all__ = [
24
+ "MotionWrite",
24
25
  "MountOp",
25
26
  "MountTransaction",
26
27
  "Platform",
@@ -30,7 +31,7 @@ __all__ = [
30
31
  "load_core",
31
32
  ]
32
33
 
33
- PROTOCOL_VERSION = 7
34
+ PROTOCOL_VERSION = 8
34
35
  """The protocol ``include/pn_core.h`` defines as ``PN_CORE_PROTOCOL_VERSION``."""
35
36
 
36
37
  MEASURE_TEXT = 1
@@ -130,6 +131,25 @@ class MountOp:
130
131
  name: str = ""
131
132
  arguments: Any = None
132
133
  call_id: int = 0
134
+ owner: int = 0
135
+ """``exit`` ops: 0 when the core animates the view out, 1 when the platform does."""
136
+
137
+
138
+ @dataclass(frozen=True)
139
+ class MotionWrite:
140
+ """One record of the core's motion writes (RFC 0009).
141
+
142
+ ``kind`` is ``"prop"`` (``tag``, ``prop``, ``value``), ``"frame"``
143
+ (``tag``, ``frame``), or ``"remove"`` (``tags``: an exit finished,
144
+ destroy each, children first).
145
+ """
146
+
147
+ kind: str
148
+ tag: int = 0
149
+ prop: str = ""
150
+ value: Any = None
151
+ frame: Tuple[float, float, float, float] = (0.0, 0.0, 0.0, 0.0)
152
+ tags: Tuple[int, ...] = ()
133
153
 
134
154
 
135
155
  @dataclass(frozen=True)
@@ -217,15 +237,34 @@ def decode_transaction(data: bytes) -> MountTransaction:
217
237
  name = reader.string()
218
238
  arguments = reader.value()
219
239
  ops.append(MountOp("command", tag, name=name, arguments=arguments, call_id=reader.take("q")))
240
+ elif code == 8:
241
+ tag = reader.take("q")
242
+ ops.append(MountOp("exit", tag, owner=reader.take("B")))
220
243
  else:
221
244
  raise ValueError(f"Unknown mount op {code}")
222
245
  return MountTransaction(surface, revision, ident, tuple(ops))
223
246
 
224
247
 
225
- def decode_writes(data: bytes) -> List[Tuple[int, str, Any]]:
226
- """Decode animated prop writes into ``(tag, prop, value)`` tuples."""
248
+ def decode_writes(data: bytes) -> List[MotionWrite]:
249
+ """Decode the core's motion writes into [`MotionWrite`][pythonnative.bridge.core.MotionWrite] records."""
227
250
  reader = _Reader(data)
228
- return [(reader.take("q"), reader.string(), reader.value()) for _ in range(reader.take("I"))]
251
+ writes: List[MotionWrite] = []
252
+ for _ in range(reader.take("I")):
253
+ kind = reader.take("B")
254
+ if kind == 0:
255
+ tag = reader.take("q")
256
+ prop = reader.string()
257
+ writes.append(MotionWrite("prop", tag, prop=prop, value=reader.value()))
258
+ elif kind == 1:
259
+ tag = reader.take("q")
260
+ frame = (reader.take("d"), reader.take("d"), reader.take("d"), reader.take("d"))
261
+ writes.append(MotionWrite("frame", tag, frame=frame))
262
+ elif kind == 2:
263
+ count = reader.take("I")
264
+ writes.append(MotionWrite("remove", tags=tuple(reader.take("q") for _ in range(count))))
265
+ else:
266
+ raise ValueError(f"Unknown motion write kind {kind}")
267
+ return writes
229
268
 
230
269
 
231
270
  def decode_value(data: bytes) -> Any:
@@ -248,7 +287,14 @@ _SIGNATURES: dict[str, Tuple[Any, List[Any]]] = {
248
287
  ctypes.c_void_p,
249
288
  [ctypes.c_void_p, ctypes.c_int64, ctypes.c_int64, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_int64],
250
289
  ),
251
- "pn_core_animate": (ctypes.c_void_p, [ctypes.c_void_p, ctypes.c_int64, ctypes.c_int64, ctypes.c_char_p]),
290
+ "pn_core_motion": (ctypes.c_void_p, [ctypes.c_void_p, ctypes.c_int64, ctypes.c_char_p]),
291
+ "pn_core_shared_read": (ctypes.c_void_p, [ctypes.c_void_p, ctypes.c_int64]),
292
+ "pn_core_worklet_eval": (ctypes.c_void_p, [ctypes.c_char_p]),
293
+ "pn_core_exit_finished": (None, [ctypes.c_void_p, ctypes.c_int64, ctypes.c_int64]),
294
+ "pn_core_shared_elements": (
295
+ ctypes.c_void_p,
296
+ [ctypes.c_void_p, ctypes.c_int64, ctypes.c_int64, ctypes.c_int64],
297
+ ),
252
298
  "pn_core_measure": (ctypes.c_void_p, [ctypes.c_void_p, ctypes.c_int64, ctypes.c_int64]),
253
299
  "pn_core_inspect": (ctypes.c_void_p, [ctypes.c_void_p, ctypes.c_int64, ctypes.c_double, ctypes.c_double]),
254
300
  "pn_core_validate_module": (ctypes.c_int32, [ctypes.c_void_p, ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p]),
@@ -429,9 +475,17 @@ class RendererCore:
429
475
  self._take(self._command(self._handle, surface, tag, name.encode(), self._bytes(arguments), call_id)) or ""
430
476
  )
431
477
 
432
- def animate(self, surface: int, tag: int, request: str) -> str:
433
- """Queue an animation request behind pending mounts."""
434
- return self._take(self._animate(self._handle, surface, tag, self._bytes(request))) or ""
478
+ def motion(self, surface: int, request: str) -> str:
479
+ """Queue a motion request behind pending mounts (RFC 0009)."""
480
+ return self._take(self._motion(self._handle, surface, self._bytes(request))) or ""
481
+
482
+ def shared_read(self, ident: int) -> str:
483
+ """The latest published value of a shared value, as JSON."""
484
+ return self._take(self._shared_read(self._handle, ident)) or "null"
485
+
486
+ def worklet_eval(self, request: str) -> str:
487
+ """Run one worklet outside the runtime and return the result JSON."""
488
+ return self._take(self._worklet_eval(self._bytes(request))) or ""
435
489
 
436
490
  def measure(self, surface: int, tag: int) -> str:
437
491
  """The shadow frame and window frame of ``tag`` as JSON (``"null"`` when unknown)."""
@@ -495,13 +549,21 @@ class RendererCore:
495
549
  """Advance animations; returns whether more frames are needed."""
496
550
  return bool(self._animation_frame(self._handle, timestamp_ms))
497
551
 
498
- def take_writes(self) -> List[Tuple[int, str, Any]]:
499
- """Animated prop writes produced since the last call."""
552
+ def take_writes(self) -> List[MotionWrite]:
553
+ """Motion writes produced since the last call."""
500
554
  buffer = _Bytes()
501
555
  if not self._take_writes(self._handle, ctypes.byref(buffer)):
502
556
  return []
503
557
  return decode_writes(ctypes.string_at(buffer.data, buffer.size))
504
558
 
559
+ def exit_finished(self, surface: int, tag: int) -> None:
560
+ """Report a platform-owned exit (a leaving screen or modal) finished."""
561
+ self._exit_finished(self._handle, surface, tag)
562
+
563
+ def shared_elements(self, surface: int, from_screen: int, to_screen: int) -> str:
564
+ """The views sharing a ``shared_tag`` between two screens, as JSON."""
565
+ return self._take(self._shared_elements(self._handle, surface, from_screen, to_screen)) or "[]"
566
+
505
567
  def set_reduce_motion(self, enabled: bool) -> None:
506
568
  """Finish every animation at its target, as the platform's setting asks."""
507
569
  self._set_reduce_motion(self._handle, int(enabled))
@@ -24,7 +24,16 @@ import weakref
24
24
  from typing import Any, Callable, Dict, List, Optional, Sequence, Tuple
25
25
 
26
26
  from . import codec
27
- from .core import PROTOCOL_VERSION, MountOp, MountTransaction, Platform, RendererCore, decode_transaction, load_core
27
+ from .core import (
28
+ PROTOCOL_VERSION,
29
+ MotionWrite,
30
+ MountOp,
31
+ MountTransaction,
32
+ Platform,
33
+ RendererCore,
34
+ decode_transaction,
35
+ load_core,
36
+ )
28
37
 
29
38
  __all__ = ["DEFAULT_MEASURE", "FakeNativeView", "FakeTransport", "reset_fakes"]
30
39
 
@@ -40,6 +49,15 @@ class FakeNativeView:
40
49
  self.parent: Optional["FakeNativeView"] = None
41
50
  self.frame: Tuple[float, float, float, float] = (0.0, 0.0, 0.0, 0.0)
42
51
  self.animated: Dict[str, Any] = {}
52
+ """Paint props motion wrote, overriding ``props`` (RFC 0009)."""
53
+ self.exiting: Optional[int] = None
54
+ """The ``exit`` op's owner while the view animates out, else ``None``."""
55
+
56
+ def presented(self, key: str) -> Any:
57
+ """The value the platform shows for ``key``: motion's write, else the committed prop."""
58
+ if key in self.animated:
59
+ return self.animated[key]
60
+ return self.props.get(key)
43
61
 
44
62
  def __repr__(self) -> str:
45
63
  return f"<native {self.type_name} tag={self.tag}>"
@@ -145,13 +163,11 @@ def _frame() -> None:
145
163
  def _take_writes() -> None:
146
164
  if _installed is None:
147
165
  return
148
- for tag, prop, value in _installed.take_writes():
166
+ for write in _installed.take_writes():
167
+ tag = write.tags[0] if write.kind == "remove" and write.tags else write.tag
149
168
  for transport in list(_transports.values()):
150
- view = transport.views.get(tag)
151
- if view is not None or transport.owns(tag):
152
- transport.writes.append((tag, prop, value))
153
- if view is not None:
154
- view.animated[prop] = value
169
+ if tag in transport.views or transport.owns(tag):
170
+ transport._write(write)
155
171
  break
156
172
 
157
173
 
@@ -179,6 +195,12 @@ def _mount_all() -> None:
179
195
  error = str(exc)
180
196
  _installed.mount_finished(ident, error)
181
197
  _take_writes()
198
+ if transport is not None and transport.finish_exits:
199
+ # The fake native stack finishes its transitions at once.
200
+ for op in transaction.ops:
201
+ if op.kind == "exit" and op.owner == 1:
202
+ _installed.exit_finished(transaction.surface, op.tag)
203
+ _take_writes()
182
204
  finally:
183
205
  _mounting = False
184
206
 
@@ -210,6 +232,9 @@ def reset_fakes() -> None:
210
232
  _transports.clear()
211
233
  if _installed is not None:
212
234
  _installed.reset()
235
+ from ..motion.runtime import runtime as motion
236
+
237
+ motion.reset() # the core forgot every program, shared value, and binding
213
238
  from . import _loaded_contracts
214
239
 
215
240
  _loaded_contracts.clear() # the reset dropped every compiled contract
@@ -233,7 +258,7 @@ class FakeTransport:
233
258
  views: Mounted views by tag (flattened views never appear).
234
259
  transactions: Every decoded mount transaction.
235
260
  commands: ``(tag, name, args)`` tuples in the order the UI thread ran them.
236
- writes: ``(tag, prop, value)`` animated writes, in order.
261
+ writes: Every [`MotionWrite`][pythonnative.bridge.core.MotionWrite], in order.
237
262
  calls: ``(module, method, args)`` tuples in call order.
238
263
  measured: ``(tag, component)`` pairs the core asked the platform to measure.
239
264
  """
@@ -260,7 +285,9 @@ class FakeTransport:
260
285
  self.views: Dict[int, FakeNativeView] = {}
261
286
  self.transactions: List[MountTransaction] = []
262
287
  self.commands: List[Tuple[int, str, Dict[str, Any]]] = []
263
- self.writes: List[Tuple[int, str, Any]] = []
288
+ self.writes: List[MotionWrite] = []
289
+ self.finish_exits = True
290
+ """Finish platform-owned exits (leaving screens and modals) as soon as they mount."""
264
291
  self.calls: List[Tuple[str, str, Dict[str, Any]]] = []
265
292
  self.measured: List[Tuple[int, str]] = []
266
293
  self.command_results: Dict[str, Any] = {}
@@ -316,12 +343,25 @@ class FakeTransport:
316
343
  _mount_all()
317
344
  return result
318
345
 
319
- def animate(self, surface: int, tag: int, request_json: str) -> str:
320
- """Queue an animation request and run it on the fake UI thread."""
321
- result = self.core.animate(surface, tag, request_json)
346
+ def motion(self, surface: int, request_json: str) -> str:
347
+ """Queue a motion request and apply it on the fake UI thread."""
348
+ result = self.core.motion(surface, request_json)
322
349
  _mount_all()
323
350
  return result
324
351
 
352
+ def shared_read(self, ident: int) -> str:
353
+ """The latest value the fake UI thread published for a shared value, as JSON."""
354
+ return self.core.shared_read(ident)
355
+
356
+ def exit_finished(self, tag: int) -> None:
357
+ """Finish a platform-owned exit (a leaving screen or modal), as the native stack would."""
358
+ self.core.exit_finished(self.surface, tag)
359
+ _take_writes()
360
+
361
+ def shared_elements(self, from_screen: int, to_screen: int) -> List[Dict[str, Any]]:
362
+ """The views the core pairs by ``shared_tag`` between two screens."""
363
+ return list(json.loads(self.core.shared_elements(self.surface, from_screen, to_screen)))
364
+
325
365
  def measure(self, surface: int, tag: int) -> str:
326
366
  """The shadow and window frames of a view."""
327
367
  return self.core.measure(surface, tag)
@@ -387,9 +427,20 @@ class FakeTransport:
387
427
  child = self._require(op.tag, "insert")
388
428
  if child.parent is not None:
389
429
  child.parent.children.remove(child)
390
- index = max(0, min(int(op.index), len(parent.children)))
430
+ # Indices count only the children that aren't animating out.
431
+ index = len(parent.children)
432
+ live = 0
433
+ for position, sibling in enumerate(parent.children):
434
+ if sibling.exiting is not None:
435
+ continue
436
+ if live == int(op.index):
437
+ index = position
438
+ break
439
+ live += 1
391
440
  parent.children.insert(index, child)
392
441
  child.parent = parent
442
+ elif op.kind == "exit":
443
+ self._require(op.tag, "exit").exiting = op.owner
393
444
  elif op.kind == "delete":
394
445
  deleted = self.views.pop(op.tag, None)
395
446
  if deleted is None:
@@ -414,6 +465,26 @@ class FakeTransport:
414
465
  codec.dumps({"call_id": op.call_id, "ok": True, "value": codec.to_jsonable(result)}),
415
466
  )
416
467
 
468
+ def _write(self, write: MotionWrite) -> None:
469
+ self.writes.append(write)
470
+ if write.kind == "prop":
471
+ view = self.views.get(write.tag)
472
+ if view is not None:
473
+ if write.value is None:
474
+ view.animated.pop(write.prop, None)
475
+ else:
476
+ view.animated[write.prop] = write.value
477
+ elif write.kind == "frame":
478
+ view = self.views.get(write.tag)
479
+ if view is not None:
480
+ view.frame = write.frame
481
+ elif write.kind == "remove":
482
+ for tag in write.tags:
483
+ removed = self.views.pop(tag, None)
484
+ if removed is not None and removed.parent is not None:
485
+ removed.parent.children.remove(removed)
486
+ removed.parent = None
487
+
417
488
  def _publish_list(self, tag: int) -> None:
418
489
  edits = self.core.list_apply(self.surface, tag)
419
490
  if edits is not None: