flet-cli 1.1.0.dev2__py3-none-any.whl → 1.1.0.dev3__py3-none-any.whl

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.
@@ -1886,6 +1886,13 @@ class BaseBuildCommand(BaseFlutterCommand):
1886
1886
  assert self.build_dir
1887
1887
  assert self.pubspec_path
1888
1888
 
1889
+ # A deleted extension in build/flutter-packages would make this build
1890
+ # fail before it could reinstall it: start over with a fresh project,
1891
+ # fresh packages, and regenerated icons and splash images.
1892
+ if not second_pass and self._flutter_packages_missing():
1893
+ for stamp in ("template-1", "template-2", "package", "icons", "splashes"):
1894
+ (self.build_dir / ".hash" / stamp).unlink(missing_ok=True)
1895
+
1889
1896
  hash = HashStamp(
1890
1897
  self.build_dir / ".hash" / f"template-{'2' if second_pass else '1'}"
1891
1898
  )
@@ -2399,6 +2406,38 @@ class BaseBuildCommand(BaseFlutterCommand):
2399
2406
  return AssetSpec(ico_sizes=sizes)
2400
2407
  return None
2401
2408
 
2409
+ def _flutter_packages_missing(self) -> bool:
2410
+ """
2411
+ Whether the Flutter project depends on an extension that is gone.
2412
+
2413
+ The previous build's `pubspec.yaml` lists the Flutter packages of the
2414
+ app's extensions by their path in `build/flutter-packages`. If one of
2415
+ them was deleted since, resolving that `pubspec.yaml` fails, and it is
2416
+ resolved before the packages could be installed again, so the build
2417
+ can't recover on its own. The build then starts over: the Flutter
2418
+ project is rendered again, which also restores the template's icons
2419
+ and splash images, so those are generated again too.
2420
+
2421
+ Returns:
2422
+ `True` when a dependency's path is inside `build/flutter-packages`
2423
+ and has no `pubspec.yaml`.
2424
+ """
2425
+
2426
+ assert self.pubspec_path
2427
+ assert self.build_dir
2428
+
2429
+ if not os.path.exists(self.pubspec_path):
2430
+ return False
2431
+ pubspec = self.load_yaml(self.pubspec_path) or {}
2432
+ packages_dir = (self.build_dir / "flutter-packages").resolve()
2433
+ for dependency in (pubspec.get("dependencies") or {}).values():
2434
+ if not isinstance(dependency, dict) or "path" not in dependency:
2435
+ continue
2436
+ path = (Path(self.pubspec_path).parent / dependency["path"]).resolve()
2437
+ if packages_dir in path.parents and not (path / "pubspec.yaml").exists():
2438
+ return True
2439
+ return False
2440
+
2402
2441
  def _site_packages_missing(self) -> bool:
