pythonnative 0.41.0__tar.gz → 0.43.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 (501) hide show
  1. {pythonnative-0.41.0/src/pythonnative.egg-info → pythonnative-0.43.0}/PKG-INFO +1 -1
  2. {pythonnative-0.41.0 → pythonnative-0.43.0}/pyproject.toml +2 -1
  3. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/__init__.py +1 -1
  4. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/animated.py +12 -1
  5. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/__init__.py +1 -2
  6. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/commits.py +85 -7
  7. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/fake.py +1 -1
  8. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/cli/pn.py +71 -10
  9. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/component.py +23 -28
  10. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/__init__.py +0 -3
  11. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/lists.py +94 -320
  12. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/text.py +4 -1
  13. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/server.py +7 -0
  14. pythonnative-0.43.0/src/pythonnative/devserver/static/contracts.js +48 -0
  15. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/renderer.js +103 -58
  16. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/element.py +17 -11
  17. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/hooks.py +79 -16
  18. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/hot_reload.py +16 -18
  19. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/layout.py +8 -0
  20. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/build.gradle +2 -0
  21. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/AndroidManifest.xml +3 -0
  22. pythonnative-0.43.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +420 -0
  23. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +331 -0
  24. pythonnative-0.43.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +202 -0
  25. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +10 -3
  26. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +20 -8
  27. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +1 -23
  28. pythonnative-0.43.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +126 -0
  29. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +4 -0
  30. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +0 -5
  31. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +26 -5
  32. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +7 -0
  33. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +1 -1
  34. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +6 -2
  35. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +3 -3
  36. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +18 -5
  37. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +21 -6
  38. pythonnative-0.43.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +94 -0
  39. pythonnative-0.43.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +35 -0
  40. pythonnative-0.43.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ContractFixtureTest.kt +19 -0
  41. pythonnative-0.43.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/NativeLifecycleTest.kt +103 -0
  42. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +2 -22
  43. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Package.swift +2 -1
  44. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +6 -2
  45. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +32 -12
  46. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +3 -5
  47. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +64 -40
  48. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +3 -2
  49. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +4 -1
  50. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +0 -10
  51. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +40 -9
  52. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +61 -7
  53. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +6 -5
  54. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +13 -4
  55. pythonnative-0.43.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +448 -0
  56. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +333 -0
  57. pythonnative-0.43.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +101 -0
  58. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +29 -7
  59. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +20 -2
  60. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +5 -1
  61. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +1 -0
  62. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/project.pbxproj +128 -0
  63. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/xcshareddata/xcschemes/NativeTests.xcscheme +24 -0
  64. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/validation.json +222 -0
  65. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractFixtureTests.swift +17 -0
  66. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +1 -1
  67. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNLifecycleTests.swift +80 -0
  68. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +1 -1
  69. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +12 -8
  70. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +55 -0
  71. pythonnative-0.43.0/src/pythonnative/native/ios/Tests/TestHost/main.swift +16 -0
  72. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/camera.py +7 -6
  73. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/fallback.py +3 -3
  74. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/location.py +11 -7
  75. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/notifications.py +6 -10
  76. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/registry.py +30 -26
  77. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_views/bridge_backend.py +77 -8
  78. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/navigators.py +5 -6
  79. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/screen.py +1 -7
  80. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/profiling.py +20 -0
  81. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/android.py +6 -1
  82. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/plugins.py +3 -16
  83. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/reconciler/boundaries.py +8 -10
  84. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/reconciler/core.py +91 -20
  85. pythonnative-0.43.0/src/pythonnative/reconciler/journal.py +92 -0
  86. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/reconciler/layout_pass.py +2 -2
  87. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/reconciler/vnode.py +6 -0
  88. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/scheduler.py +12 -6
  89. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/sdk/_components.py +2 -25
  90. pythonnative-0.43.0/src/pythonnative/sdk/builtins.py +168 -0
  91. pythonnative-0.43.0/src/pythonnative/sdk/commands.py +47 -0
  92. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/sdk/module_codegen.py +2 -2
  93. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/sdk/schema.py +101 -11
  94. pythonnative-0.43.0/src/pythonnative/sdk/services.py +144 -0
  95. pythonnative-0.43.0/src/pythonnative/sdk/templates/contracts.kt +92 -0
  96. pythonnative-0.43.0/src/pythonnative/sdk/templates/contracts.swift +101 -0
  97. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/testing/backend.py +47 -0
  98. {pythonnative-0.41.0 → pythonnative-0.43.0/src/pythonnative.egg-info}/PKG-INFO +1 -1
  99. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative.egg-info/SOURCES.txt +14 -0
  100. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_animated_graph.py +10 -0
  101. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_bridge.py +105 -16
  102. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_cli.py +199 -11
  103. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_components.py +7 -7
  104. pythonnative-0.43.0/tests/test_contract_fixtures.py +27 -0
  105. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_element.py +1 -1
  106. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_extended_components.py +6 -7
  107. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_hooks.py +4 -4
  108. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_inbox.py +1 -0
  109. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_native_lists.py +31 -5
  110. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_native_modules.py +1 -1
  111. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_new_components.py +6 -7
  112. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_runtime_contracts.py +3 -3
  113. pythonnative-0.43.0/tests/test_runtime_overhaul.py +283 -0
  114. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_sdk.py +4 -4
  115. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_web_transport.py +14 -4
  116. pythonnative-0.41.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +0 -5
  117. pythonnative-0.41.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +0 -129
  118. pythonnative-0.41.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +0 -117
  119. pythonnative-0.41.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +0 -100
  120. pythonnative-0.41.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +0 -18
  121. pythonnative-0.41.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +0 -1
  122. pythonnative-0.41.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +0 -46
  123. pythonnative-0.41.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +0 -91
  124. pythonnative-0.41.0/src/pythonnative/sdk/builtins.py +0 -91
  125. pythonnative-0.41.0/src/pythonnative/sdk/templates/contracts.kt +0 -46
  126. pythonnative-0.41.0/src/pythonnative/sdk/templates/contracts.swift +0 -46
  127. {pythonnative-0.41.0 → pythonnative-0.43.0}/.github/workflows/release.yml +0 -0
  128. {pythonnative-0.41.0 → pythonnative-0.43.0}/LICENSE +0 -0
  129. {pythonnative-0.41.0 → pythonnative-0.43.0}/MANIFEST.in +0 -0
  130. {pythonnative-0.41.0 → pythonnative-0.43.0}/README.md +0 -0
  131. {pythonnative-0.41.0 → pythonnative-0.43.0}/scripts/check-distributions.py +0 -0
  132. {pythonnative-0.41.0 → pythonnative-0.43.0}/scripts/cibuildwheel.toml +0 -0
  133. {pythonnative-0.41.0 → pythonnative-0.43.0}/scripts/release-assets.py +0 -0
  134. {pythonnative-0.41.0 → pythonnative-0.43.0}/setup.cfg +0 -0
  135. {pythonnative-0.41.0 → pythonnative-0.43.0}/setup.py +0 -0
  136. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/_ios_log.py +0 -0
  137. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/alerts.py +0 -0
  138. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/animation_graph.py +0 -0
  139. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/appearance.py +0 -0
  140. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bootstrap.py +0 -0
  141. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/android.py +0 -0
  142. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/codec.py +0 -0
  143. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/ios.py +0 -0
  144. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/bridge/web.py +0 -0
  145. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/cli/__init__.py +0 -0
  146. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/_base.py +0 -0
  147. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/controls.py +0 -0
  148. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/layout.py +0 -0
  149. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/media.py +0 -0
  150. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/overlays.py +0 -0
  151. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/pressable.py +0 -0
  152. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/components/structural.py +0 -0
  153. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devclient.py +0 -0
  154. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/__init__.py +0 -0
  155. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/animation_graph.js +0 -0
  156. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/bridge.js +0 -0
  157. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/colors.js +0 -0
  158. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/host.js +0 -0
  159. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/index.html +0 -0
  160. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/layout.js +0 -0
  161. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/preview.css +0 -0
  162. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/shell.js +0 -0
  163. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/LICENSE +0 -0
  164. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +0 -0
  165. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +0 -0
  166. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js +0 -0
  167. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +0 -0
  168. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/index.d.ts +0 -0
  169. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/index.js +0 -0
  170. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/index.js.map +0 -0
  171. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/load.d.ts +0 -0
  172. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/load.js +0 -0
  173. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/load.js.map +0 -0
  174. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +0 -0
  175. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js +0 -0
  176. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +0 -0
  177. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/watcher.py +0 -0
  178. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/devserver/ws.py +0 -0
  179. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/diagnostics.py +0 -0
  180. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/equality.py +0 -0
  181. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/events.py +0 -0
  182. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/gestures.py +0 -0
  183. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/hosts/__init__.py +0 -0
  184. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/hosts/base.py +0 -0
  185. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/hosts/native.py +0 -0
  186. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/mutations.py +0 -0
  187. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/gradle.properties +0 -0
  188. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/settings.gradle +0 -0
  189. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/cpp/CMakeLists.txt +0 -0
  190. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/cpp/yoga_jni.cpp +0 -0
  191. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +0 -0
  192. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +0 -0
  193. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +0 -0
  194. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +0 -0
  195. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +0 -0
  196. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +0 -0
  197. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +0 -0
  198. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +0 -0
  199. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +0 -0
  200. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +0 -0
  201. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +0 -0
  202. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +0 -0
  203. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +0 -0
  204. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +0 -0
  205. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +0 -0
  206. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +0 -0
  207. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +0 -0
  208. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +0 -0
  209. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +0 -0
  210. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +0 -0
  211. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +0 -0
  212. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +0 -0
  213. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +0 -0
  214. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +0 -0
  215. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +0 -0
  216. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +0 -0
  217. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +0 -0
  218. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +0 -0
  219. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +0 -0
  220. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +0 -0
  221. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +0 -0
  222. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +0 -0
  223. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +0 -0
  224. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +0 -0
  225. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +0 -0
  226. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +0 -0
  227. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +0 -0
  228. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +0 -0
  229. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +0 -0
  230. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +0 -0
  231. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +0 -0
  232. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +0 -0
  233. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +0 -0
  234. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +0 -0
  235. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +0 -0
  236. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +0 -0
  237. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +0 -0
  238. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +0 -0
  239. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +0 -0
  240. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +0 -0
  241. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +0 -0
  242. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +0 -0
  243. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +0 -0
  244. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +0 -0
  245. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +0 -0
  246. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +0 -0
  247. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +0 -0
  248. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +0 -0
  249. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +0 -0
  250. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +0 -0
  251. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +0 -0
  252. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +0 -0
  253. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +0 -0
  254. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +0 -0
  255. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +0 -0
  256. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +0 -0
  257. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +0 -0
  258. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +0 -0
  259. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +0 -0
  260. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +0 -0
  261. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +0 -0
  262. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +0 -0
  263. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +0 -0
  264. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +0 -0
  265. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +0 -0
  266. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +0 -0
  267. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/LICENSE +0 -0
  268. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/Package.swift +0 -0
  269. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/VENDORED.md +0 -0
  270. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/PNStyle.h +0 -0
  271. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/module.modulemap +0 -0
  272. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGConfig.h +0 -0
  273. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGEnums.h +0 -0
  274. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGMacros.h +0 -0
  275. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGNode.h +0 -0
  276. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGNodeLayout.h +0 -0
  277. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGNodeStyle.h +0 -0
  278. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGPixelGrid.h +0 -0
  279. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/YGValue.h +0 -0
  280. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/include/yoga/Yoga.h +0 -0
  281. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/python.cpp +0 -0
  282. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/style.cpp +0 -0
  283. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/CMakeLists.txt +0 -0
  284. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGConfig.cpp +0 -0
  285. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGConfig.h +0 -0
  286. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGEnums.cpp +0 -0
  287. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGEnums.h +0 -0
  288. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGMacros.h +0 -0
  289. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGNode.cpp +0 -0
  290. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGNode.h +0 -0
  291. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGNodeLayout.cpp +0 -0
  292. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGNodeLayout.h +0 -0
  293. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGNodeStyle.cpp +0 -0
  294. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGNodeStyle.h +0 -0
  295. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGPixelGrid.cpp +0 -0
  296. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGPixelGrid.h +0 -0
  297. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGValue.cpp +0 -0
  298. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/YGValue.h +0 -0
  299. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/Yoga.h +0 -0
  300. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.cpp +0 -0
  301. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.h +0 -0
  302. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/Align.h +0 -0
  303. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/Baseline.cpp +0 -0
  304. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/Baseline.h +0 -0
  305. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/BoundAxis.h +0 -0
  306. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/Cache.cpp +0 -0
  307. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/Cache.h +0 -0
  308. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/CalculateLayout.cpp +0 -0
  309. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/CalculateLayout.h +0 -0
  310. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexDirection.h +0 -0
  311. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexLine.cpp +0 -0
  312. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexLine.h +0 -0
  313. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/PixelGrid.cpp +0 -0
  314. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/PixelGrid.h +0 -0
  315. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/SizingMode.h +0 -0
  316. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/algorithm/TrailingPosition.h +0 -0
  317. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/config/Config.cpp +0 -0
  318. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/config/Config.h +0 -0
  319. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/debug/AssertFatal.cpp +0 -0
  320. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/debug/AssertFatal.h +0 -0
  321. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/debug/Log.cpp +0 -0
  322. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/debug/Log.h +0 -0
  323. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Align.h +0 -0
  324. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/BoxSizing.h +0 -0
  325. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Dimension.h +0 -0
  326. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Direction.h +0 -0
  327. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Display.h +0 -0
  328. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Edge.h +0 -0
  329. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Errata.h +0 -0
  330. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/ExperimentalFeature.h +0 -0
  331. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/FlexDirection.h +0 -0
  332. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Gutter.h +0 -0
  333. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Justify.h +0 -0
  334. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/LogLevel.h +0 -0
  335. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/MeasureMode.h +0 -0
  336. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/NodeType.h +0 -0
  337. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Overflow.h +0 -0
  338. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/PhysicalEdge.h +0 -0
  339. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/PositionType.h +0 -0
  340. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Unit.h +0 -0
  341. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/Wrap.h +0 -0
  342. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/enums/YogaEnums.h +0 -0
  343. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/event/event.cpp +0 -0
  344. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/event/event.h +0 -0
  345. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/module.modulemap +0 -0
  346. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/node/CachedMeasurement.h +0 -0
  347. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/node/LayoutResults.cpp +0 -0
  348. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/node/LayoutResults.h +0 -0
  349. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/node/LayoutableChildren.h +0 -0
  350. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/node/Node.cpp +0 -0
  351. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/node/Node.h +0 -0
  352. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/numeric/Comparison.h +0 -0
  353. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/numeric/FloatOptional.h +0 -0
  354. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/style/SmallValueBuffer.h +0 -0
  355. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/style/Style.h +0 -0
  356. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/style/StyleLength.h +0 -0
  357. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/style/StyleValueHandle.h +0 -0
  358. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native/yoga/yoga/style/StyleValuePool.h +0 -0
  359. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/__init__.py +0 -0
  360. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/app_state.py +0 -0
  361. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/battery.py +0 -0
  362. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/biometrics.py +0 -0
  363. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/clipboard.py +0 -0
  364. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/file_system.py +0 -0
  365. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/haptics.py +0 -0
  366. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/linking.py +0 -0
  367. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/net_info.py +0 -0
  368. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/permissions.py +0 -0
  369. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/secure_store.py +0 -0
  370. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_modules/share.py +0 -0
  371. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_views/__init__.py +0 -0
  372. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/native_views/base.py +0 -0
  373. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/__init__.py +0 -0
  374. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/container.py +0 -0
  375. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/handle.py +0 -0
  376. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/hooks.py +0 -0
  377. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/host.py +0 -0
  378. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/linking.py +0 -0
  379. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/navigation/state.py +0 -0
  380. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/net.py +0 -0
  381. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/platform.py +0 -0
  382. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/platform_metrics.py +0 -0
  383. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/preview.py +0 -0
  384. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/__init__.py +0 -0
  385. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/builder.py +0 -0
  386. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/config.py +0 -0
  387. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/deps.py +0 -0
  388. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/devices.py +0 -0
  389. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/doctor.py +0 -0
  390. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/fingerprint.py +0 -0
  391. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/icons.py +0 -0
  392. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/ios.py +0 -0
  393. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/lockfile.py +0 -0
  394. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/permissions.py +0 -0
  395. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/project/runtime_assets.py +0 -0
  396. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/py.typed +0 -0
  397. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/query.py +0 -0
  398. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/reconciler/__init__.py +0 -0
  399. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/reconciler/children.py +0 -0
  400. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/refresh.py +0 -0
  401. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/runtime.py +0 -0
  402. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/sdk/__init__.py +0 -0
  403. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/sdk/codegen.py +0 -0
  404. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/storage.py +0 -0
  405. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/style.py +0 -0
  406. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/suspense.py +0 -0
  407. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/build.gradle +0 -0
  408. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/proguard-rules.pro +0 -0
  409. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt +0 -0
  410. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +0 -0
  411. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +0 -0
  412. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +0 -0
  413. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +0 -0
  414. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
  415. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -0
  416. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +0 -0
  417. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
  418. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
  419. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  420. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  421. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  422. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  423. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  424. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  425. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  426. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  427. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  428. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  429. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +0 -0
  430. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/values/colors.xml +0 -0
  431. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/values/strings.xml +0 -0
  432. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/values/themes.xml +0 -0
  433. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +0 -0
  434. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +0 -0
  435. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +0 -0
  436. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/app/src/test/java/com/pythonnative/android_template/ExampleUnitTest.kt +0 -0
  437. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/build.gradle +0 -0
  438. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
  439. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +0 -0
  440. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/gradle.properties +0 -0
  441. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/gradlew +0 -0
  442. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/gradlew.bat +0 -0
  443. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/android_template/settings.gradle +0 -0
  444. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/AppDelegate.swift +0 -0
  445. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
  446. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
  447. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +0 -0
  448. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +0 -0
  449. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/BridgingHeader.h +0 -0
  450. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/Info.plist +0 -0
  451. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +0 -0
  452. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +0 -0
  453. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template/ViewController.swift +0 -0
  454. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +0 -0
  455. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
  456. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift +0 -0
  457. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +0 -0
  458. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift +0 -0
  459. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/testing/__init__.py +0 -0
  460. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/testing/harness.py +0 -0
  461. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative/utils.py +0 -0
  462. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative.egg-info/dependency_links.txt +0 -0
  463. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative.egg-info/entry_points.txt +0 -0
  464. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative.egg-info/requires.txt +0 -0
  465. {pythonnative-0.41.0 → pythonnative-0.43.0}/src/pythonnative.egg-info/top_level.txt +0 -0
  466. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_alert.py +0 -0
  467. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_animated.py +0 -0
  468. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_appearance.py +0 -0
  469. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_async_hooks.py +0 -0
  470. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_codegen.py +0 -0
  471. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_core_semantics.py +0 -0
  472. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_devclient.py +0 -0
  473. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_devserver.py +0 -0
  474. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_devserver_ws.py +0 -0
  475. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_events.py +0 -0
  476. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_gesture_composition.py +0 -0
  477. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_gestures.py +0 -0
  478. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_hosts.py +0 -0
  479. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_hot_reload.py +0 -0
  480. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_incremental_render.py +0 -0
  481. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_interaction_props.py +0 -0
  482. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_ios_log.py +0 -0
  483. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_layout.py +0 -0
  484. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_metric_hooks.py +0 -0
  485. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_mutations.py +0 -0
  486. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_native_views.py +0 -0
  487. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_navigation.py +0 -0
  488. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_net.py +0 -0
  489. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_platform.py +0 -0
  490. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_platform_metrics.py +0 -0
  491. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_reconciler.py +0 -0
  492. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_ref.py +0 -0
  493. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_release_packaging.py +0 -0
  494. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_release_workflow.py +0 -0
  495. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_runtime.py +0 -0
  496. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_smoke.py +0 -0
  497. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_storage.py +0 -0
  498. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_style.py +0 -0
  499. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_suspense.py +0 -0
  500. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_transitions.py +0 -0
  501. {pythonnative-0.41.0 → pythonnative-0.43.0}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonnative
