flet-cli 1.1.0.dev0__tar.gz → 1.1.0.dev1__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 (88) hide show
  1. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/PKG-INFO +3 -3
  2. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/pyproject.toml +3 -3
  3. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/python_versions.py +1 -1
  4. flet_cli-1.1.0.dev1/src/flet_cli/version.py +1 -0
  5. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli.egg-info/PKG-INFO +3 -3
  6. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli.egg-info/requires.txt +2 -2
  7. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_template.py +61 -0
  8. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_run_assets_dir.py +11 -2
  9. flet_cli-1.1.0.dev0/src/flet_cli/version.py +0 -1
  10. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/README.md +0 -0
  11. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/setup.cfg +0 -0
  12. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/__init__.py +0 -0
  13. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/config.py +0 -0
  14. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/hook-flet.py +0 -0
  15. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/macos_utils.py +0 -0
  16. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py +0 -0
  17. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/rthooks.dat +0 -0
  18. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/utils.py +0 -0
  19. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/__pyinstaller/win_utils.py +0 -0
  20. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/cli.py +0 -0
  21. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/base.py +0 -0
  22. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/build.py +0 -0
  23. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/build_base.py +0 -0
  24. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/clean.py +0 -0
  25. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/create.py +0 -0
  26. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/debug.py +0 -0
  27. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/devices.py +0 -0
  28. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/doctor.py +0 -0
  29. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/emulators.py +0 -0
  30. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/flutter_base.py +0 -0
  31. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/mcp.py +0 -0
  32. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/options.py +0 -0
  33. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/pack.py +0 -0
  34. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/publish.py +0 -0
  35. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/run.py +0 -0
  36. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/serve.py +0 -0
  37. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/test.py +0 -0
  38. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/commands/test_host.py +0 -0
  39. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/android.py +0 -0
  40. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/android_sdk.py +0 -0
  41. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/app_excludes.py +0 -0
  42. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/cli.py +0 -0
  43. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/distros.py +0 -0
  44. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/flutter.py +0 -0
  45. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/hash_stamp.py +0 -0
  46. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/ios_sign.py +0 -0
  47. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/jdk.py +0 -0
  48. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/linux_deps.py +0 -0
  49. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/log_format.py +0 -0
  50. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/macos_sign.py +0 -0
  51. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/merge.py +0 -0
  52. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/plist.py +0 -0
  53. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/processes.py +0 -0
  54. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/project_dependencies.py +0 -0
  55. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/pyodide.py +0 -0
  56. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/pyproject_toml.py +0 -0
  57. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli/utils/template_cache.py +0 -0
  58. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli.egg-info/SOURCES.txt +0 -0
  59. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli.egg-info/dependency_links.txt +0 -0
  60. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli.egg-info/entry_points.txt +0 -0
  61. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/src/flet_cli.egg-info/top_level.txt +0 -0
  62. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_app_excludes.py +0 -0
  63. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_app_path.py +0 -0
  64. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_copy_output.py +0 -0
  65. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_icons.py +0 -0
  66. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_ios.py +0 -0
  67. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_linux.py +0 -0
  68. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_list_options.py +0 -0
  69. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_macos_signing.py +0 -0
  70. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_platform_settings.py +0 -0
  71. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_splash.py +0 -0
  72. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_svg.py +0 -0
  73. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_version.py +0 -0
  74. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_build_windows_arm64.py +0 -0
  75. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_clean.py +0 -0
  76. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_cli_pass_through_args.py +0 -0
  77. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_cli_positionals.py +0 -0
  78. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_create.py +0 -0
  79. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_find_platform_image.py +0 -0
  80. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_flutter.py +0 -0
  81. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_log_format.py +0 -0
  82. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_macos_sign.py +0 -0
  83. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_plist.py +0 -0
  84. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_project_dependencies.py +0 -0
  85. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_python_versions.py +0 -0
  86. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_run_desktop_dependency.py +0 -0
  87. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_run_script_args.py +0 -0
  88. {flet_cli-1.1.0.dev0 → flet_cli-1.1.0.dev1}/tests/test_run_watcher_unavailable.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet-cli
3
- Version: 1.1.0.dev0
3
+ Version: 1.1.0.dev1
4
4
  Summary: Flet CLI
5
5
  Author-email: "Appveyor Systems Inc." <hello@flet.dev>
6
6
  License-Expression: Apache-2.0
@@ -9,8 +9,8 @@ Project-URL: Repository, https://github.com/flet-dev/flet
9
9
  Project-URL: Documentation, https://flet.dev/docs
