fastled 1.3.21__tar.gz → 1.3.23__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.
Files changed (118) hide show
  1. {fastled-1.3.21 → fastled-1.3.23}/PKG-INFO +34 -8
  2. {fastled-1.3.21 → fastled-1.3.23}/README.md +33 -7
  3. fastled-1.3.23/requirements.docker.txt +1 -0
  4. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/__version__.py +1 -1
  5. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/client_server.py +1 -1
  6. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/string_diff.py +33 -0
  7. {fastled-1.3.21 → fastled-1.3.23}/src/fastled.egg-info/PKG-INFO +34 -8
  8. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_string_diff.py +12 -1
  9. fastled-1.3.21/requirements.docker.txt +0 -1
  10. {fastled-1.3.21 → fastled-1.3.23}/.aiderignore +0 -0
  11. {fastled-1.3.21 → fastled-1.3.23}/.dockerignore +0 -0
  12. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/build_multi_docker_image.yml +0 -0
  13. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/build_webpage.yml +0 -0
  14. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/lint.yml +0 -0
  15. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/publish_release.yml +0 -0
  16. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/template_build_docker_image.yml +0 -0
  17. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/test_build_exe.yml +0 -0
  18. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/test_macos.yml +0 -0
  19. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/test_ubuntu.yml +0 -0
  20. {fastled-1.3.21 → fastled-1.3.23}/.github/workflows/test_win.yml +0 -0
  21. {fastled-1.3.21 → fastled-1.3.23}/.gitignore +0 -0
  22. {fastled-1.3.21 → fastled-1.3.23}/.pylintrc +0 -0
  23. {fastled-1.3.21 → fastled-1.3.23}/.vscode/launch.json +0 -0
  24. {fastled-1.3.21 → fastled-1.3.23}/.vscode/settings.json +0 -0
  25. {fastled-1.3.21 → fastled-1.3.23}/.vscode/tasks.json +0 -0
  26. {fastled-1.3.21 → fastled-1.3.23}/DEBUGGER.md +0 -0
  27. {fastled-1.3.21 → fastled-1.3.23}/Dockerfile +0 -0
  28. {fastled-1.3.21 → fastled-1.3.23}/FAQ.md +0 -0
  29. {fastled-1.3.21 → fastled-1.3.23}/LICENSE +0 -0
  30. {fastled-1.3.21 → fastled-1.3.23}/MANIFEST.in +0 -0
  31. {fastled-1.3.21 → fastled-1.3.23}/RELEASE.md +0 -0
  32. {fastled-1.3.21 → fastled-1.3.23}/TODO.md +0 -0
  33. {fastled-1.3.21 → fastled-1.3.23}/build_exe.py +0 -0
  34. {fastled-1.3.21 → fastled-1.3.23}/build_local_docker.py +0 -0
  35. {fastled-1.3.21 → fastled-1.3.23}/build_site.py +0 -0
  36. {fastled-1.3.21 → fastled-1.3.23}/clean +0 -0
  37. {fastled-1.3.21 → fastled-1.3.23}/compiler/debug.sh +0 -0
  38. {fastled-1.3.21 → fastled-1.3.23}/compiler/run.py +0 -0
  39. {fastled-1.3.21 → fastled-1.3.23}/demo/100dots.html +0 -0
  40. {fastled-1.3.21 → fastled-1.3.23}/demo/demo_threejs.html +0 -0
  41. {fastled-1.3.21 → fastled-1.3.23}/demo/micdemo.html +0 -0
  42. {fastled-1.3.21 → fastled-1.3.23}/demo/mp3upload.html +0 -0
  43. {fastled-1.3.21 → fastled-1.3.23}/demo/webgl_postprocessing_unreal_bloom.html +0 -0
  44. {fastled-1.3.21 → fastled-1.3.23}/docker-compose.yml +0 -0
  45. {fastled-1.3.21 → fastled-1.3.23}/entrypoint.sh +0 -0
  46. {fastled-1.3.21 → fastled-1.3.23}/install +0 -0
  47. {fastled-1.3.21 → fastled-1.3.23}/install_linux.sh +0 -0
  48. {fastled-1.3.21 → fastled-1.3.23}/lint +0 -0
  49. {fastled-1.3.21 → fastled-1.3.23}/pyproject.toml +0 -0
  50. {fastled-1.3.21 → fastled-1.3.23}/requirements.testing.txt +0 -0
  51. {fastled-1.3.21 → fastled-1.3.23}/setup.cfg +0 -0
  52. {fastled-1.3.21 → fastled-1.3.23}/setup.py +0 -0
  53. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/__init__.py +0 -0
  54. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/app.py +0 -0
  55. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/args.py +0 -0
  56. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/assets/example.txt +0 -0
  57. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/assets/localhost-key.pem +0 -0
  58. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/assets/localhost.pem +0 -0
  59. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/cli.py +0 -0
  60. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/cli_test.py +0 -0
  61. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/cli_test_interactive.py +0 -0
  62. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/compile_server.py +0 -0
  63. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/compile_server_impl.py +0 -0
  64. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/docker_manager.py +0 -0
  65. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/filewatcher.py +0 -0
  66. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/keyboard.py +0 -0
  67. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/keyz.py +0 -0
  68. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/live_client.py +0 -0
  69. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/open_browser.py +0 -0
  70. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/parse_args.py +0 -0
  71. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/paths.py +0 -0
  72. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/print_filter.py +0 -0
  73. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/project_init.py +0 -0
  74. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/select_sketch_directory.py +0 -0
  75. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/server_flask.py +0 -0
  76. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/server_start.py +0 -0
  77. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/settings.py +0 -0
  78. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/site/build.py +0 -0
  79. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/site/examples.py +0 -0
  80. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/sketch.py +0 -0
  81. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/spinner.py +0 -0
  82. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/test/can_run_local_docker_tests.py +0 -0
  83. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/test/examples.py +0 -0
  84. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/types.py +0 -0
  85. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/util.py +0 -0
  86. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/version.py +0 -0
  87. {fastled-1.3.21 → fastled-1.3.23}/src/fastled/web_compile.py +0 -0
  88. {fastled-1.3.21 → fastled-1.3.23}/src/fastled.egg-info/SOURCES.txt +0 -0
  89. {fastled-1.3.21 → fastled-1.3.23}/src/fastled.egg-info/dependency_links.txt +0 -0
  90. {fastled-1.3.21 → fastled-1.3.23}/src/fastled.egg-info/entry_points.txt +0 -0
  91. {fastled-1.3.21 → fastled-1.3.23}/src/fastled.egg-info/requires.txt +0 -0
  92. {fastled-1.3.21 → fastled-1.3.23}/src/fastled.egg-info/top_level.txt +0 -0
  93. {fastled-1.3.21 → fastled-1.3.23}/test +0 -0
  94. {fastled-1.3.21 → fastled-1.3.23}/tests/integration/test_build_examples.py +0 -0
  95. {fastled-1.3.21 → fastled-1.3.23}/tests/integration/test_examples.py +0 -0
  96. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/html/index.html +0 -0
  97. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_api.py +0 -0
  98. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_bad_ino.py +0 -0
  99. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_banner_string.py +0 -0
  100. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_cli.py +0 -0
  101. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_compile_server.py +0 -0
  102. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_debug_fetch_source_files.py +0 -0
  103. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_docker_linux_on_windows.py +0 -0
  104. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_embedded_data.py +0 -0
  105. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_filechanger.py +0 -0
  106. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_http_server.py +0 -0
  107. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_ino/bad/bad.ino +0 -0
  108. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_ino/bad_platformio/bad_platformio.ino +0 -0
  109. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_ino/bad_platformio/platformio.ini +0 -0
  110. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_ino/embedded/data/bigdata.dat +0 -0
  111. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_ino/embedded/wasm.ino +0 -0
  112. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_ino/wasm/wasm.ino +0 -0
  113. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_project_init.py +0 -0
  114. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_server_and_client_seperatly.py +0 -0
  115. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_version.py +0 -0
  116. {fastled-1.3.21 → fastled-1.3.23}/tests/unit/test_webcompile.py +0 -0
  117. {fastled-1.3.21 → fastled-1.3.23}/upload_package.sh +0 -0
  118. {fastled-1.3.21 → fastled-1.3.23}/vscode-plugin/readme +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastled
3
- Version: 1.3.21
3
+ Version: 1.3.23
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -57,12 +57,44 @@ If you have docker installed, the compiler will download the docker image and ru
57
57
 
58
58
  In every conceivable way, the local compiler will be much faster than the web version.
59
59
 
60
+ # Run
61
+
62
+ Once `fastled` is installed you'll just navigate to your sketch directory and run it.
63
+
64
+ Example:
65
+
66
+ ```bash
67
+ $ cd mysketchdirectory
68
+ $ fastled
69
+ ```
70
+
60
71
 
61
72
  # Install
62
73
 
74
+ This is a python app, so any python package manager will work. We also provide python compiled binaries for Windows, MacOS, and Linux.
75
+
76
+ ### Pip
77
+
63
78
  `pip install fastled`
64
79
 
65
- ### Ubuntu Binaries
80
+ ### UV
81
+
82
+ `uv pip install fastled --system`
83
+
84
+ ### Pipx
85
+
86
+ `pipx install fastled`
87
+
88
+ ### Executables
89
+
90
+ * Windows: https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-windows-x64.zip
91
+ * MacOS (M1+): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-macos-arm64.zip
92
+ * MacOS (x86): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-macos-x64.zip
93
+ * Linux (x86): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-linux-x64.zip
94
+
95
+
96
+
97
+ ### Ubuntu Install Script
66
98
 