3
- Version: 0.41.0
3
+ Version: 0.43.0
4
4
  Summary: Cross-platform native UI toolkit for Android and iOS
5
5
  Author: Owen Carey
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pythonnative"
7
- version = "0.41.0"
7
+ version = "0.43.0"
8
8
  description = "Cross-platform native UI toolkit for Android and iOS"
9
9
  authors = [
10
10
  { name = "Owen Carey" }
@@ -51,6 +51,7 @@ dev = [
51
51
  # platform tags (project/deps.py), and the test suite exercises that
52
52
  # path. `uv sync` does not seed pip the way `uv venv --seed` did.
53
53
  "pip>=24.0",
54
+ "websockets>=15",
54
55
  ]
55
56
  docs = [
56
57
  "mkdocs>=1.5",
@@ -64,7 +64,7 @@ Example:
64
64
  ```
65
65
  """
66
66
 
67
- __version__ = "0.41.0"
67
+ __version__ = "0.43.0"
68
68
 
69
69
  from . import appearance, diagnostics, gestures, runtime, sdk
70
70
  from .alerts import Alert
@@ -1339,8 +1339,14 @@ def _resolve_style_with_values(style: StyleProp) -> Tuple[Dict[str, Any], Dict[s
1339
1339
  flat = resolve_style(style)
1340
1340
  bindings: Dict[str, AnimatedNode] = {}
1341
1341
  plain: Dict[str, Any] = {}
1342
+ transforms: List[Dict[str, Any]] = []
1342
1343
  for k, v in flat.items():
1343
- if isinstance(v, AnimatedNode):
1344
+ if k in _ANIMATED_TRANSFORM_KEYS:
1345
+ if isinstance(v, AnimatedNode):
1346
+ bindings[k] = v
1347
+ v = v.value
1348
+ transforms.append({k: v})
1349
+ elif isinstance(v, AnimatedNode):
1344
1350
  bindings[k] = v
1345
1351
  plain[k] = v.value
1346
1352
  elif k == "transform" and v is not None:
@@ -1361,6 +1367,11 @@ def _resolve_style_with_values(style: StyleProp) -> Tuple[Dict[str, Any], Dict[s
1361
1367
  plain[k] = plain_entries
1362
1368
  else:
1363
1369
  plain[k] = v
1370
+ if transforms:
1371
+ # Native styles use the same transform shape for the initial frame
1372
+ # and later renders, even when Animated accepts a top-level binding.
1373
+ existing = plain.get("transform") or []
1374
+ plain["transform"] = (existing if isinstance(existing, list) else [existing]) + transforms
1364
1375
  return plain, bindings
1365
1376
 
1366
1377
 
@@ -217,8 +217,7 @@ def native_callback(kind: str, tag: int, name: str, payload: str) -> Optional[st
217
217
  from ..native_views import get_registry
218
218
 
219
219
  backend = get_registry()
220
- if backend.on_layout is not None:
221
- backend.on_layout(codec.loads(payload))
220
+ backend.accept_layout(codec.loads(payload))
222
221
  return None
223
222
  if kind == "event":
224
223
  return _on_event(int(tag), name, payload)
@@ -7,11 +7,13 @@ poisons that surface until the host explicitly resets and remounts it.
7
7
 
8
8
  from __future__ import annotations
9
9
 
10
- import copy
11
10
  import math
11
+ from collections.abc import Iterator, MutableMapping
12
12
  from dataclasses import dataclass, field
13
13
  from typing import Any
14
14
 
15
+ from ..profiling import count, profiled
16
+
15
17
  PROTOCOL_VERSION = 2
16
18
 
17
19
 
@@ -29,6 +31,59 @@ class ViewState:
29
31
  children: list[int] = field(default_factory=list)
30
32
 
31
33
 
34
+ class ViewOverlay(MutableMapping[int, ViewState]):
35
+ """Copy only records written by a candidate commit.
36
+
37
+ Publishing consumes the candidate and updates its owned base in place. A
38
+ rejected candidate is simply discarded. There is no chain of old revisions.
39
+ """
40
+
41
+ def __init__(self, base: MutableMapping[int, ViewState]) -> None:
42
+ self.base = base
43
+ self.changed: dict[int, ViewState] = {}
44
+ self.deleted: set[int] = set()
45
+
46
+ def __getitem__(self, tag: int) -> ViewState:
47
+ if tag in self.deleted:
48
+ raise KeyError(tag)
49
+ return self.changed[tag] if tag in self.changed else self.base[tag]
50
+
51
+ def __setitem__(self, tag: int, value: ViewState) -> None:
52
+ self.deleted.discard(tag)
53
+ self.changed[tag] = value
54
+
55
+ def __delitem__(self, tag: int) -> None:
56
+ self[tag]
57
+ self.changed.pop(tag, None)
58
+ self.deleted.add(tag)
59
+
60
+ def __iter__(self) -> Iterator[int]:
61
+ yield from (tag for tag in self.base if tag not in self.deleted and tag not in self.changed)
62
+ yield from self.changed
63
+
64
+ def __len__(self) -> int:
65
+ return (
66
+ len(self.base)
67
+ - sum(tag in self.base for tag in self.deleted)
68
+ + sum(tag not in self.base for tag in self.changed)
69
+ )
70
+
71
+ def edit(self, tag: int) -> ViewState:
72
+ """Return a writable copy of this record, copying it at most once."""
73
+ if tag not in self.changed:
74
+ view = self[tag]
75
+ self.changed[tag] = ViewState(view.type_name, dict(view.props), view.parent, list(view.children))
76
+ count("commit.records_copied")
77
+ return self.changed[tag]
78
+
79
+ def publish(self) -> MutableMapping[int, ViewState]:
80
+ """Apply accepted records to the owned base without a revision chain."""
81
+ for tag in self.deleted:
82
+ del self.base[tag]
83
+ self.base.update(self.changed)
84
+ return self.base
85
+
86
+
32
87
  @dataclass
33
88
  class CommitState:
34
89
  """Committed revision and structural state for one native surface."""
@@ -36,8 +91,9 @@ class CommitState:
36
91
  application: str = ""
37
92
  surface: int = 0
38
93
  revision: int = 0
39
- views: dict[int, ViewState] = field(default_factory=dict)
94
+ views: MutableMapping[int, ViewState] = field(default_factory=dict)
40
95
 
96
+ @profiled("validation")
41
97
  def prepare(self, envelope: Any) -> CommitState:
42
98
  """Validate without mutating this state and return the candidate state."""
43
99
  if not isinstance(envelope, dict) or envelope.get("version") != PROTOCOL_VERSION:
@@ -52,7 +108,9 @@ class CommitState:
52
108
  ops = envelope.get("ops")
53
109
  if not isinstance(ops, list):
54
110
  raise CommitError("Commit ops must be a list")
55
- result = CommitState(application, surface, revision, copy.deepcopy(self.views))
111
+ if isinstance(self.views, ViewOverlay):
112
+ raise CommitError("Publish the previous candidate before preparing another commit")
113
+ result = CommitState(application, surface, revision, ViewOverlay(self.views))
56
114
  for index, op in enumerate(ops):
57
115
  try:
58
116
  result._validate_op(op)
@@ -60,6 +118,16 @@ class CommitState:
60
118
  raise CommitError(f"Invalid op {index}: {exc}") from exc
61
119
  return result
62
120
 
121
+ def publish(self) -> CommitState:
122
+ """Accept a successfully mounted candidate; the prior state is consumed."""
123
+ if isinstance(self.views, ViewOverlay):
124
+ self.views = self.views.publish()
125
+ return self
126
+
127
+ def _edit(self, tag: int) -> ViewState:
128
+ assert isinstance(self.views, ViewOverlay)
129
+ return self.views.edit(tag)
130
+
63
131
  def _validate_op(self, op: Any) -> None:
64
132
  if not isinstance(op, list) or len(op) < 2:
65
133
  raise ValueError("Expected an operation array")
@@ -70,12 +138,14 @@ class CommitState:
70
138
  if code == "c":
71
139
  if tag in self.views or not isinstance(op[2], str) or not op[2] or not isinstance(op[3], dict):
72
140
  raise ValueError("Invalid or duplicate create")
141
+ self._validate_props(op[2], op[3], False)
73
142
  self.views[tag] = ViewState(op[2], dict(op[3]))
74
143
  return
75
- view = self.views[tag]
144
+ view = self.views[tag] if code == "f" else self._edit(tag)
76
145
  if code == "u":
77
146
  if not isinstance(op[2], dict):
78
147
  raise ValueError("Update requires a property mapping")
148
+ self._validate_props(view.type_name, op[2], True)
79
149
  for name, value in op[2].items():
80
150
  if value is None:
81
151
  view.props.pop(name, None)
@@ -85,14 +155,14 @@ class CommitState:
85
155
  child_tag, index = op[2:]
86
156
  if type(child_tag) is not int or type(index) is not int or index < 0:
87
157
  raise ValueError("Invalid child or insertion index")
88
- child = self.views[child_tag]
158
+ child = self._edit(child_tag)
89
159
  ancestor: int | None = tag
90
160
  while ancestor is not None:
91
161
  if ancestor == child_tag:
92
162
  raise ValueError("Insertion creates a cycle")
93
163
  ancestor = self.views[ancestor].parent
94
164
  if child.parent is not None:
95
- self.views[child.parent].children.remove(child_tag)
165
+ self._edit(child.parent).children.remove(child_tag)
96
166
  if index > len(view.children):
97
167
  raise ValueError("Insertion index exceeds child count")
98
168
  view.children.insert(index, child_tag)
@@ -101,7 +171,7 @@ class CommitState:
101
171
  if view.children:
102
172
  raise ValueError("Destroy children before their parent")
103
173
  if view.parent is not None:
104
- self.views[view.parent].children.remove(tag)
174
+ self._edit(view.parent).children.remove(tag)
105
175
  del self.views[tag]
106
176
  elif code == "f":
107
177
  if any(type(n) not in (float, int) or not math.isfinite(n) for n in op[2:]):
@@ -109,6 +179,14 @@ class CommitState:
109
179
  if op[4] < 0 or op[5] < 0:
110
180
  raise ValueError("Frame sizes must be nonnegative")
111
181
 
182
+ @staticmethod
183
+ def _validate_props(name: str, props: dict[str, Any], partial: bool) -> None:
184
+ from ..sdk.schema import COMPONENTS
185
+
186
+ schema = COMPONENTS.get(name)
187
+ if schema is not None:
188
+ schema.validate(props, partial=partial)
189
+
112
190
  def acknowledgement(self) -> dict[str, Any]:
113
191
  """Identify the exact revision native successfully mounted."""
114
192
  return {"ok": True, "application": self.application, "surface": self.surface, "revision": self.revision}
@@ -98,7 +98,7 @@ class FakeTransport:
98
98
  self.transactions.append(ops)
99
99
  for op in ops:
100
100
  self._apply_one(op)
101
- self.commit_state = candidate
101
+ self.commit_state = candidate.publish()
102
102
  return codec.dumps(candidate.acknowledgement())
103
103
 
104
104
  def _apply_one(self, op: List[Any]) -> None:
@@ -25,7 +25,7 @@ The console script `pn` (declared in `pyproject.toml`) dispatches to:
25
25
  - `pn build android|ios`: produce standalone artifacts (signed APK/AAB,
26
26
  or an iOS archive/IPA, optionally uploaded to App Store Connect).
27
27
  - `pn app-id android|ios`: print the resolved application/bundle id
28
- (handy for scripts and CI).
28
+ (handy for scripts and CI), as plain text or as JSON with `--json`.
29
29
  - `pn clean`: remove the local `build/` directory.
30
30
 
31
31
  The heavy lifting lives in the ``pythonnative.project`` and
@@ -147,6 +147,37 @@ def _sanitize_name(name: str) -> str:
147
147
 
148
148
 
149
149
  def _app_id_from_name(name: str) -> str:
150
+ """Derive the default reverse-DNS app id from a project name.
151
+
152
+ The result is an identifier rather than a name, and it fills
153
+ ``app.id``, the default for both the Android application id and the
154
+ iOS bundle id. It therefore has to satisfy the stricter of the two
155
+ grammars, ``config._APP_ID_SEGMENT``, which admits no hyphen. An
156
+ explicit ``[ios].bundle_id`` may contain one, because
157
+ ``config._validate_app_id`` is called with ``allow_hyphen=True`` for
158
+ that field alone.
159
+
160
+ Deleting hyphens is lossy, so the derivation is not injective:
161
+ ``my-app`` and ``myapp`` both give ``com.example.myapp``. Mapping
162
+ ``-`` to ``_`` instead would not fix that, only move it, since
163
+ ``_NAME_RE`` permits both characters and ``my-app`` would then
164
+ collide with ``my_app``. Injectivity would need an escaping scheme;
165
+ deletion is the deliberate choice here.
166
+
167
+ The ``app`` prefix covers the name taken from the current directory
168
+ when ``pn init`` is given none. A typed name cannot reach it, because
169
+ ``_NAME_RE`` already guarantees a leading letter.
170
+
171
+ The result always satisfies ``_APP_ID_SEGMENT`` but is not guaranteed
172
+ to pass ``config._validate_app_id``, which also rejects reserved
173
+ words: ``class`` is a legal project name and passes through here.
174
+
175
+ Args:
176
+ name: A project name, either typed or taken from the directory.
177
+
178
+ Returns:
179
+ A reverse-DNS id under ``com.example``.
180
+ """
150
181
  slug = re.sub(r"[^a-z0-9_]", "", name.lower())
151
182
  if not slug or not slug[0].isalpha():
152
183
  slug = "app" + slug
@@ -312,11 +343,27 @@ def doctor_command(args: argparse.Namespace) -> None:
312
343
  def app_id_command(args: argparse.Namespace) -> None:
313
344
  """Print the resolved application id (Android) or bundle id (iOS).
314
345
 
346
+ With ``--json``, stdout carries one object,
347
+ ``{"platform": "...", "app_id": "..."}``, and nothing else; the config
348
+ error goes to stderr instead so stdout stays parseable. Keys may be
349
+ added to that object later, but none will be removed or renamed, so
350
+ a caller reading ``app_id`` keeps working.
351
+
352
+ A missing or invalid config still exits 1, with or without the flag.
353
+ That differs from ``pn devices --json``, which exits 0 on an empty
354
+ result, because "no devices" is a valid answer to a query whereas
355
+ an unreadable config means there is no id to report at all.
356
+
315
357
  Args:
316
- args: Parsed namespace with ``platform``.
358
+ args: Parsed namespace with ``platform`` and optional ``json``.
317
359
  """
318
- config = _load_config_or_exit()
319
- print(config.application_id if args.platform == "android" else config.bundle_id)
360
+ as_json: bool = getattr(args, "json", False)
361
+ config = _load_config_or_exit(stream=sys.stderr if as_json else None)
362
+ app_id = config.application_id if args.platform == "android" else config.bundle_id
363
+ if as_json:
364
+ print(json.dumps({"platform": args.platform, "app_id": app_id}, indent=2))
365
+ return
366
+ print(app_id)
320
367
 
321
368
 
322
369
  # ======================================================================
@@ -950,11 +997,22 @@ def clean_project(args: argparse.Namespace) -> None:
950
997
  # ======================================================================
951
998
 
952
999
 
953
- def _load_config_or_exit(project_dir: Optional[Path] = None) -> AppConfig:
1000
+ def _load_config_or_exit(project_dir: Optional[Path] = None, *, stream: Optional[TextIO] = None) -> AppConfig:
1001
+ """Load the project config or exit 1, reporting the error on ``stream``.
1002
+
1003
+ Args:
1004
+ project_dir: Project root; defaults to the current directory.
1005
+ stream: Where to report a failure. Defaults to stdout, which is
1006
+ what every caller wants except a machine-readable mode, where
1007
+ an error on stdout would corrupt the document.
1008
+
1009
+ Returns:
1010
+ The loaded config.
1011
+ """
954
1012
  try:
955
1013
  return AppConfig.load(project_dir or Path.cwd())
956
1014
  except ConfigError as exc:
957
- print(f"Error: {exc}")
1015
+ print(f"Error: {exc}", file=stream or sys.stdout)
958
1016
  sys.exit(1)
959
1017
 
960
1018
 
@@ -1169,7 +1227,7 @@ def _build_parser() -> argparse.ArgumentParser:
1169
1227
  parser_devices.set_defaults(func=devices_command)
1170
1228
 
1171
1229
  parser_run = subparsers.add_parser("run", help="Build, install, and launch on a device/simulator")
1172
- parser_run.add_argument("platform", choices=["android", "ios"])
1230
+ parser_run.add_argument("platform", choices=["android", "ios"], help="Target platform")
1173
1231
  parser_run.add_argument(
1174
1232
  "--device",
1175
1233
  "-d",
@@ -1196,7 +1254,7 @@ def _build_parser() -> argparse.ArgumentParser:
1196
1254
  parser_run.set_defaults(func=run_project)
1197
1255
 
1198
1256
  parser_logs = subparsers.add_parser("logs", help="Stream logs from the running app")
1199
- parser_logs.add_argument("platform", choices=["android", "ios"])
1257
+ parser_logs.add_argument("platform", choices=["android", "ios"], help="Target platform")
1200
1258
  parser_logs.add_argument(
1201
1259
  "--device",
1202
1260
  "-d",
@@ -1206,7 +1264,7 @@ def _build_parser() -> argparse.ArgumentParser:
1206
1264
  parser_logs.set_defaults(func=logs_command)
1207
1265
 
1208
1266
  parser_build = subparsers.add_parser("build", help="Build distributable artifacts")
1209
- parser_build.add_argument("platform", choices=["android", "ios"])
1267
+ parser_build.add_argument("platform", choices=["android", "ios"], help="Target platform")
1210
1268
  parser_build.add_argument("--debug", action="store_true", help="Build the debug variant instead of release")
1211
1269
  parser_build.add_argument(
1212
1270
  "--upload",
@@ -1216,7 +1274,10 @@ def _build_parser() -> argparse.ArgumentParser:
1216
1274
  parser_build.set_defaults(func=build_project)
1217
1275
 
1218
1276
  parser_app_id = subparsers.add_parser("app-id", help="Print the resolved application/bundle id")
1219
- parser_app_id.add_argument("platform", choices=["android", "ios"])
1277
+ parser_app_id.add_argument("platform", choices=["android", "ios"], help="Target platform")
1278
+ parser_app_id.add_argument(
1279
+ "--json", action="store_true", help="Print a JSON object to stdout for scripting (errors go to stderr)"
1280
+ )
1220
1281
  parser_app_id.set_defaults(func=app_id_command)
1221
1282
 
1222
1283
  parser_clean = subparsers.add_parser("clean", help="Remove the local build/ directory")
@@ -46,7 +46,7 @@ from __future__ import annotations
46
46
 
47
47
  import functools
48
48
  import inspect
49
- from typing import Any, Awaitable, Callable, Dict, Generic, List, Optional, ParamSpec, Tuple, Union, overload
49
+ from typing import Any, Awaitable, Callable, Dict, Generic, Mapping, Optional, ParamSpec, Union, overload
50
50
 
51
51
  from .element import Element, Node
52
52
 
@@ -82,7 +82,7 @@ class Component(Generic[P]):
82
82
  "memoized",
83
83
  "props_equal",
84
84
  "accepts_children",
85
- "_positional",
85
+ "_signature",
86
86
  "_declares_key",
87
87
  "_is_async",
88
88
  "refresh_signature",
@@ -94,13 +94,10 @@ class Component(Generic[P]):
94
94
  if isinstance(fn, Component):
95
95
  raise TypeError(f"{fn!r} is already a component; remove the duplicate @component")
96
96
  sig = inspect.signature(fn)
97
- positional: List[str] = []
98
97
  accepts_children = False
99
98
  declares_key = False
100
99
  for name, param in sig.parameters.items():
101
- if param.kind in (inspect.Parameter.POSITIONAL_ONLY, inspect.Parameter.POSITIONAL_OR_KEYWORD):
102
- positional.append(name)
103
- elif param.kind is inspect.Parameter.VAR_POSITIONAL:
100
+ if param.kind is inspect.Parameter.VAR_POSITIONAL:
104
101
  accepts_children = True
105
102
  if name == "key":
106
103
  declares_key = True
@@ -110,9 +107,9 @@ class Component(Generic[P]):
110
107
  self.fn = fn
111
108
  self.display_name = display_name or getattr(fn, "__name__", "Component")
112
109
  self.memoized = False
113
- self.props_equal: Optional[Callable[[Dict[str, Any], Dict[str, Any]], bool]] = None
110
+ self.props_equal: Optional[Callable[[Mapping[str, Any], Mapping[str, Any]], bool]] = None
114
111
  self.accepts_children = accepts_children
115
- self._positional: Tuple[str, ...] = tuple(positional)
112
+ self._signature = sig
116
113
  self._declares_key = declares_key
117
114
  self._is_async = inspect.iscoroutinefunction(fn)
118
115
  self.__wrapped__ = fn
@@ -126,21 +123,16 @@ class Component(Generic[P]):
126
123
  """Describe a render of this component with the given props."""
127
124
  props: Dict[str, Any] = dict(kwargs)
128
125
  key = props.pop("key", None) if not self._declares_key else props.get("key")
129
- children: List[Any] = []
130
- if args:
131
- if self.accepts_children:
132
- children = list(args)
126
+ bound = self._signature.bind(*args, **props)
127
+ bound.apply_defaults()
128
+ children = ()
129
+ props = {}
130
+ for name, value in bound.arguments.items():
131
+ kind = self._signature.parameters[name].kind
132
+ if kind is inspect.Parameter.VAR_POSITIONAL:
133
+ children = value
133
134
  else:
134
- names = self._positional
135
- if len(args) > len(names):
136
- raise TypeError(
137
- f"{self.display_name}() takes {len(names)} positional argument(s) but "
138
- f"{len(args)} were given. Declare *children to accept child elements."
139
- )
140
- for name, value in zip(names, args):
141
- if name in props:
142
- raise TypeError(f"{self.display_name}() got multiple values for argument {name!r}")
143
- props[name] = value
135
+ props[name] = value
144
136
  return Element(self, props, children, key=key if isinstance(key, str) or key is None else str(key))
145
137
 
146
138
  # ------------------------------------------------------------------
@@ -155,9 +147,12 @@ class Component(Generic[P]):
155
147
  (an element, a list, ``None``, or a coroutine for ``async def``
156
148
  bodies).
157
149
  """
158
- if self.accepts_children:
159
- return self.fn(*element.children, **element.props)
160
- return self.fn(**element.props) # type: ignore[call-arg]
150
+ arguments = dict(element.props)
151
+ for name, param in self._signature.parameters.items():
152
+ if param.kind is inspect.Parameter.VAR_POSITIONAL:
153
+ arguments[name] = element.children
154
+ bound = inspect.BoundArguments(self._signature, arguments)
155
+ return self.fn(*bound.args, **bound.kwargs)
161
156
 
162
157
  @property
163
158
  def is_async(self) -> bool:
@@ -204,20 +199,20 @@ def component(fn: RenderFn[P]) -> Component[P]:
204
199
 
205
200
  @overload
206
201
  def memo(
207
- target: Component[P], *, equal: Optional[Callable[[Dict[str, Any], Dict[str, Any]], bool]] = None
202
+ target: Component[P], *, equal: Optional[Callable[[Mapping[str, Any], Mapping[str, Any]], bool]] = None
208
203
  ) -> Component[P]: ...
209
204
 
210
205
 
211
206
  @overload
212
207
  def memo(
213
- target: None = None, *, equal: Optional[Callable[[Dict[str, Any], Dict[str, Any]], bool]] = None
208
+ target: None = None, *, equal: Optional[Callable[[Mapping[str, Any], Mapping[str, Any]], bool]] = None
214
209
  ) -> Callable[[Component[P]], Component[P]]: ...
215
210
 
216
211
 
217
212
  def memo(
218
213
  target: Optional[Component[P]] = None,
219
214
  *,
220
- equal: Optional[Callable[[Dict[str, Any], Dict[str, Any]], bool]] = None,
215
+ equal: Optional[Callable[[Mapping[str, Any], Mapping[str, Any]], bool]] = None,
221
216
  ) -> Any:
222
217
  """Skip a component's render when its props haven't changed.
223
218
 
@@ -56,11 +56,8 @@ from .lists import ( # noqa: F401
56
56
  FlatList,
57
57
  ListController,
58
58
  SectionList,
59
- _dispatch_scroll_command,
60
- _native_lists_supported,
61
59
  _NativeList,
62
60
  _RowSpec,
63
- _VirtualizedList,
64
61
  )
65
62
  from .media import Image, ImageBackground, WebView
66
63
  from .overlays import Modal, Portal