flet 0.18.0.dev2027__tar.gz → 0.18.0.dev2033__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.
Files changed (59) hide show
  1. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/PKG-INFO +2 -2
  2. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/pyproject.toml +2 -2
  3. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/build.py +45 -23
  4. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/flutter_service_worker.js +2 -2
  5. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/index.html +1 -1
  6. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/README.md +0 -0
  7. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__init__.py +0 -0
  8. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/__init__.py +0 -0
  9. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/config.py +0 -0
  10. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/hook-flet.py +0 -0
  11. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/macos_utils.py +0 -0
  12. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py +0 -0
  13. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/rthooks.dat +0 -0
  14. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/utils.py +0 -0
  15. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/__pyinstaller/win_utils.py +0 -0
  16. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/async_websocket_connection.py +0 -0
  17. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/auth/__init__.py +0 -0
  18. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/auth/providers/__init__.py +0 -0
  19. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/canvas/__init__.py +0 -0
  20. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/cli.py +0 -0
  21. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/base.py +0 -0
  22. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/create.py +0 -0
  23. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/options.py +0 -0
  24. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/pack.py +0 -0
  25. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/publish.py +0 -0
  26. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/cli/commands/run.py +0 -0
  27. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/constants.py +0 -0
  28. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/matplotlib_chart.py +0 -0
  29. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/plotly_chart.py +0 -0
  30. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/reconnecting_websocket.py +0 -0
  31. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/security.py +0 -0
  32. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/sync_websocket_connection.py +0 -0
  33. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/utils/__init__.py +0 -0
  34. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/version.py +0 -0
  35. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/.last_build_id +0 -0
  36. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/AssetManifest.bin +0 -0
  37. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/AssetManifest.bin.json +0 -0
  38. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/AssetManifest.json +0 -0
  39. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/FontManifest.json +0 -0
  40. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/NOTICES +0 -0
  41. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/fonts/MaterialIcons-Regular.otf +0 -0
  42. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/packages/window_manager/images/ic_chrome_close.png +0 -0
  43. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/packages/window_manager/images/ic_chrome_maximize.png +0 -0
  44. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/packages/window_manager/images/ic_chrome_minimize.png +0 -0
  45. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/packages/window_manager/images/ic_chrome_unmaximize.png +0 -0
  46. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/assets/shaders/ink_sparkle.frag +0 -0
  47. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/favicon.png +0 -0
  48. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/flutter.js +0 -0
  49. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/icons/apple-touch-icon-192.png +0 -0
  50. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/icons/icon-192.png +0 -0
  51. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/icons/icon-512.png +0 -0
  52. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/icons/icon-maskable-192.png +0 -0
  53. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/icons/icon-maskable-512.png +0 -0
  54. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/icons/loading-animation.png +0 -0
  55. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/main.dart.js +0 -0
  56. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/manifest.json +0 -0
  57. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/python-worker.js +0 -0
  58. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/python.js +0 -0
  59. {flet-0.18.0.dev2027 → flet-0.18.0.dev2033}/src/flet/web/version.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flet
3
- Version: 0.18.0.dev2027
3
+ Version: 0.18.0.dev2033
4
4
  Summary: Flet for Python - easily build interactive multi-platform apps in Python
5
5
  License: Apache-2.0
6
6
  Author: Appveyor Systems Inc.
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Requires-Dist: cookiecutter (>=2.4.0,<3.0.0)
18
- Requires-Dist: flet-runtime (==0.18.0.dev2027)
18
+ Requires-Dist: flet-runtime (==0.18.0.dev2033)
19
19
  Requires-Dist: packaging (>=23.1,<24.0)
20
20
  Requires-Dist: qrcode (>=7.4.2,<8.0.0)
21
21
  Requires-Dist: typing-extensions (>=4.6.2,<5.0.0) ; python_version < "3.8"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "flet"
