MCPcopy
hub / github.com/flet-dev/flet / run_async

Function run_async

sdk/python/packages/flet/src/flet/app.py:142–313  ·  view source on GitHub ↗

Asynchronously run a Flet app using socket or web server transport. Args: main: Application entry point. Handler (function or coroutine) must have 1 parameter of instance :class:`~flet.Page`. before_main: Called after `Page` is created but before `main`.

(
    main: AppCallable,
    before_main: Optional[AppCallable] = None,
    name: str = "",
    host: Optional[str] = None,
    port: int = 0,
    view: Optional[AppView] = AppView.FLET_APP,
    assets_dir: Optional[str] = "assets",
    upload_dir: Optional[str] = None,
    web_renderer: WebRenderer = WebRenderer.AUTO,
    route_url_strategy: RouteUrlStrategy = RouteUrlStrategy.PATH,
    no_cdn: Optional[bool] = False,
    target=None,
)

Source from the content-addressed store, hash-verified

140
141
142async def run_async(
143 main: AppCallable,
144 before_main: Optional[AppCallable] = None,
145 name: str = "",
146 host: Optional[str] = None,
147 port: int = 0,
148 view: Optional[AppView] = AppView.FLET_APP,
149 assets_dir: Optional[str] = "assets",
150 upload_dir: Optional[str] = None,
151 web_renderer: WebRenderer = WebRenderer.AUTO,
152 route_url_strategy: RouteUrlStrategy = RouteUrlStrategy.PATH,
153 no_cdn: Optional[bool] = False,
154 target=None,
155):
156 """
157 Asynchronously run a Flet app using socket or web server transport.
158
159 Args:
160 main: Application entry point. Handler (function or coroutine) must
161 have 1 parameter of instance :class:`~flet.Page`.
162 before_main: Called after `Page` is created but before `main`.
163 name: Page/app name used in web URL path when applicable.
164 host: Host/IP to bind the web server to.
165 port: TCP port to bind. If `0`, default/free port is selected.
166 view: Preferred app presentation mode.
167 assets_dir: Path to app assets directory.
168 upload_dir: Path to upload directory.
169 web_renderer: Web renderer type for web-hosted mode.
170 route_url_strategy: Route URL strategy (`path` or `hash`).
171 no_cdn: Whether to avoid loading CanvasKit, Pyodide, and fonts from CDN.
172 target: Deprecated alias for `main`.
173 """
174
175 if is_pyodide():
176 __run_pyodide(main=main or target, before_main=before_main)
177 return
178
179 if isinstance(view, str):
180 view = AppView(view)
181
182 if isinstance(web_renderer, str):
183 web_renderer = WebRenderer(web_renderer)
184
185 if isinstance(route_url_strategy, str):
186 route_url_strategy = RouteUrlStrategy(route_url_strategy)
187
188 force_web_server = get_bool_env_var("FLET_FORCE_WEB_SERVER") or is_linux_server()
189 if force_web_server:
190 view = AppView.WEB_BROWSER
191
192 env_port = os.getenv("FLET_SERVER_PORT")
193 if env_port is not None and env_port:
194 port = int(env_port)
195
196 if port == 0 and force_web_server:
197 port = 8000
198
199 env_host = os.getenv("FLET_SERVER_IP")

Callers 2

app_asyncFunction · 0.85
runFunction · 0.85

Calls 15

is_pyodideFunction · 0.90
AppViewClass · 0.90
WebRendererClass · 0.90
RouteUrlStrategyClass · 0.90
get_bool_env_varFunction · 0.90
is_linux_serverFunction · 0.90
is_embeddedFunction · 0.90
open_flet_view_asyncFunction · 0.90
close_flet_viewFunction · 0.90
__run_pyodideFunction · 0.85
__get_assets_dir_pathFunction · 0.85

Tested by

no test coverage detected