flet 0.19.0.dev2091__tar.gz → 0.19.0.dev2106__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.
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/PKG-INFO +2 -2
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/pyproject.toml +2 -2
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/build.py +31 -20
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/run.py +31 -2
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/flutter_service_worker.js +2 -2
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/index.html +1 -1
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/README.md +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__init__.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/__init__.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/config.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/hook-flet.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/macos_utils.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/rthooks/pyi_rth_localhost_fletd.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/rthooks.dat +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/utils.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/__pyinstaller/win_utils.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/async_websocket_connection.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/auth/__init__.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/auth/providers/__init__.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/canvas/__init__.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/cli.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/base.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/create.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/options.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/pack.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/cli/commands/publish.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/constants.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/matplotlib_chart.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/plotly_chart.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/reconnecting_websocket.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/security.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/sync_websocket_connection.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/utils/__init__.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/version.py +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/.last_build_id +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/AssetManifest.bin +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/AssetManifest.bin.json +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/AssetManifest.json +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/FontManifest.json +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/NOTICES +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/fonts/MaterialIcons-Regular.otf +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/packages/window_manager/images/ic_chrome_close.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/packages/window_manager/images/ic_chrome_maximize.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/packages/window_manager/images/ic_chrome_minimize.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/packages/window_manager/images/ic_chrome_unmaximize.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/shaders/ink_sparkle.frag +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/favicon.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/flutter.js +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/icons/apple-touch-icon-192.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/icons/icon-192.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/icons/icon-512.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/icons/icon-maskable-192.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/icons/icon-maskable-512.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/icons/loading-animation.png +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/main.dart.js +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/manifest.json +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/python-worker.js +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/python.js +0 -0
- {flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/version.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: flet
|
|
3
|
-
Version: 0.19.0.
|
|
3
|
+
Version: 0.19.0.dev2106
|
|
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.19.0.
|
|
18
|
+
Requires-Dist: flet-runtime (==0.19.0.dev2106)
|
|
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.19.0.
|
|
3
|
+
version = "0.19.0.dev2106"
|
|
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.19.0.
|
|
19
|
+
flet-runtime = "0.19.0.dev2106"
|
|
20
20
|
python = "^3.7"
|
|
21
21
|
typing-extensions = { version = "^4.6.2", python = "<3.8" }
|
|
22
22
|
websocket-client = "^1.5.2"
|
|
@@ -13,7 +13,7 @@ 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, is_windows
|
|
16
|
+
from flet_runtime.utils import calculate_file_hash, copy_tree, is_windows
|
|
17
17
|
from rich import print
|
|
18
18
|
|
|
19
19
|
if is_windows():
|
|
@@ -207,13 +207,6 @@ class Command(BaseCommand):
|
|
|
207
207
|
default="path",
|
|
208
208
|
help="URL routing strategy (web only)",
|
|
209
209
|
)
|
|
210
|
-
parser.add_argument(
|
|
211
|
-
"--windows-tcp-port",
|
|
212
|
-
dest="windows_tcp_port",
|
|
213
|
-
type=int,
|
|
214
|
-
default=63777,
|
|
215
|
-
help="TCP port for Windows app",
|
|
216
|
-
)
|
|
217
210
|
parser.add_argument(
|
|
218
211
|
"--flutter-build-args",
|
|
219
212
|
dest="flutter_build_args",
|
|
@@ -261,17 +254,9 @@ class Command(BaseCommand):
|
|
|
261
254
|
def handle(self, options: argparse.Namespace) -> None:
|
|
262
255
|
from cookiecutter.main import cookiecutter
|
|
263
256
|
|
|
264
|
-
#
|
|
265
|
-
flutter_exe =
|
|
266
|
-
|
|
267
|
-
print("`flutter` command is not available in PATH. Install Flutter SDK.")
|
|
268
|
-
sys.exit(1)
|
|
269
|
-
|
|
270
|
-
# check if `dart` executable is available in the path
|
|
271
|
-
dart_exe = shutil.which("dart")
|
|
272
|
-
if not dart_exe:
|
|
273
|
-
print("`dart` command is not available in PATH. Install Flutter SDK.")
|
|
274
|
-
sys.exit(1)
|
|
257
|
+
# get `flutter` and `dart` executables from PATH
|
|
258
|
+
flutter_exe = self.find_flutter_batch("flutter")
|
|
259
|
+
dart_exe = self.find_flutter_batch("dart")
|
|
275
260
|
|
|
276
261
|
target_platform = options.target_platform.lower()
|
|
277
262
|
# platform check
|
|
@@ -351,7 +336,6 @@ class Command(BaseCommand):
|
|
|
351
336
|
template_data["use_color_emoji"] = (
|
|
352
337
|
"true" if options.use_color_emoji else "false"
|
|
353
338
|
)
|
|
354
|
-
template_data["windows_tcp_port"] = options.windows_tcp_port
|
|
355
339
|
|
|
356
340
|
# create Flutter project from a template
|
|
357
341
|
print("Creating Flutter bootstrap project...", end="")
|
|
@@ -590,6 +574,8 @@ class Command(BaseCommand):
|
|
|
590
574
|
package_args.extend(
|
|
591
575
|
[
|
|
592
576
|
"--mobile",
|
|
577
|
+
"--platform",
|
|
578
|
+
"mobile",
|
|
593
579
|
]
|
|
594
580
|
)
|
|
595
581
|
package_args.extend(
|
|
@@ -603,6 +589,9 @@ class Command(BaseCommand):
|
|
|
603
589
|
]
|
|
604
590
|
)
|
|
605
591
|
|
|
592
|
+
if self.verbose > 1:
|
|
593
|
+
package_args.append("--verbose")
|
|
594
|
+
|
|
606
595
|
package_result = self.run(package_args, cwd=str(self.flutter_dir))
|
|
607
596
|
|
|
608
597
|
if package_result.returncode != 0:
|
|
@@ -611,6 +600,17 @@ class Command(BaseCommand):
|
|
|
611
600
|
if package_result.stderr:
|
|
612
601
|
print(package_result.stderr)
|
|
613
602
|
self.cleanup(package_result.returncode)
|
|
603
|
+
|
|
604
|
+
# make sure app/app.zip exists
|
|
605
|
+
app_zip_path = self.flutter_dir.joinpath("app", "app.zip")
|
|
606
|
+
if not os.path.exists(app_zip_path):
|
|
607
|
+
print("Flet app package app/app.zip was not created.")
|
|
608
|
+
self.cleanup(1)
|
|
609
|
+
|
|
610
|
+
# create {flutter_dir}/app/app.hash
|
|
611
|
+
app_hash_path = self.flutter_dir.joinpath("app", "app.zip.hash")
|
|
612
|
+
with open(app_hash_path, "w") as hf:
|
|
613
|
+
hf.write(calculate_file_hash(app_zip_path))
|
|
614
614
|
print("[spring_green3]OK[/spring_green3]")
|
|
615
615
|
|
|
616
616
|
# run `flutter build`
|
|
@@ -710,6 +710,17 @@ class Command(BaseCommand):
|
|
|
710
710
|
return Path(images[0]).name
|
|
711
711
|
return None
|
|
712
712
|
|
|
713
|
+
def find_flutter_batch(self, exe_filename: str):
|
|
714
|
+
batch_path = shutil.which(exe_filename)
|
|
715
|
+
if not batch_path:
|
|
716
|
+
print(
|
|
717
|
+
f"`{exe_filename}` command is not available in PATH. Install Flutter SDK."
|
|
718
|
+
)
|
|
719
|
+
sys.exit(1)
|
|
720
|
+
if is_windows() and batch_path.endswith(".file"):
|
|
721
|
+
return batch_path.replace(".file", ".bat")
|
|
722
|
+
return batch_path
|
|
723
|
+
|
|
713
724
|
def run(self, args, cwd):
|
|
714
725
|
if is_windows():
|
|
715
726
|
# Source: https://stackoverflow.com/a/77374899/1435891
|
|
@@ -122,6 +122,13 @@ class Command(BaseCommand):
|
|
|
122
122
|
default="assets",
|
|
123
123
|
help="path to assets directory",
|
|
124
124
|
)
|
|
125
|
+
parser.add_argument(
|
|
126
|
+
"--ignore-dirs",
|
|
127
|
+
dest="ignore_dirs",
|
|
128
|
+
type=str,
|
|
129
|
+
default=None,
|
|
130
|
+
help="directories to ignore during watch. If more than one, separate with a semicolon.",
|
|
131
|
+
)
|
|
125
132
|
|
|
126
133
|
def handle(self, options: argparse.Namespace) -> None:
|
|
127
134
|
if options.module:
|
|
@@ -159,6 +166,13 @@ class Command(BaseCommand):
|
|
|
159
166
|
Path(os.path.dirname(script_path)).joinpath(assets_dir).resolve()
|
|
160
167
|
)
|
|
161
168
|
|
|
169
|
+
ignore_dirs = options.ignore_dirs
|
|
170
|
+
if ignore_dirs:
|
|
171
|
+
ignore_dirs = [
|
|
172
|
+
str(Path(os.path.dirname(script_path)).joinpath(directory).resolve())
|
|
173
|
+
for directory in ignore_dirs.split(";")
|
|
174
|
+
]
|
|
175
|
+
|
|
162
176
|
my_event_handler = Handler(
|
|
163
177
|
[sys.executable, "-u"]
|
|
164
178
|
+ ["-m"] * options.module
|
|
@@ -173,6 +187,7 @@ class Command(BaseCommand):
|
|
|
173
187
|
options.android,
|
|
174
188
|
options.hidden,
|
|
175
189
|
assets_dir,
|
|
190
|
+
ignore_dirs if options.directory or options.recursive else None,
|
|
176
191
|
)
|
|
177
192
|
|
|
178
193
|
my_observer = Observer()
|
|
@@ -205,6 +220,7 @@ class Handler(FileSystemEventHandler):
|
|
|
205
220
|
android,
|
|
206
221
|
hidden,
|
|
207
222
|
assets_dir,
|
|
223
|
+
ignore_dirs,
|
|
208
224
|
) -> None:
|
|
209
225
|
super().__init__()
|
|
210
226
|
self.args = args
|
|
@@ -218,6 +234,7 @@ class Handler(FileSystemEventHandler):
|
|
|
218
234
|
self.android = android
|
|
219
235
|
self.hidden = hidden
|
|
220
236
|
self.assets_dir = assets_dir
|
|
237
|
+
self.ignore_dirs = ignore_dirs or []
|
|
221
238
|
self.last_time = time.time()
|
|
222
239
|
self.is_running = False
|
|
223
240
|
self.fvp = None
|
|
@@ -258,9 +275,21 @@ class Handler(FileSystemEventHandler):
|
|
|
258
275
|
th.start()
|
|
259
276
|
|
|
260
277
|
def on_any_event(self, event):
|
|
278
|
+
is_in_ignore_dirs = False
|
|
279
|
+
for directory in self.ignore_dirs:
|
|
280
|
+
child = os.path.abspath(event.src_path)
|
|
281
|
+
# check if the file which triggered the reload is in the (ignored) directory
|
|
282
|
+
is_in_ignore_dirs = os.path.commonpath([directory]) == os.path.commonpath(
|
|
283
|
+
[directory, child]
|
|
284
|
+
)
|
|
285
|
+
if is_in_ignore_dirs:
|
|
286
|
+
break
|
|
287
|
+
|
|
261
288
|
if (
|
|
262
|
-
|
|
263
|
-
|
|
289
|
+
not is_in_ignore_dirs
|
|
290
|
+
and (self.script_path is None or event.src_path == self.script_path)
|
|
291
|
+
and not event.is_directory
|
|
292
|
+
):
|
|
264
293
|
current_time = time.time()
|
|
265
294
|
if (current_time - self.last_time) > 0.5 and self.is_running:
|
|
266
295
|
self.last_time = current_time
|
|
@@ -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": "
|
|
38
|
-
"/": "
|
|
37
|
+
"index.html": "8fafaaf356832fe718e222fcd93da0e5",
|
|
38
|
+
"/": "8fafaaf356832fe718e222fcd93da0e5"};
|
|
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 = "
|
|
40
|
+
const serviceWorkerVersion = "1548393452";
|
|
41
41
|
</script>
|
|
42
42
|
<!-- This script adds the flutter initialization JS code -->
|
|
43
43
|
<script src="flutter.js" defer></script>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{flet-0.19.0.dev2091 → flet-0.19.0.dev2106}/src/flet/web/assets/fonts/MaterialIcons-Regular.otf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|