pythonnative 0.47.0__tar.gz → 0.49.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.
- {pythonnative-0.47.0/src/pythonnative.egg-info → pythonnative-0.49.0}/PKG-INFO +5 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/README.md +4 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/pyproject.toml +2 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/__init__.py +149 -64
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/animated.py +4 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/appearance.py +3 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/assets/__init__.py +1 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bootstrap.py +19 -10
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/__init__.py +58 -62
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/android.py +2 -14
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/commits.py +16 -5
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/fake.py +11 -11
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/ios.py +7 -40
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/web.py +4 -45
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/cli/pn.py +131 -41
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/component.py +176 -48
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/__init__.py +20 -5
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/_base.py +13 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/controls.py +27 -170
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/graphics.py +18 -58
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/layout.py +27 -180
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/lists.py +7 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/media.py +15 -87
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/overlays.py +3 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/pressable.py +27 -132
- pythonnative-0.49.0/src/pythonnative/components/props.py +97 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/structural.py +3 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/text.py +14 -136
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devclient.py +71 -33
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/__init__.py +5 -0
- pythonnative-0.49.0/src/pythonnative/devserver/auth.py +158 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/server.py +117 -13
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/bridge.js +3 -28
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/host.js +10 -23
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/layout.js +1 -5
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/renderer.js +6 -30
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/shell.js +17 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/diagnostics.py +19 -8
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/element.py +37 -10
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/equality.py +7 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/hooks.py +79 -20
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/hosts/native.py +5 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/hot_reload.py +274 -26
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/icons/__init__.py +10 -13
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/journal.py +118 -19
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/layout.py +6 -4
- pythonnative-0.49.0/src/pythonnative/lint.py +773 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/list_data.py +12 -5
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/AndroidManifest.xml +3 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +28 -26
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeValues.kt +15 -17
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +399 -394
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +41 -54
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +4 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +97 -45
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +4 -11
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +4 -8
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +6 -12
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +0 -6
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +8 -10
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/NativeLifecycleTest.kt +28 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +2 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +48 -61
- pythonnative-0.49.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +181 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +3 -11
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +7 -10
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +11 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +111 -109
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeValues.swift +23 -27
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +399 -394
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +0 -6
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +69 -21
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +20 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractParityTests.swift +0 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNLifecycleTests.swift +14 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNParityTests.swift +1 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +1 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/style.cpp +0 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_views/bridge_backend.py +2 -2
- pythonnative-0.49.0/src/pythonnative/navigation/__init__.py +110 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/navigation/container.py +47 -47
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/navigation/handle.py +263 -160
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/navigation/hooks.py +12 -55
- pythonnative-0.49.0/src/pythonnative/navigation/linking.py +302 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/navigation/navigators.py +388 -335
- pythonnative-0.49.0/src/pythonnative/navigation/ref.py +104 -0
- pythonnative-0.49.0/src/pythonnative/navigation/screen.py +387 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/navigation/state.py +16 -33
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/preview.py +6 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/profiling.py +3 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/android.py +22 -19
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/artifacts.py +44 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/builder.py +47 -37
- pythonnative-0.49.0/src/pythonnative/project/bundle.py +78 -0
- pythonnative-0.49.0/src/pythonnative/project/bytecode.py +81 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/doctor.py +9 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/icons.py +7 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/ios.py +34 -13
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/permissions.py +3 -3
- pythonnative-0.49.0/src/pythonnative/project/runtime_assets.py +373 -0
- pythonnative-0.49.0/src/pythonnative/prop_checks.py +116 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/reconciler/boundaries.py +12 -6
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/reconciler/core.py +67 -38
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/reconciler/layout_pass.py +3 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/reconciler/vnode.py +18 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/refresh.py +42 -9
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/scheduler.py +13 -5
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/__init__.py +0 -2
- pythonnative-0.49.0/src/pythonnative/sdk/_builtin_contracts.json +1 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/_components.py +3 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/builtins.py +48 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/codegen.py +5 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/contract_codegen.py +2 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/module_codegen.py +10 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/schema.py +144 -19
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/templates/contracts.kt +2 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/templates/contracts.swift +2 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/types.py +5 -3
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/storage.py +50 -27
- pythonnative-0.49.0/src/pythonnative/store.py +188 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/style.py +52 -259
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/svg.py +1 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/build.gradle +0 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +0 -4
- pythonnative-0.49.0/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +167 -0
- pythonnative-0.49.0/src/pythonnative/templates/ios_template/PNFinalizePython.sh +29 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/AppDelegate.swift +3 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +68 -10
- pythonnative-0.49.0/src/pythonnative/templates/ios_template/ios_template/ViewController.swift +22 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +3 -240
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/testing/backend.py +2 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/testing/pytest_plugin.py +8 -3
- pythonnative-0.49.0/src/pythonnative/theme.py +297 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/utils.py +18 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0/src/pythonnative.egg-info}/PKG-INFO +5 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative.egg-info/SOURCES.txt +17 -7
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_appearance.py +9 -37
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_async_hooks.py +19 -0
- pythonnative-0.49.0/tests/test_authoring.py +341 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_bridge.py +14 -11
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_cli.py +89 -10
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_codegen.py +2 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_components.py +4 -4
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_core_semantics.py +24 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_devclient.py +64 -12
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_devserver.py +190 -6
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_devserver_ws.py +47 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_e2e_suite_renders.py +65 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_hooks.py +7 -1
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_hot_reload.py +279 -0
- pythonnative-0.49.0/tests/test_identity_bailout.py +430 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_inbox.py +11 -10
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_incremental_render.py +2 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_layout.py +17 -5
- pythonnative-0.49.0/tests/test_lint.py +1000 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_list_features.py +29 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_mutations.py +4 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_native_views.py +1 -1
- pythonnative-0.49.0/tests/test_navigation.py +2052 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_new_components.py +1 -0
- pythonnative-0.49.0/tests/test_performance_budgets.py +164 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_reconciler.py +7 -2
- pythonnative-0.49.0/tests/test_release_packaging.py +321 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_runtime_correctness.py +53 -18
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_runtime_overhaul.py +8 -2
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_smoke.py +28 -3
- pythonnative-0.49.0/tests/test_store.py +555 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_style.py +42 -71
- pythonnative-0.49.0/tests/test_theme.py +416 -0
- pythonnative-0.49.0/tests/test_typing_conformance.py +47 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_web_transport.py +32 -39
- pythonnative-0.47.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +0 -153
- pythonnative-0.47.0/src/pythonnative/navigation/__init__.py +0 -136
- pythonnative-0.47.0/src/pythonnative/navigation/linking.py +0 -200
- pythonnative-0.47.0/src/pythonnative/navigation/ref.py +0 -121
- pythonnative-0.47.0/src/pythonnative/navigation/screen.py +0 -299
- pythonnative-0.47.0/src/pythonnative/navigation/theme.py +0 -159
- pythonnative-0.47.0/src/pythonnative/project/runtime_assets.py +0 -200
- pythonnative-0.47.0/src/pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt +0 -24
- pythonnative-0.47.0/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +0 -130
- pythonnative-0.47.0/src/pythonnative/templates/android_template/app/src/test/java/com/pythonnative/android_template/ExampleUnitTest.kt +0 -17
- pythonnative-0.47.0/src/pythonnative/templates/ios_template/ios_template/ViewController.swift +0 -23
- pythonnative-0.47.0/src/pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift +0 -36
- pythonnative-0.47.0/src/pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +0 -41
- pythonnative-0.47.0/src/pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift +0 -32
- pythonnative-0.47.0/tests/test_navigation.py +0 -1805
- pythonnative-0.47.0/tests/test_navigation_theme.py +0 -274
- pythonnative-0.47.0/tests/test_release_packaging.py +0 -160
- {pythonnative-0.47.0 → pythonnative-0.49.0}/.github/workflows/release.yml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/LICENSE +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/MANIFEST.in +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/scripts/check-distributions.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/scripts/cibuildwheel.toml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/scripts/release-assets.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/setup.cfg +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/setup.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/_ios_log.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/alerts.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/animation_graph.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/assets/fonts.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/codec.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/bridge/list_store.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/cli/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/components/events.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/animation_graph.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/assets.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/colors.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/contracts.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/index.html +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/list-store.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/preview.css +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/LICENSE +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/index.d.ts +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/index.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/index.js.map +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/load.d.ts +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/load.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/load.js.map +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/watcher.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/devserver/ws.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/events.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/gestures.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/handles.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/hosts/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/hosts/base.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/icons/LICENSE-lucide.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/icons/_lucide.json +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/icons/_names.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/mutations.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/build.gradle +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/gradle.properties +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/settings.gradle +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/cpp/CMakeLists.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/cpp/yoga_jni.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/assets/PNAssets.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/EffectManagers.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ListStore.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNTheme.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenTransitions.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SvgManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/graphics/SvgPath.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/AssetModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/ErrorOverlay.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PlatformModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNKeyboard.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNScrollViews.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_fade_in.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_fade_out.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_hold.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_bottom.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_left.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_right.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_bottom.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_left.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_right.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/drawable/pn_ic_arrow_back.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/values/pn_ids.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/main/res/xml/pn_file_paths.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/generated/PNRecordFixtures.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AssetsAndSvgTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ContractFixtureTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundOneRobolectricTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoLogicTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoRobolectricTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ScreenTransitionsTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/StyleAccessibilityDeviceTest.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Package.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNEffectManagers.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNListStore.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNSvgManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/EnvironmentModules.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/ImagesModule.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNErrorOverlay.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Resources/PrivacyInfo.xcprivacy +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNAssets.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/project.pbxproj +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/xcshareddata/xcschemes/NativeTests.xcscheme +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/validation.json +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAssetTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractFixtureTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNRecordFixtures.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/ios/Tests/TestHost/main.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/LICENSE +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/Package.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/VENDORED.md +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/PNStyle.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/module.modulemap +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGConfig.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGEnums.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGMacros.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGNode.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGNodeLayout.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGNodeStyle.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGPixelGrid.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/YGValue.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/include/yoga/Yoga.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/python.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/CMakeLists.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGConfig.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGConfig.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGEnums.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGEnums.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGMacros.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGNode.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGNode.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGNodeLayout.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGNodeLayout.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGNodeStyle.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGNodeStyle.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGPixelGrid.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGPixelGrid.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGValue.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/YGValue.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/Yoga.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/Align.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/Baseline.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/Baseline.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/BoundAxis.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/Cache.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/Cache.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/CalculateLayout.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/CalculateLayout.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexDirection.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexLine.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/FlexLine.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/PixelGrid.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/PixelGrid.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/SizingMode.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/algorithm/TrailingPosition.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/config/Config.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/config/Config.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/debug/AssertFatal.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/debug/AssertFatal.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/debug/Log.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/debug/Log.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Align.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/BoxSizing.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Dimension.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Direction.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Display.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Edge.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Errata.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/ExperimentalFeature.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/FlexDirection.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Gutter.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Justify.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/LogLevel.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/MeasureMode.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/NodeType.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Overflow.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/PhysicalEdge.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/PositionType.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Unit.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/Wrap.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/enums/YogaEnums.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/event/event.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/event/event.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/module.modulemap +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/node/CachedMeasurement.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/node/LayoutResults.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/node/LayoutResults.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/node/LayoutableChildren.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/node/Node.cpp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/node/Node.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/numeric/Comparison.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/numeric/FloatOptional.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/style/SmallValueBuffer.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/style/Style.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/style/StyleLength.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/style/StyleValueHandle.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native/yoga/yoga/style/StyleValuePool.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/accessibility_info.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/app_state.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/battery.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/biometrics.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/camera.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/clipboard.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/device.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/dimensions.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/fallback.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/file_system.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/haptics.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/images.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/keyboard.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/linking.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/localization.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/location.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/net_info.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/notifications.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/permissions.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/registry.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/secure_store.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_modules/share.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/native_views/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/navigation/host.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/net.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/platform.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/platform_metrics.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/config.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/deps.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/devices.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/fingerprint.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/lockfile.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/project/plugins.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/py.typed +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/query.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/reconciler/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/reconciler/children.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/runtime.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/commands.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/native_types.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/services.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/templates/values.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/sdk/templates/values.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/suspense.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/proguard-rules.pro +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/values/colors.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/values/strings.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/values/themes.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/build.gradle +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/gradle.properties +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/gradlew +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/gradlew.bat +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/android_template/settings.gradle +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/BridgingHeader.h +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/Info.plist +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/PrivacyInfo.xcprivacy +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/testing/__init__.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/testing/clock.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/testing/harness.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative/testing/queries.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative.egg-info/dependency_links.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative.egg-info/entry_points.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative.egg-info/requires.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/src/pythonnative.egg-info/top_level.txt +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_alert.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_animated.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_animated_easing.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_animated_graph.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_assets.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_contract_fixtures.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_device_modules.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_element.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_events.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_extended_components.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_gesture_activation.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_gesture_composition.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_gestures.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_handles.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_hosts.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_incremental_pipeline.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_interaction_props.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_ios_log.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_metric_hooks.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_native_lists.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_native_modules.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_native_values.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_net.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_platform.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_platform_metrics.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_ref.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_release_workflow.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_runtime.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_runtime_contracts.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_sdk.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_storage.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_suspense.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_testing_library.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_transitions.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_typed_events.py +0 -0
- {pythonnative-0.47.0 → pythonnative-0.49.0}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonnative
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.49.0
|
|
4
4
|
Summary: Cross-platform native UI toolkit for Android and iOS
|
|
5
5
|
Author: Owen Carey
|
|
6
6
|
License: MIT License
|
|
@@ -81,7 +81,8 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
|
|
|
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
|
-
- **
|
|
84
|
+
- **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks.
|
|
85
|
+
- **Native lists and navigation:** UIKit collection views and Android recycler views recycle cells for fixed or variable row sizes, grids, sections, and horizontal lists. Native navigation containers present logical screen roots at every nesting level while providers and component state remain in the shared Python tree; navigators take screen options, groups, tab-bar styles, and a navigation ref usable outside components.
|
|
85
86
|
- **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
87
|
- **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
88
|
- **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.
|
|
@@ -108,7 +109,7 @@ import pythonnative as pn
|
|
|
108
109
|
|
|
109
110
|
|
|
110
111
|
@pn.component
|
|
111
|
-
def App():
|
|
112
|
+
def App() -> pn.Node:
|
|
112
113
|
count, set_count = pn.use_state(0)
|
|
113
114
|
return pn.Column(
|
|
114
115
|
pn.Text(f"Count: {count}", style=pn.style(font_size=24, bold=True)),
|
|
@@ -116,7 +117,7 @@ def App():
|
|
|
116
117
|
"Tap me",
|
|
117
118
|
on_press=lambda: set_count(count + 1),
|
|
118
119
|
),
|
|
119
|
-
style=pn.style(
|
|
120
|
+
style=pn.style(gap=12, padding=16),
|
|
120
121
|
)
|
|
121
122
|
```
|
|
122
123
|
|
|
@@ -35,7 +35,8 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
|
|
|
35
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.
|
|
36
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.
|
|
37
37
|
- **Incremental reconciliation:** State changes update affected component subtrees. Versioned bridge commits validate operations and acknowledge revisions; events and controlled text inputs carry identities that prevent stale updates.
|
|
38
|
-
- **
|
|
38
|
+
- **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks.
|
|
39
|
+
- **Native lists and navigation:** UIKit collection views and Android recycler views recycle cells for fixed or variable row sizes, grids, sections, and horizontal lists. Native navigation containers present logical screen roots at every nesting level while providers and component state remain in the shared Python tree; navigators take screen options, groups, tab-bar styles, and a navigation ref usable outside components.
|
|
39
40
|
- **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings. Swift and Kotlin recognize mobile gestures with Gesture Handler-style activation offsets and update supported animation bindings without Python work on every frame.
|
|
40
41
|
- **Assets and graphics:** Drop images, fonts, and SVGs under `app/assets/` and reference them by path. Density variants, bundled fonts, a vector `Icon` set, `Svg` drawing, gradients, and blur render natively on both platforms and in the browser preview.
|
|
41
42
|
- **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.
|
|
@@ -62,7 +63,7 @@ import pythonnative as pn
|
|
|
62
63
|
|
|
63
64
|
|
|
64
65
|
@pn.component
|
|
65
|
-
def App():
|
|
66
|
+
def App() -> pn.Node:
|
|
66
67
|
count, set_count = pn.use_state(0)
|
|
67
68
|
return pn.Column(
|
|
68
69
|
pn.Text(f"Count: {count}", style=pn.style(font_size=24, bold=True)),
|
|
@@ -70,7 +71,7 @@ def App():
|
|
|
70
71
|
"Tap me",
|
|
71
72
|
on_press=lambda: set_count(count + 1),
|
|
72
73
|
),
|
|
73
|
-
style=pn.style(
|
|
74
|
+
style=pn.style(gap=12, padding=16),
|
|
74
75
|
)
|
|
75
76
|
```
|
|
76
77
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pythonnative"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.49.0"
|
|
8
8
|
description = "Cross-platform native UI toolkit for Android and iOS"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Owen Carey" }
|
|
@@ -99,6 +99,7 @@ pythonnative = [
|
|
|
99
99
|
"templates/**", "native/**", "sdk/templates/**",
|
|
100
100
|
"devserver/static/**",
|
|
101
101
|
"icons/_lucide.json", "icons/LICENSE-lucide.txt",
|
|
102
|
+
"sdk/_builtin_contracts.json",
|
|
102
103
|
]
|
|
103
104
|
|
|
104
105
|
[tool.setuptools.exclude-package-data]
|
|
@@ -18,16 +18,20 @@ Key building blocks:
|
|
|
18
18
|
[`use_effect`][pythonnative.use_effect],
|
|
19
19
|
[`use_reducer`][pythonnative.use_reducer], etc.) manage state, side
|
|
20
20
|
effects, and context inside `@component` functions.
|
|
21
|
-
- **Navigation
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
[`
|
|
25
|
-
[`
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
- **Navigation**: screens are components whose parameters are their
|
|
22
|
+
route params, listed in module-level
|
|
23
|
+
[`StackNavigator`][pythonnative.StackNavigator],
|
|
24
|
+
[`TabNavigator`][pythonnative.TabNavigator], or
|
|
25
|
+
[`DrawerNavigator`][pythonnative.DrawerNavigator] values and rendered
|
|
26
|
+
by [`NavigationContainer`][pythonnative.NavigationContainer].
|
|
27
|
+
``nav.push(ItemScreen(id=42))`` is checked by the type checker.
|
|
28
|
+
- **Styling** uses a ``style`` dict per element (or a list of dicts),
|
|
29
|
+
typed by the [`Style`][pythonnative.style.Style] ``TypedDict``.
|
|
30
|
+
[`StyleSheet`][pythonnative.StyleSheet] namespaces group named
|
|
31
|
+
styles, and one [`Theme`][pythonnative.Theme] styles the app and
|
|
32
|
+
its navigators.
|
|
33
|
+
- **State** lives in hooks for a component and in a typed
|
|
34
|
+
[`Store`][pythonnative.Store] for the app.
|
|
31
35
|
- **Animations** use the ``Animated`` namespace. Serialized graphs
|
|
32
36
|
connect values, arithmetic, interpolation, and style bindings.
|
|
33
37
|
Native timing, spring, decay, scroll, and gesture drivers update
|
|
@@ -52,21 +56,23 @@ Example:
|
|
|
52
56
|
import pythonnative as pn
|
|
53
57
|
|
|
54
58
|
@pn.component
|
|
55
|
-
def App():
|
|
59
|
+
def App() -> pn.Node:
|
|
56
60
|
count, set_count = pn.use_state(0)
|
|
57
61
|
return pn.Column(
|
|
58
62
|
pn.Text(f"Count: {count}", style=pn.style(font_size=24)),
|
|
59
63
|
pn.Button("+", on_press=lambda: set_count(count + 1)),
|
|
60
|
-
style=pn.style(
|
|
64
|
+
style=pn.style(gap=12),
|
|
61
65
|
)
|
|
62
66
|
```
|
|
63
67
|
"""
|
|
64
68
|
|
|
65
|
-
__version__ = "0.
|
|
69
|
+
__version__ = "0.49.0"
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
import importlib
|
|
72
|
+
from typing import TYPE_CHECKING, Any
|
|
73
|
+
|
|
74
|
+
from . import appearance, diagnostics, runtime, sdk, svg
|
|
68
75
|
from .alerts import Alert
|
|
69
|
-
from .animated import ANIMATABLE_PROPS, Animated, AnimatedValue, AnimationResult, Easing, EasingSpec, use_animated_value
|
|
70
76
|
from .assets import Asset, asset
|
|
71
77
|
from .component import Component, component, memo
|
|
72
78
|
from .components import (
|
|
@@ -117,9 +123,9 @@ from .components import (
|
|
|
117
123
|
WebNavigationEvent,
|
|
118
124
|
WebView,
|
|
119
125
|
)
|
|
126
|
+
from .components.props import AccessibilityProps, ViewProps
|
|
120
127
|
from .diagnostics import HookOrderError
|
|
121
|
-
from .element import Element
|
|
122
|
-
from .gestures import GestureSpec, SwipeDirection
|
|
128
|
+
from .element import Element, Node
|
|
123
129
|
from .handles import ScrollOffset, ScrollViewHandle, TextInputHandle, ViewHandle, WebViewHandle
|
|
124
130
|
from .hooks import (
|
|
125
131
|
ColorScheme,
|
|
@@ -152,7 +158,6 @@ from .hooks import (
|
|
|
152
158
|
use_window_dimensions,
|
|
153
159
|
)
|
|
154
160
|
from .hosts import create_screen
|
|
155
|
-
from .icons import Icon, IconName
|
|
156
161
|
from .mutations import UNSET, UnsetType
|
|
157
162
|
from .native_modules import (
|
|
158
163
|
AccessibilityEvent,
|
|
@@ -189,40 +194,15 @@ from .native_modules import (
|
|
|
189
194
|
use_reduce_motion,
|
|
190
195
|
use_screen_reader_enabled,
|
|
191
196
|
)
|
|
192
|
-
from .navigation import (
|
|
193
|
-
DARK_NAVIGATION_THEME,
|
|
194
|
-
DEFAULT_NAVIGATION_THEME,
|
|
195
|
-
LinkingConfig,
|
|
196
|
-
Navigation,
|
|
197
|
-
NavigationColors,
|
|
198
|
-
NavigationContainer,
|
|
199
|
-
NavigationRef,
|
|
200
|
-
NavigationState,
|
|
201
|
-
NavigationTheme,
|
|
202
|
-
Route,
|
|
203
|
-
ScreenGroup,
|
|
204
|
-
ScreenOptions,
|
|
205
|
-
TabBarStyle,
|
|
206
|
-
create_drawer_navigator,
|
|
207
|
-
create_navigation_ref,
|
|
208
|
-
create_stack_navigator,
|
|
209
|
-
create_tab_navigator,
|
|
210
|
-
use_focus_effect,
|
|
211
|
-
use_is_focused,
|
|
212
|
-
use_navigation,
|
|
213
|
-
use_navigation_theme,
|
|
214
|
-
use_route,
|
|
215
|
-
)
|
|
216
|
-
from .net import HTTPError, Response, fetch
|
|
217
197
|
from .platform import Platform, get_platform
|
|
218
198
|
from .platform_metrics import WindowDimensions
|
|
219
199
|
from .runtime import run_async, run_blocking
|
|
220
200
|
from .scheduler import batch_updates
|
|
221
201
|
from .sdk import Props, define_component, element_factory
|
|
222
202
|
from .storage import AsyncStorage, use_persisted_state
|
|
203
|
+
from .store import Store, use_store
|
|
223
204
|
from .style import (
|
|
224
|
-
|
|
225
|
-
DEFAULT_LIGHT_THEME,
|
|
205
|
+
ABSOLUTE_FILL,
|
|
226
206
|
AccessibilityAction,
|
|
227
207
|
AccessibilityState,
|
|
228
208
|
AccessibilityValue,
|
|
@@ -254,15 +234,23 @@ from .style import (
|
|
|
254
234
|
TextAlign,
|
|
255
235
|
TextDecoration,
|
|
256
236
|
TextTransform,
|
|
257
|
-
Theme,
|
|
258
|
-
ThemeContext,
|
|
259
237
|
TransformSpec,
|
|
260
|
-
default_theme,
|
|
261
238
|
resolve_style,
|
|
262
239
|
style,
|
|
263
|
-
use_theme,
|
|
264
240
|
)
|
|
265
241
|
from .suspense import Resource, lazy, start_resource
|
|
242
|
+
from .theme import (
|
|
243
|
+
DARK_THEME,
|
|
244
|
+
LIGHT_THEME,
|
|
245
|
+
Colors,
|
|
246
|
+
Radii,
|
|
247
|
+
Spacing,
|
|
248
|
+
Theme,
|
|
249
|
+
ThemeProvider,
|
|
250
|
+
Typography,
|
|
251
|
+
use_styles,
|
|
252
|
+
use_theme,
|
|
253
|
+
)
|
|
266
254
|
|
|
267
255
|
__all__ = [
|
|
268
256
|
"UNSET",
|
|
@@ -314,6 +302,9 @@ __all__ = [
|
|
|
314
302
|
"TouchableOpacity",
|
|
315
303
|
"View",
|
|
316
304
|
"WebView",
|
|
305
|
+
# Shared props
|
|
306
|
+
"AccessibilityProps",
|
|
307
|
+
"ViewProps",
|
|
317
308
|
# Typed events
|
|
318
309
|
"ContentSizeEvent",
|
|
319
310
|
"KeyPressEvent",
|
|
@@ -334,6 +325,7 @@ __all__ = [
|
|
|
334
325
|
# Core
|
|
335
326
|
"Component",
|
|
336
327
|
"Element",
|
|
328
|
+
"Node",
|
|
337
329
|
"component",
|
|
338
330
|
"create_screen",
|
|
339
331
|
"memo",
|
|
@@ -373,28 +365,24 @@ __all__ = [
|
|
|
373
365
|
"lazy",
|
|
374
366
|
"start_resource",
|
|
375
367
|
# Navigation
|
|
376
|
-
"
|
|
377
|
-
"
|
|
378
|
-
"LinkingConfig",
|
|
368
|
+
"DrawerNavigator",
|
|
369
|
+
"Group",
|
|
379
370
|
"Navigation",
|
|
380
|
-
"NavigationColors",
|
|
381
371
|
"NavigationContainer",
|
|
382
372
|
"NavigationRef",
|
|
383
373
|
"NavigationState",
|
|
384
|
-
"
|
|
374
|
+
"Navigator",
|
|
385
375
|
"Route",
|
|
386
|
-
"
|
|
376
|
+
"Screen",
|
|
387
377
|
"ScreenOptions",
|
|
378
|
+
"StackNavigator",
|
|
388
379
|
"TabBarStyle",
|
|
389
|
-
"
|
|
390
|
-
"use_navigation_theme",
|
|
391
|
-
"create_drawer_navigator",
|
|
392
|
-
"create_stack_navigator",
|
|
393
|
-
"create_tab_navigator",
|
|
380
|
+
"TabNavigator",
|
|
394
381
|
"use_focus_effect",
|
|
395
382
|
"use_is_focused",
|
|
396
383
|
"use_navigation",
|
|
397
384
|
"use_route",
|
|
385
|
+
"use_screen_options",
|
|
398
386
|
# Styling - typed primitives
|
|
399
387
|
"AccessibilityAction",
|
|
400
388
|
"AccessibilityState",
|
|
@@ -405,8 +393,6 @@ __all__ = [
|
|
|
405
393
|
"AutoCapitalize",
|
|
406
394
|
"BorderStyle",
|
|
407
395
|
"Color",
|
|
408
|
-
"DEFAULT_DARK_THEME",
|
|
409
|
-
"DEFAULT_LIGHT_THEME",
|
|
410
396
|
"Dimension",
|
|
411
397
|
"Display",
|
|
412
398
|
"DynamicColor",
|
|
@@ -430,9 +416,16 @@ __all__ = [
|
|
|
430
416
|
"TextDecoration",
|
|
431
417
|
"TextTransform",
|
|
432
418
|
"Theme",
|
|
433
|
-
"
|
|
419
|
+
"ThemeProvider",
|
|
420
|
+
"Colors",
|
|
421
|
+
"Typography",
|
|
422
|
+
"Spacing",
|
|
423
|
+
"Radii",
|
|
424
|
+
"LIGHT_THEME",
|
|
425
|
+
"DARK_THEME",
|
|
426
|
+
"ABSOLUTE_FILL",
|
|
427
|
+
"use_styles",
|
|
434
428
|
"TransformSpec",
|
|
435
|
-
"default_theme",
|
|
436
429
|
"resolve_style",
|
|
437
430
|
"style",
|
|
438
431
|
"use_theme",
|
|
@@ -487,6 +480,9 @@ __all__ = [
|
|
|
487
480
|
"Vibration",
|
|
488
481
|
"use_app_state",
|
|
489
482
|
"use_net_info",
|
|
483
|
+
# Stores
|
|
484
|
+
"Store",
|
|
485
|
+
"use_store",
|
|
490
486
|
# Networking + persistence
|
|
491
487
|
"AsyncStorage",
|
|
492
488
|
"fetch",
|
|
@@ -510,3 +506,92 @@ __all__ = [
|
|
|
510
506
|
]
|
|
511
507
|
|
|
512
508
|
from .list_data import ListData, Section, ViewableItem
|
|
509
|
+
|
|
510
|
+
# Subsystems an app may never touch load on first use (PEP 562), so
|
|
511
|
+
# ``import pythonnative`` stays fast on a phone. Names, ``__all__``, and
|
|
512
|
+
# documentation are unchanged, and type checkers see ordinary imports.
|
|
513
|
+
_LAZY_GROUPS: dict[str, tuple[str, ...]] = {
|
|
514
|
+
"animated": (
|
|
515
|
+
"ANIMATABLE_PROPS",
|
|
516
|
+
"Animated",
|
|
517
|
+
"AnimatedValue",
|
|
518
|
+
"AnimationResult",
|
|
519
|
+
"Easing",
|
|
520
|
+
"EasingSpec",
|
|
521
|
+
"use_animated_value",
|
|
522
|
+
),
|
|
523
|
+
"gestures": ("GestureSpec", "SwipeDirection"),
|
|
524
|
+
"icons": ("Icon", "IconName"),
|
|
525
|
+
"navigation": (
|
|
526
|
+
"DrawerNavigator",
|
|
527
|
+
"Group",
|
|
528
|
+
"Navigation",
|
|
529
|
+
"NavigationContainer",
|
|
530
|
+
"NavigationRef",
|
|
531
|
+
"NavigationState",
|
|
532
|
+
"Navigator",
|
|
533
|
+
"Route",
|
|
534
|
+
"Screen",
|
|
535
|
+
"ScreenOptions",
|
|
536
|
+
"StackNavigator",
|
|
537
|
+
"TabBarStyle",
|
|
538
|
+
"TabNavigator",
|
|
539
|
+
"use_focus_effect",
|
|
540
|
+
"use_is_focused",
|
|
541
|
+
"use_navigation",
|
|
542
|
+
"use_route",
|
|
543
|
+
"use_screen_options",
|
|
544
|
+
),
|
|
545
|
+
"net": ("HTTPError", "Response", "fetch"),
|
|
546
|
+
}
|
|
547
|
+
_LAZY = {name: module for module, names in _LAZY_GROUPS.items() for name in names}
|
|
548
|
+
_LAZY_MODULES = frozenset({"gestures", "icons"})
|
|
549
|
+
|
|
550
|
+
if TYPE_CHECKING:
|
|
551
|
+
from . import gestures, icons
|
|
552
|
+
from .animated import (
|
|
553
|
+
ANIMATABLE_PROPS,
|
|
554
|
+
Animated,
|
|
555
|
+
AnimatedValue,
|
|
556
|
+
AnimationResult,
|
|
557
|
+
Easing,
|
|
558
|
+
EasingSpec,
|
|
559
|
+
use_animated_value,
|
|
560
|
+
)
|
|
561
|
+
from .gestures import GestureSpec, SwipeDirection
|
|
562
|
+
from .icons import Icon, IconName
|
|
563
|
+
from .navigation import (
|
|
564
|
+
DrawerNavigator,
|
|
565
|
+
Group,
|
|
566
|
+
Navigation,
|
|
567
|
+
NavigationContainer,
|
|
568
|
+
NavigationRef,
|
|
569
|
+
NavigationState,
|
|
570
|
+
Navigator,
|
|
571
|
+
Route,
|
|
572
|
+
Screen,
|
|
573
|
+
ScreenOptions,
|
|
574
|
+
StackNavigator,
|
|
575
|
+
TabBarStyle,
|
|
576
|
+
TabNavigator,
|
|
577
|
+
use_focus_effect,
|
|
578
|
+
use_is_focused,
|
|
579
|
+
use_navigation,
|
|
580
|
+
use_route,
|
|
581
|
+
use_screen_options,
|
|
582
|
+
)
|
|
583
|
+
from .net import HTTPError, Response, fetch
|
|
584
|
+
|
|
585
|
+
|
|
586
|
+
def __getattr__(name: str) -> Any:
|
|
587
|
+
module = _LAZY.get(name)
|
|
588
|
+
if module is None and name not in _LAZY_MODULES:
|
|
589
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
590
|
+
imported = importlib.import_module(f".{module or name}", __name__)
|
|
591
|
+
value = imported if module is None else getattr(imported, name)
|
|
592
|
+
globals()[name] = value
|
|
593
|
+
return value
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
def __dir__() -> list[str]:
|
|
597
|
+
return sorted(set(globals()) | _LAZY.keys() | _LAZY_MODULES)
|
|
@@ -2180,7 +2180,10 @@ def use_animated_value(initial: float = 0.0) -> AnimatedValue:
|
|
|
2180
2180
|
"""
|
|
2181
2181
|
from .hooks import use_memo
|
|
2182
2182
|
|
|
2183
|
-
return use_memo(
|
|
2183
|
+
return use_memo(
|
|
2184
|
+
lambda: AnimatedValue(initial),
|
|
2185
|
+
[], # pn: ignore[PN103] the initial value is read once, like use_state
|
|
2186
|
+
)
|
|
2184
2187
|
|
|
2185
2188
|
|
|
2186
2189
|
__all__ = [
|
|
@@ -120,5 +120,8 @@ def get_system_color_scheme() -> str:
|
|
|
120
120
|
def reset_color_scheme() -> None:
|
|
121
121
|
"""Reset to system ``"light"`` with no override. Intended for tests."""
|
|
122
122
|
global _system_scheme, _override_scheme
|
|
123
|
+
changed = get_color_scheme() != "light"
|
|
123
124
|
_system_scheme = "light"
|
|
124
125
|
_override_scheme = None
|
|
126
|
+
if changed:
|
|
127
|
+
_notify_subscribers()
|
|
@@ -44,6 +44,7 @@ from dataclasses import dataclass, field
|
|
|
44
44
|
from pathlib import Path
|
|
45
45
|
from typing import Any, Dict, Iterable, List, Mapping, Optional, Sequence, Tuple, Union
|
|
46
46
|
|
|
47
|
+
from ..utils import overlay_root
|
|
47
48
|
from .fonts import FontFace, FontParseError, read_font_face, weight_from_name
|
|
48
49
|
|
|
49
50
|
__all__ = [
|
|
@@ -437,8 +438,6 @@ def assets_roots() -> List[Path]:
|
|
|
437
438
|
back to the native ``Assets`` module.
|
|
438
439
|
"""
|
|
439
440
|
roots: List[Path] = []
|
|
440
|
-
from ..hot_reload import overlay_root
|
|
441
|
-
|
|
442
441
|
overlay = overlay_root()
|
|
443
442
|
if overlay:
|
|
444
443
|
roots.append(Path(overlay) / "app" / ASSETS_DIR)
|
|
@@ -560,7 +559,6 @@ def configure_native(paths: Optional[Iterable[str]] = None) -> bool:
|
|
|
560
559
|
if paths is not None and not any(_is_asset_path(path) for path in paths):
|
|
561
560
|
return False
|
|
562
561
|
from ..bridge import has_transport
|
|
563
|
-
from ..hot_reload import overlay_root
|
|
564
562
|
|
|
565
563
|
overlay = overlay_root()
|
|
566
564
|
if not overlay or not has_transport():
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"""Entry point the native app templates run right after Python starts.
|
|
2
2
|
|
|
3
|
-
Both templates
|
|
3
|
+
Both templates call [`start`][pythonnative.bootstrap.start] once the
|
|
4
|
+
interpreter is up, on a background thread at launch:
|
|
4
5
|
|
|
5
6
|
```python
|
|
6
|
-
|
|
7
|
+
pythonnative.bootstrap.start(dev, True, "app.main")
|
|
7
8
|
```
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
It connects the two halves of the bridge (installing the native -> Python
|
|
11
|
+
callback on iOS), verifies the protocol version, routes ``print()`` to the
|
|
12
|
+
console on iOS, warms the asyncio runtime, in debug builds starts the dev
|
|
13
|
+
client that syncs sources from ``pn start``, and imports the entry module,
|
|
14
|
+
so the first screen only has to render. From then on the native runtime drives
|
|
14
15
|
everything through ``callback("host", ...)``; see ``docs/concepts/bridge.md``.
|
|
15
16
|
"""
|
|
16
17
|
|
|
@@ -19,14 +20,14 @@ from __future__ import annotations
|
|
|
19
20
|
import os
|
|
20
21
|
import sys
|
|
21
22
|
import traceback
|
|
22
|
-
from typing import Any, Dict
|
|
23
|
+
from typing import Any, Dict, Optional
|
|
23
24
|
|
|
24
25
|
__all__ = ["start", "status"]
|
|
25
26
|
|
|
26
27
|
_started: Dict[str, Any] = {}
|
|
27
28
|
|
|
28
29
|
|
|
29
|
-
def start(dev: bool = False, strict: bool = False) -> Dict[str, Any]:
|
|
30
|
+
def start(dev: bool = False, strict: bool = False, entry: Optional[str] = None) -> Dict[str, Any]:
|
|
30
31
|
"""Connect the bridge and prepare the runtime.
|
|
31
32
|
|
|
32
33
|
Args:
|
|
@@ -35,6 +36,9 @@ def start(dev: bool = False, strict: bool = False) -> Dict[str, Any]:
|
|
|
35
36
|
strict: Re-raise the failure after recording it. The templates
|
|
36
37
|
pass ``True`` so a broken bridge surfaces as a bootstrap
|
|
37
38
|
error screen with the full traceback.
|
|
39
|
+
entry: The app's entry module, imported last so a broken app
|
|
40
|
+
fails here with its traceback, and so the first screen
|
|
41
|
+
doesn't pay for the import.
|
|
38
42
|
|
|
39
43
|
Returns:
|
|
40
44
|
A status dict (``{"protocol": 2, "platform": "ios"}``) that the
|
|
@@ -79,15 +83,20 @@ def start(dev: bool = False, strict: bool = False) -> Dict[str, Any]:
|
|
|
79
83
|
if dev_mode:
|
|
80
84
|
# Debug builds are dev clients: connect to `pn start` when
|
|
81
85
|
# the build (or a remembered connection) names a server.
|
|
86
|
+
# Release bundles omit this module; they never pass dev=True.
|
|
82
87
|
from . import devclient
|
|
83
88
|
|
|
84
89
|
client = devclient.start_if_configured()
|
|
85
|
-
status_["dev_server"] = client.
|
|
90
|
+
status_["dev_server"] = client.server_label if client is not None else None
|
|
86
91
|
# An overlay from the last session may already hold assets the
|
|
87
92
|
# bundle doesn't; point the native resolver at it right away.
|
|
88
93
|
from .assets import configure_native
|
|
89
94
|
|
|
90
95
|
configure_native()
|
|
96
|
+
if entry:
|
|
97
|
+
import importlib
|
|
98
|
+
|
|
99
|
+
importlib.import_module(entry)
|
|
91
100
|
except Exception as exc:
|
|
92
101
|
status_["error"] = f"{type(exc).__name__}: {exc}"
|
|
93
102
|
print(f"[pn.bootstrap] start failed: {exc!r}", file=sys.stderr)
|