FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

"""PythonNative: declarative native UI for Android and iOS. PythonNative is a cross-platform toolkit that turns Python ``@component`` functions into real, native Android and iOS views. The component model is React-like (function components plus hooks). Python owns the logical component tree and reconciliation on a dedicated asyncio application thread. Versioned commits cross into Swift ``PythonNativeKit`` on iOS and the Kotlin ``pythonnative`` module on Android. Those renderers own widgets, Yoga layout, measurement, gestures, and animation frames on the platform UI thread. The browser preview uses DOM widgets and Yoga WebAssembly. Key building blocks: - **Element factories** ([`Text`][pythonnative.Text], [`Button`][pythonnative.Button], [`Column`][pythonnative.Column], etc.) return immutable [`Element`][pythonnative.Element] descriptors. - **Hooks** ([`use_state`][pythonnative.use_state], [`use_effect`][pythonnative.use_effect], [`use_reducer`][pythonnative.use_reducer], etc.) manage state, side effects, and context inside `@component` functions. - **Navigation** is built from [`NavigationContainer`][pythonnative.NavigationContainer] plus one of the [`create_stack_navigator`][pythonnative.create_stack_navigator], [`create_tab_navigator`][pythonnative.create_tab_navigator], or [`create_drawer_navigator`][pythonnative.create_drawer_navigator] factories. - **Styling** uses a single ``style`` dict per element (or a list of dicts), composable via [`StyleSheet`][pythonnative.StyleSheet]. PythonNative ships a fully-typed [`Style`][pythonnative.style.Style] TypedDict so editors and ``mypy`` validate every key as you type. - **Animations** use the ``Animated`` namespace. Serialized graphs connect values, arithmetic, interpolation, and style bindings. Native timing, spring, decay, scroll, and gesture drivers update supported bindings without Python work on every frame. - **Gestures** attach to any view via the ``gestures=`` prop using descriptors from ``pythonnative.gestures`` ([`Tap`][pythonnative.gestures.Tap], [`LongPress`][pythonnative.gestures.LongPress], [`Pan`][pythonnative.gestures.Pan], [`Swipe`][pythonnative.gestures.Swipe], [`Pinch`][pythonnative.gestures.Pinch], [`Rotation`][pythonnative.gestures.Rotation]). - **Custom native components** can be authored with the ``pythonnative.sdk`` package: define a typed [`Props`][pythonnative.sdk.Props] dataclass, implement a [`ViewHandler`][pythonnative.native_views.base.ViewHandler] for each platform, and register it via [`@native_component`][pythonnative.sdk.native_component] (or expose it from a PyPI package via the ``pythonnative.handlers`` entry-point group). Example: ```python import pythonnative as pn @pn.component def App(): count, set_count = pn.use_state(0) return pn.Column( pn.Text(f"Count: {count}", style=pn.style(font_size=24)), pn.Button("+", on_press=lambda: set_count(count + 1)), style=pn.style(spacing=12), ) ``` """ __version__ = "0.43.1" from . import appearance, diagnostics, gestures, runtime, sdk from .alerts import Alert from .animated import Animated, AnimatedValue, use_animated_value from .component import Component, component, memo from .components import ( ActivityIndicator, Button, Checkbox, Column, DatePicker, ErrorBoundary, FlatList, Fragment, Image, ImageBackground, KeyboardAvoidingView, ListController, Modal, Picker, Portal, Pressable, ProgressBar, RefreshControl, Row, SafeAreaView, ScrollView, SectionList, SegmentedControl, Slider, Spacer, StatusBar, Suspense, Switch, Text, TextInput, TouchableOpacity, View, WebView, ) from .diagnostics import HookOrderError from .element import Element from .hooks import ( Context, MutationCall, MutationState, QueryResult, Ref, create_context, use_back_handler, use_callback, use_color_scheme, use_context, use_deferred_value, use_effect, use_imperative_handle, use_keyboard_height, use_layout_effect, use_memo, use_mutation, use_query, use_reducer, use_ref, use_resource, use_safe_area_insets, use_state, use_subscription, use_transition, use_window_dimensions, ) from .hosts import create_screen from .native_modules import ( AppState, Battery, Biometrics, Camera, Clipboard, FileSystem, Haptics, Linking, Location, NetInfo, Notifications, Permissions, SecureStore, Share, Vibration, use_app_state, use_net_info, ) from .navigation import ( LinkingConfig, Navigation, NavigationContainer, NavigationState, Route, ScreenOptions, create_drawer_navigator, create_stack_navigator, create_tab_navigator, use_focus_effect, use_is_focused, use_navigation, use_route, ) from .net import HTTPError, Response, fetch from .platform import Platform, get_platform from .runtime import run_async, run_blocking from .scheduler import batch_updates from .sdk import ( Props, ViewHandler, element_factory, native_component, register_component, ) from .storage import AsyncStorage, use_persisted_state from .style import ( DEFAULT_DARK_THEME, DEFAULT_LIGHT_THEME, AccessibilityState, AlignContent, AlignItems, AlignSelf, AutoCapitalize, Color, Dimension, Display, EdgeInsets, FlexDirection, FlexWrap, FontWeight, JustifyContent, KeyboardType, LayoutDirection, Overflow, PointerEvents, Position, ReturnKeyType, ScaleType, ShadowOffset, Style, StyleProp, StyleSheet, TextAlign, TextDecoration, TextTransform, Theme, ThemeContext, TransformSpec, default_theme, resolve_style, style, use_theme, ) from .suspense import Resource, lazy, start_resource __all__ = [ # Components "ActivityIndicator", "Button", "Checkbox", "Column", "DatePicker", "ErrorBoundary", "FlatList", "Fragment", "Image", "ImageBackground", "KeyboardAvoidingView", "ListController", "Modal", "Picker", "Portal", "Pressable", "ProgressBar", "RefreshControl", "Row", "SafeAreaView", "ScrollView", "SectionList", "SegmentedControl", "Slider", "Spacer", "StatusBar", "Suspense", "Switch", "Text", "TextInput", "TouchableOpacity", "View", "WebView", # Core "Component", "Element", "component", "create_screen", "memo", # Hooks "Context", "MutationCall", "MutationState", "QueryResult", "Ref", "batch_updates", "create_context", "use_back_handler", "use_callback", "use_color_scheme", "use_context", "use_deferred_value", "use_effect", "use_imperative_handle", "use_keyboard_height", "use_layout_effect", "use_memo", "use_mutation", "use_persisted_state", "use_query", "use_reducer", "use_ref", "use_resource", "use_safe_area_insets", "use_state", "use_subscription", "use_transition", "use_window_dimensions", # Suspense and async rendering "Resource", "lazy", "start_resource", # Navigation "LinkingConfig", "Navigation", "NavigationContainer", "NavigationState", "Route", "ScreenOptions", "create_drawer_navigator", "create_stack_navigator", "create_tab_navigator", "use_focus_effect", "use_is_focused", "use_navigation", "use_route", # Styling - typed primitives "AccessibilityState", "AlignContent", "AlignItems", "AlignSelf", "AutoCapitalize", "Color", "DEFAULT_DARK_THEME", "DEFAULT_LIGHT_THEME", "Dimension", "Display", "EdgeInsets", "FlexDirection", "FlexWrap", "FontWeight", "JustifyContent", "KeyboardType", "LayoutDirection", "Overflow", "PointerEvents", "Position", "ReturnKeyType", "ScaleType", "ShadowOffset", "Style", "StyleProp", "StyleSheet", "TextAlign", "TextDecoration", "TextTransform", "Theme", "ThemeContext", "TransformSpec", "default_theme", "resolve_style", "style", "use_theme", # Appearance "appearance", # Image pipeline # Animation "Animated", "AnimatedValue", "use_animated_value", # Gestures "gestures", # Imperative "Alert", # Native modules "AppState", "Battery", "Biometrics", "Camera", "Clipboard", "FileSystem", "Haptics", "Linking", "Location", "NetInfo", "Notifications", "Permissions", "SecureStore", "Share", "Vibration", "use_app_state", "use_net_info", # Networking + persistence "AsyncStorage", "fetch", "HTTPError", "Response", # Runtime "run_async", "run_blocking", "runtime", # Diagnostics "HookOrderError", "diagnostics", # Platform "Platform", "get_platform", # Custom-component SDK "Props", "ViewHandler", "element_factory", "native_component", "register_component", "sdk", ]

Back | FazBrowse Home | New Git URL