fastled 1.1.38__tar.gz → 1.1.39__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.
- {fastled-1.1.38/src/fastled.egg-info → fastled-1.1.39}/PKG-INFO +38 -6
- fastled-1.1.38/PKG-INFO → fastled-1.1.39/README.md +292 -283
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/__init__.py +22 -1
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/client_server.py +91 -58
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/compile_server.py +4 -1
- fastled-1.1.39/src/fastled/live_client.py +69 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/types.py +14 -0
- fastled-1.1.38/README.md → fastled-1.1.39/src/fastled.egg-info/PKG-INFO +315 -260
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled.egg-info/SOURCES.txt +1 -0
- fastled-1.1.39/tests/test_api.py +43 -0
- fastled-1.1.38/tests/test_api.py +0 -24
- {fastled-1.1.38 → fastled-1.1.39}/.aiderignore +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.github/workflows/build_multi_docker_image.yml +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.github/workflows/lint.yml +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.github/workflows/test_macos.yml +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.github/workflows/test_ubuntu.yml +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.github/workflows/test_win.yml +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.gitignore +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.pylintrc +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.vscode/launch.json +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.vscode/settings.json +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/.vscode/tasks.json +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/LICENSE +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/MANIFEST.in +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/clean +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/docs/fastled.js +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/docs/fastled.wasm +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/docs/index.css +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/docs/index.html +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/docs/index.js +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Blink/Blink.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/Chromancer.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/detail.h +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/gary_woos_wled_port/gary_woos_wled_ledmap.h +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/gary_woos_wled_port/presets.json +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/gary_woos_wled_port/presets.min.json +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/gen.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/mapping.h +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/net.h +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/output.json +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/ripple.h +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Chromancer/screenmap.json.h +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/ColorPalette/ColorPalette.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/ColorTemperature/ColorTemperature.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Cylon/Cylon.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/DemoReel100/DemoReel100.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Esp32Rmt51/Esp32Rmt51.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/EspI2SDemo/EspI2SDemo.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Fire2012/Fire2012.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Fire2012WithPalette/Fire2012WithPalette.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/FirstLight/FirstLight.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/FxEngine/FxEngine.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Noise/Noise.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/NoisePlayground/NoisePlayground.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/NoisePlusPalette/NoisePlusPalette.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/OctoWS2811/OctoWS2811.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Pacifica/Pacifica.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Pride2015/Pride2015.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/TwinkleFox/TwinkleFox.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Video/Gfx2Video/Gfx2Video.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/WasmScreenCoords/WasmScreenCoords.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/Water/Water.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/XYMatrix/XYMatrix.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/examples/wasm/wasm.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/install +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/lint +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/pyproject.toml +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/requirements.testing.txt +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/setup.cfg +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/setup.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/app.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/assets/example.txt +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/cli.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/compile_server_impl.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/docker_manager.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/filewatcher.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/keyboard.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/open_browser.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/parse_args.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/paths.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/project_init.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/select_sketch_directory.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/settings.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/sketch.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/spinner.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/string_diff.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/test/examples.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/util.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled/web_compile.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled.egg-info/dependency_links.txt +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled.egg-info/entry_points.txt +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled.egg-info/requires.txt +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/src/fastled.egg-info/top_level.txt +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/test +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_bad_ino.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_cli.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_compile_server.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_docker_linux_on_windows.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_embedded_data.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_examples.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_filechanger.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_ino/bad/bad.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_ino/embedded/data/bigdata.dat +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_ino/embedded/wasm.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_ino/wasm/wasm.ino +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_project_init.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_server_and_client_seperatly.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/tests/test_webcompile.py +0 -0
- {fastled-1.1.38 → fastled-1.1.39}/upload_package.sh +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fastled
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.39
|
4
4
|
Summary: FastLED Wasm Compiler
|
5
5
|
Home-page: https://github.com/zackees/fastled-wasm
|
6
6
|
Maintainer: Zachary Vorhies
|
@@ -148,6 +148,35 @@ with Api.server() as server:
|
|
148
148
|
|
149
149
|
```
|
150
150
|
|
151
|
+
**LiveClient will auto-trigger a build on code changes, just like the cli does**
|
152
|
+
```python
|
153
|
+
|
154
|
+
# Live Client will compile against the web-compiler
|
155
|
+
from fastapi import Api, LiveClient
|
156
|
+
client: LiveClient = Api.live_client(
|
157
|
+
"path/to/sketch_directory",
|
158
|
+
)
|
159
|
+
# Now user can start editing their sketch and it will auto-compile
|
160
|
+
# ... after a while stop it like this.
|
161
|
+
client.stop()
|
162
|
+
```
|
163
|
+
|
164
|
+
**LiveClient with local CompileServer**
|
165
|
+
```python
|
166
|
+
|
167
|
+
# Live Client will compile against a local server.
|
168
|
+
from fastapi import Api, LiveClient
|
169
|
+
|
170
|
+
with Api.server() as server:
|
171
|
+
client: LiveClient = Api.live_client(
|
172
|
+
"path/to/sketch_directory",
|
173
|
+
host=server
|
174
|
+
)
|
175
|
+
# Now user can start editing their sketch and it will auto-compile
|
176
|
+
# ... after a while stop it like this.
|
177
|
+
client.stop()
|
178
|
+
```
|
179
|
+
|
151
180
|
# Features
|
152
181
|
|
153
182
|
## Hot reload by default
|
@@ -168,11 +197,15 @@ can be much longer, for example if you modify a header file.
|
|
168
197
|
Huge blobs of data like video will absolutely kill the compile performance as these blobs would normally have to be shuffled
|
169
198
|
back and forth. Therefore a special directory `data/` is implicitly used to hold this blob data. Any data in this directory
|
170
199
|
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.
|
200
|
+
with their originals during decompression.
|
172
201
|
|
173
202
|
The wasm compiler will recognize all files in the `data/` directory and generate a `files.json` manifest and can be used
|
174
203
|
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.
|
204
|
+
files will be asynchroniously streamed into the running sketch instance during runtime. Files named with *.json, *.csv, *.txt will be
|
205
|
+
immediately injected in the app before setup() is called and can be used immediatly in setup() in their entirety.
|
206
|
+
|
207
|
+
All other files will be streamed in. The `Video` element in FastLED is designed to gracefully handle missing data streamed in through
|
208
|
+
the file system.
|
176
209
|
|
177
210
|
For an example of how to use this see `examples/SdCard` which is fully wasm compatible.
|
178
211
|
|
@@ -184,11 +217,9 @@ We use `ccache` to cache object files. This seems actually help a lot and is bet
|
|
184
217
|
|
185
218
|
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
219
|
|
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
220
|
## Sketch Cache
|
190
221
|
|
191
|
-
Sketchs are
|
222
|
+
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
223
|
printing while the actual source files are sent to compiler to preserve line numbers and file names.
|
193
224
|
|
194
225
|
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.
|
@@ -225,6 +256,7 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` is
|
|
225
256
|
|
226
257
|
# Revisions
|
227
258
|
|
259
|
+
* 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
260
|
* 1.1.38 - Cleanup the `fastled.Api` object and streamline for general use.
|
229
261
|
* 1.1.37 - `Test.test_examples()` is now unit tested to work correctly.
|
230
262
|
* 1.1.36 - We now have an api. `from fastled import Api` and `from fastled import Test` for testing.
|