2403
2442
  """
2404
2443
  Whether any required platform package directory has no package files.
@@ -2947,17 +2986,17 @@ class BaseBuildCommand(BaseFlutterCommand):
2947
2986
  for arg in package_args:
2948
2987
  hash.update(arg)
2949
2988
 
2950
- if not dev_packages_configured:
2951
- if not hash.has_changed() and not self._site_packages_missing():
2952
- package_args.append("--skip-site-packages")
2953
- # serious_python skips copying Flutter packages to the temp dir
2954
- # under --skip-site-packages, so register_flutter_extensions must
2955
- # keep (not wipe) the permanent flutter-packages copy from the
2956
- # previous build.
2957
- self.site_packages_skipped = True
2958
- else:
2959
- if self.flutter_packages_dir.exists():
2960
- shutil.rmtree(self.flutter_packages_dir, ignore_errors=True)
2989
+ if (
2990
+ not dev_packages_configured
2991
+ and not hash.has_changed()
2992
+ and not self._site_packages_missing()
2993
+ ):
2994
+ package_args.append("--skip-site-packages")
2995
+ # serious_python skips copying Flutter packages to the temp dir
2996
+ # under --skip-site-packages, so register_flutter_extensions must
2997
+ # keep (not wipe) the permanent flutter-packages copy from the
2998
+ # previous build.
2999
+ self.site_packages_skipped = True
2961
3000
 
2962
3001
  package_result = self.run(
2963
3002
  package_args,
@@ -187,6 +187,7 @@ class BaseFlutterCommand(BaseCommand):
187
187
  assert self.options
188
188
  self.required_flutter_version = version.Version(flet.version.flutter_version)
189
189
  if self.required_flutter_version == version.Version("0"):
190
+ self.skip_flutter_doctor = True
190
191
  self.cleanup(
191
192
  1,
192
193
  "Unable to determine the required Flutter SDK version. "
flet_cli/version.py CHANGED
@@ -1 +1 @@
1
- version = "1.1.0.dev2"
1
+ version = "1.1.0.dev3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flet-cli
3
- Version: 1.1.0.dev2
3
+ Version: 1.1.0.dev3
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.dev2
13
- Requires-Dist: flet-platform-assets==1.1.0.dev2
12
+ Requires-Dist: flet==1.1.0.dev3
13
+ Requires-Dist: flet-platform-assets==1.1.0.dev3
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
1
  flet_cli/cli.py,sha256=TlUPz73bL6rcSQBBH05uAljU9f-ZsuefEKYR-SbdPbE,10115
2
- flet_cli/version.py,sha256=dDBF7DByCLLxsQMLSsO_YNMhEP_dCSWn9QCX_1B_36g,23
2
+ flet_cli/version.py,sha256=J9gkrr2DZzVgtgCaJtHPOoQElIbRKqfeLxHSlnA9Fj4,23
3
3
  flet_cli/__pyinstaller/__init__.py,sha256=1MZKXQG20CRYCGCPzbbO3o-rUJMKm0q_ck9_jDSuTgU,177
4
4
  flet_cli/__pyinstaller/config.py,sha256=LRzpGt1QzSBWtE3zPWo2nA2Hf3ppMHv0LQnpi-dwGDk,245
5
5
  flet_cli/__pyinstaller/extensions.py,sha256=-HfOQmkVbOezpGFvi6bwGx0owl6DA9ji5flzIT_mUEw,5611
@@ -12,14 +12,14 @@ flet_cli/__pyinstaller/win_utils.py,sha256=yZixKh6Pq1ou8oNmhE_j7kuSSjN-BaQSvAhFh
12
12
  flet_cli/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py,sha256=O8lAxkHmNaXaZNzP-3VTuUhuglYwgJtzaeIKQa2neGU,2379
13
13
  flet_cli/commands/base.py,sha256=6MTAuA7kKdaKIZI4AyWPM1TJfFCxmRj7kc7z2h6E_4k,3496
14
14
  flet_cli/commands/build.py,sha256=FCt95Smfyvch8xuvUmgNT7frI_3KKIbnN_YZ_iJs-sk,36725
15
- flet_cli/commands/build_base.py,sha256=FS3z2ebfAxP_CiZFoVrwX18HnunBRo-MrrWaev1Y0bk,164651
15
+ flet_cli/commands/build_base.py,sha256=9HADmZGWNzxtWro4RHG1fl_LANWi7t3-MUs0vIIYbvA,166432
16
16
  flet_cli/commands/clean.py,sha256=fIRr1ktoE9wzO0R-lAq985zbCH1dX6Sao5VyXiJxiOY,2250
17
17
  flet_cli/commands/create.py,sha256=i0-DEGlE4mOpP1lGxfuv7Iea131ukdNP5SQupcS8Eug,11317
18
18
  flet_cli/commands/debug.py,sha256=pZH4Lsn9nLET4Zet9XwJweCA8rQyt2fIF-srH5XO7JM,6699
19
19
  flet_cli/commands/devices.py,sha256=mYUOk93EnpS9FvZnTUjCL58P0jHA6FD8HoudFGqF1go,7777
20
20
  flet_cli/commands/doctor.py,sha256=uG2xUAT_FASB9cnLD9G83NTYdP9iuKhaHyQLjMB_E4c,1051
21
21
  flet_cli/commands/emulators.py,sha256=IVMCRCI-nXfD51H_ApV8GZhpmpDrhC8s61uaXPGVarI,13039
22
- flet_cli/commands/flutter_base.py,sha256=hKIx8grGOls_685ik-Vg_XPKkOQGltbYQw0IMQ6TgNA,26456
22
+ flet_cli/commands/flutter_base.py,sha256=18H3ofgsnSeCfaZZwPemYLNEtPLr_v46QlP_bVPUQG8,26500
23
23
  flet_cli/commands/mcp.py,sha256=AVEnf6YjICqoBQPKqBaHp27KHXxFVjH-IRpAi6dSjcM,2065
24
24
  flet_cli/commands/options.py,sha256=CD7Fw2CtUeuVrtM_oR1_OrAcMKF2EhRUoPuX9_3IsW8,2543
25
25
  flet_cli/commands/pack.py,sha256=Zlha-j10JJ1tMKY5VrZHZBAEJsIPQS8-huMoqMkPkkY,30387
@@ -50,8 +50,8 @@ flet_cli/utils/pyodide.py,sha256=RhumXYuovPxgLbu99pNNhVb9SRvBvhLGiUMtb9WxC5U,505
50
50
  flet_cli/utils/pyproject_toml.py,sha256=o4fAWKXMyK8vdnAO41BLI7Lt3ohMlVdlwrpaifq30Cs,1408
51
51
  flet_cli/utils/python_versions.py,sha256=eYfblWYTD2_PiiAK43euVVg1NaaxsIh_6H8J7CcnbcM,8129
52
52
  flet_cli/utils/template_cache.py,sha256=Lf_iuk30zTfaNFbRmrc8s07w1yE-PYjdovZztoiuPzc,1596
53
- flet_cli-1.1.0.dev2.dist-info/METADATA,sha256=4uRUm4j_gjDHkbS-Z8b8T16t5pxcJTS8cmMPkSDo9uU,1588
54
- flet_cli-1.1.0.dev2.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
55
- flet_cli-1.1.0.dev2.dist-info/entry_points.txt,sha256=UZFR426y3mfr0wgikEFPbZ6wtGwfgykif9Obw6R7Wnc,65
56
- flet_cli-1.1.0.dev2.dist-info/top_level.txt,sha256=4_BPVAJpcNofDe3XMxajlZLBNWzWqKhRynNSBCYTKVQ,9
57
- flet_cli-1.1.0.dev2.dist-info/RECORD,,
53
+ flet_cli-1.1.0.dev3.dist-info/METADATA,sha256=o3nI90-svGDAGDDiyB0K55VEiKGvqUoUH3LhCQRt1us,1588
54
+ flet_cli-1.1.0.dev3.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
55
+ flet_cli-1.1.0.dev3.dist-info/entry_points.txt,sha256=UZFR426y3mfr0wgikEFPbZ6wtGwfgykif9Obw6R7Wnc,65
56
+ flet_cli-1.1.0.dev3.dist-info/top_level.txt,sha256=4_BPVAJpcNofDe3XMxajlZLBNWzWqKhRynNSBCYTKVQ,9
57
+ flet_cli-1.1.0.dev3.dist-info/RECORD,,