3
- version = "0.18.0.dev2027"
3
+ version = "0.18.0.dev2033"
4
4
  description = "Flet for Python - easily build interactive multi-platform apps in Python"
5
5
  authors = ["Appveyor Systems Inc. <hello@flet.dev>"]
6
6
  license = "Apache-2.0"
@@ -16,7 +16,7 @@ repository = "https://github.com/flet-dev/flet"
16
16
  documentation = "https://flet.dev/docs"
17
17
 
18
18
  [tool.poetry.dependencies]
19
- flet-runtime = "0.18.0.dev2027"
19
+ flet-runtime = "0.18.0.dev2033"
20
20
  python = "^3.7"
21
21
  typing-extensions = { version = "^4.6.2", python = "<3.8" }
22
22
  websocket-client = "^1.5.2"
@@ -13,9 +13,12 @@ from pathlib import Path
13
13
  import yaml
14
14
  from flet.cli.commands.base import BaseCommand
15
15
  from flet_core.utils import random_string, slugify
16
- from flet_runtime.utils import copy_tree
16
+ from flet_runtime.utils import copy_tree, is_windows
17
17
  from rich import print
18
18
 
19
+ if is_windows():
20
+ from ctypes import windll
21
+
19
22
  PYODIDE_ROOT_URL = "https://cdn.jsdelivr.net/pyodide/v0.24.1/full"
20
23
 
21
24
 
@@ -225,6 +228,7 @@ class Command(BaseCommand):
225
228
  parser.add_argument(
226
229
  "--module-name",
227
230
  dest="module_name",
231
+ default="main",
228
232
  help="python module name with an app entry point",
229
233
  )
