pythonnative 0.45.0__tar.gz → 0.47.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 (618) hide show
  1. {pythonnative-0.45.0/src/pythonnative.egg-info → pythonnative-0.47.0}/PKG-INFO +8 -7
  2. {pythonnative-0.45.0 → pythonnative-0.47.0}/README.md +7 -5
  3. {pythonnative-0.45.0 → pythonnative-0.47.0}/pyproject.toml +5 -4
  4. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/__init__.py +102 -18
  5. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/animated.py +645 -139
  6. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/animation_graph.py +32 -1
  7. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bootstrap.py +2 -2
  8. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/__init__.py +8 -13
  9. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/android.py +1 -0
  10. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/codec.py +38 -20
  11. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/commits.py +27 -5
  12. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/ios.py +1 -0
  13. pythonnative-0.47.0/src/pythonnative/bridge/list_store.py +135 -0
  14. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/web.py +32 -4
  15. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/cli/pn.py +33 -11
  16. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/component.py +35 -6
  17. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/__init__.py +21 -4
  18. pythonnative-0.47.0/src/pythonnative/components/_base.py +288 -0
  19. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/controls.py +92 -13
  20. pythonnative-0.47.0/src/pythonnative/components/events.py +104 -0
  21. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/graphics.py +26 -3
  22. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/layout.py +194 -41
  23. pythonnative-0.47.0/src/pythonnative/components/lists.py +1052 -0
  24. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/media.py +71 -10
  25. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/overlays.py +18 -5
  26. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/pressable.py +189 -64
  27. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/text.py +180 -23
  28. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/host.js +273 -29
  29. pythonnative-0.47.0/src/pythonnative/devserver/static/layout.js +139 -0
  30. pythonnative-0.47.0/src/pythonnative/devserver/static/list-store.js +90 -0
  31. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/preview.css +62 -2
  32. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/renderer.js +866 -145
  33. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/shell.js +8 -0
  34. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/diagnostics.py +24 -0
  35. pythonnative-0.47.0/src/pythonnative/equality.py +48 -0
  36. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/gestures.py +335 -32
  37. pythonnative-0.47.0/src/pythonnative/handles.py +218 -0
  38. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/hooks.py +138 -80
  39. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/hosts/base.py +129 -147
  40. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/hosts/native.py +46 -18
  41. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/icons/__init__.py +4 -4
  42. {pythonnative-0.45.0/src/pythonnative/reconciler → pythonnative-0.47.0/src/pythonnative}/journal.py +73 -3
  43. pythonnative-0.47.0/src/pythonnative/list_data.py +199 -0
  44. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/mutations.py +8 -10
  45. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/build.gradle +4 -0
  46. pythonnative-0.47.0/src/pythonnative/native/android/src/main/AndroidManifest.xml +34 -0
  47. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/cpp/yoga_jni.cpp +0 -3
  48. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +125 -0
  49. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +1322 -0
  50. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeValues.kt +475 -266
  51. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +5515 -0
  52. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +13 -5
  53. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +175 -0
  54. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +42 -15
  55. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +45 -9
  56. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +1 -1
  57. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +3 -0
  58. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +1 -1
  59. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +4 -2
  60. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +4 -27
  61. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +7 -7
  62. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +1 -1
  63. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/EffectManagers.kt +2 -2
  64. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +5 -3
  65. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +30 -7
  66. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ListStore.kt +97 -0
  67. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +186 -0
  68. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +41 -2
  69. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNTheme.kt +67 -0
  70. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +1 -1
  71. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +39 -12
  72. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +331 -0
  73. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenTransitions.kt +81 -0
  74. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +374 -0
  75. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +1 -1
  76. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +8 -4
  77. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SvgManager.kt +14 -3
  78. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +21 -13
  79. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +119 -20
  80. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +155 -24
  81. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +166 -16
  82. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +108 -34
  83. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +42 -2
  84. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +62 -10
  85. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +12 -3
  86. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +89 -14
  87. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +37 -9
  88. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +0 -1
  89. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +15 -0
  90. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +57 -6
  91. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/ErrorOverlay.kt +42 -0
  92. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +17 -0
  93. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +291 -0
  94. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +42 -13
  95. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PlatformModules.kt +255 -0
  96. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +2 -2
  97. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNKeyboard.kt +128 -0
  98. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +51 -10
  99. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +35 -2
  100. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +141 -0
  101. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +125 -0
  102. pythonnative-0.47.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNScrollViews.kt +27 -0
  103. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_fade_in.xml +4 -0
  104. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_fade_out.xml +4 -0
  105. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_hold.xml +6 -0
  106. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_bottom.xml +5 -0
  107. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_left.xml +6 -0
  108. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_right.xml +5 -0
  109. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_bottom.xml +5 -0
  110. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_left.xml +6 -0
  111. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_right.xml +5 -0
  112. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/drawable/pn_ic_arrow_back.xml +13 -0
  113. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/values/pn_ids.xml +23 -0
  114. pythonnative-0.47.0/src/pythonnative/native/android/src/main/res/xml/pn_file_paths.xml +9 -0
  115. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/generated/PNRecordFixtures.kt +143 -0
  116. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +130 -0
  117. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ContractFixtureTest.kt +33 -0
  118. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +140 -1
  119. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +95 -0
  120. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +28 -0
  121. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundOneRobolectricTest.kt +249 -0
  122. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoLogicTest.kt +86 -0
  123. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoRobolectricTest.kt +250 -0
  124. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ScreenTransitionsTest.kt +73 -0
  125. pythonnative-0.47.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/StyleAccessibilityDeviceTest.kt +87 -0
  126. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +15 -6
  127. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +506 -0
  128. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +14 -4
  129. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +26 -6
  130. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +4 -0
  131. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +3 -3
  132. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +9 -2
  133. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +10 -11
  134. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +29 -8
  135. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNListStore.swift +122 -0
  136. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +83 -16
  137. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +20 -9
  138. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +484 -0
  139. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +330 -0
  140. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNSvgManager.swift +14 -2
  141. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +14 -12
  142. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +126 -6
  143. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +183 -7
  144. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +151 -0
  145. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +141 -0
  146. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +6 -0
  147. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +132 -5
  148. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +105 -58
  149. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +50 -3
  150. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +133 -0
  151. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +1423 -0
  152. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeValues.swift +673 -466
  153. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +5539 -0
  154. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +171 -12
  155. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +38 -14
  156. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/EnvironmentModules.swift +138 -0
  157. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +53 -7
  158. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +2 -2
  159. pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNErrorOverlay.swift +47 -0
  160. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +27 -9
  161. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +24 -3
  162. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +10 -0
  163. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/project.pbxproj +6 -2
  164. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAssetTests.swift +2 -2
  165. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +44 -4
  166. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractFixtureTests.swift +16 -3
  167. pythonnative-0.47.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractParityTests.swift +537 -0
  168. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +4 -3
  169. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNLifecycleTests.swift +1 -1
  170. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +6 -4
  171. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +2 -2
  172. pythonnative-0.47.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNParityTests.swift +424 -0
  173. pythonnative-0.47.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNRecordFixtures.swift +155 -0
  174. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +1 -1
  175. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/style.cpp +62 -0
  176. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/__init__.py +36 -0
  177. pythonnative-0.47.0/src/pythonnative/native_modules/accessibility_info.py +179 -0
  178. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/camera.py +6 -3
  179. pythonnative-0.47.0/src/pythonnative/native_modules/device.py +114 -0
  180. pythonnative-0.47.0/src/pythonnative/native_modules/dimensions.py +122 -0
  181. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/fallback.py +89 -8
  182. pythonnative-0.47.0/src/pythonnative/native_modules/keyboard.py +106 -0
  183. pythonnative-0.47.0/src/pythonnative/native_modules/localization.py +177 -0
  184. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/location.py +9 -5
  185. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/notifications.py +7 -5
  186. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/permissions.py +9 -5
  187. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/secure_store.py +25 -9
  188. pythonnative-0.47.0/src/pythonnative/native_views/__init__.py +104 -0
  189. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_views/bridge_backend.py +164 -41
  190. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/__init__.py +37 -4
  191. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/container.py +37 -6
  192. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/handle.py +137 -20
  193. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/host.py +2 -2
  194. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/navigators.py +320 -105
  195. pythonnative-0.47.0/src/pythonnative/navigation/ref.py +121 -0
  196. pythonnative-0.47.0/src/pythonnative/navigation/screen.py +299 -0
  197. pythonnative-0.47.0/src/pythonnative/navigation/theme.py +159 -0
  198. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/platform_metrics.py +85 -8
  199. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/preview.py +3 -3
  200. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/profiling.py +29 -6
  201. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/reconciler/__init__.py +3 -3
  202. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/reconciler/boundaries.py +161 -59
  203. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/reconciler/core.py +409 -190
  204. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/reconciler/layout_pass.py +52 -22
  205. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/reconciler/vnode.py +48 -39
  206. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/scheduler.py +12 -7
  207. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/__init__.py +17 -29
  208. pythonnative-0.47.0/src/pythonnative/sdk/_components.py +317 -0
  209. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/builtins.py +66 -15
  210. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/codegen.py +26 -19
  211. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/commands.py +0 -1
  212. pythonnative-0.47.0/src/pythonnative/sdk/contract_codegen.py +197 -0
  213. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/schema.py +4 -3
  214. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/services.py +63 -2
  215. pythonnative-0.47.0/src/pythonnative/sdk/templates/contracts.kt +60 -0
  216. pythonnative-0.47.0/src/pythonnative/sdk/templates/contracts.swift +84 -0
  217. pythonnative-0.47.0/src/pythonnative/sdk/templates/values.swift +180 -0
  218. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/style.py +216 -36
  219. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/suspense.py +108 -2
  220. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +2 -1
  221. pythonnative-0.47.0/src/pythonnative/testing/__init__.py +79 -0
  222. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/testing/backend.py +234 -14
  223. pythonnative-0.47.0/src/pythonnative/testing/clock.py +200 -0
  224. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/testing/harness.py +93 -94
  225. pythonnative-0.47.0/src/pythonnative/testing/pytest_plugin.py +46 -0
  226. pythonnative-0.47.0/src/pythonnative/testing/queries.py +395 -0
  227. {pythonnative-0.45.0 → pythonnative-0.47.0/src/pythonnative.egg-info}/PKG-INFO +8 -7
  228. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative.egg-info/SOURCES.txt +57 -3
  229. pythonnative-0.47.0/src/pythonnative.egg-info/entry_points.txt +5 -0
  230. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative.egg-info/requires.txt +0 -1
  231. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_animated.py +278 -15
  232. pythonnative-0.47.0/tests/test_animated_easing.py +182 -0
  233. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_animated_graph.py +51 -7
  234. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_appearance.py +2 -2
  235. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_bridge.py +29 -16
  236. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_cli.py +28 -0
  237. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_codegen.py +49 -0
  238. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_components.py +5 -5
  239. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_core_semantics.py +10 -10
  240. pythonnative-0.47.0/tests/test_device_modules.py +543 -0
  241. pythonnative-0.47.0/tests/test_e2e_suite_renders.py +341 -0
  242. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_events.py +3 -1
  243. pythonnative-0.47.0/tests/test_extended_components.py +625 -0
  244. pythonnative-0.47.0/tests/test_gesture_activation.py +251 -0
  245. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_gesture_composition.py +36 -0
  246. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_gestures.py +78 -3
  247. pythonnative-0.47.0/tests/test_handles.py +201 -0
  248. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_hooks.py +33 -4
  249. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_hosts.py +98 -47
  250. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_hot_reload.py +3 -3
  251. pythonnative-0.47.0/tests/test_incremental_pipeline.py +472 -0
  252. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_incremental_render.py +1 -1
  253. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_interaction_props.py +8 -7
  254. pythonnative-0.47.0/tests/test_list_features.py +236 -0
  255. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_metric_hooks.py +17 -2
  256. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_native_lists.py +17 -14
  257. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_native_modules.py +42 -2
  258. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_native_values.py +2 -3
  259. pythonnative-0.47.0/tests/test_native_views.py +138 -0
  260. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_navigation.py +566 -0
  261. pythonnative-0.47.0/tests/test_navigation_theme.py +274 -0
  262. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_new_components.py +23 -22
  263. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_platform.py +1 -1
  264. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_platform_metrics.py +60 -0
  265. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_reconciler.py +2 -2
  266. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_ref.py +49 -15
  267. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_runtime_contracts.py +8 -5
  268. pythonnative-0.47.0/tests/test_runtime_correctness.py +525 -0
  269. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_runtime_overhaul.py +11 -5
  270. pythonnative-0.47.0/tests/test_sdk.py +335 -0
  271. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_style.py +109 -12
  272. pythonnative-0.47.0/tests/test_testing_library.py +514 -0
  273. pythonnative-0.47.0/tests/test_typed_events.py +128 -0
  274. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_web_transport.py +26 -7
  275. pythonnative-0.45.0/src/pythonnative/components/_base.py +0 -166
  276. pythonnative-0.45.0/src/pythonnative/components/lists.py +0 -662
  277. pythonnative-0.45.0/src/pythonnative/components/media_events.py +0 -22
  278. pythonnative-0.45.0/src/pythonnative/devserver/static/layout.js +0 -85
  279. pythonnative-0.45.0/src/pythonnative/equality.py +0 -19
  280. pythonnative-0.45.0/src/pythonnative/native/android/src/main/AndroidManifest.xml +0 -14
  281. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +0 -1218
  282. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +0 -216
  283. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +0 -141
  284. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +0 -138
  285. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +0 -173
  286. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +0 -218
  287. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +0 -164
  288. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +0 -48
  289. pythonnative-0.45.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +0 -76
  290. pythonnative-0.45.0/src/pythonnative/native/android/src/test/java/com/pythonnative/generated/PNRecordFixtures.kt +0 -49
  291. pythonnative-0.45.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +0 -75
  292. pythonnative-0.45.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ContractFixtureTest.kt +0 -19
  293. pythonnative-0.45.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +0 -47
  294. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +0 -312
  295. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +0 -234
  296. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +0 -199
  297. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +0 -82
  298. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +0 -86
  299. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +0 -1319
  300. pythonnative-0.45.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +0 -108
  301. pythonnative-0.45.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNRecordFixtures.swift +0 -52
  302. pythonnative-0.45.0/src/pythonnative/native_views/__init__.py +0 -375
  303. pythonnative-0.45.0/src/pythonnative/native_views/base.py +0 -316
  304. pythonnative-0.45.0/src/pythonnative/navigation/screen.py +0 -145
  305. pythonnative-0.45.0/src/pythonnative/sdk/_components.py +0 -431
  306. pythonnative-0.45.0/src/pythonnative/sdk/templates/contracts.kt +0 -96
  307. pythonnative-0.45.0/src/pythonnative/sdk/templates/contracts.swift +0 -108
  308. pythonnative-0.45.0/src/pythonnative/sdk/templates/values.swift +0 -71
  309. pythonnative-0.45.0/src/pythonnative/testing/__init__.py +0 -53
  310. pythonnative-0.45.0/src/pythonnative.egg-info/entry_points.txt +0 -2
  311. pythonnative-0.45.0/tests/test_extended_components.py +0 -332
  312. pythonnative-0.45.0/tests/test_native_views.py +0 -481
  313. pythonnative-0.45.0/tests/test_sdk.py +0 -471
  314. {pythonnative-0.45.0 → pythonnative-0.47.0}/.github/workflows/release.yml +0 -0
  315. {pythonnative-0.45.0 → pythonnative-0.47.0}/LICENSE +0 -0
  316. {pythonnative-0.45.0 → pythonnative-0.47.0}/MANIFEST.in +0 -0
  317. {pythonnative-0.45.0 → pythonnative-0.47.0}/scripts/check-distributions.py +0 -0
  318. {pythonnative-0.45.0 → pythonnative-0.47.0}/scripts/cibuildwheel.toml +0 -0
  319. {pythonnative-0.45.0 → pythonnative-0.47.0}/scripts/release-assets.py +0 -0
  320. {pythonnative-0.45.0 → pythonnative-0.47.0}/setup.cfg +0 -0
  321. {pythonnative-0.45.0 → pythonnative-0.47.0}/setup.py +0 -0
  322. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/_ios_log.py +0 -0
  323. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/alerts.py +0 -0
  324. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/appearance.py +0 -0
  325. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/assets/__init__.py +0 -0
  326. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/assets/fonts.py +0 -0
  327. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/bridge/fake.py +0 -0
  328. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/cli/__init__.py +0 -0
  329. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/components/structural.py +0 -0
  330. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devclient.py +0 -0
  331. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/__init__.py +0 -0
  332. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/server.py +0 -0
  333. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/animation_graph.js +0 -0
  334. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/assets.js +0 -0
  335. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/bridge.js +0 -0
  336. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/colors.js +0 -0
  337. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/contracts.js +0 -0
  338. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/index.html +0 -0
  339. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/LICENSE +0 -0
  340. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +0 -0
  341. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +0 -0
  342. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js +0 -0
  343. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +0 -0
  344. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/index.d.ts +0 -0
  345. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/index.js +0 -0
  346. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/index.js.map +0 -0
  347. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/load.d.ts +0 -0
  348. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/load.js +0 -0
  349. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/load.js.map +0 -0
  350. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +0 -0
  351. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js +0 -0
  352. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +0 -0
  353. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/watcher.py +0 -0
  354. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/devserver/ws.py +0 -0
  355. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/element.py +0 -0
  356. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/events.py +0 -0
  357. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/hosts/__init__.py +0 -0
  358. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/hot_reload.py +0 -0
  359. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/icons/LICENSE-lucide.txt +0 -0
  360. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/icons/_lucide.json +0 -0
  361. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/icons/_names.py +0 -0
  362. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/layout.py +0 -0
  363. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/gradle.properties +0 -0
  364. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/settings.gradle +0 -0
  365. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/cpp/CMakeLists.txt +0 -0
  366. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +0 -0
  367. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +0 -0
  368. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/assets/PNAssets.kt +0 -0
  369. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +0 -0
  370. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +0 -0
  371. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +0 -0
  372. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +0 -0
  373. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +0 -0
  374. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +0 -0
  375. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +0 -0
  376. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/graphics/SvgPath.kt +0 -0
  377. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/AssetModules.kt +0 -0
  378. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +0 -0
  379. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +0 -0
  380. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +0 -0
  381. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +0 -0
  382. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +0 -0
  383. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +0 -0
  384. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AssetsAndSvgTest.kt +0 -0
  385. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/NativeLifecycleTest.kt +0 -0
  386. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +0 -0
  387. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Package.swift +0 -0
  388. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +0 -0
  389. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +0 -0
  390. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +0 -0
  391. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +0 -0
  392. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNEffectManagers.swift +0 -0
  393. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +0 -0
  394. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/ImagesModule.swift +0 -0
  395. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +0 -0
  396. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +0 -0
  397. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +0 -0
  398. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +0 -0
  399. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Resources/PrivacyInfo.xcprivacy +0 -0
  400. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +0 -0
  401. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNAssets.swift +0 -0
  402. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +0 -0
  403. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +0 -0
  404. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +0 -0
  405. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/xcshareddata/xcschemes/NativeTests.xcscheme +0 -0
  406. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/validation.json +0 -0
  407. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +0 -0
  408. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +0 -0
  409. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/ios/Tests/TestHost/main.swift +0 -0
  410. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/LICENSE +0 -0
  411. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/Package.swift +0 -0
  412. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/VENDORED.md +0 -0
  413. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/PNStyle.h +0 -0
  414. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/module.modulemap +0 -0
  415. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGConfig.h +0 -0
  416. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGEnums.h +0 -0
  417. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGMacros.h +0 -0
  418. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGNode.h +0 -0
  419. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGNodeLayout.h +0 -0
  420. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGNodeStyle.h +0 -0
  421. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGPixelGrid.h +0 -0
  422. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/YGValue.h +0 -0
  423. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/include/yoga/Yoga.h +0 -0
  424. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/python.cpp +0 -0
  425. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/CMakeLists.txt +0 -0
  426. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGConfig.cpp +0 -0
  427. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGConfig.h +0 -0
  428. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGEnums.cpp +0 -0
  429. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGEnums.h +0 -0
  430. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGMacros.h +0 -0
  431. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGNode.cpp +0 -0
  432. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGNode.h +0 -0
  433. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGNodeLayout.cpp +0 -0
  434. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGNodeLayout.h +0 -0
  435. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGNodeStyle.cpp +0 -0
  436. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGNodeStyle.h +0 -0
  437. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGPixelGrid.cpp +0 -0
  438. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGPixelGrid.h +0 -0
  439. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGValue.cpp +0 -0
  440. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/YGValue.h +0 -0
  441. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/Yoga.h +0 -0
  442. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.cpp +0 -0
  443. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.h +0 -0
  444. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/Align.h +0 -0
  445. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/Baseline.cpp +0 -0
  446. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/Baseline.h +0 -0
  447. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/BoundAxis.h +0 -0
  448. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/Cache.cpp +0 -0
  449. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/Cache.h +0 -0
  450. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/CalculateLayout.cpp +0 -0
  451. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/CalculateLayout.h +0 -0
  452. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexDirection.h +0 -0
  453. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexLine.cpp +0 -0
  454. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexLine.h +0 -0
  455. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/PixelGrid.cpp +0 -0
  456. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/PixelGrid.h +0 -0
  457. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/SizingMode.h +0 -0
  458. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/algorithm/TrailingPosition.h +0 -0
  459. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/config/Config.cpp +0 -0
  460. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/config/Config.h +0 -0
  461. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/debug/AssertFatal.cpp +0 -0
  462. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/debug/AssertFatal.h +0 -0
  463. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/debug/Log.cpp +0 -0
  464. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/debug/Log.h +0 -0
  465. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Align.h +0 -0
  466. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/BoxSizing.h +0 -0
  467. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Dimension.h +0 -0
  468. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Direction.h +0 -0
  469. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Display.h +0 -0
  470. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Edge.h +0 -0
  471. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Errata.h +0 -0
  472. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/ExperimentalFeature.h +0 -0
  473. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/FlexDirection.h +0 -0
  474. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Gutter.h +0 -0
  475. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Justify.h +0 -0
  476. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/LogLevel.h +0 -0
  477. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/MeasureMode.h +0 -0
  478. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/NodeType.h +0 -0
  479. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Overflow.h +0 -0
  480. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/PhysicalEdge.h +0 -0
  481. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/PositionType.h +0 -0
  482. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Unit.h +0 -0
  483. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/Wrap.h +0 -0
  484. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/enums/YogaEnums.h +0 -0
  485. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/event/event.cpp +0 -0
  486. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/event/event.h +0 -0
  487. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/module.modulemap +0 -0
  488. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/node/CachedMeasurement.h +0 -0
  489. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/node/LayoutResults.cpp +0 -0
  490. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/node/LayoutResults.h +0 -0
  491. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/node/LayoutableChildren.h +0 -0
  492. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/node/Node.cpp +0 -0
  493. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/node/Node.h +0 -0
  494. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/numeric/Comparison.h +0 -0
  495. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/numeric/FloatOptional.h +0 -0
  496. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/style/SmallValueBuffer.h +0 -0
  497. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/style/Style.h +0 -0
  498. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/style/StyleLength.h +0 -0
  499. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/style/StyleValueHandle.h +0 -0
  500. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native/yoga/yoga/style/StyleValuePool.h +0 -0
  501. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/app_state.py +0 -0
  502. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/battery.py +0 -0
  503. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/biometrics.py +0 -0
  504. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/clipboard.py +0 -0
  505. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/file_system.py +0 -0
  506. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/haptics.py +0 -0
  507. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/images.py +0 -0
  508. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/linking.py +0 -0
  509. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/net_info.py +0 -0
  510. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/registry.py +0 -0
  511. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/native_modules/share.py +0 -0
  512. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/hooks.py +0 -0
  513. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/linking.py +0 -0
  514. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/navigation/state.py +0 -0
  515. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/net.py +0 -0
  516. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/platform.py +0 -0
  517. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/__init__.py +0 -0
  518. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/android.py +0 -0
  519. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/artifacts.py +0 -0
  520. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/builder.py +0 -0
  521. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/config.py +0 -0
  522. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/deps.py +0 -0
  523. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/devices.py +0 -0
  524. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/doctor.py +0 -0
  525. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/fingerprint.py +0 -0
  526. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/icons.py +0 -0
  527. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/ios.py +0 -0
  528. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/lockfile.py +0 -0
  529. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/permissions.py +0 -0
  530. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/plugins.py +0 -0
  531. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/project/runtime_assets.py +0 -0
  532. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/py.typed +0 -0
  533. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/query.py +0 -0
  534. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/reconciler/children.py +0 -0
  535. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/refresh.py +0 -0
  536. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/runtime.py +0 -0
  537. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/module_codegen.py +0 -0
  538. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/native_types.py +0 -0
  539. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/templates/values.kt +0 -0
  540. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/sdk/types.py +0 -0
  541. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/storage.py +0 -0
  542. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/svg.py +0 -0
  543. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/build.gradle +0 -0
  544. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/proguard-rules.pro +0 -0
  545. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt +0 -0
  546. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +0 -0
  547. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +0 -0
  548. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +0 -0
  549. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
  550. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -0
  551. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +0 -0
  552. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
  553. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
  554. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  555. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  556. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  557. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  558. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  559. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  560. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  561. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  562. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  563. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  564. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +0 -0
  565. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/values/colors.xml +0 -0
  566. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/values/strings.xml +0 -0
  567. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/values/themes.xml +0 -0
  568. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +0 -0
  569. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +0 -0
  570. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +0 -0
  571. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/app/src/test/java/com/pythonnative/android_template/ExampleUnitTest.kt +0 -0
  572. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/build.gradle +0 -0
  573. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
  574. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +0 -0
  575. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/gradle.properties +0 -0
  576. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/gradlew +0 -0
  577. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/gradlew.bat +0 -0
  578. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/android_template/settings.gradle +0 -0
  579. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/AppDelegate.swift +0 -0
  580. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  581. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  582. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +0 -0
  583. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +0 -0
  584. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/BridgingHeader.h +0 -0
  585. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/Info.plist +0 -0
  586. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/PrivacyInfo.xcprivacy +0 -0
  587. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +0 -0
  588. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +0 -0
  589. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template/ViewController.swift +0 -0
  590. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +0 -0
  591. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  592. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift +0 -0
  593. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +0 -0
  594. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift +0 -0
  595. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative/utils.py +0 -0
  596. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative.egg-info/dependency_links.txt +0 -0
  597. {pythonnative-0.45.0 → pythonnative-0.47.0}/src/pythonnative.egg-info/top_level.txt +0 -0
  598. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_alert.py +0 -0
  599. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_assets.py +0 -0
  600. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_async_hooks.py +0 -0
  601. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_contract_fixtures.py +0 -0
  602. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_devclient.py +0 -0
  603. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_devserver.py +0 -0
  604. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_devserver_ws.py +0 -0
  605. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_element.py +0 -0
  606. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_inbox.py +0 -0
  607. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_ios_log.py +0 -0
  608. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_layout.py +0 -0
  609. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_mutations.py +0 -0
  610. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_net.py +0 -0
  611. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_release_packaging.py +0 -0
  612. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_release_workflow.py +0 -0
  613. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_runtime.py +0 -0
  614. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_smoke.py +0 -0
  615. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_storage.py +0 -0
  616. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_suspense.py +0 -0
  617. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_transitions.py +0 -0
  618. {pythonnative-0.45.0 → pythonnative-0.47.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonnative
3
- Version: 0.45.0
3
+ Version: 0.47.0
4
4
  Summary: Cross-platform native UI toolkit for Android and iOS
5
5
  Author: Owen Carey
6
6
  License: MIT License
@@ -40,7 +40,6 @@ Classifier: Topic :: Software Development :: User Interfaces
40
40
  Requires-Python: >=3.13
41
41
  Description-Content-Type: text/markdown
42
42
  License-File: LICENSE
43
- Requires-Dist: requests>=2.31.0
44
43
  Provides-Extra: build
45
44
  Requires-Dist: Pillow>=10.0; extra == "build"
46
45
  Dynamic: license-file
@@ -77,15 +76,17 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
77
76
 
78
77
  ## Features
79
78
 
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.
79
+ - **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.
80
+ - **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.
81
81
  - **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The shared Yoga C++ engine computes layout beside the controls, using platform measurements for text and intrinsic sizes.
82
82
  - **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
83
  - **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.
84
- - **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 while providers and component state remain in the shared Python tree.
85
- - **Animation and gestures:** Serialized animation graphs support timing, springs, decay, arithmetic, interpolation, and native scroll and gesture bindings. Swift and Kotlin recognize mobile gestures and update supported animation bindings without Python work on every frame.
84
+ - **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, themes, tab-bar styles, and a navigation ref usable outside components.
85
+ - **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. Swift and Kotlin recognize mobile gestures with Gesture Handler-style activation offsets and update supported animation bindings without Python work on every frame.
86
86
  - **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.
87
- - **Device APIs:** Python facades expose camera, location, notifications, storage, permissions, and other native services. Test permissions and platform behavior on your deployment targets.
88
- - **Native extension SDK:** Python dataclasses and protocols define contracts; `pn codegen` generates props and module adapters for Swift and Kotlin. Plugins package native sources and resources, and builds verify matching contracts at startup.
87
+ - **Device APIs:** Python facades expose camera, location, notifications, storage, permissions, keyboard, dimensions and pixel ratio, device info, localization, accessibility settings, and other native services, with a Python fallback for headless tests. Test permissions and platform behavior on your deployment targets.
88
+ - **Native extension SDK:** Python dataclasses and protocols define contracts; `define_component` returns a typed element factory and `pn codegen` generates props and module adapters for Swift and Kotlin. Plugins package native sources and resources, and builds verify matching contracts at startup.
89
+ - **Testing library:** `pythonnative.testing` renders components headlessly with Testing Library-style queries (`get_by_role`, `get_by_placeholder_text`, `within`, `find_by_*`), a virtual clock for timers, and a pytest plugin that resets the runtime between tests.
89
90
  - **Development tools:** `pn start` serves the browser preview and connected mobile dev clients. Fast Refresh preserves compatible component state, while diagnostics report errors and invalid hook usage. Changes to native inputs trigger a rebuild.
90
91
  - **Browser preview:** `pn preview` runs your Python application against a browser renderer with DOM widgets, Yoga WebAssembly layout, and JavaScript animation graphs. It supports iteration on application logic and UI; fonts, platform controls, and device APIs require mobile testing.
91
92
  - **App packaging and dependency locks:** `pn run` and `pn build` stage bundled app templates, native libraries, and Python sources. Target-specific wheel locks record dependency versions and hashes for mobile builds. Binary dependencies need compatible mobile wheels; `pn deps` reports target resolution.
@@ -30,15 +30,17 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
30
30
 
31
31
  ## Features
32
32
 
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.
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
+ - **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.
34
35
  - **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The shared Yoga C++ engine computes layout beside the controls, using platform measurements for text and intrinsic sizes.
35
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
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.
37
- - **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 while providers and component state remain in the shared Python tree.
38
- - **Animation and gestures:** Serialized animation graphs support timing, springs, decay, arithmetic, interpolation, and native scroll and gesture bindings. Swift and Kotlin recognize mobile gestures and update supported animation bindings without Python work on every frame.
38
+ - **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, themes, tab-bar styles, and a navigation ref usable outside components.
39
+ - **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. Swift and Kotlin recognize mobile gestures with Gesture Handler-style activation offsets and update supported animation bindings without Python work on every frame.
39
40
  - **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.
40
- - **Device APIs:** Python facades expose camera, location, notifications, storage, permissions, and other native services. Test permissions and platform behavior on your deployment targets.
41
- - **Native extension SDK:** Python dataclasses and protocols define contracts; `pn codegen` generates props and module adapters for Swift and Kotlin. Plugins package native sources and resources, and builds verify matching contracts at startup.
41
+ - **Device APIs:** Python facades expose camera, location, notifications, storage, permissions, keyboard, dimensions and pixel ratio, device info, localization, accessibility settings, and other native services, with a Python fallback for headless tests. Test permissions and platform behavior on your deployment targets.
42
+ - **Native extension SDK:** Python dataclasses and protocols define contracts; `define_component` returns a typed element factory and `pn codegen` generates props and module adapters for Swift and Kotlin. Plugins package native sources and resources, and builds verify matching contracts at startup.
43
+ - **Testing library:** `pythonnative.testing` renders components headlessly with Testing Library-style queries (`get_by_role`, `get_by_placeholder_text`, `within`, `find_by_*`), a virtual clock for timers, and a pytest plugin that resets the runtime between tests.
42
44
  - **Development tools:** `pn start` serves the browser preview and connected mobile dev clients. Fast Refresh preserves compatible component state, while diagnostics report errors and invalid hook usage. Changes to native inputs trigger a rebuild.
43
45
  - **Browser preview:** `pn preview` runs your Python application against a browser renderer with DOM widgets, Yoga WebAssembly layout, and JavaScript animation graphs. It supports iteration on application logic and UI; fonts, platform controls, and device APIs require mobile testing.
44
46
  - **App packaging and dependency locks:** `pn run` and `pn build` stage bundled app templates, native libraries, and Python sources. Target-specific wheel locks record dependency versions and hashes for mobile builds. Binary dependencies need compatible mobile wheels; `pn deps` reports target resolution.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pythonnative"
7
- version = "0.45.0"
7
+ version = "0.47.0"
8
8
  description = "Cross-platform native UI toolkit for Android and iOS"
9
9
  authors = [
10
10
  { name = "Owen Carey" }
@@ -26,9 +26,7 @@ classifiers = [
26
26
  "Programming Language :: Python :: 3.14",
27
27
  "Topic :: Software Development :: User Interfaces",
28
28
  ]
29
- dependencies = [
30
- "requests>=2.31.0",
31
- ]
29
+ dependencies = []
32
30
 
33
31
  [project.optional-dependencies]
34
32
  build = [
@@ -64,6 +62,9 @@ docs = [
64
62
  [project.scripts]
65
63
  pn = "pythonnative.cli.pn:main"
66
64
 
65
+ [project.entry-points.pytest11]
66
+ pythonnative = "pythonnative.testing.pytest_plugin"
67
+
67
68
  [project.urls]
68
69
  Homepage = "https://github.com/pythonnative/pythonnative"
69
70
  Repository = "https://github.com/pythonnative/pythonnative"
@@ -42,12 +42,10 @@ Key building blocks:
42
42
  [`Rotation`][pythonnative.gestures.Rotation]).
43
43
  - **Custom native components** can be authored with the
44
44
  ``pythonnative.sdk`` package: define a typed
45
- [`Props`][pythonnative.sdk.Props] dataclass, implement a
46
- [`ViewHandler`][pythonnative.native_views.base.ViewHandler] for each
47
- platform, and register it via
48
- [`@native_component`][pythonnative.sdk.native_component] (or expose
49
- it from a PyPI package via the ``pythonnative.handlers`` entry-point
50
- group).
45
+ [`Props`][pythonnative.sdk.Props] dataclass and declare the component
46
+ with [`define_component`][pythonnative.sdk.define_component], which
47
+ returns its element factory (or expose it from a PyPI package via the
48
+ ``pythonnative.handlers`` entry-point group).
51
49
 
52
50
  Example:
53
51
  ```python
@@ -64,11 +62,11 @@ Example:
64
62
  ```
65
63
  """
66
64
 
67
- __version__ = "0.45.0"
65
+ __version__ = "0.47.0"
68
66
 
69
67
  from . import appearance, diagnostics, gestures, icons, runtime, sdk, svg
70
68
  from .alerts import Alert
71
- from .animated import Animated, AnimatedValue, use_animated_value
69
+ from .animated import ANIMATABLE_PROPS, Animated, AnimatedValue, AnimationResult, Easing, EasingSpec, use_animated_value
72
70
  from .assets import Asset, asset
73
71
  from .component import Component, component, memo
74
72
  from .components import (
@@ -77,6 +75,7 @@ from .components import (
77
75
  Button,
78
76
  Checkbox,
79
77
  Column,
78
+ ContentSizeEvent,
80
79
  DatePicker,
81
80
  ErrorBoundary,
82
81
  FlatList,
@@ -86,19 +85,25 @@ from .components import (
86
85
  ImageLoadEvent,
87
86
  ImageSource,
88
87
  KeyboardAvoidingView,
88
+ KeyPressEvent,
89
+ LayoutEvent,
89
90
  LinearGradient,
90
91
  ListController,
91
92
  Modal,
92
93
  Picker,
93
94
  Portal,
94
95
  Pressable,
96
+ PressState,
95
97
  ProgressBar,
96
98
  RefreshControl,
99
+ Ripple,
97
100
  Row,
98
101
  SafeAreaView,
102
+ ScrollEvent,
99
103
  ScrollView,
100
104
  SectionList,
101
105
  SegmentedControl,
106
+ SelectionEvent,
102
107
  Slider,
103
108
  Spacer,
104
109
  StatusBar,
@@ -114,8 +119,12 @@ from .components import (
114
119
  )
115
120
  from .diagnostics import HookOrderError
116
121
  from .element import Element
122
+ from .gestures import GestureSpec, SwipeDirection
123
+ from .handles import ScrollOffset, ScrollViewHandle, TextInputHandle, ViewHandle, WebViewHandle
117
124
  from .hooks import (
125
+ ColorScheme,
118
126
  Context,
127
+ Deps,
119
128
  MutationCall,
120
129
  MutationState,
121
130
  QueryResult,
@@ -146,64 +155,86 @@ from .hosts import create_screen
146
155
  from .icons import Icon, IconName
147
156
  from .mutations import UNSET, UnsetType
148
157
  from .native_modules import (
158
+ AccessibilityEvent,
159
+ AccessibilityInfo,
149
160
  AppState,
150
161
  Battery,
151
162
  Biometrics,
152
163
  Camera,
153
164
  Clipboard,
165
+ Device,
166
+ DeviceInfo,
167
+ Dimensions,
168
+ DimensionsEvent,
154
169
  FileSystem,
155
170
  Haptics,
156
171
  Images,
157
172
  ImageSize,
173
+ Keyboard,
174
+ KeyboardEvent,
158
175
  Linking,
176
+ Locale,
177
+ Localization,
159
178
  Location,
160
179
  NetInfo,
161
180
  Notifications,
162
181
  Permissions,
182
+ PixelRatio,
163
183
  SecureStore,
164
184
  Share,
165
185
  Vibration,
166
186
  use_app_state,
187
+ use_locales,
167
188
  use_net_info,
189
+ use_reduce_motion,
190
+ use_screen_reader_enabled,
168
191
  )
169
192
  from .navigation import (
193
+ DARK_NAVIGATION_THEME,
194
+ DEFAULT_NAVIGATION_THEME,
170
195
  LinkingConfig,
171
196
  Navigation,
197
+ NavigationColors,
172
198
  NavigationContainer,
199
+ NavigationRef,
173
200
  NavigationState,
201
+ NavigationTheme,
174
202
  Route,
203
+ ScreenGroup,
175
204
  ScreenOptions,
205
+ TabBarStyle,
176
206
  create_drawer_navigator,
207
+ create_navigation_ref,
177
208
  create_stack_navigator,
178
209
  create_tab_navigator,
179
210
  use_focus_effect,
180
211
  use_is_focused,
181
212
  use_navigation,
213
+ use_navigation_theme,
182
214
  use_route,
183
215
  )
184
216
  from .net import HTTPError, Response, fetch
185
217
  from .platform import Platform, get_platform
218
+ from .platform_metrics import WindowDimensions
186
219
  from .runtime import run_async, run_blocking
187
220
  from .scheduler import batch_updates
188
- from .sdk import (
189
- Props,
190
- ViewHandler,
191
- element_factory,
192
- native_component,
193
- register_component,
194
- )
221
+ from .sdk import Props, define_component, element_factory
195
222
  from .storage import AsyncStorage, use_persisted_state
196
223
  from .style import (
197
224
  DEFAULT_DARK_THEME,
198
225
  DEFAULT_LIGHT_THEME,
226
+ AccessibilityAction,
199
227
  AccessibilityState,
228
+ AccessibilityValue,
200
229
  AlignContent,
201
230
  AlignItems,
202
231
  AlignSelf,
203
232
  AutoCapitalize,
233
+ BorderStyle,
204
234
  Color,
205
235
  Dimension,
206
236
  Display,
237
+ DynamicColor,
207
238
  EdgeInsets,
208
239
  FlexDirection,
209
240
  FlexWrap,
@@ -245,6 +276,9 @@ __all__ = [
245
276
  "DatePicker",
246
277
  "ErrorBoundary",
247
278
  "FlatList",
279
+ "ListData",
280
+ "Section",
281
+ "ViewableItem",
248
282
  "Fragment",
249
283
  "Icon",
250
284
  "IconName",
@@ -260,8 +294,10 @@ __all__ = [
260
294
  "Picker",
261
295
  "Portal",
262
296
  "Pressable",
297
+ "PressState",
263
298
  "ProgressBar",
264
299
  "RefreshControl",
300
+ "Ripple",
265
301
  "Row",
266
302
  "SafeAreaView",
267
303
  "ScrollView",
@@ -278,6 +314,18 @@ __all__ = [
278
314
  "TouchableOpacity",
279
315
  "View",
280
316
  "WebView",
317
+ # Typed events
318
+ "ContentSizeEvent",
319
+ "KeyPressEvent",
320
+ "LayoutEvent",
321
+ "ScrollEvent",
322
+ "SelectionEvent",
323
+ # Imperative handles
324
+ "ScrollOffset",
325
+ "ScrollViewHandle",
326
+ "TextInputHandle",
327
+ "ViewHandle",
328
+ "WebViewHandle",
281
329
  # Assets and graphics
282
330
  "Asset",
283
331
  "asset",
@@ -290,6 +338,8 @@ __all__ = [
290
338
  "create_screen",
291
339
  "memo",
292
340
  # Hooks
341
+ "ColorScheme",
342
+ "Deps",
293
343
  "Context",
294
344
  "MutationCall",
295
345
  "MutationState",
@@ -323,12 +373,21 @@ __all__ = [
323
373
  "lazy",
324
374
  "start_resource",
325
375
  # Navigation
376
+ "DARK_NAVIGATION_THEME",
377
+ "DEFAULT_NAVIGATION_THEME",
326
378
  "LinkingConfig",
327
379
  "Navigation",
380
+ "NavigationColors",
328
381
  "NavigationContainer",
382
+ "NavigationRef",
329
383
  "NavigationState",
384
+ "NavigationTheme",
330
385
  "Route",
386
+ "ScreenGroup",
331
387
  "ScreenOptions",
388
+ "TabBarStyle",
389
+ "create_navigation_ref",
390
+ "use_navigation_theme",
332
391
  "create_drawer_navigator",
333
392
  "create_stack_navigator",
334
393
  "create_tab_navigator",
@@ -337,16 +396,20 @@ __all__ = [
337
396
  "use_navigation",
338
397
  "use_route",
339
398
  # Styling - typed primitives
399
+ "AccessibilityAction",
340
400
  "AccessibilityState",
401
+ "AccessibilityValue",
341
402
  "AlignContent",
342
403
  "AlignItems",
343
404
  "AlignSelf",
344
405
  "AutoCapitalize",
406
+ "BorderStyle",
345
407
  "Color",
346
408
  "DEFAULT_DARK_THEME",
347
409
  "DEFAULT_LIGHT_THEME",
348
410
  "Dimension",
349
411
  "Display",
412
+ "DynamicColor",
350
413
  "EdgeInsets",
351
414
  "FlexDirection",
352
415
  "FlexWrap",
@@ -376,14 +439,35 @@ __all__ = [
376
439
  # Appearance
377
440
  "appearance",
378
441
  # Animation
442
+ "ANIMATABLE_PROPS",
379
443
  "Animated",
380
444
  "AnimatedValue",
445
+ "AnimationResult",
446
+ "Easing",
447
+ "EasingSpec",
381
448
  "use_animated_value",
382
449
  # Gestures
450
+ "GestureSpec",
451
+ "SwipeDirection",
383
452
  "gestures",
384
453
  # Imperative
385
454
  "Alert",
386
455
  # Native modules
456
+ "AccessibilityEvent",
457
+ "AccessibilityInfo",
458
+ "Device",
459
+ "DeviceInfo",
460
+ "Dimensions",
461
+ "DimensionsEvent",
462
+ "Keyboard",
463
+ "KeyboardEvent",
464
+ "Locale",
465
+ "Localization",
466
+ "PixelRatio",
467
+ "WindowDimensions",
468
+ "use_locales",
469
+ "use_reduce_motion",
470
+ "use_screen_reader_enabled",
387
471
  "AppState",
388
472
  "Battery",
389
473
  "Biometrics",
@@ -420,9 +504,9 @@ __all__ = [
420
504
  "get_platform",
421
505
  # Custom-component SDK
422
506
  "Props",
423
- "ViewHandler",
507
+ "define_component",
424
508
  "element_factory",
425
- "native_component",
426
- "register_component",
427
509
  "sdk",
428
510
  ]
511
+
512
+ from .list_data import ListData, Section, ViewableItem