10
10
  Requires-Python: >=3.10
11
11
  Description-Content-Type: text/markdown
12
- Requires-Dist: flet==1.1.0.dev0
13
- Requires-Dist: flet-platform-assets==1.1.0.dev0
12
+ Requires-Dist: flet==1.1.0.dev1
13
+ Requires-Dist: flet-platform-assets==1.1.0.dev1
14
14
  Requires-Dist: watchdog>=4.0.0
15
15
  Requires-Dist: packaging>=25.0
16
16
  Requires-Dist: qrcode>=7.4.2
@@ -1,14 +1,14 @@
1
1
  [project]
2
2
  name = "flet-cli"
3
- version = "1.1.0.dev0"
3
+ version = "1.1.0.dev1"
4
4
  description = "Flet CLI"
5
5
  authors = [{ name = "Appveyor Systems Inc.", email = "hello@flet.dev" }]
6
6
  license = "Apache-2.0"
7
7
  readme = "README.md"
8
8
  requires-python = ">=3.10"
9
9
  dependencies = [
10
- "flet==1.1.0.dev0",
11
- "flet-platform-assets==1.1.0.dev0",
10
+ "flet==1.1.0.dev1",
11
+ "flet-platform-assets==1.1.0.dev1",
12
12
  "watchdog >=4.0.0",
13
13
  "packaging >=25.0",
14
14
  "qrcode >=7.4.2",
@@ -28,7 +28,7 @@ from flet_cli.utils.template_cache import get_cache_root
28
28
  # python-build release this flet pins. Keep in sync with serious_python's
29
29
  # `pythonReleaseDate` (lib/src/python_versions.dart) — both should track the
30
30
  # same python-build release.
31
- PYTHON_BUILD_RELEASE_DATE = "20260921"
31
+ PYTHON_BUILD_RELEASE_DATE = "20261016"
32
32
 
33
33
  RELEASE_DATE_ENV = "FLET_PYTHON_BUILD_RELEASE_DATE"
34
34
  MANIFEST_PATH_ENV = "FLET_PYTHON_BUILD_MANIFEST"
@@ -0,0 +1 @@
1
+ version = "1.1.0.dev1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet-cli
3
- Version: 1.1.0.dev0
3
+ Version: 1.1.0.dev1
4
4
  Summary: Flet CLI
5
5
  Author-email: "Appveyor Systems Inc." <hello@flet.dev>
6
6
  License-Expression: Apache-2.0
@@ -9,8 +9,8 @@ Project-URL: Repository, https://github.com/flet-dev/flet
9
9
  Project-URL: Documentation, https://flet.dev/docs
10
10
  Requires-Python: >=3.10
11
11
  Description-Content-Type: text/markdown
12
- Requires-Dist: flet==1.1.0.dev0
13
- Requires-Dist: flet-platform-assets==1.1.0.dev0
12
+ Requires-Dist: flet==1.1.0.dev1
13
+ Requires-Dist: flet-platform-assets==1.1.0.dev1
14
14
  Requires-Dist: watchdog>=4.0.0
15
15
  Requires-Dist: packaging>=25.0
16
16
  Requires-Dist: qrcode>=7.4.2
@@ -1,5 +1,5 @@
1
- flet==1.1.0.dev0
2
- flet-platform-assets==1.1.0.dev0
1
+ flet==1.1.0.dev1
2
+ flet-platform-assets==1.1.0.dev1
3
3
  watchdog>=4.0.0
4
4
  packaging>=25.0
5
5
  qrcode>=7.4.2
@@ -11,6 +11,7 @@ import yaml
11
11
  from jinja2 import Environment, StrictUndefined
12
12
 
13
13
  from flet_cli.commands.build_base import BaseBuildCommand
14
+ from flet_cli.utils.pyproject_toml import load_pyproject_toml
14
15
 
15
16
  BUILD_TEMPLATE_DIR = (
16
17
  Path(__file__).resolve().parents[3]
@@ -37,6 +38,66 @@ def _render_template(path: Path, **context: Any) -> str:
37
38
  return env.from_string(path.read_text()).render(cookiecutter=context)
38
39
 
39
40
 
41
+ @pytest.mark.parametrize(
42
+ ("template", "platform"),
43
+ [
44
+ ("lib/flet_generated.dart", "windows"),
45
+ ("lib/flet_generated.dart", "macos"),
46
+ ("lib/flet_generated.dart", "linux"),
47
+ ("windows/runner/flutter_window.cpp", "windows"),
48
+ ],
49
+ )
50
+ @pytest.mark.parametrize(
51
+ ("global_value", "platform_value", "expected"),
52
+ [
53
+ (None, None, False),
54
+ (True, None, True),
55
+ (False, None, False),
56
+ (True, False, False),
57
+ (False, True, True),
58
+ (None, True, True),
59
+ (None, False, False),
60
+ ],
61
+ )
62
+ def test_hide_window_on_start_precedence(
63
+ tmp_path, template, platform, global_value, platform_value, expected
64
+ ):
65
+ """An explicit platform false keeps the generated window visible."""
66
+ settings = {
67
+ "tool.flet.app": global_value,
68
+ f"tool.flet.{platform}.app": platform_value,
69
+ }
70
+ (tmp_path / "pyproject.toml").write_text(
71
+ "\n".join(
72
+ f"[{table}]\nhide_window_on_start = {str(value).lower()}\n"
73
+ for table, value in settings.items()
74
+ if value is not None
75
+ ),
76
+ encoding="utf-8",
77
+ )
78
+ rendered = (
79
+ Environment(undefined=StrictUndefined)
80
+ .from_string((BUILD_TEMPLATE_DIR / template).read_text())
81
+ .render(
82
+ get_pyproject=load_pyproject_toml(tmp_path),
83
+ cookiecutter={
84
+ "options": {"config_platform": platform},
85
+ "flutter": {"dependencies": []},
86
+ "python_module_name": "main",
87
+ "boot_screen": {"name": "flet", "options_b64": "e30="},
88
+ },
89
+ )
90
+ )
91
+ pattern = (
92
+ r'bool.tryParse\("([^"]+)"'
93
+ if template.endswith(".dart")
94
+ else r"const bool hide_window_on_start =\s+(true|false)"
95
+ )
96
+ match = re.search(pattern, rendered)
97
+ assert match is not None
98
+ assert (match.group(1).lower() == "true") is expected
99
+
100
+
40
101
  class TestBuildTemplateContract:
41
102
  """
42
103
  Invariants of the build template itself, independent of any platform.
@@ -320,7 +320,8 @@ class TestTheWindowUsesTheAppsAssetsDir:
320
320
  assert DISPLAY_ASSETS_DIR_SUFFIX not in printed
321
321
 
322
322
 
323
- def test_app_reports_its_assets_dir_before_the_url(tmp_path):
323
+ @pytest.mark.parametrize("force_web_server", [False, True], ids=["socket", "web"])
324
+ def test_app_reports_its_assets_dir_before_the_url(tmp_path, force_web_server):
324
325
  """A real app started with a URL prefix prints its resolved assets dir first."""
325
326
  assets = tmp_path / "my images é"
326
327
  assets.mkdir()
@@ -333,6 +334,9 @@ def test_app_reports_its_assets_dir_before_the_url(tmp_path):
333
334
  **os.environ,
334
335
  "FLET_DISPLAY_URL_PREFIX": "PAGE_URL_TEST",
335
336
  "FLET_SERVER_PORT": str(get_free_tcp_port()),
337
+ "FLET_FORCE_WEB_SERVER": str(force_web_server).lower(),
338
+ # Keep headless Linux from selecting web mode for the socket case.
339
+ "DISPLAY": "test",
336
340
  "PYTHONIOENCODING": "utf-8",
337
341
  }
338
342
  env.pop("FLET_ASSETS_DIR", None)
@@ -341,7 +345,7 @@ def test_app_reports_its_assets_dir_before_the_url(tmp_path):
341
345
  cwd=tmp_path,
342
346
  env=env,
343
347
  stdout=subprocess.PIPE,
344
- stderr=subprocess.DEVNULL,
348
+ stderr=subprocess.STDOUT,
345
349
  encoding="utf-8",
346
350
  )
347
351
  lines = []
@@ -359,7 +363,12 @@ def test_app_reports_its_assets_dir_before_the_url(tmp_path):
359
363
  finally:
360
364
  p.kill()
361
365
  p.wait()
366
+ reader.join()
367
+ p.stdout.close()
362
368
  prefixed = [line for line in lines if line.startswith("PAGE_URL_TEST")]
369
+ assert len(prefixed) == 2, (
370
+ "App did not report its assets dir and URL:\n" + "\n".join(lines)
371
+ )
363
372
  assert prefixed[0] == (
364
373
  f"PAGE_URL_TEST{DISPLAY_ASSETS_DIR_SUFFIX} {assets.resolve()}"
365
374
  )
@@ -1 +0,0 @@
1
- version = "1.1.0.dev0"
File without changes
File without changes