230
234
  parser.add_argument(
@@ -266,6 +270,19 @@ class Command(BaseCommand):
266
270
  self.verbose = options.verbose
267
271
 
268
272
  python_app_path = Path(options.python_app_path).resolve()
273
+ if not os.path.exists(python_app_path) or not os.path.isdir(python_app_path):
274
+ print(
275
+ f"Path to Flet app does not exist or is not a directory: {python_app_path}"
276
+ )
277
+ sys.exit(1)
278
+
279
+ python_module_name = Path(options.module_name).stem
280
+ python_module_filename = f"{python_module_name}.py"
281
+ if not os.path.exists(os.path.join(python_app_path, python_module_filename)):
282
+ print(
283
+ f"{python_module_filename} not found in the root of Flet app directory. Use --module-name option to specify an entry point for your Flet app."
284
+ )
285
+ sys.exit(1)
269
286
 
270
287
  self.flutter_dir = Path(tempfile.gettempdir()).joinpath(
271
288
  f"flet_flutter_build_{random_string(10)}"
@@ -298,8 +315,7 @@ class Command(BaseCommand):
298
315
  template_data["description"] = options.description
299
316
 
300
317
  template_data["sep"] = os.sep
301
- if options.module_name:
302
- template_data["python_module_name"] = Path(options.module_name).stem
318
+ template_data["python_module_name"] = python_module_name
303
319
  if options.product_name:
304
320
  template_data["product_name"] = options.product_name
305
321
  if options.org_name:
@@ -496,11 +512,8 @@ class Command(BaseCommand):
496
512
 
497
513
  # generate icons
498
514
  print("Generating app icons...", end="")
499
- icons_result = subprocess.run(
500
- [dart_exe, "run", "flutter_launcher_icons"],
501
- cwd=str(self.flutter_dir),
502
- capture_output=self.verbose < 2,
503
- text=True,
515
+ icons_result = self.run(
516
+ [dart_exe, "run", "flutter_launcher_icons"], cwd=str(self.flutter_dir)
504
517
  )
505
518
  if icons_result.returncode != 0:
506
519
  if icons_result.stdout:
@@ -514,11 +527,9 @@ class Command(BaseCommand):
514
527
  # generate splash
515
528
  if target_platform in ["web", "ipa", "apk", "aab"]:
516
529
  print("Generating splash screens...", end="")
517
- splash_result = subprocess.run(
530
+ splash_result = self.run(
518
531
  [dart_exe, "run", "flutter_native_splash:create"],
519
532
  cwd=str(self.flutter_dir),
520
- capture_output=self.verbose < 2,
521
- text=True,
522
533
  )
523
534
  if splash_result.returncode != 0:
524
535
  if splash_result.stdout:
@@ -573,12 +584,7 @@ class Command(BaseCommand):
573
584
  ]
574
585
  )
575
586
 
576
- package_result = subprocess.run(
577
- package_args,
578
- cwd=str(self.flutter_dir),
579
- capture_output=self.verbose < 2,
580
- text=True,
581
- )
587
+ package_result = self.run(package_args, cwd=str(self.flutter_dir))
582
588
 
583
589
  if package_result.returncode != 0:
584
590
  if package_result.stdout:
@@ -616,12 +622,7 @@ class Command(BaseCommand):
616
622
  if self.verbose > 0:
617
623
  print(build_args)
618
624
 
619
- build_result = subprocess.run(
620
- build_args,
621
- cwd=str(self.flutter_dir),
622
- capture_output=self.verbose < 2,
623
- text=True,
624
- )
625
+ build_result = self.run(build_args, cwd=str(self.flutter_dir))
625
626
 
626
627
  if build_result.returncode != 0:
627
628
  if build_result.stdout:
@@ -690,6 +691,27 @@ class Command(BaseCommand):
690
691
  return Path(images[0]).name
691
692
  return None
692
693
 
694
+ def run(self, args, cwd):
695
+ if is_windows():
696
+ # Source: https://stackoverflow.com/a/77374899/1435891
697
+ # Save the current console output code page and switch to 65001 (UTF-8)
698
+ previousCp = windll.kernel32.GetConsoleOutputCP()
699
+ windll.kernel32.SetConsoleOutputCP(65001)
700
+
701
+ r = subprocess.run(
702
+ args,
703
+ cwd=cwd,
704
+ capture_output=self.verbose < 2,
705
+ text=True,
706
+ encoding="utf8",
707
+ )
708
+
709
+ if is_windows():
710
+ # Restore the previous output console code page.
711
+ windll.kernel32.SetConsoleOutputCP(previousCp)
712
+
713
+ return r
714
+
693
715
  def cleanup(self, exit_code: int):
694
716
  if self.verbose > 0:
695
717
  print(f"Deleting Flutter bootstrap directory {self.flutter_dir}")
@@ -34,8 +34,8 @@ const RESOURCES = {"assets/AssetManifest.json": "d9150da08bcab79647bb00a0700488d
34
34
  "canvaskit/chromium/canvaskit.wasm": "143af6ff368f9cd21c863bfa4274c406",
35
35
  "canvaskit/chromium/canvaskit.js": "0ae8bbcc58155679458a0f7a00f66873",
36
36
  "python-worker.js": "62a4865b3d41771b39660076485879be",
37
- "index.html": "5dd483512901378a327e045da6a81ae9",
38
- "/": "5dd483512901378a327e045da6a81ae9"};
37
+ "index.html": "06e37e6ca5308718c7e99ea3958e60da",
38
+ "/": "06e37e6ca5308718c7e99ea3958e60da"};
39
39
  // The application shell files that are downloaded before a service worker can
40
40
  // start.
41
41
  const CORE = ["main.dart.js",
@@ -37,7 +37,7 @@
37
37
 
38
38
  <script>
39
39
  // The value below is injected by flutter build, do not touch.
40
- const serviceWorkerVersion = "960326224";
40
+ const serviceWorkerVersion = "175733893";
41
41
  </script>
42
42
  <!-- This script adds the flutter initialization JS code -->
43
43
  <script src="flutter.js" defer></script>
File without changes