pythonnative 0.50.0__tar.gz → 0.52.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.50.0 → pythonnative-0.52.0}/MANIFEST.in +3 -1
- {pythonnative-0.50.0/src/pythonnative.egg-info → pythonnative-0.52.0}/PKG-INFO +5 -5
- {pythonnative-0.50.0 → pythonnative-0.52.0}/README.md +4 -4
- {pythonnative-0.50.0 → pythonnative-0.52.0}/pyproject.toml +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/scripts/check-distributions.py +15 -7
- {pythonnative-0.50.0 → pythonnative-0.52.0}/scripts/cibuildwheel.toml +5 -8
- pythonnative-0.52.0/setup.py +23 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/__init__.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/animated.py +234 -450
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/animation_graph.py +3 -4
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/bridge/__init__.py +102 -52
- pythonnative-0.52.0/src/pythonnative/bridge/android.py +84 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/bridge/codec.py +2 -30
- pythonnative-0.52.0/src/pythonnative/bridge/core.py +593 -0
- pythonnative-0.52.0/src/pythonnative/bridge/fake.py +519 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/bridge/ios.py +42 -32
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/bridge/web.py +68 -112
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/cli/pn.py +25 -10
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/lists.py +14 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devclient.py +5 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/compat.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/server.py +5 -8
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/bridge.js +9 -6
- pythonnative-0.52.0/src/pythonnative/devserver/static/core/mount.js +532 -0
- pythonnative-0.52.0/src/pythonnative/devserver/static/core/pn_core.js +14 -0
- pythonnative-0.52.0/src/pythonnative/devserver/static/core/pn_core.wasm +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/host.js +17 -7
- pythonnative-0.52.0/src/pythonnative/devserver/static/index.html +108 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/preview.css +289 -85
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/renderer.js +761 -570
- pythonnative-0.52.0/src/pythonnative/devserver/static/shell.js +614 -0
- pythonnative-0.52.0/src/pythonnative/gestures.py +748 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/handles.py +28 -9
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/hooks.py +31 -18
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/hosts/base.py +4 -27
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/hosts/native.py +4 -51
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/mutations.py +5 -34
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/build.gradle +0 -1
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/cpp/CMakeLists.txt +13 -0
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/cpp/pncore_jni.cpp +339 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +68 -68
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +19 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +45 -82
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/FrameClock.kt +25 -0
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +48 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +5 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +21 -11
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +7 -7
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/EffectManagers.kt +2 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +17 -25
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +5 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +4 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +4 -4
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +6 -8
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +1 -3
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SvgManager.kt +1 -17
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +2 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +4 -3
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +2 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +72 -51
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +1 -1
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/core/PNCore.kt +301 -0
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/TouchForwarder.kt +129 -0
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/Measurement.kt +118 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PlatformModules.kt +6 -3
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/mount/MountDecoder.kt +147 -0
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/mount/Mounter.kt +211 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +6 -2
- pythonnative-0.52.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/text/PNTextLayout.kt +132 -0
- pythonnative-0.52.0/src/pythonnative/native/android/src/test/java/com/pythonnative/generated/PNRecordFixtures.kt +50 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/DevSupportRobolectricTest.kt +8 -8
- pythonnative-0.52.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/MountDecoderTest.kt +130 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/NativeLifecycleTest.kt +15 -42
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundOneRobolectricTest.kt +15 -15
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoRobolectricTest.kt +35 -35
- pythonnative-0.52.0/src/pythonnative/native/core/CMakeLists.txt +12 -0
- pythonnative-0.52.0/src/pythonnative/native/core/Package.swift +24 -0
- pythonnative-0.52.0/src/pythonnative/native/core/include/module.modulemap +4 -0
- pythonnative-0.52.0/src/pythonnative/native/core/include/pn_core.h +220 -0
- pythonnative-0.52.0/src/pythonnative/native/core/python.cpp +10 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/animation.cpp +643 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/animation.h +121 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/contracts.cpp +393 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/contracts.h +126 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/core.cpp +694 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/core.h +103 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/gestures.cpp +753 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/gestures.h +98 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/lists.cpp +183 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/lists.h +73 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/mount.cpp +166 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/mount.h +72 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/shadow.cpp +1203 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/shadow.h +194 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/style.cpp +362 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/style.h +20 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/value.cpp +589 -0
- pythonnative-0.52.0/src/pythonnative/native/core/src/value.h +106 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Package.swift +2 -2
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +91 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +16 -74
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCoreBridge.swift +167 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +7 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +3 -3
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +25 -14
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +7 -7
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +3 -11
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +23 -9
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +6 -5
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNSvgManager.swift +0 -13
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +9 -3
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +197 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +86 -29
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +68 -68
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeValues.swift +2 -2
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +20 -0
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Mount/PNMountDecoder.swift +177 -0
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Mount/PNMounter.swift +205 -0
- pythonnative-0.52.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Text/PNTextLayout.swift +306 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/project.pbxproj +5 -7
- pythonnative-0.52.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/contracts.json +1 -0
- pythonnative-0.52.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/mount.json +248 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAssetTests.swift +11 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractFixtureTests.swift +6 -14
- pythonnative-0.52.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNCoreHarness.swift +84 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +10 -15
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNLifecycleTests.swift +9 -8
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +22 -10
- pythonnative-0.52.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNMountTests.swift +162 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNParityTests.swift +37 -39
- pythonnative-0.52.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNRecordFixtures.swift +53 -0
- pythonnative-0.52.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTextLayoutTests.swift +93 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_views/__init__.py +12 -9
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_views/bridge_backend.py +201 -110
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/preview.py +7 -4
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/builder.py +14 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/bundle.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/config.py +5 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/lockfile.py +6 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/reconciler/__init__.py +2 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/reconciler/boundaries.py +0 -6
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/reconciler/core.py +14 -11
- pythonnative-0.52.0/src/pythonnative/reconciler/layout_pass.py +178 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/reconciler/vnode.py +1 -17
- pythonnative-0.52.0/src/pythonnative/sdk/_builtin_contracts.json +1 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/_components.py +16 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/builtins.py +61 -16
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/codegen.py +11 -11
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/schema.py +53 -4
- pythonnative-0.52.0/src/pythonnative/sdk/templates/contracts.kt +19 -0
- pythonnative-0.52.0/src/pythonnative/sdk/templates/contracts.swift +20 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/templates/values.swift +2 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/types.py +2 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/style.py +58 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +1 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +14 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +11 -7
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +2 -8
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/testing/backend.py +129 -81
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/testing/pytest_plugin.py +8 -4
- {pythonnative-0.50.0 → pythonnative-0.52.0/src/pythonnative.egg-info}/PKG-INFO +5 -5
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative.egg-info/SOURCES.txt +127 -140
- pythonnative-0.52.0/tests/contracts/list-trace.json +430 -0
- pythonnative-0.52.0/tests/contracts/validation.json +222 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_animated.py +85 -103
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_animated_easing.py +7 -10
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_animated_graph.py +25 -19
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_bridge.py +35 -50
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_cli.py +19 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_codegen.py +13 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_components.py +1 -1
- pythonnative-0.52.0/tests/test_core.py +665 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_devserver.py +14 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_devserver_session.py +4 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_extended_components.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_gesture_activation.py +4 -3
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_gesture_composition.py +2 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_gestures.py +2 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_incremental_pipeline.py +47 -46
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_incremental_render.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_layout.py +328 -321
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_list_features.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_native_lists.py +7 -5
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_native_values.py +25 -30
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_native_views.py +1 -1
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_performance_budgets.py +8 -13
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_release_packaging.py +11 -5
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_runtime_contracts.py +11 -8
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_runtime_correctness.py +0 -2
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_runtime_overhaul.py +0 -22
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_testing_library.py +44 -34
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_web_transport.py +224 -164
- pythonnative-0.50.0/setup.py +0 -23
- pythonnative-0.50.0/src/pythonnative/bridge/android.py +0 -67
- pythonnative-0.50.0/src/pythonnative/bridge/commits.py +0 -231
- pythonnative-0.50.0/src/pythonnative/bridge/fake.py +0 -241
- pythonnative-0.50.0/src/pythonnative/bridge/list_store.py +0 -135
- pythonnative-0.50.0/src/pythonnative/devserver/static/animation_graph.js +0 -82
- pythonnative-0.50.0/src/pythonnative/devserver/static/contracts.js +0 -56
- pythonnative-0.50.0/src/pythonnative/devserver/static/index.html +0 -62
- pythonnative-0.50.0/src/pythonnative/devserver/static/layout.js +0 -135
- pythonnative-0.50.0/src/pythonnative/devserver/static/list-store.js +0 -90
- pythonnative-0.50.0/src/pythonnative/devserver/static/shell.js +0 -381
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +0 -75
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +0 -189
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js +0 -211
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +0 -1
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/index.d.ts +0 -12
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/index.js +0 -16
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/index.js.map +0 -1
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/load.d.ts +0 -11
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/load.js +0 -17
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/load.js.map +0 -1
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +0 -155
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js +0 -125
- pythonnative-0.50.0/src/pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +0 -1
- pythonnative-0.50.0/src/pythonnative/gestures.py +0 -1636
- pythonnative-0.50.0/src/pythonnative/layout.py +0 -338
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/cpp/CMakeLists.txt +0 -9
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/cpp/yoga_jni.cpp +0 -59
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +0 -5520
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +0 -162
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +0 -175
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +0 -284
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +0 -220
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +0 -53
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +0 -141
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ListStore.kt +0 -97
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +0 -285
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +0 -136
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +0 -602
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +0 -203
- pythonnative-0.50.0/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +0 -30
- pythonnative-0.50.0/src/pythonnative/native/android/src/test/java/com/pythonnative/generated/PNRecordFixtures.kt +0 -143
- pythonnative-0.50.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +0 -130
- pythonnative-0.50.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ContractFixtureTest.kt +0 -33
- pythonnative-0.50.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +0 -336
- pythonnative-0.50.0/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +0 -84
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +0 -272
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +0 -506
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +0 -181
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +0 -212
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNListStore.swift +0 -122
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +0 -429
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +0 -5544
- pythonnative-0.50.0/src/pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +0 -238
- pythonnative-0.50.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +0 -41
- pythonnative-0.50.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +0 -205
- pythonnative-0.50.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNContractParityTests.swift +0 -536
- pythonnative-0.50.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNRecordFixtures.swift +0 -155
- pythonnative-0.50.0/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +0 -55
- pythonnative-0.50.0/src/pythonnative/native/yoga/LICENSE +0 -21
- pythonnative-0.50.0/src/pythonnative/native/yoga/Package.swift +0 -9
- pythonnative-0.50.0/src/pythonnative/native/yoga/include/PNStyle.h +0 -10
- pythonnative-0.50.0/src/pythonnative/native/yoga/include/module.modulemap +0 -5
- pythonnative-0.50.0/src/pythonnative/native/yoga/python.cpp +0 -16
- pythonnative-0.50.0/src/pythonnative/native/yoga/style.cpp +0 -332
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGConfig.h +0 -158
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGEnums.h +0 -142
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGMacros.h +0 -99
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGNode.h +0 -304
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGNodeLayout.h +0 -35
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGNodeStyle.h +0 -130
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGPixelGrid.h +0 -29
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/YGValue.h +0 -84
- pythonnative-0.50.0/src/pythonnative/native/yoga/yoga/Yoga.h +0 -21
- pythonnative-0.50.0/src/pythonnative/reconciler/layout_pass.py +0 -427
- pythonnative-0.50.0/src/pythonnative/sdk/_builtin_contracts.json +0 -1
- pythonnative-0.50.0/src/pythonnative/sdk/contract_codegen.py +0 -199
- pythonnative-0.50.0/src/pythonnative/sdk/templates/contracts.kt +0 -62
- pythonnative-0.50.0/src/pythonnative/sdk/templates/contracts.swift +0 -86
- {pythonnative-0.50.0 → pythonnative-0.52.0}/.github/workflows/release.yml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/LICENSE +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/scripts/release-assets.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/setup.cfg +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/_ios_log.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/alerts.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/appearance.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/assets/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/assets/fonts.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/bootstrap.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/cli/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/cli/keys.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/cli/launch.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/component.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/_base.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/controls.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/events.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/graphics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/layout.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/media.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/overlays.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/pressable.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/props.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/structural.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/components/text.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/auth.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/editor.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/hub.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/packages.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/qr.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/assets.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/colors.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devsupport.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/connection.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/devtools.css +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/devtools.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/index.html +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/components.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/connect.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/console.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/network.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/panel.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/performance.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/panels/problems.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/report.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/tree.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/util.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/static/devtools/values.js +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/watcher.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devserver/ws.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devtools/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devtools/agent.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devtools/console.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devtools/debugger.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devtools/inspector.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/devtools/perf.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/diagnostics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/element.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/equality.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/errors.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/events.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/hosts/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/hot_reload.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/icons/LICENSE-lucide.txt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/icons/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/icons/_lucide.json +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/icons/_names.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/journal.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/lint.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/list_data.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/gradle.properties +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/settings.gradle +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/AndroidManifest.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeValues.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/assets/PNAssets.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNTheme.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenTransitions.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/graphics/SvgPath.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/AssetModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DevSupportModule.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/ErrorOverlay.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNKeyboard.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNScrollViews.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_fade_in.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_fade_out.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_hold.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_bottom.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_left.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_in_right.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_bottom.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_left.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/anim/pn_slide_out_right.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/drawable/pn_ic_arrow_back.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/values/pn_ids.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/main/res/xml/pn_file_paths.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/AssetsAndSvgTest.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/RoundTwoLogicTest.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/ScreenTransitionsTest.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/android/src/test/java/com/pythonnative/runtime/StyleAccessibilityDeviceTest.kt +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/CMakeLists.txt +0 -0
- {pythonnative-0.50.0/src/pythonnative/devserver/static → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/LICENSE +0 -0
- {pythonnative-0.50.0/src/pythonnative/native → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/VENDORED.md +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGConfig.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGConfig.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGEnums.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGEnums.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGMacros.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGNode.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGNode.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGNodeLayout.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGNodeLayout.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGNodeStyle.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGNodeStyle.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGPixelGrid.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGPixelGrid.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGValue.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/YGValue.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga/include → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/Yoga.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/AbsoluteLayout.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/AbsoluteLayout.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/Align.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/Baseline.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/Baseline.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/BoundAxis.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/Cache.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/Cache.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/CalculateLayout.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/CalculateLayout.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/FlexDirection.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/FlexLine.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/FlexLine.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/PixelGrid.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/PixelGrid.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/SizingMode.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/algorithm/TrailingPosition.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/config/Config.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/config/Config.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/debug/AssertFatal.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/debug/AssertFatal.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/debug/Log.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/debug/Log.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Align.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/BoxSizing.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Dimension.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Direction.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Display.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Edge.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Errata.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/ExperimentalFeature.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/FlexDirection.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Gutter.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Justify.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/LogLevel.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/MeasureMode.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/NodeType.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Overflow.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/PhysicalEdge.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/PositionType.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Unit.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/Wrap.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/enums/YogaEnums.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/event/event.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/event/event.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/module.modulemap +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/node/CachedMeasurement.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/node/LayoutResults.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/node/LayoutResults.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/node/LayoutableChildren.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/node/Node.cpp +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/node/Node.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/numeric/Comparison.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/numeric/FloatOptional.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/style/SmallValueBuffer.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/style/Style.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/style/StyleLength.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/style/StyleValueHandle.h +0 -0
- {pythonnative-0.50.0/src/pythonnative/native/yoga → pythonnative-0.52.0/src/pythonnative/native/core}/yoga/style/StyleValuePool.h +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNEffectManagers.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/DevSupportModule.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/EnvironmentModules.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/ImagesModule.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNErrorOverlay.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Resources/PrivacyInfo.xcprivacy +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNAssets.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/NativeTests.xcodeproj/xcshareddata/xcschemes/NativeTests.xcscheme +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/Fixtures/validation.json +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native/ios/Tests/TestHost/main.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/accessibility_info.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/app_state.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/battery.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/biometrics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/camera.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/clipboard.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/device.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/dimensions.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/fallback.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/file_system.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/haptics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/images.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/keyboard.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/linking.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/localization.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/location.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/net_info.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/notifications.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/permissions.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/registry.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/secure_store.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/native_modules/share.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/container.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/handle.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/hooks.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/host.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/linking.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/navigators.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/ref.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/screen.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/navigation/state.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/net.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/platform.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/platform_metrics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/profiling.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/android.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/artifacts.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/bytecode.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/deps.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/devices.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/doctor.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/fingerprint.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/go.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/icons.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/ios.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/permissions.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/plugins.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/project/runtime_assets.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/prop_checks.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/py.typed +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/query.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/reconciler/children.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/refresh.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/runtime.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/scheduler.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/commands.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/module_codegen.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/native_types.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/services.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/sdk/templates/values.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/storage.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/store.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/suspense.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/svg.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/build.gradle +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/proguard-rules.pro +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/values/colors.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/values/strings.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/values/themes.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/build.gradle +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/gradle.properties +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/gradlew +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/gradlew.bat +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/android_template/settings.gradle +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/PNFinalizePython.sh +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/AppDelegate.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/BridgingHeader.h +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/Info.plist +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/PrivacyInfo.xcprivacy +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template/ViewController.swift +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/testing/__init__.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/testing/clock.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/testing/harness.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/testing/queries.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/theme.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative/utils.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative.egg-info/dependency_links.txt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative.egg-info/entry_points.txt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative.egg-info/requires.txt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/src/pythonnative.egg-info/top_level.txt +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_alert.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_appearance.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_assets.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_async_hooks.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_authoring.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_cli_keys.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_contract_fixtures.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_core_semantics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_devclient.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_device_modules.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_devserver_ws.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_devtools.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_devtools_page.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_e2e_suite_renders.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_element.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_errors.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_events.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_handles.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_hooks.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_hosts.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_hot_reload.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_identity_bailout.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_inbox.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_interaction_props.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_ios_log.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_lint.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_metric_hooks.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_mutations.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_native_modules.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_navigation.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_net.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_new_components.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_platform.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_platform_metrics.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_qr.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_reconciler.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_ref.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_release_workflow.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_runtime.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_sdk.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_smoke.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_storage.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_store.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_style.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_suspense.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_theme.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_transitions.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_typed_events.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_typing_conformance.py +0 -0
- {pythonnative-0.50.0 → pythonnative-0.52.0}/tests/test_utils.py +0 -0
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
global-exclude *.pyc *.pyo .DS_Store
|
|
2
2
|
include scripts/cibuildwheel.toml scripts/check-distributions.py scripts/release-assets.py
|
|
3
3
|
include .github/workflows/release.yml
|
|
4
|
+
# The renderer core tests the wheels run read these fixtures.
|
|
5
|
+
recursive-include tests/contracts *.json
|
|
4
6
|
recursive-exclude src/pythonnative/native .build/* .gradle/* .cxx/* build/* .swiftpm/* .kotlin/*
|
|
5
7
|
prune src/pythonnative/native/android/build
|
|
6
8
|
prune src/pythonnative/native/android/.gradle
|
|
7
9
|
prune src/pythonnative/native/android/.cxx
|
|
8
10
|
prune src/pythonnative/native/ios/.build
|
|
9
11
|
prune src/pythonnative/native/ios/.swiftpm
|
|
10
|
-
prune src/pythonnative/native/
|
|
12
|
+
prune src/pythonnative/native/core/.build
|
|
11
13
|
prune src/pythonnative/templates/android_template/app/build
|
|
12
14
|
prune src/pythonnative/templates/android_template/.gradle
|
|
13
15
|
prune src/pythonnative/templates/ios_template/build
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pythonnative
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.52.0
|
|
4
4
|
Summary: Cross-platform native UI toolkit for Android and iOS
|
|
5
5
|
Author: Owen Carey
|
|
6
6
|
License: MIT License
|
|
@@ -73,18 +73,18 @@ Dynamic: license-file
|
|
|
73
73
|
|
|
74
74
|
## Overview
|
|
75
75
|
|
|
76
|
-
PythonNative is a cross-platform toolkit for building native Android and iOS apps in Python. It provides a **declarative, React-like component model** with hooks and automatic reconciliation on top of a **
|
|
76
|
+
PythonNative is a cross-platform toolkit for building native Android and iOS apps in Python. It provides a **declarative, React-like component model** with hooks and automatic reconciliation on top of a **shared C++ renderer core** that iOS, Android, the browser preview, and headless tests all run. Write function components with `use_state`, `use_effect`, and friends, just like React, and let PythonNative handle creating and updating native views.
|
|
77
77
|
|
|
78
78
|
## Features
|
|
79
79
|
|
|
80
80
|
- **Declarative components and hooks:** Describe native UI with Python functions, immutable elements, and typed styles. State, effects, context, and suspense boundaries follow one logical application tree across screens, overlays, and mounted list rows. State updates batch automatically, effect errors reach the nearest error boundary, and event callbacks receive typed records instead of dicts.
|
|
81
81
|
- **React Native's core surface:** `Pressable`, `ScrollView`, `Text`, `TextInput`, `Image`, `Modal`, `FlatList`, and `SectionList` carry the props a React Native developer expects (disabled state and ripples, content insets and snapping, ellipsize modes and pressable spans, controlled selection and key events, sticky headers and inverted lists), plus typed imperative handles on `ref.current` and the full accessibility prop set.
|
|
82
|
-
- **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The
|
|
82
|
+
- **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The renderer core validates commits, lays out with Yoga off the UI thread using platform measurements for text and intrinsic sizes, and skips mounting layout-only wrappers.
|
|
83
83
|
- **Standard asyncio:** Components, effects, event handlers, and tasks run on a dedicated Python application thread. Native UI threads handle widgets, scrolling, and animation frames. Component-owned tasks are canceled on unmount.
|
|
84
84
|
- **Incremental reconciliation:** State changes update affected component subtrees. Versioned bridge commits validate operations and acknowledge revisions; events and controlled text inputs carry identities that prevent stale updates.
|
|
85
85
|
- **Typed, Pythonic authoring:** Components return `pn.Node` and their signatures are their props, so a strict type checker verifies element trees and conditional children. Screens are components whose parameters are their route params (`nav.push(ItemScreen(id=42))`), navigators are module-level values with deep links derived from each screen's `path`, one `Theme` dataclass styles the app and its navigators, `StyleSheet` namespaces give styles typed names, and `pn.Store` holds app state with selector-based re-renders. `pn lint` checks the rules of hooks.
|
|
86
86
|
- **Native lists and navigation:** UIKit collection views and Android recycler views recycle cells for fixed or variable row sizes, grids, sections, and horizontal lists. Native navigation containers present logical screen roots at every nesting level while providers and component state remain in the shared Python tree; navigators take screen options, groups, tab-bar styles, and a navigation ref usable outside components.
|
|
87
|
-
- **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings.
|
|
87
|
+
- **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings. Gestures activate with Gesture Handler-style offsets and update supported animation bindings without Python work on every frame.
|
|
88
88
|
- **Assets and graphics:** Drop images, fonts, and SVGs under `app/assets/` and reference them by path. Density variants, bundled fonts, a vector `Icon` set, `Svg` drawing, gradients, and blur render natively on both platforms and in the browser preview.
|
|
89
89
|
- **Device APIs:** Python facades expose 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.
|
|
90
90
|
- **Native extension SDK:** Python dataclasses and protocols define contracts; `define_component` returns a typed element factory and `pn codegen` generates props and module adapters for Swift and Kotlin. Plugins package native sources and resources, and builds verify matching contracts at startup.
|
|
@@ -92,7 +92,7 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
|
|
|
92
92
|
- **PythonNative Go:** a prebuilt dev client, published with each release, runs any project without native code, so the project itself is never compiled. `i` / `a` in `pn start` open it on the iOS Simulator (which still needs Xcode installed) or an Android emulator, and a phone with Go installed opens the project by scanning the QR code `pn start` prints. Go isn't in the app stores: Android phones install the APK, and iPhones need Go built and signed with your Apple team. Projects that add native code run in their own debug build, which `pn run` rebuilds only when something native changes.
|
|
93
93
|
- **DevTools and debugging:** `pn start` serves DevTools, with a component tree showing props and hooks (and editable state), a console with a REPL inside the running app, problems with component stacks and source excerpts, network requests, and live performance with trace capture. VS Code attaches `debugpy` breakpoints to Python on the preview, a simulator, or a phone. On device, a dev menu (shake or Cmd+D) offers reload, an element inspector, and a performance monitor, and errors show a screen with the component stack and your source.
|
|
94
94
|
- **Development tools:** Fast Refresh preserves compatible component state, `pn lint` checks the rules of hooks, and `pn init` scaffolds tests, type checking, debugger settings, and CI.
|
|
95
|
-
- **Browser preview:** `pn preview` runs your Python application against
|
|
95
|
+
- **Browser preview:** `pn preview` runs your Python application against DOM widgets mounted by the same renderer core, compiled to WebAssembly. It supports iteration on application logic and UI; fonts, platform controls, and device APIs require mobile testing.
|
|
96
96
|
- **App packaging and dependency locks:** `pn run` and `pn build` stage bundled app templates, native libraries, and Python sources. Target-specific wheel locks record dependency versions and hashes for mobile builds. Binary dependencies need compatible mobile wheels; `pn deps` reports target resolution.
|
|
97
97
|
|
|
98
98
|
## Quick Start
|
|
@@ -26,18 +26,18 @@
|
|
|
26
26
|
|
|
27
27
|
## Overview
|
|
28
28
|
|
|
29
|
-
PythonNative is a cross-platform toolkit for building native Android and iOS apps in Python. It provides a **declarative, React-like component model** with hooks and automatic reconciliation on top of a **
|
|
29
|
+
PythonNative is a cross-platform toolkit for building native Android and iOS apps in Python. It provides a **declarative, React-like component model** with hooks and automatic reconciliation on top of a **shared C++ renderer core** that iOS, Android, the browser preview, and headless tests all run. Write function components with `use_state`, `use_effect`, and friends, just like React, and let PythonNative handle creating and updating native views.
|
|
30
30
|
|
|
31
31
|
## Features
|
|
32
32
|
|
|
33
33
|
- **Declarative components and hooks:** Describe native UI with Python functions, immutable elements, and typed styles. State, effects, context, and suspense boundaries follow one logical application tree across screens, overlays, and mounted list rows. State updates batch automatically, effect errors reach the nearest error boundary, and event callbacks receive typed records instead of dicts.
|
|
34
34
|
- **React Native's core surface:** `Pressable`, `ScrollView`, `Text`, `TextInput`, `Image`, `Modal`, `FlatList`, and `SectionList` carry the props a React Native developer expects (disabled state and ripples, content insets and snapping, ellipsize modes and pressable spans, controlled selection and key events, sticky headers and inverted lists), plus typed imperative handles on `ref.current` and the full accessibility prop set.
|
|
35
|
-
- **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The
|
|
35
|
+
- **Native widgets and layout:** Swift and Kotlin component managers own UIKit and Android widgets. The renderer core validates commits, lays out with Yoga off the UI thread using platform measurements for text and intrinsic sizes, and skips mounting layout-only wrappers.
|
|
36
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
39
|
- **Native lists and navigation:** UIKit collection views and Android recycler views recycle cells for fixed or variable row sizes, grids, sections, and horizontal lists. Native navigation containers present logical screen roots at every nesting level while providers and component state remain in the shared Python tree; navigators take screen options, groups, tab-bar styles, and a navigation ref usable outside components.
|
|
40
|
-
- **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings.
|
|
40
|
+
- **Animation and gestures:** Serialized animation graphs support timing with named or bezier easing, springs, React Native's decay model, arithmetic, interpolation, and native scroll and gesture bindings. Gestures activate with Gesture Handler-style offsets and update supported animation bindings without Python work on every frame.
|
|
41
41
|
- **Assets and graphics:** Drop images, fonts, and SVGs under `app/assets/` and reference them by path. Density variants, bundled fonts, a vector `Icon` set, `Svg` drawing, gradients, and blur render natively on both platforms and in the browser preview.
|
|
42
42
|
- **Device APIs:** Python facades expose 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.
|
|
43
43
|
- **Native extension SDK:** Python dataclasses and protocols define contracts; `define_component` returns a typed element factory and `pn codegen` generates props and module adapters for Swift and Kotlin. Plugins package native sources and resources, and builds verify matching contracts at startup.
|
|
@@ -45,7 +45,7 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
|
|
|
45
45
|
- **PythonNative Go:** a prebuilt dev client, published with each release, runs any project without native code, so the project itself is never compiled. `i` / `a` in `pn start` open it on the iOS Simulator (which still needs Xcode installed) or an Android emulator, and a phone with Go installed opens the project by scanning the QR code `pn start` prints. Go isn't in the app stores: Android phones install the APK, and iPhones need Go built and signed with your Apple team. Projects that add native code run in their own debug build, which `pn run` rebuilds only when something native changes.
|
|
46
46
|
- **DevTools and debugging:** `pn start` serves DevTools, with a component tree showing props and hooks (and editable state), a console with a REPL inside the running app, problems with component stacks and source excerpts, network requests, and live performance with trace capture. VS Code attaches `debugpy` breakpoints to Python on the preview, a simulator, or a phone. On device, a dev menu (shake or Cmd+D) offers reload, an element inspector, and a performance monitor, and errors show a screen with the component stack and your source.
|
|
47
47
|
- **Development tools:** Fast Refresh preserves compatible component state, `pn lint` checks the rules of hooks, and `pn init` scaffolds tests, type checking, debugger settings, and CI.
|
|
48
|
-
- **Browser preview:** `pn preview` runs your Python application against
|
|
48
|
+
- **Browser preview:** `pn preview` runs your Python application against DOM widgets mounted by the same renderer core, compiled to WebAssembly. It supports iteration on application logic and UI; fonts, platform controls, and device APIs require mobile testing.
|
|
49
49
|
- **App packaging and dependency locks:** `pn run` and `pn build` stage bundled app templates, native libraries, and Python sources. Target-specific wheel locks record dependency versions and hashes for mobile builds. Binary dependencies need compatible mobile wheels; `pn deps` reports target resolution.
|
|
50
50
|
|
|
51
51
|
## Quick Start
|
|
@@ -18,12 +18,16 @@ PYTHONS = {"cp313", "cp314"}
|
|
|
18
18
|
PLATFORMS = {"linux_x86_64", "linux_aarch64", "macos_x86_64", "macos_arm64", "win_amd64"}
|
|
19
19
|
PACKAGE_FILES = {
|
|
20
20
|
"pythonnative/py.typed",
|
|
21
|
-
"pythonnative/native/
|
|
22
|
-
"pythonnative/native/
|
|
23
|
-
"pythonnative/native/
|
|
21
|
+
"pythonnative/native/core/python.cpp",
|
|
22
|
+
"pythonnative/native/core/include/pn_core.h",
|
|
23
|
+
"pythonnative/native/core/src/core.cpp",
|
|
24
|
+
"pythonnative/native/core/yoga/Yoga.h",
|
|
25
|
+
"pythonnative/native/core/yoga/YGNode.cpp",
|
|
24
26
|
"pythonnative/native/ios/Package.swift",
|
|
25
27
|
"pythonnative/templates/android_template/gradlew",
|
|
26
|
-
"pythonnative/devserver/static/
|
|
28
|
+
"pythonnative/devserver/static/core/mount.js",
|
|
29
|
+
"pythonnative/devserver/static/core/pn_core.js",
|
|
30
|
+
"pythonnative/devserver/static/core/pn_core.wasm",
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
|
|
@@ -77,8 +81,8 @@ def check_distributions(directory: Path, expected_version: str) -> None:
|
|
|
77
81
|
if wheel.get("Root-Is-Purelib") != "false" or archive_tags != tags:
|
|
78
82
|
raise ValueError(f"Wheel metadata disagrees with binary platform tags: {path.name}")
|
|
79
83
|
suffix = ".pyd" if next(iter(targets))[1] == "win_amd64" else ".so"
|
|
80
|
-
if not any(n.startswith("pythonnative/
|
|
81
|
-
raise ValueError(f"Missing compiled
|
|
84
|
+
if not any(n.startswith("pythonnative/_core.") and n.endswith(suffix) for n in names):
|
|
85
|
+
raise ValueError(f"Missing compiled renderer core: {path.name}")
|
|
82
86
|
missing = PACKAGE_FILES - names
|
|
83
87
|
if missing:
|
|
84
88
|
raise ValueError(f"Missing package resources in {path.name}: {sorted(missing)}")
|
|
@@ -91,7 +95,11 @@ def check_distributions(directory: Path, expected_version: str) -> None:
|
|
|
91
95
|
prefix = f"pythonnative-{version}/"
|
|
92
96
|
names = set(archive.getnames())
|
|
93
97
|
required = {prefix + "src/" + name for name in PACKAGE_FILES}
|
|
94
|
-
required |= {
|
|
98
|
+
required |= {
|
|
99
|
+
prefix + "setup.py",
|
|
100
|
+
prefix + "tests/test_core.py",
|
|
101
|
+
prefix + "tests/contracts/validation.json",
|
|
102
|
+
}
|
|
95
103
|
if missing := required - names:
|
|
96
104
|
raise ValueError(f"Incomplete source distribution: {sorted(missing)}")
|
|
97
105
|
metadata_file = archive.extractfile(prefix + "PKG-INFO")
|
|
@@ -5,12 +5,13 @@ build = ["cp313-*", "cp314-*"]
|
|
|
5
5
|
skip = ["*-musllinux*", "*-win32", "*-manylinux_i686"]
|
|
6
6
|
archs = ["native"]
|
|
7
7
|
test-requires = ["pytest>=8"]
|
|
8
|
-
# Install the repaired wheel into a fresh environment and copy just
|
|
9
|
-
#
|
|
10
|
-
|
|
8
|
+
# Install the repaired wheel into a fresh environment and copy just the
|
|
9
|
+
# renderer core's tests and their fixtures to a temporary directory,
|
|
10
|
+
# outside the source checkout.
|
|
11
|
+
test-sources = ["tests/test_core.py", "tests/contracts"]
|
|
11
12
|
test-command = [
|
|
12
13
|
"python -c \"import pythonnative; from importlib.metadata import version; from pathlib import Path; assert 'site-packages' in Path(pythonnative.__file__).parts; assert pythonnative.__version__ == version('pythonnative')\"",
|
|
13
|
-
"python -m pytest -q tests/
|
|
14
|
+
"python -m pytest -q tests/test_core.py",
|
|
14
15
|
"pn --help",
|
|
15
16
|
]
|
|
16
17
|
|
|
@@ -21,7 +22,3 @@ manylinux-aarch64-image = "manylinux_2_28"
|
|
|
21
22
|
[tool.cibuildwheel.macos]
|
|
22
23
|
environment = { MACOSX_DEPLOYMENT_TARGET = "11.0" }
|
|
23
24
|
|
|
24
|
-
[tool.cibuildwheel.windows]
|
|
25
|
-
# These flags also make v0.40.0's C API available to ctypes without patching
|
|
26
|
-
# the tagged source. setup.py supplies them for future source builds.
|
|
27
|
-
environment = { CL = "/D_WINDLL", LINK = "/EXPORT:pn_yoga_callback /EXPORT:pn_yoga_measure" }
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Build the host renderer core; mobile hosts compile the same sources."""
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from setuptools import Extension, setup
|
|
7
|
+
|
|
8
|
+
root = Path("src/pythonnative/native/core")
|
|
9
|
+
sources = [root / "python.cpp", *sorted((root / "src").glob("*.cpp")), *sorted((root / "yoga").rglob("*.cpp"))]
|
|
10
|
+
setup(
|
|
11
|
+
ext_modules=[
|
|
12
|
+
Extension(
|
|
13
|
+
"pythonnative._core",
|
|
14
|
+
sources=[str(path) for path in sources],
|
|
15
|
+
include_dirs=[str(root), str(root / "include")],
|
|
16
|
+
language="c++",
|
|
17
|
+
extra_compile_args=["/std:c++20"] if os.name == "nt" else ["-std=c++20", "-fvisibility=hidden"],
|
|
18
|
+
# ctypes loads the core's C ABI (exported with PN_CORE_API) from
|
|
19
|
+
# the extension library, not just Python's module initializer.
|
|
20
|
+
define_macros=[("_WINDLL", "1")] if os.name == "nt" else [],
|
|
21
|
+
)
|
|
22
|
+
]
|
|
23
|
+
)
|