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 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.22"
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("examples/FxWave2d")
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 RuntimeError:
173
- print("Failed to start local compile server, using web compiler instead.")
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
- print(f"Error: {e}")
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
@@ -187,7 +187,10 @@ class CompileServerImpl:
187
187
  print("Compiling server starting")
188
188
 
189
189
  # Ensure Docker is running
190
- if not self.docker.is_running():
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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastled
3
- Version: 1.3.22
3
+ Version: 1.3.24
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -1,14 +1,14 @@
1
1
  fastled/__init__.py,sha256=YLikXGRWKlKAqj7bpvGmJLejGTFF-FC1lv2z1jwRinA,6852
2
- fastled/__version__.py,sha256=_4AgBx0G-FHJeXJewp3u6XWWmAYOQfwJfMiH_LbBdY4,373
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=qJB9yLRFR3OwOwdIWSQ0fQsWLnA37v5pDccufiP_hTs,512
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=1pHJsAchO4imTH-TxcMPDIDTJ5j5Ev6nk_vtOL1JPJs,18600
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=S9jaAMgaprrjW9oF0J4_H-QJc6OeNRmoFCt07RsXTkI,11644
11
- fastled/docker_manager.py,sha256=RzXeTyGTtzeAclUkk_RPk_eksUSjOOgPND3Mehu5zRs,40232
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=vcWEsjvjS81Go_p9HaXibihU-5w327IzHtkC2gmSZpw,16192
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=NbtYxvBFxTUdmTpMLizlgZj2ULJ-7etj72GBdWDTGws,2496
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.22.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
40
- fastled-1.3.22.dist-info/METADATA,sha256=qulriPCzgr67OuJOgOd3D0oNnPruOiIS4bqplSsRb8c,30811
41
- fastled-1.3.22.dist-info/WHEEL,sha256=zaaOINJESkSfm_4HQVc5ssNzHCPXhJm0kEUakpsEHaU,91
42
- fastled-1.3.22.dist-info/entry_points.txt,sha256=RCwmzCSOS4-C2i9EziANq7Z2Zb4KFnEMR1FQC0bBwAw,101
43
- fastled-1.3.22.dist-info/top_level.txt,sha256=Bbv5kpJpZhWNCvDF4K0VcvtBSDMa8B7PTOrZa9CezHY,8
44
- fastled-1.3.22.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.8.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5