fastled 1.3.22__py3-none-any.whl → 1.3.24__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.
- fastled/__version__.py +1 -1
- fastled/cli_test.py +2 -1
- fastled/client_server.py +16 -3
- fastled/compile_server_impl.py +4 -1
- fastled/docker_manager.py +1 -0
- fastled/server_flask.py +2 -2
- fastled/string_diff.py +33 -0
- {fastled-1.3.22.dist-info → fastled-1.3.24.dist-info}/METADATA +1 -1
- {fastled-1.3.22.dist-info → fastled-1.3.24.dist-info}/RECORD +13 -13
- {fastled-1.3.22.dist-info → fastled-1.3.24.dist-info}/WHEEL +1 -1
- {fastled-1.3.22.dist-info → fastled-1.3.24.dist-info}/entry_points.txt +0 -0
- {fastled-1.3.22.dist-info → fastled-1.3.24.dist-info}/licenses/LICENSE +0 -0
- {fastled-1.3.22.dist-info → fastled-1.3.24.dist-info}/top_level.txt +0 -0
fastled/__version__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# IMPORTANT! There's a bug in github which will REJECT any version update
|
2
2
|
# that has any other change in the repo. Please bump the version as the
|
3
3
|
# ONLY change in a commit, or else the pypi update and the release will fail.
|
4
|
-
__version__ = "1.3.
|
4
|
+
__version__ = "1.3.24"
|
5
5
|
|
6
6
|
__version_url_latest__ = "https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/src/fastled/__version__.py"
|
fastled/cli_test.py
CHANGED
@@ -10,7 +10,8 @@ if __name__ == "__main__":
|
|
10
10
|
os.chdir("../fastled")
|
11
11
|
# sys.argv.append("--server")
|
12
12
|
# sys.argv.append("--local")
|
13
|
-
sys.argv.append("
|
13
|
+
# sys.argv.append("--debug")
|
14
|
+
sys.argv.append("examples/Corkscrew")
|
14
15
|
sys.exit(app_main())
|
15
16
|
except KeyboardInterrupt:
|
16
17
|
print("\nExiting from main...")
|
fastled/client_server.py
CHANGED
@@ -2,6 +2,7 @@ import shutil
|
|
2
2
|
import tempfile
|
3
3
|
import threading
|
4
4
|
import time
|
5
|
+
import traceback
|
5
6
|
import warnings
|
6
7
|
from multiprocessing import Process
|
7
8
|
from pathlib import Path
|
@@ -169,8 +170,10 @@ def _try_start_server_or_get_url(
|
|
169
170
|
return (compile_server.url(), compile_server)
|
170
171
|
except KeyboardInterrupt:
|
171
172
|
raise
|
172
|
-
except
|
173
|
-
|
173
|
+
except Exception as e:
|
174
|
+
warnings.warn(
|
175
|
+
f"Failed to start local compile server because of {e}, using web compiler instead."
|
176
|
+
)
|
174
177
|
return (DEFAULT_URL, None)
|
175
178
|
|
176
179
|
|
@@ -497,7 +500,17 @@ def run_client_server(args: Args) -> int:
|
|
497
500
|
compile_server.stop()
|
498
501
|
return 1
|
499
502
|
except Exception as e:
|
500
|
-
|
503
|
+
stack_trace = e.__traceback__
|
504
|
+
stack_trace_list: list[str] | None = (
|
505
|
+
traceback.format_exception(type(e), e, stack_trace) if stack_trace else None
|
506
|
+
)
|
507
|
+
stack_trace_str = ""
|
508
|
+
if stack_trace_list is not None:
|
509
|
+
stack_trace_str = "".join(stack_trace_list) if stack_trace_list else ""
|
510
|
+
if stack_trace:
|
511
|
+
print(f"Error in starting compile server: {e}\n{stack_trace_str}")
|
512
|
+
else:
|
513
|
+
print(f"Error: {e}")
|
501
514
|
if compile_server is not None:
|
502
515
|
compile_server.stop()
|
503
516
|
return 1
|
fastled/compile_server_impl.py
CHANGED
@@ -187,7 +187,10 @@ class CompileServerImpl:
|
|
187
187
|
print("Compiling server starting")
|
188
188
|
|
189
189
|
# Ensure Docker is running
|
190
|
-
|
190
|
+
running: bool
|
191
|
+
# err: Exception | None
|
192
|
+
running, _ = self.docker.is_running()
|
193
|
+
if not running:
|
191
194
|
if not self.docker.start():
|
192
195
|
print("Docker could not be started. Exiting.")
|
193
196
|
raise RuntimeError("Docker could not be started. Exiting.")
|
fastled/docker_manager.py
CHANGED
@@ -366,6 +366,7 @@ class DockerManager:
|
|
366
366
|
subprocess.run(["start", "", docker_path], shell=True)
|
367
367
|
elif sys.platform == "darwin":
|
368
368
|
subprocess.run(["open", "-a", "Docker"])
|
369
|
+
time.sleep(2) # Give Docker time to start
|
369
370
|
elif sys.platform.startswith("linux"):
|
370
371
|
subprocess.run(["sudo", "systemctl", "start", "docker"])
|
371
372
|
else:
|
fastled/server_flask.py
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
import argparse
|
2
2
|
import logging
|
3
|
-
import os
|
4
3
|
import time
|
5
4
|
from multiprocessing import Process
|
6
5
|
from pathlib import Path
|
@@ -9,7 +8,8 @@ import httpx
|
|
9
8
|
from livereload import Server
|
10
9
|
|
11
10
|
# Logging configuration
|
12
|
-
_ENABLE_LOGGING = os.environ.get("FLASK_SERVER_LOGGING", "0") == "1"
|
11
|
+
# _ENABLE_LOGGING = os.environ.get("FLASK_SERVER_LOGGING", "0") == "1"
|
12
|
+
_ENABLE_LOGGING = False
|
13
13
|
|
14
14
|
|
15
15
|
if _ENABLE_LOGGING:
|
fastled/string_diff.py
CHANGED
@@ -21,6 +21,28 @@ def _filter_out_obvious_bad_choices(
|
|
21
21
|
return filtered_list
|
22
22
|
|
23
23
|
|
24
|
+
def is_in_order_match(input_str: str, other: str) -> bool:
|
25
|
+
"""
|
26
|
+
Check if the input string is an in-order match for any string in the list.
|
27
|
+
An in-order match means that the characters of the input string appear
|
28
|
+
in the same order in the string from the list, ignoring spaces in the input.
|
29
|
+
"""
|
30
|
+
|
31
|
+
# Remove spaces from input string for matching
|
32
|
+
input_chars = [c for c in input_str if c != " "]
|
33
|
+
other_chars = list(other)
|
34
|
+
input_index = 0
|
35
|
+
other_index = 0
|
36
|
+
while input_index < len(input_chars) and other_index < len(other_chars):
|
37
|
+
if input_chars[input_index] == other_chars[other_index]:
|
38
|
+
input_index += 1
|
39
|
+
other_index += 1
|
40
|
+
# If we reached the end of the input string, it means all characters were found in order
|
41
|
+
if input_index == len(input_chars):
|
42
|
+
return True
|
43
|
+
return False
|
44
|
+
|
45
|
+
|
24
46
|
# Returns the min distance strings. If there is a tie, it returns
|
25
47
|
# all the strings that have the same min distance.
|
26
48
|
# Returns a tuple of index and string.
|
@@ -46,6 +68,7 @@ def string_diff(
|
|
46
68
|
if len(input_string) >= 3:
|
47
69
|
string_list = _filter_out_obvious_bad_choices(input_string, string_list)
|
48
70
|
|
71
|
+
# Second filter: exact substring filtering if applicable
|
49
72
|
is_substring = False
|
50
73
|
for s in string_list:
|
51
74
|
if input_string in s:
|
@@ -55,6 +78,16 @@ def string_diff(
|
|
55
78
|
if is_substring:
|
56
79
|
string_list = [s for s in string_list if input_string in s]
|
57
80
|
|
81
|
+
# Third filter: in order exact match filtering if applicable.
|
82
|
+
is_in_order = False
|
83
|
+
for s in string_list:
|
84
|
+
if is_in_order_match(input_string, s):
|
85
|
+
is_in_order = True
|
86
|
+
break
|
87
|
+
|
88
|
+
if is_in_order:
|
89
|
+
string_list = [s for s in string_list if is_in_order_match(input_string, s)]
|
90
|
+
|
58
91
|
distances: list[float] = []
|
59
92
|
for s in string_list:
|
60
93
|
dist = fuzz.token_sort_ratio(normalize(input_string), normalize(s))
|
@@ -1,14 +1,14 @@
|
|
1
1
|
fastled/__init__.py,sha256=YLikXGRWKlKAqj7bpvGmJLejGTFF-FC1lv2z1jwRinA,6852
|
2
|
-
fastled/__version__.py,sha256=
|
2
|
+
fastled/__version__.py,sha256=vz4oi4ozVJkmf4hjQ_3OXd_anXoh_8yXFsKIqlP-sXs,373
|
3
3
|
fastled/app.py,sha256=zfSipnCZ6w9_aXCynGrqf7OE--mKzbhT0mEfCNW5XjA,5736
|
4
4
|
fastled/args.py,sha256=d9CaarQ1yw7w0REwgrNQ78zOUQSk94fTXwXHtFZPTSY,3281
|
5
5
|
fastled/cli.py,sha256=drgR2AOxVrj3QEz58iiKscYAumbbin2vIV-k91VCOAA,561
|
6
|
-
fastled/cli_test.py,sha256=
|
6
|
+
fastled/cli_test.py,sha256=W-1nODZrip_JU6BEbYhxOa4ckxduOsiX8zIoRkTyxv4,550
|
7
7
|
fastled/cli_test_interactive.py,sha256=BjNhveZOk5aCffHbcrxPQQjWmAuj4ClVKKcKX5eY6yM,542
|
8
|
-
fastled/client_server.py,sha256=
|
8
|
+
fastled/client_server.py,sha256=gFZyJBXEHD_10akIr6YipGlFuYn-z5vJsPTxJU3BYco,19132
|
9
9
|
fastled/compile_server.py,sha256=rkXvrvdav5vDG8lv_OlBX3YSCHtnHMt25nXbfeg_r78,2960
|
10
|
-
fastled/compile_server_impl.py,sha256=
|
11
|
-
fastled/docker_manager.py,sha256=
|
10
|
+
fastled/compile_server_impl.py,sha256=6BBtrw_ReC6ewtv8NC_Ym4IYNgHf8SOvEkUFoy9rlBM,11727
|
11
|
+
fastled/docker_manager.py,sha256=rkq39ZKrU6NHIyDa3mzs0Unb6o9oMeAwxhqiuHJU_RY,40291
|
12
12
|
fastled/filewatcher.py,sha256=3qS3L7zMQhFuVrkeGn1djsB_cB6x_E2YGJmmQWVAU_w,10033
|
13
13
|
fastled/keyboard.py,sha256=UTAsqCn1UMYnB8YDzENiLTj4GeL45tYfEcO7_5fLFEg,3556
|
14
14
|
fastled/keyz.py,sha256=LO-8m_7CpNDiZLM-FXhQ30f9gN1bUYz5lOsUPTIbI-c,4020
|
@@ -19,12 +19,12 @@ fastled/paths.py,sha256=VsPmgu0lNSCFOoEC0BsTYzDygXqy15AHUfN-tTuzDZA,99
|
|
19
19
|
fastled/print_filter.py,sha256=nc_rqYYdCUPinFycaK7fiQF5PG1up51pmJptR__QyAs,1499
|
20
20
|
fastled/project_init.py,sha256=bBt4DwmW5hZkm9ICt9Qk-0Nr_0JQM7icCgH5Iv-bCQs,3984
|
21
21
|
fastled/select_sketch_directory.py,sha256=-eudwCns3AKj4HuHtSkZAFwbnf005SNL07pOzs9VxnE,1383
|
22
|
-
fastled/server_flask.py,sha256=
|
22
|
+
fastled/server_flask.py,sha256=2bH8UTMFE8djiIJinFDrK9idLf0DUStbazckzn7_bOc,16208
|
23
23
|
fastled/server_start.py,sha256=W9yKStkRlRNuXeV6j_6O7HjjFPyVLBHMcF9Uy2QjDWQ,479
|
24
24
|
fastled/settings.py,sha256=dUVyJ8Mtprg0RwaS6oMWP8jBhr4C3R8fu4Hdx_Z1lCM,577
|
25
25
|
fastled/sketch.py,sha256=Ftbh55Nt-p4hmPuPpj8Q9HrMzvnUazhoG_q9FHcxkns,3473
|
26
26
|
fastled/spinner.py,sha256=VHxmvB92P0Z_zYxRajb5HiNmkHHvZ5dG7hKtZltzpcs,867
|
27
|
-
fastled/string_diff.py,sha256=
|
27
|
+
fastled/string_diff.py,sha256=dlhJCFHSiqW9GMByS2DFnguZ28387VNcFwR6zGVlKeU,3729
|
28
28
|
fastled/types.py,sha256=ZDf1TbTT4XgA_pKIwr4JbkDB38_29ogSdDORjoT-zuY,1803
|
29
29
|
fastled/util.py,sha256=TjhXbUNh4p2BGhNAldSeL68B7BBOjsWAXji5gy-vDEQ,1440
|
30
30
|
fastled/version.py,sha256=TpBMiEVdO3_sUZEu6wmwN8Q4AgX2BiCxStCsnPKh6E0,1209
|
@@ -36,9 +36,9 @@ fastled/site/build.py,sha256=2YKU_UWKlJdGnjdbAbaL0co6kceFMSTVYwH1KCmgPZA,13987
|
|
36
36
|
fastled/site/examples.py,sha256=s6vj2zJc6BfKlnbwXr1QWY1mzuDBMt6j5MEBOWjO_U8,155
|
37
37
|
fastled/test/can_run_local_docker_tests.py,sha256=LEuUbHctRhNNFWcvnz2kEGmjDJeXO4c3kNpizm3yVJs,400
|
38
38
|
fastled/test/examples.py,sha256=GfaHeY1E8izBl6ZqDVjz--RHLyVR4NRnQ5pBesCFJFY,1673
|
39
|
-
fastled-1.3.
|
40
|
-
fastled-1.3.
|
41
|
-
fastled-1.3.
|
42
|
-
fastled-1.3.
|
43
|
-
fastled-1.3.
|
44
|
-
fastled-1.3.
|
39
|
+
fastled-1.3.24.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
|
40
|
+
fastled-1.3.24.dist-info/METADATA,sha256=x0AqwoUlYI7fGeJnr3t5VJb1SkbZ1wTeyW4fYGcpxyI,30811
|
41
|
+
fastled-1.3.24.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
42
|
+
fastled-1.3.24.dist-info/entry_points.txt,sha256=RCwmzCSOS4-C2i9EziANq7Z2Zb4KFnEMR1FQC0bBwAw,101
|
43
|
+
fastled-1.3.24.dist-info/top_level.txt,sha256=Bbv5kpJpZhWNCvDF4K0VcvtBSDMa8B7PTOrZa9CezHY,8
|
44
|
+
fastled-1.3.24.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|