fastled 1.3.5__tar.gz → 1.3.10__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 (125) hide show
  1. {fastled-1.3.5 → fastled-1.3.10}/PKG-INFO +1 -1
  2. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/__version__.py +1 -1
  3. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/app.py +2 -1
  4. fastled-1.3.5/src/fastled/types.py → fastled-1.3.10/src/fastled/args.py +1 -75
  5. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/client_server.py +12 -6
  6. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/docker_manager.py +7 -0
  7. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/parse_args.py +1 -1
  8. fastled-1.3.10/src/fastled/types.py +77 -0
  9. {fastled-1.3.5 → fastled-1.3.10}/src/fastled.egg-info/PKG-INFO +1 -1
  10. {fastled-1.3.5 → fastled-1.3.10}/src/fastled.egg-info/SOURCES.txt +1 -0
  11. {fastled-1.3.5 → fastled-1.3.10}/.aiderignore +0 -0
  12. {fastled-1.3.5 → fastled-1.3.10}/.dockerignore +0 -0
  13. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/build_multi_docker_image.yml +0 -0
  14. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/build_webpage.yml +0 -0
  15. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/lint.yml +0 -0
  16. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/publish_release.yml +0 -0
  17. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/template_build_docker_image.yml +0 -0
  18. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/test_build_exe.yml +0 -0
  19. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/test_macos.yml +0 -0
  20. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/test_ubuntu.yml +0 -0
  21. {fastled-1.3.5 → fastled-1.3.10}/.github/workflows/test_win.yml +0 -0
  22. {fastled-1.3.5 → fastled-1.3.10}/.gitignore +0 -0
  23. {fastled-1.3.5 → fastled-1.3.10}/.pylintrc +0 -0
  24. {fastled-1.3.5 → fastled-1.3.10}/.vscode/launch.json +0 -0
  25. {fastled-1.3.5 → fastled-1.3.10}/.vscode/settings.json +0 -0
  26. {fastled-1.3.5 → fastled-1.3.10}/.vscode/tasks.json +0 -0
  27. {fastled-1.3.5 → fastled-1.3.10}/Dockerfile +0 -0
  28. {fastled-1.3.5 → fastled-1.3.10}/LICENSE +0 -0
  29. {fastled-1.3.5 → fastled-1.3.10}/MANIFEST.in +0 -0
  30. {fastled-1.3.5 → fastled-1.3.10}/README.md +0 -0
  31. {fastled-1.3.5 → fastled-1.3.10}/RELEASE.md +0 -0
  32. {fastled-1.3.5 → fastled-1.3.10}/TODO.md +0 -0
  33. {fastled-1.3.5 → fastled-1.3.10}/build_exe.py +0 -0
  34. {fastled-1.3.5 → fastled-1.3.10}/build_local_docker.py +0 -0
  35. {fastled-1.3.5 → fastled-1.3.10}/build_site.py +0 -0
  36. {fastled-1.3.5 → fastled-1.3.10}/clean +0 -0
  37. {fastled-1.3.5 → fastled-1.3.10}/compiler/CMakeLists.txt +0 -0
  38. {fastled-1.3.5 → fastled-1.3.10}/compiler/arduino-pre-process.sh +0 -0
  39. {fastled-1.3.5 → fastled-1.3.10}/compiler/debug.sh +0 -0
  40. {fastled-1.3.5 → fastled-1.3.10}/compiler/entrypoint.sh +0 -0
  41. {fastled-1.3.5 → fastled-1.3.10}/compiler/final_prewarm.sh +0 -0
  42. {fastled-1.3.5 → fastled-1.3.10}/compiler/init_runtime.py +0 -0
  43. {fastled-1.3.5 → fastled-1.3.10}/compiler/install-arduino-cli.sh +0 -0
  44. {fastled-1.3.5 → fastled-1.3.10}/compiler/libcompile/CMakeLists.txt +0 -0
  45. {fastled-1.3.5 → fastled-1.3.10}/compiler/prewarm.sh +0 -0
  46. {fastled-1.3.5 → fastled-1.3.10}/compiler/process-ino.py +0 -0
  47. {fastled-1.3.5 → fastled-1.3.10}/compiler/pyproject.toml +0 -0
  48. {fastled-1.3.5 → fastled-1.3.10}/compiler/run.py +0 -0
  49. {fastled-1.3.5 → fastled-1.3.10}/demo/100dots.html +0 -0
  50. {fastled-1.3.5 → fastled-1.3.10}/demo/demo_threejs.html +0 -0
  51. {fastled-1.3.5 → fastled-1.3.10}/demo/micdemo.html +0 -0
  52. {fastled-1.3.5 → fastled-1.3.10}/demo/mp3upload.html +0 -0
  53. {fastled-1.3.5 → fastled-1.3.10}/demo/webgl_postprocessing_unreal_bloom.html +0 -0
  54. {fastled-1.3.5 → fastled-1.3.10}/docker-compose.yml +0 -0
  55. {fastled-1.3.5 → fastled-1.3.10}/install +0 -0
  56. {fastled-1.3.5 → fastled-1.3.10}/install_linux.sh +0 -0
  57. {fastled-1.3.5 → fastled-1.3.10}/lint +0 -0
  58. {fastled-1.3.5 → fastled-1.3.10}/pyproject.toml +0 -0
  59. {fastled-1.3.5 → fastled-1.3.10}/requirements.testing.txt +0 -0
  60. {fastled-1.3.5 → fastled-1.3.10}/setup.cfg +0 -0
  61. {fastled-1.3.5 → fastled-1.3.10}/setup.py +0 -0
  62. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/__init__.py +0 -0
  63. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/assets/example.txt +0 -0
  64. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/assets/localhost-key.pem +0 -0
  65. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/assets/localhost.pem +0 -0
  66. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/cli.py +0 -0
  67. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/cli_test.py +0 -0
  68. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/cli_test_interactive.py +0 -0
  69. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/compile_server.py +0 -0
  70. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/compile_server_impl.py +0 -0
  71. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/filewatcher.py +0 -0
  72. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/keyboard.py +0 -0
  73. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/keyz.py +0 -0
  74. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/live_client.py +0 -0
  75. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/open_browser.py +0 -0
  76. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/paths.py +0 -0
  77. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/print_filter.py +0 -0
  78. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/project_init.py +0 -0
  79. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/select_sketch_directory.py +0 -0
  80. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/server_flask.py +0 -0
  81. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/server_start.py +0 -0
  82. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/settings.py +0 -0
  83. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/site/build.py +0 -0
  84. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/site/examples.py +0 -0
  85. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/sketch.py +0 -0
  86. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/spinner.py +0 -0
  87. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/string_diff.py +0 -0
  88. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/test/can_run_local_docker_tests.py +0 -0
  89. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/test/examples.py +0 -0
  90. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/util.py +0 -0
  91. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/version.py +0 -0
  92. {fastled-1.3.5 → fastled-1.3.10}/src/fastled/web_compile.py +0 -0
  93. {fastled-1.3.5 → fastled-1.3.10}/src/fastled.egg-info/dependency_links.txt +0 -0
  94. {fastled-1.3.5 → fastled-1.3.10}/src/fastled.egg-info/entry_points.txt +0 -0
  95. {fastled-1.3.5 → fastled-1.3.10}/src/fastled.egg-info/requires.txt +0 -0
  96. {fastled-1.3.5 → fastled-1.3.10}/src/fastled.egg-info/top_level.txt +0 -0
  97. {fastled-1.3.5 → fastled-1.3.10}/test +0 -0
  98. {fastled-1.3.5 → fastled-1.3.10}/tests/integration/test_build_examples.py +0 -0
  99. {fastled-1.3.5 → fastled-1.3.10}/tests/integration/test_examples.py +0 -0
  100. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/html/index.html +0 -0
  101. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_api.py +0 -0
  102. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_bad_ino.py +0 -0
  103. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_cli.py +0 -0
  104. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_compile_server.py +0 -0
  105. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_debug_fetch_source_files.py +0 -0
  106. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_docker_linux_on_windows.py +0 -0
  107. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_embedded_data.py +0 -0
  108. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_experimental_cpp_filter.py +0 -0
  109. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_filechanger.py +0 -0
  110. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_http_server.py +0 -0
  111. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_ino/bad/bad.ino +0 -0
  112. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_ino/bad_platformio/bad_platformio.ino +0 -0
  113. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_ino/bad_platformio/platformio.ini +0 -0
  114. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_ino/embedded/data/bigdata.dat +0 -0
  115. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_ino/embedded/wasm.ino +0 -0
  116. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_ino/wasm/wasm.ino +0 -0
  117. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_print_filter.py +0 -0
  118. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_project_init.py +0 -0
  119. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_server_and_client_seperatly.py +0 -0
  120. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_string_diff.py +0 -0
  121. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_version.py +0 -0
  122. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_version_matches.py +0 -0
  123. {fastled-1.3.5 → fastled-1.3.10}/tests/unit/test_webcompile.py +0 -0
  124. {fastled-1.3.5 → fastled-1.3.10}/upload_package.sh +0 -0
  125. {fastled-1.3.5 → fastled-1.3.10}/vscode-plugin/readme +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastled
