fastled 1.1.38__tar.gz → 1.1.41__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 (110) hide show
  1. {fastled-1.1.38/src/fastled.egg-info → fastled-1.1.41}/PKG-INFO +45 -7
  2. fastled-1.1.38/PKG-INFO → fastled-1.1.41/README.md +298 -283
  3. fastled-1.1.41/build_exe.py +48 -0
  4. {fastled-1.1.38 → fastled-1.1.41}/lint +7 -5
  5. {fastled-1.1.38 → fastled-1.1.41}/requirements.testing.txt +1 -0
  6. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/__init__.py +23 -5
  7. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/client_server.py +97 -58
  8. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/compile_server.py +4 -1
  9. fastled-1.1.41/src/fastled/live_client.py +69 -0
  10. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/parse_args.py +1 -1
  11. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/project_init.py +5 -2
  12. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/types.py +14 -0
  13. fastled-1.1.38/README.md → fastled-1.1.41/src/fastled.egg-info/PKG-INFO +321 -260
  14. {fastled-1.1.38 → fastled-1.1.41}/src/fastled.egg-info/SOURCES.txt +2 -0
  15. {fastled-1.1.38 → fastled-1.1.41}/test +2 -2
  16. fastled-1.1.41/tests/test_api.py +62 -0
  17. {fastled-1.1.38 → fastled-1.1.41}/tests/test_project_init.py +19 -5
  18. fastled-1.1.38/tests/test_api.py +0 -24
  19. {fastled-1.1.38 → fastled-1.1.41}/.aiderignore +0 -0
  20. {fastled-1.1.38 → fastled-1.1.41}/.github/workflows/build_multi_docker_image.yml +0 -0
  21. {fastled-1.1.38 → fastled-1.1.41}/.github/workflows/lint.yml +0 -0
  22. {fastled-1.1.38 → fastled-1.1.41}/.github/workflows/test_macos.yml +0 -0
  23. {fastled-1.1.38 → fastled-1.1.41}/.github/workflows/test_ubuntu.yml +0 -0
  24. {fastled-1.1.38 → fastled-1.1.41}/.github/workflows/test_win.yml +0 -0
  25. {fastled-1.1.38 → fastled-1.1.41}/.gitignore +0 -0
  26. {fastled-1.1.38 → fastled-1.1.41}/.pylintrc +0 -0
  27. {fastled-1.1.38 → fastled-1.1.41}/.vscode/launch.json +0 -0
  28. {fastled-1.1.38 → fastled-1.1.41}/.vscode/settings.json +0 -0
  29. {fastled-1.1.38 → fastled-1.1.41}/.vscode/tasks.json +0 -0
  30. {fastled-1.1.38 → fastled-1.1.41}/LICENSE +0 -0
  31. {fastled-1.1.38 → fastled-1.1.41}/MANIFEST.in +0 -0
  32. {fastled-1.1.38 → fastled-1.1.41}/clean +0 -0
  33. {fastled-1.1.38 → fastled-1.1.41}/docs/fastled.js +0 -0
  34. {fastled-1.1.38 → fastled-1.1.41}/docs/fastled.wasm +0 -0
  35. {fastled-1.1.38 → fastled-1.1.41}/docs/index.css +0 -0
  36. {fastled-1.1.38 → fastled-1.1.41}/docs/index.html +0 -0
  37. {fastled-1.1.38 → fastled-1.1.41}/docs/index.js +0 -0
  38. {fastled-1.1.38 → fastled-1.1.41}/examples/Blink/Blink.ino +0 -0
  39. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/Chromancer.ino +0 -0
  40. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/detail.h +0 -0
  41. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/gary_woos_wled_port/gary_woos_wled_ledmap.h +0 -0
  42. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/gary_woos_wled_port/presets.json +0 -0
  43. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/gary_woos_wled_port/presets.min.json +0 -0
  44. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/gen.py +0 -0
  45. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/mapping.h +0 -0
  46. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/net.h +0 -0
  47. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/output.json +0 -0
  48. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/ripple.h +0 -0
  49. {fastled-1.1.38 → fastled-1.1.41}/examples/Chromancer/screenmap.json.h +0 -0
  50. {fastled-1.1.38 → fastled-1.1.41}/examples/ColorPalette/ColorPalette.ino +0 -0
  51. {fastled-1.1.38 → fastled-1.1.41}/examples/ColorTemperature/ColorTemperature.ino +0 -0
  52. {fastled-1.1.38 → fastled-1.1.41}/examples/Cylon/Cylon.ino +0 -0
  53. {fastled-1.1.38 → fastled-1.1.41}/examples/DemoReel100/DemoReel100.ino +0 -0
  54. {fastled-1.1.38 → fastled-1.1.41}/examples/Esp32Rmt51/Esp32Rmt51.ino +0 -0
  55. {fastled-1.1.38 → fastled-1.1.41}/examples/EspI2SDemo/EspI2SDemo.ino +0 -0
  56. {fastled-1.1.38 → fastled-1.1.41}/examples/Fire2012/Fire2012.ino +0 -0
  57. {fastled-1.1.38 → fastled-1.1.41}/examples/Fire2012WithPalette/Fire2012WithPalette.ino +0 -0
  58. {fastled-1.1.38 → fastled-1.1.41}/examples/FirstLight/FirstLight.ino +0 -0
  59. {fastled-1.1.38 → fastled-1.1.41}/examples/FxEngine/FxEngine.ino +0 -0
  60. {fastled-1.1.38 → fastled-1.1.41}/examples/Noise/Noise.ino +0 -0
  61. {fastled-1.1.38 → fastled-1.1.41}/examples/NoisePlayground/NoisePlayground.ino +0 -0
  62. {fastled-1.1.38 → fastled-1.1.41}/examples/NoisePlusPalette/NoisePlusPalette.ino +0 -0
  63. {fastled-1.1.38 → fastled-1.1.41}/examples/OctoWS2811/OctoWS2811.ino +0 -0
  64. {fastled-1.1.38 → fastled-1.1.41}/examples/Pacifica/Pacifica.ino +0 -0
  65. {fastled-1.1.38 → fastled-1.1.41}/examples/Pride2015/Pride2015.ino +0 -0
  66. {fastled-1.1.38 → fastled-1.1.41}/examples/TwinkleFox/TwinkleFox.ino +0 -0
  67. {fastled-1.1.38 → fastled-1.1.41}/examples/Video/Gfx2Video/Gfx2Video.ino +0 -0
  68. {fastled-1.1.38 → fastled-1.1.41}/examples/WasmScreenCoords/WasmScreenCoords.ino +0 -0
  69. {fastled-1.1.38 → fastled-1.1.41}/examples/Water/Water.ino +0 -0
  70. {fastled-1.1.38 → fastled-1.1.41}/examples/XYMatrix/XYMatrix.ino +0 -0
  71. {fastled-1.1.38 → fastled-1.1.41}/examples/wasm/wasm.ino +0 -0
  72. {fastled-1.1.38 → fastled-1.1.41}/install +0 -0
  73. {fastled-1.1.38 → fastled-1.1.41}/pyproject.toml +0 -0
  74. {fastled-1.1.38 → fastled-1.1.41}/setup.cfg +0 -0
  75. {fastled-1.1.38 → fastled-1.1.41}/setup.py +0 -0
  76. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/app.py +0 -0
  77. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/assets/example.txt +0 -0
  78. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/cli.py +0 -0
  79. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/compile_server_impl.py +0 -0
  80. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/docker_manager.py +0 -0
  81. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/filewatcher.py +0 -0
  82. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/keyboard.py +0 -0
  83. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/open_browser.py +0 -0
  84. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/paths.py +0 -0
  85. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/select_sketch_directory.py +0 -0
  86. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/settings.py +0 -0
  87. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/sketch.py +0 -0
  88. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/spinner.py +0 -0
  89. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/string_diff.py +0 -0
  90. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/test/examples.py +0 -0
  91. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/util.py +0 -0
  92. {fastled-1.1.38 → fastled-1.1.41}/src/fastled/web_compile.py +0 -0
  93. {fastled-1.1.38 → fastled-1.1.41}/src/fastled.egg-info/dependency_links.txt +0 -0
  94. {fastled-1.1.38 → fastled-1.1.41}/src/fastled.egg-info/entry_points.txt +0 -0
  95. {fastled-1.1.38 → fastled-1.1.41}/src/fastled.egg-info/requires.txt +0 -0
  96. {fastled-1.1.38 → fastled-1.1.41}/src/fastled.egg-info/top_level.txt +0 -0
  97. {fastled-1.1.38 → fastled-1.1.41}/tests/test_bad_ino.py +0 -0
  98. {fastled-1.1.38 → fastled-1.1.41}/tests/test_cli.py +0 -0
  99. {fastled-1.1.38 → fastled-1.1.41}/tests/test_compile_server.py +0 -0
  100. {fastled-1.1.38 → fastled-1.1.41}/tests/test_docker_linux_on_windows.py +0 -0
  101. {fastled-1.1.38 → fastled-1.1.41}/tests/test_embedded_data.py +0 -0
  102. {fastled-1.1.38 → fastled-1.1.41}/tests/test_examples.py +0 -0
  103. {fastled-1.1.38 → fastled-1.1.41}/tests/test_filechanger.py +0 -0
  104. {fastled-1.1.38 → fastled-1.1.41}/tests/test_ino/bad/bad.ino +0 -0
  105. {fastled-1.1.38 → fastled-1.1.41}/tests/test_ino/embedded/data/bigdata.dat +0 -0
  106. {fastled-1.1.38 → fastled-1.1.41}/tests/test_ino/embedded/wasm.ino +0 -0
  107. {fastled-1.1.38 → fastled-1.1.41}/tests/test_ino/wasm/wasm.ino +0 -0
  108. {fastled-1.1.38 → fastled-1.1.41}/tests/test_server_and_client_seperatly.py +0 -0
  109. {fastled-1.1.38 → fastled-1.1.41}/tests/test_webcompile.py +0 -0
  110. {fastled-1.1.38 → fastled-1.1.41}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastled
