flet-cli 0.84.0.dev0__py3-none-any.whl → 0.85.0.dev1__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.
- flet_cli/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py +7 -0
- flet_cli/commands/build_base.py +31 -12
- flet_cli/commands/pack.py +48 -6
- flet_cli/utils/project_dependencies.py +89 -89
- flet_cli/version.py +1 -1
- {flet_cli-0.84.0.dev0.dist-info → flet_cli-0.85.0.dev1.dist-info}/METADATA +2 -2
- {flet_cli-0.84.0.dev0.dist-info → flet_cli-0.85.0.dev1.dist-info}/RECORD +10 -10
- {flet_cli-0.84.0.dev0.dist-info → flet_cli-0.85.0.dev1.dist-info}/WHEEL +0 -0
- {flet_cli-0.84.0.dev0.dist-info → flet_cli-0.85.0.dev1.dist-info}/entry_points.txt +0 -0
- {flet_cli-0.84.0.dev0.dist-info → flet_cli-0.85.0.dev1.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
+
import sys
|
|
3
4
|
|
|
4
5
|
logger = logging.getLogger("flet")
|
|
5
6
|
|
|
@@ -7,3 +8,9 @@ logger = logging.getLogger("flet")
|
|
|
7
8
|
logger.info("Running PyInstaller runtime hook for Flet...")
|
|
8
9
|
|
|
9
10
|
os.environ["FLET_SERVER_IP"] = "127.0.0.1"
|
|
11
|
+
|
|
12
|
+
# On Windows, set AppUserModelID so the taskbar associates the Flet client window
|
|
13
|
+
# with the parent executable (a PyInstaller bundle in this case) rather than the cached
|
|
14
|
+
# flet.exe. This ensures taskbar pins and shortcuts point to the correct executable.
|
|
15
|
+
if sys.platform == "win32" and "FLET_APP_USER_MODEL_ID" not in os.environ:
|
|
16
|
+
os.environ["FLET_APP_USER_MODEL_ID"] = os.path.abspath(sys.executable)
|
flet_cli/commands/build_base.py
CHANGED
|
@@ -2272,7 +2272,13 @@ class BaseBuildCommand(BaseFlutterCommand):
|
|
|
2272
2272
|
hash: HashStamp,
|
|
2273
2273
|
):
|
|
2274
2274
|
"""
|
|
2275
|
-
Find
|
|
2275
|
+
Find the best matching image file for the current target platform.
|
|
2276
|
+
|
|
2277
|
+
When multiple files share the same base name (e.g. `icon.icns`,
|
|
2278
|
+
`icon.ico`, `icon.png`), the method filters out formats that are
|
|
2279
|
+
incompatible with the build target before selecting the first match.
|
|
2280
|
+
For example, `.icns` is skipped on Windows builds because
|
|
2281
|
+
`flutter_launcher_icons` cannot decode it.
|
|
2276
2282
|
|
|
2277
2283
|
Args:
|
|
2278
2284
|
src_path: Source assets directory.
|
|
@@ -2285,17 +2291,30 @@ class BaseBuildCommand(BaseFlutterCommand):
|
|
|
2285
2291
|
File name of matched image, or `None` if not found.
|
|
2286
2292
|
"""
|
|
2287
2293
|
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2294
|
+
# .icns is macOS-only and .ico is Windows-only; filter out
|
|
2295
|
+
# incompatible formats so flutter_launcher_icons gets a decodable file.
|
|
2296
|
+
images = list(
|
|
2297
|
+
filter(
|
|
2298
|
+
lambda p: not (
|
|
2299
|
+
(ext := Path(p).suffix.lower()) == ".icns"
|
|
2300
|
+
and self.target_platform != "macos"
|
|
2301
|
+
or ext == ".ico"
|
|
2302
|
+
and self.target_platform != "windows"
|
|
2303
|
+
),
|
|
2304
|
+
glob.glob(str(src_path.joinpath(f"{image_name}.*"))),
|
|
2305
|
+
)
|
|
2306
|
+
)
|
|
2307
|
+
|
|
2308
|
+
if not images:
|
|
2309
|
+
return None
|
|
2310
|
+
|
|
2311
|
+
best = images[0]
|
|
2312
|
+
if self.verbose > 0:
|
|
2313
|
+
console.log(f'Found "{image_name}" image at {best}', style=verbose1_style)
|
|
2314
|
+
copy_ops.append((best, dest_path))
|
|
2315
|
+
hash.update(best)
|
|
2316
|
+
hash.update(Path(best).stat().st_mtime)
|
|
2317
|
+
return Path(best).name
|
|
2299
2318
|
|
|
2300
2319
|
def run(self, args, cwd, env: Optional[dict] = None, capture_output=True):
|
|
2301
2320
|
"""
|
flet_cli/commands/pack.py
CHANGED
|
@@ -2,10 +2,12 @@ import argparse
|
|
|
2
2
|
import os
|
|
3
3
|
import shutil
|
|
4
4
|
import sys
|
|
5
|
+
import tarfile
|
|
6
|
+
import zipfile
|
|
5
7
|
from pathlib import Path
|
|
6
8
|
|
|
7
9
|
import flet_cli.__pyinstaller.config as hook_config
|
|
8
|
-
from flet.utils import is_macos, is_windows
|
|
10
|
+
from flet.utils import is_linux, is_macos, is_windows
|
|
9
11
|
from flet_cli.commands.base import BaseCommand
|
|
10
12
|
|
|
11
13
|
|
|
@@ -152,6 +154,31 @@ class Command(BaseCommand):
|
|
|
152
154
|
help="Enable non-interactive mode. All prompts will be skipped",
|
|
153
155
|
)
|
|
154
156
|
|
|
157
|
+
def compress_flet_client_dir(self, temp_bin_dir: str, archive_name: str) -> None:
|
|
158
|
+
"""Compress the flet/ directory into an archive and remove the original.
|
|
159
|
+
|
|
160
|
+
Args:
|
|
161
|
+
temp_bin_dir: Path to the temporary directory containing the flet/
|
|
162
|
+
subdirectory with client binaries.
|
|
163
|
+
archive_name: Target archive filename. Uses zip for `.zip`
|
|
164
|
+
extensions and gzipped tar for everything else.
|
|
165
|
+
"""
|
|
166
|
+
flet_dir = os.path.join(temp_bin_dir, "flet")
|
|
167
|
+
if not os.path.isdir(flet_dir):
|
|
168
|
+
return
|
|
169
|
+
archive_path = os.path.join(temp_bin_dir, archive_name)
|
|
170
|
+
if archive_name.endswith(".zip"): # windows
|
|
171
|
+
with zipfile.ZipFile(archive_path, "w", zipfile.ZIP_DEFLATED) as zf:
|
|
172
|
+
for root, _dirs, files in os.walk(flet_dir):
|
|
173
|
+
for f in files:
|
|
174
|
+
full = os.path.join(root, f)
|
|
175
|
+
arcname = os.path.relpath(full, temp_bin_dir)
|
|
176
|
+
zf.write(full, arcname)
|
|
177
|
+
else:
|
|
178
|
+
with tarfile.open(archive_path, "w:gz") as tar:
|
|
179
|
+
tar.add(flet_dir, arcname="flet")
|
|
180
|
+
shutil.rmtree(flet_dir)
|
|
181
|
+
|
|
155
182
|
def handle(self, options: argparse.Namespace) -> None:
|
|
156
183
|
"""
|
|
157
184
|
Package the app into a standalone desktop artifact.
|
|
@@ -293,6 +320,12 @@ class Command(BaseCommand):
|
|
|
293
320
|
|
|
294
321
|
pyi_args.extend(["--version-file", version_info_path])
|
|
295
322
|
|
|
323
|
+
# Compress the patched flet/ directory into flet-windows.zip
|
|
324
|
+
# so ensure_client_cached() finds it at runtime.
|
|
325
|
+
self.compress_flet_client_dir(
|
|
326
|
+
hook_config.temp_bin_dir, "flet-windows.zip"
|
|
327
|
+
)
|
|
328
|
+
|
|
296
329
|
elif is_macos():
|
|
297
330
|
from flet_cli.__pyinstaller.macos_utils import (
|
|
298
331
|
assemble_app_bundle,
|
|
@@ -341,12 +374,12 @@ class Command(BaseCommand):
|
|
|
341
374
|
copyright=options.copyright,
|
|
342
375
|
)
|
|
343
376
|
|
|
344
|
-
#
|
|
377
|
+
# Compress the patched .app bundle back into flet-macos.tar.gz so
|
|
378
|
+
# ensure_client_cached() finds it at runtime.
|
|
345
379
|
assemble_app_bundle(app_path, tar_path)
|
|
346
380
|
|
|
347
|
-
# Remove everything except the tar.gz so
|
|
348
|
-
#
|
|
349
|
-
# framework binaries.
|
|
381
|
+
# Remove everything except the tar.gz so PyInstaller doesn't try
|
|
382
|
+
# to process loose framework binaries.
|
|
350
383
|
for entry in os.listdir(hook_config.temp_bin_dir):
|
|
351
384
|
entry_path = os.path.join(hook_config.temp_bin_dir, entry)
|
|
352
385
|
if entry_path == tar_path:
|
|
@@ -356,7 +389,16 @@ class Command(BaseCommand):
|
|
|
356
389
|
else:
|
|
357
390
|
os.remove(entry_path)
|
|
358
391
|
|
|
359
|
-
|
|
392
|
+
elif is_linux():
|
|
393
|
+
from flet_desktop import get_artifact_filename
|
|
394
|
+
|
|
395
|
+
# Compress the flet/ directory into a tar.gz
|
|
396
|
+
# so ensure_client_cached() finds it at runtime.
|
|
397
|
+
self.compress_flet_client_dir(
|
|
398
|
+
hook_config.temp_bin_dir, get_artifact_filename()
|
|
399
|
+
)
|
|
400
|
+
|
|
401
|
+
# run PyInstaller
|
|
360
402
|
print("Running PyInstaller:", pyi_args)
|
|
361
403
|
PyInstaller.__main__.run(pyi_args)
|
|
362
404
|
|
|
@@ -2,8 +2,86 @@
|
|
|
2
2
|
|
|
3
3
|
# Based on: https://pypi.org/project/toml-to-requirements/
|
|
4
4
|
|
|
5
|
+
import re
|
|
5
6
|
from typing import Any, Optional
|
|
6
7
|
|
|
8
|
+
from packaging.requirements import Requirement
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _windows_safe(req_str: str) -> str:
|
|
12
|
+
"""Insert a space before bare `<` or `>` so Windows cmd.exe does not
|
|
13
|
+
interpret them as shell redirection when the string is passed via `-r`
|
|
14
|
+
to a `.BAT` subprocess."""
|
|
15
|
+
return re.sub(r"(?<=[^ ])([<>])", r" \1", req_str)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _poetry_version_to_pep440(version: str) -> str:
|
|
19
|
+
"""Convert a Poetry version constraint to PEP 440 syntax.
|
|
20
|
+
|
|
21
|
+
- `^1.2.3` → `>=1.2.3`
|
|
22
|
+
- `~1.2.3` → `~=1.2.3` (`~=` passes through unchanged)
|
|
23
|
+
- `*` → `""` (no constraint)
|
|
24
|
+
- `1.2.3` (bare version) → `==1.2.3`
|
|
25
|
+
- Anything else is returned as-is (already PEP 440).
|
|
26
|
+
"""
|
|
27
|
+
version = version.replace(" ", "")
|
|
28
|
+
if not version or version == "*":
|
|
29
|
+
return ""
|
|
30
|
+
if version.startswith("^"):
|
|
31
|
+
return f">={version[1:]}"
|
|
32
|
+
if version.startswith("~") and not version.startswith("~="):
|
|
33
|
+
return f"~={version[1:]}"
|
|
34
|
+
# Bare version number → pin with ==
|
|
35
|
+
if version[0].isdigit():
|
|
36
|
+
return f"=={version}"
|
|
37
|
+
return version
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _poetry_dep_to_pep508(name: str, value: Any) -> str:
|
|
41
|
+
"""Convert a single Poetry dependency entry to a PEP 508 requirement string."""
|
|
42
|
+
suffix = ""
|
|
43
|
+
|
|
44
|
+
if isinstance(value, dict):
|
|
45
|
+
version = value.get("version")
|
|
46
|
+
if version:
|
|
47
|
+
specifier = _poetry_version_to_pep440(version)
|
|
48
|
+
markers = value.get("markers")
|
|
49
|
+
if markers is not None:
|
|
50
|
+
suffix = f"; {markers}"
|
|
51
|
+
if specifier:
|
|
52
|
+
return f"{name}{specifier}{suffix}"
|
|
53
|
+
return f"{name}{suffix}"
|
|
54
|
+
|
|
55
|
+
git_url = value.get("git")
|
|
56
|
+
if git_url:
|
|
57
|
+
url = f"git+{git_url}" if not git_url.startswith("git@") else git_url
|
|
58
|
+
rev = value.get("branch") or value.get("rev") or value.get("tag")
|
|
59
|
+
if rev:
|
|
60
|
+
url = f"{url}@{rev}"
|
|
61
|
+
subdirectory = value.get("subdirectory")
|
|
62
|
+
if subdirectory:
|
|
63
|
+
url = f"{url}#subdirectory={subdirectory}"
|
|
64
|
+
markers = value.get("markers")
|
|
65
|
+
if markers is not None:
|
|
66
|
+
suffix = f"; {markers}"
|
|
67
|
+
return f"{name} @ {url}{suffix}"
|
|
68
|
+
|
|
69
|
+
path = value.get("path")
|
|
70
|
+
if path:
|
|
71
|
+
return path
|
|
72
|
+
|
|
73
|
+
url = value.get("url")
|
|
74
|
+
if url:
|
|
75
|
+
return url
|
|
76
|
+
|
|
77
|
+
raise ValueError(f"Unsupported dependency specification: {name} = {value}")
|
|
78
|
+
|
|
79
|
+
# String value
|
|
80
|
+
specifier = _poetry_version_to_pep440(value)
|
|
81
|
+
if specifier:
|
|
82
|
+
return f"{name}{specifier}"
|
|
83
|
+
return name
|
|
84
|
+
|
|
7
85
|
|
|
8
86
|
def get_poetry_dependencies(
|
|
9
87
|
poetry_dependencies: Optional[dict[str, Any]] = None,
|
|
@@ -17,103 +95,20 @@ def get_poetry_dependencies(
|
|
|
17
95
|
Returns:
|
|
18
96
|
Sorted requirement strings or `None` when `poetry_dependencies` is `None`.
|
|
19
97
|
"""
|
|
20
|
-
|
|
21
98
|
if poetry_dependencies is None:
|
|
22
99
|
return None
|
|
23
100
|
|
|
24
|
-
def format_dependency_version(dependency_name: str, dependency_value: Any):
|
|
25
|
-
"""
|
|
26
|
-
Format a single Poetry dependency entry as a requirement specifier.
|
|
27
|
-
|
|
28
|
-
Supports version constraints, git dependencies (including branch/rev/tag
|
|
29
|
-
and subdirectory), path/url dependencies, and optional environment markers.
|
|
30
|
-
|
|
31
|
-
Args:
|
|
32
|
-
dependency_name: Dependency key in Poetry configuration.
|
|
33
|
-
dependency_value: String or mapping that describes the dependency.
|
|
34
|
-
|
|
35
|
-
Returns:
|
|
36
|
-
A requirement string consumable by pip-style tooling.
|
|
37
|
-
|
|
38
|
-
Raises:
|
|
39
|
-
ValueError: If the dependency mapping uses an unsupported shape.
|
|
40
|
-
"""
|
|
41
|
-
|
|
42
|
-
sep = "@"
|
|
43
|
-
value = ""
|
|
44
|
-
suffix = ""
|
|
45
|
-
|
|
46
|
-
if isinstance(dependency_value, dict):
|
|
47
|
-
version = dependency_value.get("version")
|
|
48
|
-
if version:
|
|
49
|
-
sep = "=="
|
|
50
|
-
value = version
|
|
51
|
-
else:
|
|
52
|
-
git_url = dependency_value.get("git")
|
|
53
|
-
if git_url:
|
|
54
|
-
value = (
|
|
55
|
-
f"git+{git_url}" if not git_url.startswith("git@") else git_url
|
|
56
|
-
)
|
|
57
|
-
rev = (
|
|
58
|
-
dependency_value.get("branch")
|
|
59
|
-
or dependency_value.get("rev")
|
|
60
|
-
or dependency_value.get("tag")
|
|
61
|
-
)
|
|
62
|
-
if rev:
|
|
63
|
-
value = f"{value}@{rev}"
|
|
64
|
-
subdirectory = dependency_value.get("subdirectory")
|
|
65
|
-
if subdirectory:
|
|
66
|
-
value = f"{value}#subdirectory={subdirectory}"
|
|
67
|
-
else:
|
|
68
|
-
path = dependency_value.get("path")
|
|
69
|
-
if path:
|
|
70
|
-
value = path
|
|
71
|
-
dependency_name = ""
|
|
72
|
-
sep = ""
|
|
73
|
-
else:
|
|
74
|
-
url = dependency_value.get("url")
|
|
75
|
-
if url:
|
|
76
|
-
value = url
|
|
77
|
-
dependency_name = ""
|
|
78
|
-
sep = ""
|
|
79
|
-
else:
|
|
80
|
-
raise ValueError(
|
|
81
|
-
"Unsupported dependency specification: "
|
|
82
|
-
f"{dependency_name} = {dependency_value}"
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
# markers - common for all
|
|
86
|
-
markers = dependency_value.get("markers")
|
|
87
|
-
if markers is not None:
|
|
88
|
-
suffix = f";{markers}"
|
|
89
|
-
else:
|
|
90
|
-
value = dependency_value
|
|
91
|
-
sep = "=="
|
|
92
|
-
|
|
93
|
-
if value.startswith("^"):
|
|
94
|
-
sep = ">="
|
|
95
|
-
value = value[1:]
|
|
96
|
-
elif value.startswith("~"):
|
|
97
|
-
sep = "~="
|
|
98
|
-
value = value[1:]
|
|
99
|
-
return f"{dependency_name}~={value[1:]}"
|
|
100
|
-
elif "<" in value or ">" in value:
|
|
101
|
-
sep = ""
|
|
102
|
-
value = value.replace(" ", "")
|
|
103
|
-
|
|
104
|
-
return f"{dependency_name}{sep}{value}{suffix}"
|
|
105
|
-
|
|
106
101
|
dependencies: set[str] = {
|
|
107
|
-
|
|
108
|
-
for
|
|
109
|
-
if
|
|
102
|
+
_windows_safe(_poetry_dep_to_pep508(dep, ver))
|
|
103
|
+
for dep, ver in poetry_dependencies.items()
|
|
104
|
+
if dep != "python"
|
|
110
105
|
}
|
|
111
106
|
|
|
112
107
|
return sorted(dependencies)
|
|
113
108
|
|
|
114
109
|
|
|
115
110
|
def get_project_dependencies(
|
|
116
|
-
project_dependencies: Optional[
|
|
111
|
+
project_dependencies: Optional[list[str]] = None,
|
|
117
112
|
) -> Optional[list[str]]:
|
|
118
113
|
"""
|
|
119
114
|
Normalize PEP 621 `project.dependencies` into a sorted unique list.
|
|
@@ -124,10 +119,15 @@ def get_project_dependencies(
|
|
|
124
119
|
Returns:
|
|
125
120
|
Sorted dependency strings, or `None` when input is `None`.
|
|
126
121
|
"""
|
|
127
|
-
|
|
128
122
|
if project_dependencies is None:
|
|
129
123
|
return None
|
|
130
124
|
|
|
131
|
-
dependencies = set(
|
|
125
|
+
dependencies: set[str] = set()
|
|
126
|
+
for dep in project_dependencies:
|
|
127
|
+
try:
|
|
128
|
+
req = Requirement(dep)
|
|
129
|
+
dependencies.add(_windows_safe(str(req)))
|
|
130
|
+
except Exception:
|
|
131
|
+
dependencies.add(_windows_safe(dep))
|
|
132
132
|
|
|
133
133
|
return sorted(dependencies)
|
flet_cli/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
version = "0.
|
|
1
|
+
version = "0.85.0.dev1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flet-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.85.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,7 +9,7 @@ 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==0.
|
|
12
|
+
Requires-Dist: flet==0.85.0.dev1
|
|
13
13
|
Requires-Dist: watchdog>=4.0.0
|
|
14
14
|
Requires-Dist: packaging>=25.0
|
|
15
15
|
Requires-Dist: qrcode>=7.4.2
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
flet_cli/cli.py,sha256=iDtpgVnrdrHapnE42bkTe7Sf_bNK724bqXISozNWTRQ,3586
|
|
2
|
-
flet_cli/version.py,sha256=
|
|
2
|
+
flet_cli/version.py,sha256=0N8SvDXW6KRNyPCt2820vjxAHreIQ_gUW4V6OYN3Dic,24
|
|
3
3
|
flet_cli/__pyinstaller/__init__.py,sha256=KJsKpQ6uSVslADmFaOKaxCu-GOZZtcVKnti-ripD-ug,164
|
|
4
4
|
flet_cli/__pyinstaller/config.py,sha256=MN2IPu53K1RDyh_KE4wIcQH8El_n4Z3fD6NO2iq8y74,20
|
|
5
5
|
flet_cli/__pyinstaller/hook-flet.py,sha256=RbiFE8-7VBsY4Dwt7a9-9gW0gUFQGjOLY1-OBsZm_mI,506
|
|
6
6
|
flet_cli/__pyinstaller/macos_utils.py,sha256=4Y29CrZ5Uyys6CCLFEPq8qFmbTvV6wRU6A9hFiuYVSM,4423
|
|
7
7
|
flet_cli/__pyinstaller/utils.py,sha256=EbGuUIM1ce_Lc0VZlaJQ2WlSAahlgTLoMFDFigibImg,1316
|
|
8
8
|
flet_cli/__pyinstaller/win_utils.py,sha256=wu0G98CUMkGfloZa2LTqJE7axAZPB2-TLBOHJiYUc0Q,4428
|
|
9
|
-
flet_cli/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py,sha256=
|
|
9
|
+
flet_cli/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py,sha256=Q5r19b95nWjDdF-D6civD6_M8jzSDIi26WBHlVJOhdY,584
|
|
10
10
|
flet_cli/commands/base.py,sha256=6MTAuA7kKdaKIZI4AyWPM1TJfFCxmRj7kc7z2h6E_4k,3496
|
|
11
11
|
flet_cli/commands/build.py,sha256=lDqO-O9ug9Cy5gU2oGUYDhj9_m8E4mkaytzNHEwJwcA,5741
|
|
12
|
-
flet_cli/commands/build_base.py,sha256
|
|
12
|
+
flet_cli/commands/build_base.py,sha256=-39crXtLvcpFzxSSMgO2-oJW4KjoONPWOiv5bf0pa2o,88510
|
|
13
13
|
flet_cli/commands/create.py,sha256=LLgxC7Sbxhy9es21YS9nmR5oGOCJjsYDCdXWztIV44A,5305
|
|
14
14
|
flet_cli/commands/debug.py,sha256=7RhwJCKLVSf9_hunWGKd9vBnR9EgujCWmgs6aOzQVr4,6656
|
|
15
15
|
flet_cli/commands/devices.py,sha256=7kn56lrZLN5LuG_X3IyMdSfdFa421yE4R1otTJr5Yrc,7953
|
|
@@ -17,7 +17,7 @@ flet_cli/commands/doctor.py,sha256=uG2xUAT_FASB9cnLD9G83NTYdP9iuKhaHyQLjMB_E4c,1
|
|
|
17
17
|
flet_cli/commands/emulators.py,sha256=2VCpu-B70JMsmqNpQoDJoXAvOV-Ex_Kkosa27D16iRk,13215
|
|
18
18
|
flet_cli/commands/flutter_base.py,sha256=cvWrB_fWqb8wft7-Wr5isvOFxsgKgc0HcCHyK2IAe2w,17525
|
|
19
19
|
flet_cli/commands/options.py,sha256=tSqztnV4uvXhMEk6VhYe_szoq7CGVTrYlrkdZwMK4ek,1068
|
|
20
|
-
flet_cli/commands/pack.py,sha256=
|
|
20
|
+
flet_cli/commands/pack.py,sha256=xayvQpkKFDQvckPnxyahKYXbUpEfV8tUMEBn5y-orzk,16586
|
|
21
21
|
flet_cli/commands/publish.py,sha256=scTAR9fnjdPJz48EA42AcW2fYpHRgHkx3xP8b9Lg73o,11985
|
|
22
22
|
flet_cli/commands/run.py,sha256=uonKi-l40mHsN87E-nnDKq74q6o-565vhG05yOKlxek,16840
|
|
23
23
|
flet_cli/commands/serve.py,sha256=YrollC80u9JvuXHbI_qQ3wxpjcqpIQwFxdD5nIOeOT4,3143
|
|
@@ -30,10 +30,10 @@ flet_cli/utils/jdk.py,sha256=8hxuptENZa8zCgumaRmx0F8ApX_ldXVQYPlx4_xiYDs,5280
|
|
|
30
30
|
flet_cli/utils/merge.py,sha256=cZcUL1z2iaGjjFifL1KCrEj2ywLR9x6eNtOj1F2Dr6U,780
|
|
31
31
|
flet_cli/utils/plist.py,sha256=oqBCkeUjUqPIf5y7XaE2seSx64FEs7yc2cukvbjFoSU,1135
|
|
32
32
|
flet_cli/utils/processes.py,sha256=S0ErmI5x9S6RNMe89cf5M4ROIofMtjNZRQ29foUllJ4,2885
|
|
33
|
-
flet_cli/utils/project_dependencies.py,sha256=
|
|
33
|
+
flet_cli/utils/project_dependencies.py,sha256=kC8gZZyaGk-coNXrh6cyPM6i9RhUaXcBIvZmQ50PufY,4064
|
|
34
34
|
flet_cli/utils/pyproject_toml.py,sha256=o4fAWKXMyK8vdnAO41BLI7Lt3ohMlVdlwrpaifq30Cs,1408
|
|
35
|
-
flet_cli-0.
|
|
36
|
-
flet_cli-0.
|
|
37
|
-
flet_cli-0.
|
|
38
|
-
flet_cli-0.
|
|
39
|
-
flet_cli-0.
|
|
35
|
+
flet_cli-0.85.0.dev1.dist-info/METADATA,sha256=XGBH7pKEenAbpSRPW-VI0VWNRhdY4pdcf21N1F5jPfs,1214
|
|
36
|
+
flet_cli-0.85.0.dev1.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
37
|
+
flet_cli-0.85.0.dev1.dist-info/entry_points.txt,sha256=UZFR426y3mfr0wgikEFPbZ6wtGwfgykif9Obw6R7Wnc,65
|
|
38
|
+
flet_cli-0.85.0.dev1.dist-info/top_level.txt,sha256=4_BPVAJpcNofDe3XMxajlZLBNWzWqKhRynNSBCYTKVQ,9
|
|
39
|
+
flet_cli-0.85.0.dev1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|