3
- Version: 1.3.5
3
+ Version: 1.3.10
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -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.5"
4
+ __version__ = "1.3.10"
5
5
 
6
6
  __version_url_latest__ = "https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/src/fastled/__version__.py"
@@ -31,6 +31,7 @@ def run_server(args: Args) -> int:
31
31
  auto_updates=auto_update,
32
32
  mapped_dir=mapped_dir,
33
33
  auto_start=True,
34
+ remove_previous=args.clear,
34
35
  )
35
36
 
36
37
  if not interactive:
@@ -112,7 +113,7 @@ def main() -> int:
112
113
  auto_updates=False,
113
114
  mapped_dir=directory,
114
115
  auto_start=False,
115
- remove_previous=False,
116
+ remove_previous=args.clear,
116
117
  )
117
118
 
118
119
  server.start(wait_for_startup=False)
@@ -1,10 +1,6 @@
1
1
  import argparse
2
2
  from dataclasses import dataclass
3
- from enum import Enum
4
3
  from pathlib import Path
5
- from typing import Any
6
-
7
- from fastled.print_filter import PrintFilterFastled
8
4
 
9
5
 
10
6
  @dataclass
@@ -26,6 +22,7 @@ class Args:
26
22
  quick: bool
27
23
  release: bool
28
24
  ram_disk_size: str # suffixed liked "25mb" or "1gb"