67
99
  You can get the latest ubuntu binary of the FastLED cli compiler like this:
68
100
 
@@ -70,12 +102,6 @@ You can get the latest ubuntu binary of the FastLED cli compiler like this:
70
102
  curl -L https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/install_linux.sh | /bin/bash
71
103
  ```
72
104
 
73
- # Run
74
-
75
- ```bash
76
- cd mysketchdirectory
77
- fastled
78
- ```
79
105
 
80
106
  # Tutorial video
81
107
 
@@ -30,12 +30,44 @@ If you have docker installed, the compiler will download the docker image and ru
30
30
 
31
31
  In every conceivable way, the local compiler will be much faster than the web version.
32
32
 
33
+ # Run
34
+
35
+ Once `fastled` is installed you'll just navigate to your sketch directory and run it.
36
+
37
+ Example:
38
+
39
+ ```bash
40
+ $ cd mysketchdirectory
41
+ $ fastled
42
+ ```
43
+
33
44
 
34
45
  # Install
35
46
 
47
+ This is a python app, so any python package manager will work. We also provide python compiled binaries for Windows, MacOS, and Linux.
48
+
49
+ ### Pip
50
+
36
51
  `pip install fastled`
37
52
 
38
- ### Ubuntu Binaries
53
+ ### UV
54
+
55
+ `uv pip install fastled --system`
56
+
57
+ ### Pipx
58
+
59
+ `pipx install fastled`
60
+
61
+ ### Executables
62
+
63
+ * Windows: https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-windows-x64.zip
64
+ * MacOS (M1+): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-macos-arm64.zip
65
+ * MacOS (x86): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-macos-x64.zip
66
+ * Linux (x86): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-linux-x64.zip
67
+
68
+
69
+
70
+ ### Ubuntu Install Script
39
71
 
40
72
  You can get the latest ubuntu binary of the FastLED cli compiler like this:
41
73
 
@@ -43,12 +75,6 @@ You can get the latest ubuntu binary of the FastLED cli compiler like this:
43
75
  curl -L https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/install_linux.sh | /bin/bash
44
76
  ```
