From a0f8ffecaa6b07b86cd5c688d2d1323534046421 Mon Sep 17 00:00:00 2001 From: Osama Mohammed Al-zabidi <57198110+omamkaz@users.noreply.github.com> Date: Fri, 3 Jan 2025 00:11:50 +0300 Subject: [PATCH] Update app.py - Added the `assets_dir_path` method to be available for a developer to work with `assets` --- sdk/python/packages/flet/src/flet/app.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/sdk/python/packages/flet/src/flet/app.py b/sdk/python/packages/flet/src/flet/app.py index 810a571f3..14b25e3c2 100644 --- a/sdk/python/packages/flet/src/flet/app.py +++ b/sdk/python/packages/flet/src/flet/app.py @@ -385,3 +385,27 @@ def __get_upload_dir_path(upload_dir: Optional[str], relative_to_cwd=False): .resolve() ) return upload_dir + + +def assets_dir_path( + *files, assets_dir: Optional[str] = "assets", relative_to_cwd: bool = False +) -> str: + if assets_dir: + if not Path(assets_dir).is_absolute(): + if "_MEI" in __file__: + # support for "onefile" PyInstaller + assets_dir = str( + Path(__file__).parent.parent.joinpath(assets_dir).resolve() + ) + else: + assets_dir = str( + Path(os.getcwd() if relative_to_cwd else get_current_script_dir()) + .joinpath(assets_dir) + .resolve() + ) + + env_assets_dir = os.getenv("FLET_ASSETS_DIR") + if env_assets_dir: + assets_dir = env_assets_dir + return os.path.join(assets_dir, *files) +