3
- Version: 1.1.38
3
+ Version: 1.1.41
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -27,11 +27,14 @@ Compiles an Arduino/Platformio sketch into a wasm binary that can be run directl
27
27
 
28
28
 
29
29
  [![Linting](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/lint.yml)
30
- [![Build and Push Multi Docker Image](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml)
31
30
  [![MacOS_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_macos.yml)
32
31
  [![Ubuntu_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_ubuntu.yml)
33
32
  [![Win_Tests](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_win.yml)
34
33
 
34
+ [![Build and Push Multi Docker Image](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_multi_docker_image.yml)
35
+ [![Build Executables](https://github.com/zackees/fastled-wasm/actions/workflows/test_build_exe.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/test_build_exe.yml)
36
+ [![Create Version Tag](https://github.com/zackees/fastled-wasm/actions/workflows/create_version_tag.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/create_version_tag.yml)
37
+ [![Build and Publish Release](https://github.com/zackees/fastled-wasm/actions/workflows/build_release.yml/badge.svg)](https://github.com/zackees/fastled-wasm/actions/workflows/build_release.yml)
35
38
 
36
39
 
37
40
  # About
@@ -148,6 +151,35 @@ with Api.server() as server:
148
151
 
149
152
  ```
150
153
 
154
+ **LiveClient will auto-trigger a build on code changes, just like the cli does**
155
+ ```python
156
+
157
+ # Live Client will compile against the web-compiler
158
+ from fastapi import Api, LiveClient
159
+ client: LiveClient = Api.live_client(
160
+ "path/to/sketch_directory",
161
+ )
162
+ # Now user can start editing their sketch and it will auto-compile
163
+ # ... after a while stop it like this.
164
+ client.stop()
165
+ ```
166
+
167
+ **LiveClient with local CompileServer**
168
+ ```python
169
+
170
+ # Live Client will compile against a local server.
171
+ from fastapi import Api, LiveClient
172
+
173
+ with Api.server() as server:
174
+ client: LiveClient = Api.live_client(
175
+ "path/to/sketch_directory",
176
+ host=server
177
+ )
178
+ # Now user can start editing their sketch and it will auto-compile
179
+ # ... after a while stop it like this.
180
+ client.stop()
181
+ ```
182
+
151
183
  # Features
152
184
 
153
185
  ## Hot reload by default
@@ -168,11 +200,15 @@ can be much longer, for example if you modify a header file.
168
200
  Huge blobs of data like video will absolutely kill the compile performance as these blobs would normally have to be shuffled
169
201
  back and forth. Therefore a special directory `data/` is implicitly used to hold this blob data. Any data in this directory
170
202
  will be replaced with a stub containing the size and hash of the file during upload. On download these stubs are swapped back
171
- with their originals.
203
+ with their originals during decompression.
172
204
 
173
205
  The wasm compiler will recognize all files in the `data/` directory and generate a `files.json` manifest and can be used
174
206
  in your wasm sketch using an emulated SD card system mounted at `/data/` on the SD Card. In order to increase load speed, these
175
- files will be asynchroniously streamed into the running sketch instance during runtime. The only caveat here is that although these files will be available during the setup() phase of the sketch, they will not be fully hydrated, so if you do a seek(end) of these files the results are undefined.
207
+ files will be asynchroniously streamed into the running sketch instance during runtime. Files named with *.json, *.csv, *.txt will be
208
+ immediately injected in the app before setup() is called and can be used immediatly in setup() in their entirety.
209
+
210
+ All other files will be streamed in. The `Video` element in FastLED is designed to gracefully handle missing data streamed in through
211
+ the file system.
176
212
 
177
213
  For an example of how to use this see `examples/SdCard` which is fully wasm compatible.
178
214
 
@@ -184,11 +220,9 @@ We use `ccache` to cache object files. This seems actually help a lot and is bet
184
220
 
185
221
  The compilation to wasm will happen under a lock. Removing this lock requires removing the platformio toolchain as the compiler backend which enforces it's own internal lock preventing parallel use.
186
222
 
187
- Simple syntax errors will be caught by the pre-processing step. This happens without a lock to reduce the single lock bottleneck.
188
-
189
223
  ## Sketch Cache
190
224
 
191
- Sketchs are aggresively finger-printed and stored in a cache. White space, comments, and other superficial data will be stripped out during pre-processing and minimization for fingerprinting. This source file decimation is only used for finger
225
+ Sketchs are aggressively finger-printed and stored in a cache. White space, comments, and other superficial data will be stripped out during pre-processing and minimization for fingerprinting. This source file decimation is only used for finger
192
226
  printing while the actual source files are sent to compiler to preserve line numbers and file names.
193
227
 
194
228
  This pre-processing done is done via gcc and special regex's and will happen without a lock. This will allow you to have extremely quick recompiles for whitespace and changes in comments even if the compiler is executing under it's lock.
@@ -223,8 +257,12 @@ A: `delay()` will block `loop()` which blocks the main thread of the browser. Th
223
257
  Q: How can I get the compiled size of my FastLED sketch smaller?
224
258
  A: A big chunk of space is being used by unnecessary javascript `emscripten` is bundling. This can be tweeked by the wasm_compiler_settings.py file in the FastLED repo.
225
259
 
260
+
226
261
  # Revisions
227
262
 
263
+ * 1.1.41 - Platform executable (through pyinstaller) now enabled.
264
+ * 1.1.40 - Remove `sketch_directory` from Api object. This was only needed before we had a client/server architecture.
265
+ * 1.1.39 - Added `LiveClient`, `fastled.Api.live_server()` will spawn it. Allows user to have a live compiling client that re-triggers a compile on file changes.
228
266
  * 1.1.38 - Cleanup the `fastled.Api` object and streamline for general use.
229
267
  * 1.1.37 - `Test.test_examples()` is now unit tested to work correctly.
230
268
  * 1.1.36 - We now have an api. `from fastled import Api` and `from fastled import Test` for testing.