pythonnative 0.22.0__py3-none-any.whl → 0.23.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. pythonnative/__init__.py +16 -2
  2. pythonnative/animated.py +6 -6
  3. pythonnative/appearance.py +124 -0
  4. pythonnative/cli/pn.py +1 -1
  5. pythonnative/components.py +718 -48
  6. pythonnative/events.py +5 -5
  7. pythonnative/gestures.py +3 -3
  8. pythonnative/hooks.py +44 -3
  9. pythonnative/hot_reload.py +4 -4
  10. pythonnative/images.py +196 -0
  11. pythonnative/layout.py +3 -3
  12. pythonnative/mutations.py +4 -13
  13. pythonnative/native_modules/camera.py +1 -1
  14. pythonnative/native_modules/haptics.py +2 -2
  15. pythonnative/native_modules/location.py +1 -1
  16. pythonnative/native_modules/permissions.py +2 -2
  17. pythonnative/native_modules/secure_store.py +1 -1
  18. pythonnative/native_views/__init__.py +1 -7
  19. pythonnative/native_views/android.py +592 -64
  20. pythonnative/native_views/base.py +3 -3
  21. pythonnative/native_views/desktop.py +85 -26
  22. pythonnative/native_views/ios.py +762 -74
  23. pythonnative/navigation.py +4 -4
  24. pythonnative/net.py +3 -3
  25. pythonnative/platform.py +1 -1
  26. pythonnative/platform_metrics.py +5 -5
  27. pythonnative/preview.py +34 -3
  28. pythonnative/project/builder.py +1 -1
  29. pythonnative/project/config.py +4 -12
  30. pythonnative/project/doctor.py +2 -2
  31. pythonnative/project/icons.py +1 -1
  32. pythonnative/project/ios.py +1 -1
  33. pythonnative/project/permissions.py +2 -2
  34. pythonnative/project/runtime_assets.py +3 -3
  35. pythonnative/reconciler.py +9 -9
  36. pythonnative/runtime.py +8 -8
  37. pythonnative/screen.py +90 -5
  38. pythonnative/sdk/_components.py +1 -1
  39. pythonnative/storage.py +3 -3
  40. pythonnative/style.py +66 -7
  41. pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +2 -1
  42. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNAccessibilityDelegate.kt +47 -0
  43. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNBorderDrawable.kt +67 -0
  44. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNVirtualListView.java +172 -0
  45. pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +2 -2
  46. pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +1 -1
  47. pythonnative/virtual_rows.py +137 -0
  48. {pythonnative-0.22.0.dist-info → pythonnative-0.23.0.dist-info}/METADATA +13 -13
  49. {pythonnative-0.22.0.dist-info → pythonnative-0.23.0.dist-info}/RECORD +53 -47
  50. {pythonnative-0.22.0.dist-info → pythonnative-0.23.0.dist-info}/WHEEL +1 -1
  51. {pythonnative-0.22.0.dist-info → pythonnative-0.23.0.dist-info}/entry_points.txt +0 -0
  52. {pythonnative-0.22.0.dist-info → pythonnative-0.23.0.dist-info}/licenses/LICENSE +0 -0
  53. {pythonnative-0.22.0.dist-info → pythonnative-0.23.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythonnative
3
- Version: 0.22.0
3
+ Version: 0.23.0
4
4
  Summary: Cross-platform native UI toolkit for Android and iOS
5
5
  Author: Owen Carey
6
6
  License: MIT License
@@ -28,7 +28,7 @@ License: MIT License
28
28
  Project-URL: Homepage, https://github.com/pythonnative/pythonnative
29
29
  Project-URL: Repository, https://github.com/pythonnative/pythonnative
30
30
  Project-URL: Issues, https://github.com/pythonnative/pythonnative/issues
31
- Project-URL: Documentation, https://docs.pythonnative.com/
31
+ Project-URL: Documentation, https://pythonnative.com/
32
32
  Classifier: Development Status :: 2 - Pre-Alpha
33
33
  Classifier: Intended Audience :: Developers
34
34
  Classifier: License :: OSI Approved :: MIT License
@@ -83,13 +83,13 @@ Dynamic: license-file
83
83
  <a href="https://pypi.org/project/pythonnative/"><img src="https://img.shields.io/pypi/v/pythonnative" alt="PyPI Version" /></a>
84
84
  <a href="https://pypi.org/project/pythonnative/"><img src="https://img.shields.io/pypi/pyversions/pythonnative" alt="Python Versions" /></a>
85
85
  <a href="LICENSE"><img src="https://img.shields.io/pypi/l/pythonnative" alt="License: MIT" /></a>
86
- <a href="https://docs.pythonnative.com/"><img src="https://img.shields.io/website?url=https%3A%2F%2Fdocs.pythonnative.com&label=docs" alt="Docs" /></a>
86
+ <a href="https://pythonnative.com/"><img src="https://img.shields.io/website?url=https%3A%2F%2Fpythonnative.com&label=docs" alt="Docs" /></a>
87
87
  </p>
88
88
 
89
89
  <p align="center">
90
- <a href="https://docs.pythonnative.com/">Documentation</a> ·
91
- <a href="https://docs.pythonnative.com/getting-started/">Getting Started</a> ·
92
- <a href="https://docs.pythonnative.com/examples/">Examples</a> ·
90
+ <a href="https://pythonnative.com/">Documentation</a> ·
91
+ <a href="https://pythonnative.com/getting-started/">Getting Started</a> ·
92
+ <a href="https://pythonnative.com/examples/">Examples</a> ·
93
93
  <a href="CONTRIBUTING.md">Contributing</a>
94
94
  </p>
95
95
 
@@ -102,19 +102,19 @@ PythonNative is a cross-platform toolkit for building native Android and iOS app
102
102
  ## Features
103
103
 
104
104
  - **Declarative UI:** Describe *what* your UI should look like with element functions (`Text`, `Button`, `Column`, `Row`, etc.). PythonNative creates and updates native views automatically.
105
- - **Rich component library:** 25+ built-in components backed by real native widgets `TextInput`, `Image` / `ImageBackground`, `ScrollView`, `FlatList` / `SectionList`, `Modal`, `Pressable` / `TouchableOpacity`, `Switch` / `Checkbox`, `Slider`, `SegmentedControl`, `Picker`, `DatePicker`, `ProgressBar` / `ActivityIndicator`, `WebView`, and more.
106
- - **Device APIs:** Cross-platform modules for `Camera`, `Location`, `FileSystem`, `Notifications`, `Clipboard`, `Share`, `Linking`, `Permissions`, `AppState`, `NetInfo`, `SecureStore`, `Battery`, `Haptics` / `Vibration`, and `Biometrics` plus reactive `use_app_state` and `use_net_info` hooks.
105
+ - **Rich component library:** 25+ built-in components backed by real native widgets: `TextInput`, `Image` / `ImageBackground`, `ScrollView`, `FlatList` / `SectionList`, `Modal`, `Pressable` / `TouchableOpacity`, `Switch` / `Checkbox`, `Slider`, `SegmentedControl`, `Picker`, `DatePicker`, `ProgressBar` / `ActivityIndicator`, `WebView`, and more.
106
+ - **Device APIs:** Cross-platform modules for `Camera`, `Location`, `FileSystem`, `Notifications`, `Clipboard`, `Share`, `Linking`, `Permissions`, `AppState`, `NetInfo`, `SecureStore`, `Battery`, `Haptics` / `Vibration`, and `Biometrics`, plus reactive `use_app_state` and `use_net_info` hooks.
107
107
  - **Hooks and function components:** Manage state with `use_state`, side effects with `use_effect`, and navigation with `use_navigation`, all through one consistent pattern.
108
108
  - **Typed `style` prop:** Pass all visual and layout properties through a single `style` dict, fully described by the `pn.Style` `TypedDict` and the ergonomic `pn.style(...)` helper for IDE autocomplete and static checking. Compose reusable styles with `StyleSheet`.
109
109
  - **Cross-platform flexbox engine:** A pure-Python, Yoga-style layout engine computes frames once and applies them to native views, so `flex`, `padding`, `aspect_ratio`, and `position: "absolute"` produce the same geometry on Android and iOS.
110
- - **Virtual view tree + reconciler:** Element trees are diffed and patched with minimal native mutations, similar to React's reconciliation. Each commit lands as **one batched transaction** of mutation ops, and event callbacks are routed through a tag-based registry so re-renders that only change closures cost zero native calls. State updates re-render **locally** only the component whose state changed (and its subtree) re-runs, and unchanged leaves reuse cached intrinsic measurements so deep UIs stay responsive instead of re-rendering the whole app from the root on every tap.
110
+ - **Virtual view tree + reconciler:** Element trees are diffed and patched with minimal native mutations, similar to React's reconciliation. Each commit lands as **one batched transaction** of mutation ops, and event callbacks are routed through a tag-based registry so re-renders that only change closures cost zero native calls. State updates re-render **locally**: only the component whose state changed (and its subtree) re-runs, and unchanged leaves reuse cached intrinsic measurements, so deep UIs stay responsive instead of re-rendering the whole app from the root on every tap.
111
111
  - **Native-driven animations:** The `Animated` API (timing / spring / decay, awaitable or fire-and-forget) hands animations to Core Animation and `ViewPropertyAnimator` whenever possible, so no Python code runs per frame; a pure-Python ticker covers the rest.
112
- - **Native gesture system:** Attach `Tap`, `LongPress`, `Pan`, `Swipe`, `Pinch`, and `Rotation` recognizers to any view via the `gestures=` prop backed by `UIGestureRecognizer` on iOS and a unit-testable pure-Python arbiter on Android and desktop.
113
- - **Virtualized lists:** `FlatList` / `SectionList` window their rows in Python over the platform scroll view uniform, exact, or measured variable heights, grids, headers/footers, infinite scroll, and an imperative scroll controller, identical on every platform.
112
+ - **Native gesture system:** Attach `Tap`, `LongPress`, `Pan`, `Swipe`, `Pinch`, and `Rotation` recognizers to any view via the `gestures=` prop, backed by `UIGestureRecognizer` on iOS and a unit-testable pure-Python arbiter on Android and desktop.
113
+ - **Virtualized lists:** `FlatList` / `SectionList` window their rows in Python over the platform scroll view: uniform, exact, or measured variable heights, grids, headers/footers, infinite scroll, and an imperative scroll controller, identical on every platform.
114
114
  - **Direct native bindings:** Python calls platform APIs directly through Chaquopy and rubicon-objc, with no JavaScript bridge.
115
115
  - **Custom-component SDK:** Wrap any platform widget as a first-class element with type-checked props via `pythonnative.sdk` (`Props`, `@native_component`, `element_factory`). Plugins distributed on PyPI auto-register through the `pythonnative.handlers` entry-point group.
116
116
  - **CLI scaffolding:** `pn init` creates a ready-to-run project; `pn run android` and `pn run ios` build and launch your app.
117
- - **Instant desktop preview:** `pn preview` renders your app in a native desktop window via Tkinter with Fast Refresh on every save iterate on layout, state, and navigation in milliseconds without booting a simulator or device. The reconciler, hooks, layout engine, and navigation are the same code that ships to the phone.
117
+ - **Instant desktop preview:** `pn preview` renders your app in a native desktop window via Tkinter with Fast Refresh on every save: iterate on layout, state, and navigation in milliseconds without booting a simulator or device. The reconciler, hooks, layout engine, and navigation are the same code that ships to the phone.
118
118
  - **Native-backed navigation:** Declarative `Stack`, `Tab`, and `Drawer` navigators inspired by React Navigation. The root stack drives the platform's native navigation controller (`UINavigationController` on iOS, AndroidX Navigation Component on Android), so transitions, back gestures, and the hardware back button match what users expect.
119
119
  - **Fast Refresh hot reload:** `pn run --hot-reload` watches `app/` and patches edits into the running app on save, preserving component state across most changes.
120
120
  - **Bundled templates:** Android Gradle and iOS Xcode templates are included, so scaffolding requires no network access.
@@ -148,7 +148,7 @@ def App():
148
148
 
149
149
  ## Documentation
150
150
 
151
- Visit [docs.pythonnative.com](https://docs.pythonnative.com/) for the full documentation, including getting started guides, platform-specific instructions for Android and iOS, API reference, and working examples.
151
+ Visit [pythonnative.com](https://pythonnative.com/) for the full documentation, including getting started guides, platform-specific instructions for Android and iOS, API reference, and working examples.
152
152
 
153
153
  ## Contributing
154
154
 
@@ -1,59 +1,62 @@
1
- pythonnative/__init__.py,sha256=O7ILJvQ_oo1Bw3Ckz0SfnBF1Wr1C06M4jFOkbvzInrQ,8551
1
+ pythonnative/__init__.py,sha256=vDBibKua43iWhsjL-R5bptS2tJKdkf69RqYs2o61NAw,8861
2
2
  pythonnative/_ios_log.py,sha256=Oi7V28VxcVoZyrpAirvLeEmUW18McqnU87V4d37Zzlw,2582
3
3
  pythonnative/alerts.py,sha256=mIANysFlaHwL5EqKnvNcyiJN9rGiZi9XDrD9Jpz1RFM,9340
4
- pythonnative/animated.py,sha256=1rvF-uQtQjrYN6Wgl4CaAZzJzuYMjbLsmKMNlR8R7tc,36251
5
- pythonnative/components.py,sha256=s0Y18qqRJeBs0x7Yn0hGvTtHwzGPgzw5-jROZdDWiCY,85284
4
+ pythonnative/animated.py,sha256=IBokHVfp_Ud5VC8b4drY9DX8A4uG9wqRUjcW3y-EtkI,36233
5
+ pythonnative/appearance.py,sha256=vMkDRIz9ptaprMmlPmiYJLVwrDslfnc1bhwyE27M2ZI,3891
6
+ pythonnative/components.py,sha256=zz3SOZDXABRXHE3bmS56Z9v24X0ewebHnbO_y3r5KOc,115170
6
7
  pythonnative/element.py,sha256=W9varJj0Cl9HpckL8BcsC1u4ryUQOPVMrvetro4ilAE,2725
7
- pythonnative/events.py,sha256=wM3c3I3X9DTV9sUqcPBZGd4nlYudYKaVHXw0cAlNzEk,7646
8
- pythonnative/gestures.py,sha256=15tq6CF0n_WoPFZkR5f3gyoxI6x5rapQL1Zh_s4Tmcg,29949
9
- pythonnative/hooks.py,sha256=_XkoyK0aTqu3A7BiiXalN3R-qXTiOh1UbL_ZmUcIaDA,38996
10
- pythonnative/hot_reload.py,sha256=j7z2c7o2Hdoyd-p4nQY15LTW7CBH_1z0TSAzLCer-aA,25036
11
- pythonnative/layout.py,sha256=R5WFbEBMBK48zBX1nS2CAaDabvysO-mM_mfQVyyG5l8,49086
12
- pythonnative/mutations.py,sha256=Aub3igru5rMPL--D4o1gAetzIIi48gX0Vo2zdfykCsU,4024
13
- pythonnative/navigation.py,sha256=skMZFh3AXEJgTU6qQpATFN1Lp4GB94K_ACNNXZjEOEE,35579
14
- pythonnative/net.py,sha256=UI-39-BmGYWLE_vMAFoAbkzWZvfhIFj9yX_gexp1loc,8091
15
- pythonnative/platform.py,sha256=cqG37hPY1fh6QzgO_AfHObg8R1fiMZmDeMu_2TIXqO0,4997
16
- pythonnative/platform_metrics.py,sha256=m2u8M8x52n5THNsYdspcaI9mlWWMbfSJWai1svjD0NM,8976
17
- pythonnative/preview.py,sha256=ZtDupXfQdW07i2JD-fnoikAd3zHKVPYoPSMob1K8KQs,16990
18
- pythonnative/reconciler.py,sha256=P6TrAy9ooX0YvA2aaer92nqKLzNrVplsq8Gdo5_v6gE,57109
19
- pythonnative/runtime.py,sha256=8xQvhZvMQJYJ0eozWTwKvC-H1GN5vikl6OCxt8f5uI0,18267
20
- pythonnative/screen.py,sha256=YxXzVXfEY7Q6imhQnN6Y3HGDqPsMmW9JRVtZPQ1JJD8,64849
21
- pythonnative/storage.py,sha256=hLgSI44ADq6wj29eeYbHaAUNpxYPzJ2ZLn1L7AHkPZY,12010
22
- pythonnative/style.py,sha256=yDJv-G6iZIgrscpc-IZS_cbEQvY2o7R02PTQZ4BV8RA,15162
8
+ pythonnative/events.py,sha256=H3XmZW99M16Q1OiRq1NbS6e-Pdopi6piCh6qdkmEu40,7632
9
+ pythonnative/gestures.py,sha256=6qe_s3Cv2M5_V-_PgAQ5y9QbYV812B0xVmh8dRDHYMY,29940
10
+ pythonnative/hooks.py,sha256=bM0t1WgkRhJ1myovY0AQY_QsHkO66lkeq4hFfRg8d58,40150
11
+ pythonnative/hot_reload.py,sha256=g-PKXRw7IXZgLyuGwjQmztH10JjT8ULM-szrWWTKe7U,25024
12
+ pythonnative/images.py,sha256=JFjBJdZzZoQmAOfQ7QHqi7dYJ75XTs3u2lweQHGbdPc,6466
13
+ pythonnative/layout.py,sha256=Ck_FCLSk0g4hdOzHo0c50cbvLe8Q8caQAxywXgnFhKM,49077
14
+ pythonnative/mutations.py,sha256=whmxO6ENWjm-yYH0QteoCV1Gdw_v-fJrhicMQJ5A0rk,3827
15
+ pythonnative/navigation.py,sha256=4U57lHqiJJbqRJdTdvveRHKJ58BJhrwvkDOSoFt02I8,35566
16
+ pythonnative/net.py,sha256=8D7EyEC8-JkYxlrtVfTDApOGzzdcA4P4kaCdYBBZI8E,8082
17
+ pythonnative/platform.py,sha256=WtjxR04CqVhSnjJu-3upk8bwXYaSWr2N0MOVoNov-h0,4994
18
+ pythonnative/platform_metrics.py,sha256=1r1kMbgS9LcVTbdpP5qRD4oHEvw70te5BXEyd_16Ihc,8961
19
+ pythonnative/preview.py,sha256=bzwW_LgdnCFx8lCBiqlEjwMUa1ggFLYPWmHoMWqyKtg,18041
20
+ pythonnative/reconciler.py,sha256=QFIFG3KjgoPas8LVDHRWouWEEtunegPz-jl6i5Hwno8,57082
21
+ pythonnative/runtime.py,sha256=Ij3xxr_RyWESX7jP7b-RpsYjqjsJi1OpoV3WL3WTBWU,18245
22
+ pythonnative/screen.py,sha256=AtoQP37HIWrIReecAvQXWHVx9MfW8tTO6AaBWlvroZI,68876
23
+ pythonnative/storage.py,sha256=pp2mqlAy7wPr8vNwtcmalxc2658lD6z7PU4ilbnxAwE,12001
24
+ pythonnative/style.py,sha256=kB3tkxJ7LfRr52fodbA2n_OpvSeQAtgMhIVC6oMQISw,17290
23
25
  pythonnative/utils.py,sha256=-hwe_YS19ebpjeygdl3dGeVsYzO4G74rYD53svSi0rI,7593
26
+ pythonnative/virtual_rows.py,sha256=4YK3CeZobW-6F6GCXzGNFfmOaAiigmH4HXtqjYDRbyU,5056
24
27
  pythonnative/cli/__init__.py,sha256=NM1psvKe8jT0vzp8Ak4MMoygZz4P_msk5g-YEsY8xLk,232
25
- pythonnative/cli/pn.py,sha256=dkFEQDV167j6s-AEsFHorjgaQ6XOW2y-yzz1SyBpE2E,28194
28
+ pythonnative/cli/pn.py,sha256=a0DXYHvcDZtfsmC91mIKgCFTO1Y8T-kkS68RH8_7kaY,28191
26
29
  pythonnative/native_modules/__init__.py,sha256=pgigpHuzT-rqwcjlwJvu93_4L8Nozal1HJid0S_JlmM,2636
27
30
  pythonnative/native_modules/app_state.py,sha256=EnfChi_YWEgUpZosUiBQh0CmblBZFw8ZGaW1NKIJ4WM,2666
28
31
  pythonnative/native_modules/battery.py,sha256=gOU9aN5fCmWfHgTXPD-BgvatdQnyUjfVfsJM7PQ_ARA,4317
29
32
  pythonnative/native_modules/biometrics.py,sha256=9Xy34tqot4H3m6AYUyPHBFxPeFPg1ZATVxWiGQIAnsA,4917
30
- pythonnative/native_modules/camera.py,sha256=fhYH-kGtxU_3uN4rNwKyqkJtY2BuaS_GLl5RjD4-V7g,11228
33
+ pythonnative/native_modules/camera.py,sha256=y-t8rAvwpJV7Qk460vWYrmpD2jsHPOVhxKEOMXEVAdo,11225
31
34
  pythonnative/native_modules/clipboard.py,sha256=LZFtZ3GSd0TbJ68i-zOQCnRBW-GnewbCNmXgWAggApc,3674
32
35
  pythonnative/native_modules/file_system.py,sha256=hl-52B6cirOzY6IDDxCjgSGlteiFgyWneiDmwRR4er0,7541
33
- pythonnative/native_modules/haptics.py,sha256=21TtplAjR9BX-Zee2f-FuBk5FzuazxBQ0HNpzy4wEdM,5682
36
+ pythonnative/native_modules/haptics.py,sha256=YklgquXUFyQS2a6AizflJj-dM2LHyS86RdwLySFusWw,5676
34
37
  pythonnative/native_modules/linking.py,sha256=dny2geVaO975JYxoc7DD_PvGs2FyZ1QvZ7JySxbv5dY,5044
35
- pythonnative/native_modules/location.py,sha256=iWfxNtnaC79rl_IP0foHBm2SeX9CgfpHxZ8oPNTBQjA,7609
38
+ pythonnative/native_modules/location.py,sha256=K_zXUP6XWqJt3qqUMkop_TdMn-yOQB_2TZ18eEQ9Rdc,7606
36
39
  pythonnative/native_modules/net_info.py,sha256=QGoi4xZqk9IMyKR9m-delWNRDjEgYRDmxK4lGhZpLoE,5104
37
40
  pythonnative/native_modules/notifications.py,sha256=WVtzdimc_aGfnxU6syCFPkjHF9YRRc97UVK3--TBwoU,7115
38
- pythonnative/native_modules/permissions.py,sha256=adRiO_LGxZ1PSJaCoJx_3nheuh9lLWNrPIb47O_A6-Y,6710
39
- pythonnative/native_modules/secure_store.py,sha256=YC25T2n2Nkfgks_qrCM1CR232AeSkh1_78NOJEBQ800,5956
41
+ pythonnative/native_modules/permissions.py,sha256=ABIWiCuLIiZJmfA-B7dnw56_Iz7ApGzdtLAs6X694QU,6704
42
+ pythonnative/native_modules/secure_store.py,sha256=PsnUwHzUPt-CzCAwM6BhidOBi9yofRD2uNtQIqAGofU,5953
40
43
  pythonnative/native_modules/share.py,sha256=B9ovknmnjeQvGQ8MQ14Hmq6E1x-JA469APMburJ0KUg,4727
41
- pythonnative/native_views/__init__.py,sha256=8RK0o8pixuqyHhiT5HMWDiya2vHBRJhntjjXzB2HB-U,15638
42
- pythonnative/native_views/android.py,sha256=nYcgl5PWx68N5yBIomgkU649BPfw8l6MBMOrVEeZsLI,109856
43
- pythonnative/native_views/base.py,sha256=FmbV9WzS_9PPOnGb0VTExdukfxXrmDQ1VbBIKjL4NpU,9677
44
- pythonnative/native_views/desktop.py,sha256=66uVoj7GgRiWdJCgZMBmk_wSnHNfUux5WGjLp3Qbahc,57134
45
- pythonnative/native_views/ios.py,sha256=0aIH4vldnO-_u6Ldh_g21bB5h6b72YJaUGYDG5fth-o,141570
44
+ pythonnative/native_views/__init__.py,sha256=93v7pt0_7f8BWqOiwSvlq20F1oJLfCnmQBvLlCDA-Xk,15340
45
+ pythonnative/native_views/android.py,sha256=2pgsv569rC2eWdHGoIrr1kmI-qB4ZklrMV2G9AO6OpQ,130838
46
+ pythonnative/native_views/base.py,sha256=NFDlEIoKCINzcVkf2uobT9TgujPb1RClLS3TzwH72MY,9668
47
+ pythonnative/native_views/desktop.py,sha256=GnZEchJLUcH74jG_21CCzjdYcEmm-5etUX2D0-_WNtQ,59735
48
+ pythonnative/native_views/ios.py,sha256=fgskhuENQO-aiw527xOrveeRClX8uFt5UdqKSCsBT_8,169080
46
49
  pythonnative/project/__init__.py,sha256=kAhWLONs53H1L7xVtczLmzYcQSOOkdRZTAJnIMhpBts,2064
47
50
  pythonnative/project/android.py,sha256=SX0uu4-tz4WdYAf9sbycQPSmoQ8fbtAADeUWk9G8ybM,19127
48
- pythonnative/project/builder.py,sha256=ZubKkKy8NpdkCMypiRFAxDrvL2pgrFxF4TYBdp-ecnk,19098
49
- pythonnative/project/config.py,sha256=BvBkeY0GB7PNRHnLzIoOGD3Fop-Fh248d_zoggm1WQc,24221
50
- pythonnative/project/doctor.py,sha256=4z-IhalZ-SoSshgJHX7lEsDIrIlVeaOgR0CmiuDuJyk,7949
51
- pythonnative/project/icons.py,sha256=edoi8RyztkoNJ_FIhkw6POGP2CIHA5Qg0AxLH3jiCGM,7948
52
- pythonnative/project/ios.py,sha256=6-hCA6QT9sOXUSuAZryokS6HYGmOucn6qkxW_dNQFz8,14007
53
- pythonnative/project/permissions.py,sha256=v4wGnfWMwnJ6U13KPKg9R9nq8Q4cDIIYFQ5QIVpMIXc,13236
54
- pythonnative/project/runtime_assets.py,sha256=xX46O3-XKNlkOqEmWVudq55EsTtCUSXklHHX0G1wonQ,10168
51
+ pythonnative/project/builder.py,sha256=DokY-YidsDeWYgaixrpD3Kzp7_XudibltI8X_WdBIcE,19096
52
+ pythonnative/project/config.py,sha256=jH9_MnE5kmKGe3yA4tfPHic5LlKcWys58jxOmUSJTd4,23839
53
+ pythonnative/project/doctor.py,sha256=ETg-lvEyaNzaxgsDn9f4DBapNKBttMHA-9kwgX-yb3g,7943
54
+ pythonnative/project/icons.py,sha256=GaXpktQ9v4v2JZPM3ppueNPmwjTuFiLanHJDaZbLGuo,7945
55
+ pythonnative/project/ios.py,sha256=DHQs_Wf_uJ9eoI3gqGmcjFuF2shwMwa8mLKGtuTDffw,14004
56
+ pythonnative/project/permissions.py,sha256=-HwhSDtibiNKVo7hUueSwqZZC2t04htuFvErOaq0XoU,13230
57
+ pythonnative/project/runtime_assets.py,sha256=ZfROvVKb0GTR3zGcfrW8-MTd4Oz2UEaEA8sHUEzo7Kw,10159
55
58
  pythonnative/sdk/__init__.py,sha256=btIRfW2yy2d2LzjdpFnlc6ym-G3iJj9sVUbb2IlFMOI,3384
56
- pythonnative/sdk/_components.py,sha256=nhV1WytgcVRI6GlS4WRgNSTQLSJpYs5lARju-Ry8PV0,14654
59
+ pythonnative/sdk/_components.py,sha256=b8cvaqqNE7QGz0FTzZbpIzlewZCKJfEP_4AI9gmF8pg,14651
57
60
  pythonnative/templates/android_template/build.gradle,sha256=4gE6CRS6RuBu9kp-_e_uYYU9mBgHVZrqQg9caSxgyuc,352
58
61
  pythonnative/templates/android_template/gradle.properties,sha256=REPaKLRfQiiVfIV8wYmgwzPWvF1f3bhh_kAMV9p4HME,1358
59
62
  pythonnative/templates/android_template/gradlew,sha256=YxNShxF6Hm0SyEWA8fScYdG6AiGOzShmBgXpf5dufWU,5766
@@ -62,9 +65,12 @@ pythonnative/templates/android_template/settings.gradle,sha256=GKZiYUYWsaXxaiKOB
62
65
  pythonnative/templates/android_template/app/build.gradle,sha256=zHYbYXjKUiW-ZSYXT2GfveyVnjOCNLXvXpPxI76O5t4,1864
63
66
  pythonnative/templates/android_template/app/proguard-rules.pro,sha256=Vv2WDPIl9spA-YKxOl27DYvD394T_3ZCKCXGBw0KGJA,750
64
67
  pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt,sha256=Am8Yla3i1eR_ac5FVgPU_RsuMrCbyT79h1BcajGE-zI,693
65
- pythonnative/templates/android_template/app/src/main/AndroidManifest.xml,sha256=MdWrXxOrwUjnqtDbV952NI4nVF2dTUX9xwSS8chhd9I,940
68
+ pythonnative/templates/android_template/app/src/main/AndroidManifest.xml,sha256=eprO6TQuZN0UEVsMcg2oXDaPUuVuYJWMg3GScNsfC8k,995
66
69
  pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt,sha256=1dSBEX-AB2aUPxFFDnWwcmVHRi00T-iwbXi4yt4RQk8,1481
67
70
  pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/Navigator.kt,sha256=mDfzKTTXRP-zbSnfIPxAYyjtr9_IyyQwXM-dovcfVbg,1723
71
+ pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNAccessibilityDelegate.kt,sha256=R2PC6BA3VCaKET0XV33tXTFf4Ht9udvvLu9TT_RfWp4,1819
72
+ pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNBorderDrawable.kt,sha256=ejdFhpzn0-2TZa0nvG41r2m0xoejU2fXXuJSmO6tnBU,2205
73
+ pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/PNVirtualListView.java,sha256=1ve74nvOFqsduyaLOGPb8Sd9Jrwz-sELRB9y1NMN1AI,6072
68
74
  pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt,sha256=lSxWYH6cGDpGalo0kDzTAT5H3NuhJVLT7BQYcfCydOc,5138
69
75
  pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml,sha256=7UI8c6b0Ck0pCfCQHmBSezqAfNWeG1WTvKrhgIscYyE,5606
70
76
  pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml,sha256=AdGmpsEjTrf-Jw0JfrKD1yucla5RGIhvG2VzqtKA8fc,1702
@@ -100,14 +106,14 @@ pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.col
100
106
  pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json,sha256=VUwGr7K_geOvQjFh5VKB6iVXV1mi0tjGMinUmB2JvQs,177
101
107
  pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard,sha256=HJWMXGXzJJWbBcAvFwAE8_Wq0p6coMJUV2fv1baxVhY,1665
102
108
  pythonnative/templates/ios_template/ios_template/Base.lproj/Main.storyboard,sha256=lI9KBZGkZ9MsIc3xjxXwHUC83jHE__tMsTuATmtQtRE,1604
103
- pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj,sha256=WBhdB97aEI8HXujuSnlAD6f5eKpSxY6h9AYLXlsVPPw,25583
109
+ pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj,sha256=oJI7k4IA0xPfky4-Sz45dSUkmJKQ9XHET5pNEfkfowk,25604
104
110
  pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist,sha256=36D5u4W5XMupxoEa2t-MtAf7XVIIjonbg-vDCOxEhUI,238
105
111
  pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift,sha256=YnwzZx7yXB13xKAXEGNgz17VuhWeqkHTRTtBJ2Vu3_E,1238
106
- pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift,sha256=l2Pwa50F_rv-qPu2go6e4bQernM6PTQJeNPFl_c4ivY,1387
112
+ pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift,sha256=HLRr3cmouRqQeXG13WrZ2XSAmgMgCsNXfZpbwkxeFcs,1385
107
113
  pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift,sha256=f5JrG0uVtLMeJQy26Yyz7Om-JUkT220osqcbeIVkj2g,815
108
- pythonnative-0.22.0.dist-info/licenses/LICENSE,sha256=A69iG7TIAe6KkGQf6xoVHkc5JSZtOr5eRSvC5iuivnI,1067
109
- pythonnative-0.22.0.dist-info/METADATA,sha256=UO33N8eFODdiQVv5nNmozkMeGC0okaFlkSiuvdBpNOw,10408
110
- pythonnative-0.22.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
111
- pythonnative-0.22.0.dist-info/entry_points.txt,sha256=iUtDawWSAJAEyWTycpZxDuYz73ol31butpzDIEAgPO0,48
112
- pythonnative-0.22.0.dist-info/top_level.txt,sha256=kT4SEATY2ywzrZ2Pgea6_zxyym44Q_PbOsUoOYjJLFE,13
113
- pythonnative-0.22.0.dist-info/RECORD,,
114
+ pythonnative-0.23.0.dist-info/licenses/LICENSE,sha256=A69iG7TIAe6KkGQf6xoVHkc5JSZtOr5eRSvC5iuivnI,1067
115
+ pythonnative-0.23.0.dist-info/METADATA,sha256=t0952y_u74dbBtuyPdG1VHdQO3E8M8Iqi_EAxtmPGH4,10347
116
+ pythonnative-0.23.0.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
117
+ pythonnative-0.23.0.dist-info/entry_points.txt,sha256=iUtDawWSAJAEyWTycpZxDuYz73ol31butpzDIEAgPO0,48
118
+ pythonnative-0.23.0.dist-info/top_level.txt,sha256=kT4SEATY2ywzrZ2Pgea6_zxyym44Q_PbOsUoOYjJLFE,13
119
+ pythonnative-0.23.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (82.0.1)
2
+ Generator: setuptools (83.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5