25
+ clear = False # Force the last running container to be removed. Useful for benchmarking.
29
26
 
30
27
  @staticmethod
31
28
  def from_namespace(args: argparse.Namespace) -> "Args":
@@ -91,74 +88,3 @@ class Args:
91
88
  release=args.release,
92
89
  ram_disk_size=args.ram_disk_size,
93
90
  )
94
-
95
-
96
- @dataclass
97
- class CompileResult:
98
- success: bool
99
- stdout: str
100
- hash_value: str | None
101
- zip_bytes: bytes
102
-
103
- def __bool__(self) -> bool:
104
- return self.success
105
-
106
- def to_dict(self) -> dict[str, Any]:
107
- return self.__dict__.copy()
108
-
109
- def __post_init__(self):
110
- # Filter the stdout.
111
- pf = PrintFilterFastled(echo=False)
112
- self.stdout = pf.print(self.stdout)
113
-
114
-
115
- class CompileServerError(Exception):
116
- """Error class for failing to instantiate CompileServer."""
117
-
118
- pass
119
-
120
-
121
- class BuildMode(Enum):
122
- DEBUG = "DEBUG"
123
- QUICK = "QUICK"
124
- RELEASE = "RELEASE"
125
-
126
- @classmethod
127
- def from_string(cls, mode_str: str) -> "BuildMode":
128
- try:
129
- return cls[mode_str.upper()]
130
- except KeyError:
131
- valid_modes = [mode.name for mode in cls]
132
- raise ValueError(f"BUILD_MODE must be one of {valid_modes}, got {mode_str}")
133
-
134
- @staticmethod
135
- def from_args(args: Args) -> "BuildMode":
136
- if args.debug:
137
- return BuildMode.DEBUG
138
- elif args.release:
139
- return BuildMode.RELEASE
140
- else:
141
- return BuildMode.QUICK
142
-
143
-
144
- class Platform(Enum):
145
- WASM = "WASM"
146
-
147
- @classmethod
148
- def from_string(cls, platform_str: str) -> "Platform":
149
- try:
150
- return cls[platform_str.upper()]
151
- except KeyError:
152
- valid_modes = [mode.name for mode in cls]
153
- raise ValueError(
154
- f"Platform must be one of {valid_modes}, got {platform_str}"
155
- )
156
-
157
-
158
- @dataclass
159
- class FileResponse:
160
- """File response from the server."""
161
-
162
- filename: str
163
- content: str
164
- mimetype: str
@@ -129,7 +129,7 @@ def _run_web_compiler(
129
129
 
130
130
 
131
131
  def _try_start_server_or_get_url(
132
- auto_update: bool, args_web: str | bool, localhost: bool
132
+ auto_update: bool, args_web: str | bool, localhost: bool, clear: bool
133
133
  ) -> tuple[str, CompileServer | None]:
134
134
  is_local_host = localhost or (
135
135
  isinstance(args_web, str)
@@ -159,7 +159,9 @@ def _try_start_server_or_get_url(
159
159
  else:
160
160
  try:
161
161
  print("No local server found, starting one...")
162
- compile_server = CompileServer(auto_updates=auto_update)
162
+ compile_server = CompileServer(
163
+ auto_updates=auto_update, remove_previous=clear
164
+ )
163
165
  print("Waiting for the local compiler to start...")
164
166
  if not compile_server.ping():
165
167
  print("Failed to start local compiler.")
@@ -172,7 +174,7 @@ def _try_start_server_or_get_url(
172
174
  return (DEFAULT_URL, None)
173
175
 
174
176
 
175
- def _try_make_compile_server() -> CompileServer | None:
177
+ def _try_make_compile_server(clear: bool = False) -> CompileServer | None:
176
178
  if not DockerManager.is_docker_installed():
177
179
  return None
178
180
  try:
@@ -184,7 +186,7 @@ def _try_make_compile_server() -> CompileServer | None:
184
186
  free_port = find_free_port(start_port=9723, end_port=9743)
185
187
  if free_port is None:
186
188
  return None
187
- compile_server = CompileServer(auto_updates=False)
189
+ compile_server = CompileServer(auto_updates=False, remove_previous=clear)
188
190
  print("Waiting for the local compiler to start...")
189
191
  if not compile_server.ping():
190
192
  print("Failed to start local compiler.")
@@ -222,13 +224,14 @@ def run_client(
222
224
  http_port: (
223
225
  int | None
224
226
  ) = None, # None means auto select a free port, http_port < 0 means no server.
227
+ clear: bool = False,
225
228
  ) -> int:
226
229
  has_checked_newer_version_yet = False
227
230
  compile_server: CompileServer | None = None
228
231
 
229
232
  if host is None:
230
233
  # attempt to start a compile server if docker is installed.
231
- compile_server = _try_make_compile_server()
234
+ compile_server = _try_make_compile_server(clear=clear)
232
235
  if compile_server is None:
233
236
  host = DEFAULT_URL
234
237
  elif isinstance(host, CompileServer):
@@ -485,7 +488,9 @@ def run_client_server(args: Args) -> int:
485
488
  url: str
486
489
  compile_server: CompileServer | None = None
487
490
  try:
488
- url, compile_server = _try_start_server_or_get_url(auto_update, web, localhost)
491
+ url, compile_server = _try_start_server_or_get_url(
492
+ auto_update, web, localhost, args.clear
493
+ )
489
494
  except KeyboardInterrupt:
490
495
  print("\nExiting from first try...")
491
496
  if compile_server is not None:
@@ -505,6 +510,7 @@ def run_client_server(args: Args) -> int:
505
510
  keep_running=not just_compile,
506
511
  build_mode=build_mode,
507
512
  profile=profile,
513
+ clear=args.clear,
508
514
  )
509
515
  except KeyboardInterrupt:
510
516
  return 1
@@ -36,6 +36,9 @@ _IS_GITHUB = "GITHUB_ACTIONS" in os.environ
36
36
  _DEFAULT_BUILD_DIR = "/js/.pio/build"
37
37
 
38
38
 
39
+ os.environ.get("FASTLED_FORCE_CLEAR", "0") == "1"
40
+
41
+
39
42
  # Docker uses datetimes in UTC but without the timezone info. If we pass in a tz
40
43
  # then it will throw an exception.
41
44
  def _utc_now_no_tz() -> datetime:
@@ -65,6 +68,10 @@ def get_ramdisk_size() -> str | None:
65
68
  return None # Defaults to off
66
69
 
67
70
 
71
+ def set_clear() -> None:
72
+ os.environ["FASTLED_FORCE_CLEAR"] = "1"
73
+
74
+
68
75
  def _win32_docker_location() -> str | None:
69
76
  home_dir = Path.home()
70
77
  out = [
@@ -3,6 +3,7 @@ import os
3
3
  import sys
4
4
  from pathlib import Path
5
5
 
6
+ from fastled.args import Args
6
7
  from fastled.project_init import project_init
7
8
  from fastled.select_sketch_directory import select_sketch_directory
8
9
  from fastled.settings import DEFAULT_URL, IMAGE_NAME
@@ -11,7 +12,6 @@ from fastled.sketch import (
11
12
  looks_like_fastled_repo,
12
13
  looks_like_sketch_directory,
13
14
  )
14
- from fastled.types import Args
15
15
 
16
16
 
17
17
  def _find_fastled_repo(start: Path) -> Path | None:
@@ -0,0 +1,77 @@
1
+ from dataclasses import dataclass
2
+ from enum import Enum
3
+ from typing import Any
4
+
5
+ from fastled.args import Args
6
+ from fastled.print_filter import PrintFilterFastled
7
+
8
+
9
+ @dataclass
10
+ class CompileResult:
11
+ success: bool
12
+ stdout: str
13
+ hash_value: str | None
14
+ zip_bytes: bytes
15
+
16
+ def __bool__(self) -> bool:
17
+ return self.success
18
+
19
+ def to_dict(self) -> dict[str, Any]:
20
+ return self.__dict__.copy()
21
+
22
+ def __post_init__(self):
23
+ # Filter the stdout.
24
+ pf = PrintFilterFastled(echo=False)
25
+ self.stdout = pf.print(self.stdout)
26
+
27
+
28
+ class CompileServerError(Exception):
29
+ """Error class for failing to instantiate CompileServer."""
30
+
31
+ pass
32
+
33
+
34
+ class BuildMode(Enum):
35
+ DEBUG = "DEBUG"
36
+ QUICK = "QUICK"
37
+ RELEASE = "RELEASE"
38
+
39
+ @classmethod
40
+ def from_string(cls, mode_str: str) -> "BuildMode":
41
+ try:
42
+ return cls[mode_str.upper()]
43
+ except KeyError:
44
+ valid_modes = [mode.name for mode in cls]
45
+ raise ValueError(f"BUILD_MODE must be one of {valid_modes}, got {mode_str}")
46
+
47
+ @staticmethod
48
+ def from_args(args: Args) -> "BuildMode":
49
+ if args.debug:
50
+ return BuildMode.DEBUG
51
+ elif args.release:
52
+ return BuildMode.RELEASE
53
+ else:
54
+ return BuildMode.QUICK
55
+
56
+
57
+ class Platform(Enum):
58
+ WASM = "WASM"
59
+
60
+ @classmethod
61
+ def from_string(cls, platform_str: str) -> "Platform":
62
+ try:
63
+ return cls[platform_str.upper()]
64
+ except KeyError:
65
+ valid_modes = [mode.name for mode in cls]
66
+ raise ValueError(
67
+ f"Platform must be one of {valid_modes}, got {platform_str}"
68
+ )
69
+
70
+
71
+ @dataclass
72
+ class FileResponse:
73
+ """File response from the server."""
74
+
75
+ filename: str
76
+ content: str
77
+ mimetype: str
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastled
3
- Version: 1.3.5
3
+ Version: 1.3.10
4
4
  Summary: FastLED Wasm Compiler
5
5
  Home-page: https://github.com/zackees/fastled-wasm
6
6
  Maintainer: Zachary Vorhies
@@ -53,6 +53,7 @@ demo/webgl_postprocessing_unreal_bloom.html
53
53
  src/fastled/__init__.py
54
54
  src/fastled/__version__.py
55
55
  src/fastled/app.py
56
+ src/fastled/args.py
56
57
  src/fastled/cli.py
57
58
  src/fastled/cli_test.py
58
59
  src/fastled/cli_test_interactive.py
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
File without changes
File without changes