45
77
 
46
- # Run
47
-
48
- ```bash
49
- cd mysketchdirectory
50
- fastled
51
- ```
52
78
 
53
79
  # Tutorial video
54
80
 
@@ -0,0 +1 @@
1
+ fastled-wasm-server>=1.0.76
@@ -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.21"
4
+ __version__ = "1.3.23"
5
5
 
6
6
  __version_url_latest__ = "https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/src/fastled/__version__.py"
@@ -372,7 +372,7 @@ def run_client(
372
372
  if has_update:
373
373
  print(f"\n🔄 {message}")
374
374
  print(
375
- "Run with --auto-update to automatically update to the latest version."
375
+ "Run with `fastled -u` to update the docker image to the latest version."
376
376
  )
377
377
  except Exception as e:
378
378
  # Don't let Docker check failures interrupt the main flow
@@ -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.21
3
+ Version: 1.3.23
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -57,12 +57,44 @@ If you have docker installed, the compiler will download the docker image and ru
57
57
 
58
58
  In every conceivable way, the local compiler will be much faster than the web version.
59
59
 
60
+ # Run
61
+
62
+ Once `fastled` is installed you'll just navigate to your sketch directory and run it.
63
+
64
+ Example:
65
+
66
+ ```bash
67
+ $ cd mysketchdirectory
68
+ $ fastled
69
+ ```
70
+
60
71
 
61
72
  # Install
62
73
 
74
+ This is a python app, so any python package manager will work. We also provide python compiled binaries for Windows, MacOS, and Linux.
75
+
76
+ ### Pip
77
+
63
78
  `pip install fastled`
64
79
 
65
- ### Ubuntu Binaries
80
+ ### UV
81
+
82
+ `uv pip install fastled --system`
83
+
84
+ ### Pipx
85
+
86
+ `pipx install fastled`
87
+
88
+ ### Executables
89
+
90
+ * Windows: https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-windows-x64.zip
91
+ * MacOS (M1+): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-macos-arm64.zip
92
+ * MacOS (x86): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-macos-x64.zip
93
+ * Linux (x86): https://github.com/zackees/fastled-wasm/releases/latest/download/fastled-linux-x64.zip
94
+
95
+
96
+
97
+ ### Ubuntu Install Script
66
98
 
67
99
  You can get the latest ubuntu binary of the FastLED cli compiler like this:
68
100
 
@@ -70,12 +102,6 @@ You can get the latest ubuntu binary of the FastLED cli compiler like this:
70
102
  curl -L https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/install_linux.sh | /bin/bash
71
103
  ```
72
104
 
73
- # Run
74
-
75
- ```bash
76
- cd mysketchdirectory
77
- fastled
78
- ```
79
105
 
80
106
  # Tutorial video
81
107
 
@@ -1,6 +1,6 @@
1
1
  import unittest
2
2
 
3
- from fastled.string_diff import string_diff
3
+ from fastled.string_diff import is_in_order_match, string_diff
4
4
 
5
5
  _HAYSTACK: list[str] = [
6
6
  "examples\\AnalogOutput",
@@ -75,6 +75,17 @@ class StringDiffTester(unittest.TestCase):
75
75
  _, path = result[0]
76
76
  self.assertEqual("examples\\FxWave2d", path)
77
77
 
78
+ def test_is_in_order_match(self) -> None:
79
+ is_match = is_in_order_match("wave 2d", "wave2d")
80
+ self.assertTrue(is_match)
81
+
82
+ def test_wave_2d(self) -> None:
83
+ needle = "wave 2d"
84
+ result = string_diff(needle, _HAYSTACK)
85
+ self.assertGreater(len(result), 0)
86
+ _, path = result[0]
87
+ self.assertEqual("examples\\Wave2d", path)
88
+
78
89
 
79
90
  if __name__ == "__main__":
80
91
  unittest.main()
@@ -1 +0,0 @@
1
- fastled-wasm-server>=1.0.74
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes