fastled 1.1.29__py2.py3-none-any.whl → 1.1.31__py2.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/__init__.py +1 -1
- fastled/app.py +64 -206
- fastled/docker_manager.py +590 -582
- fastled/parse_args.py +161 -0
- fastled/project_init.py +37 -0
- {fastled-1.1.29.dist-info → fastled-1.1.31.dist-info}/METADATA +3 -3
- {fastled-1.1.29.dist-info → fastled-1.1.31.dist-info}/RECORD +11 -9
- {fastled-1.1.29.dist-info → fastled-1.1.31.dist-info}/LICENSE +0 -0
- {fastled-1.1.29.dist-info → fastled-1.1.31.dist-info}/WHEEL +0 -0
- {fastled-1.1.29.dist-info → fastled-1.1.31.dist-info}/entry_points.txt +0 -0
- {fastled-1.1.29.dist-info → fastled-1.1.31.dist-info}/top_level.txt +0 -0
fastled/__init__.py
CHANGED
fastled/app.py
CHANGED
@@ -1,206 +1,64 @@
|
|
1
|
-
"""
|
2
|
-
Uses the latest wasm compiler image to compile the FastLED sketch.
|
3
|
-
"""
|
4
|
-
|
5
|
-
import argparse
|
6
|
-
import
|
7
|
-
import
|
8
|
-
import
|
9
|
-
|
10
|
-
|
11
|
-
from fastled import
|
12
|
-
from fastled.
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
)
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
"
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
)
|
66
|
-
parser.add_argument(
|
67
|
-
"--no-auto-updates",
|
68
|
-
action="store_true",
|
69
|
-
help="Disable automatic updates of the wasm compiler image when using docker.",
|
70
|
-
)
|
71
|
-
parser.add_argument(
|
72
|
-
"--update",
|
73
|
-
"--upgrade",
|
74
|
-
action="store_true",
|
75
|
-
help="Update the wasm compiler (if necessary) before running",
|
76
|
-
)
|
77
|
-
parser.add_argument(
|
78
|
-
"--localhost",
|
79
|
-
"--local",
|
80
|
-
"-l",
|
81
|
-
action="store_true",
|
82
|
-
help="Use localhost for web compilation from an instance of fastled --server, creating it if necessary",
|
83
|
-
)
|
84
|
-
parser.add_argument(
|
85
|
-
"--server",
|
86
|
-
"-s",
|
87
|
-
action="store_true",
|
88
|
-
help="Run the server in the current directory, volume mapping fastled if we are in the repo",
|
89
|
-
)
|
90
|
-
build_mode = parser.add_mutually_exclusive_group()
|
91
|
-
build_mode.add_argument("--debug", action="store_true", help="Build in debug mode")
|
92
|
-
build_mode.add_argument(
|
93
|
-
"--quick",
|
94
|
-
action="store_true",
|
95
|
-
default=True,
|
96
|
-
help="Build in quick mode (default)",
|
97
|
-
)
|
98
|
-
build_mode.add_argument(
|
99
|
-
"--release", action="store_true", help="Build in release mode"
|
100
|
-
)
|
101
|
-
|
102
|
-
cwd_is_fastled = looks_like_fastled_repo(Path(os.getcwd()))
|
103
|
-
|
104
|
-
args = parser.parse_args()
|
105
|
-
if not args.update:
|
106
|
-
if args.no_auto_updates:
|
107
|
-
args.auto_update = False
|
108
|
-
else:
|
109
|
-
args.auto_update = None
|
110
|
-
|
111
|
-
if (
|
112
|
-
not cwd_is_fastled
|
113
|
-
and not args.localhost
|
114
|
-
and not args.web
|
115
|
-
and not args.server
|
116
|
-
):
|
117
|
-
print(f"Using web compiler at {DEFAULT_URL}")
|
118
|
-
args.web = DEFAULT_URL
|
119
|
-
if cwd_is_fastled and not args.web and not args.server:
|
120
|
-
print("Forcing --local mode because we are in the FastLED repo")
|
121
|
-
args.localhost = True
|
122
|
-
if args.localhost:
|
123
|
-
args.web = "localhost"
|
124
|
-
if args.interactive and not args.server:
|
125
|
-
print("--interactive forces --server mode")
|
126
|
-
args.server = True
|
127
|
-
if args.directory is None and not args.server:
|
128
|
-
# does current directory look like a sketch?
|
129
|
-
maybe_sketch_dir = Path(os.getcwd())
|
130
|
-
if looks_like_sketch_directory(maybe_sketch_dir):
|
131
|
-
args.directory = str(maybe_sketch_dir)
|
132
|
-
else:
|
133
|
-
sketch_directories = find_sketch_directories(maybe_sketch_dir)
|
134
|
-
selected_dir = select_sketch_directory(
|
135
|
-
sketch_directories, cwd_is_fastled
|
136
|
-
)
|
137
|
-
if selected_dir:
|
138
|
-
print(f"Using sketch directory: {selected_dir}")
|
139
|
-
args.directory = selected_dir
|
140
|
-
else:
|
141
|
-
print(
|
142
|
-
"\nYou either need to specify a sketch directory or run in --server mode."
|
143
|
-
)
|
144
|
-
sys.exit(1)
|
145
|
-
elif args.directory is not None and os.path.isfile(args.directory):
|
146
|
-
dir_path = Path(args.directory).parent
|
147
|
-
if looks_like_sketch_directory(dir_path):
|
148
|
-
print(f"Using sketch directory: {dir_path}")
|
149
|
-
args.directory = str(dir_path)
|
150
|
-
|
151
|
-
return args
|
152
|
-
|
153
|
-
|
154
|
-
def run_server(args: argparse.Namespace) -> int:
|
155
|
-
interactive = args.interactive
|
156
|
-
auto_update = args.auto_update
|
157
|
-
mapped_dir = Path(args.directory).absolute() if args.directory else None
|
158
|
-
compile_server = CompileServer(
|
159
|
-
interactive=interactive, auto_updates=auto_update, mapped_dir=mapped_dir
|
160
|
-
)
|
161
|
-
if not interactive:
|
162
|
-
print(f"Server started at {compile_server.url()}")
|
163
|
-
compile_server.wait_for_startup()
|
164
|
-
try:
|
165
|
-
while True:
|
166
|
-
if not compile_server.proceess_running():
|
167
|
-
print("Server process is not running. Exiting...")
|
168
|
-
return 1
|
169
|
-
time.sleep(1)
|
170
|
-
except KeyboardInterrupt:
|
171
|
-
print("\nExiting from server...")
|
172
|
-
return 1
|
173
|
-
finally:
|
174
|
-
compile_server.stop()
|
175
|
-
return 0
|
176
|
-
|
177
|
-
|
178
|
-
def main() -> int:
|
179
|
-
args = parse_args()
|
180
|
-
if args.update:
|
181
|
-
# Force auto_update to ensure update check happens
|
182
|
-
compile_server = CompileServer(interactive=False, auto_updates=True)
|
183
|
-
compile_server.stop()
|
184
|
-
print("Finished updating.")
|
185
|
-
return 0
|
186
|
-
|
187
|
-
if args.server:
|
188
|
-
print("Running in server only mode.")
|
189
|
-
return run_server(args)
|
190
|
-
else:
|
191
|
-
print("Running in client/server mode.")
|
192
|
-
return run_client_server(args)
|
193
|
-
|
194
|
-
|
195
|
-
if __name__ == "__main__":
|
196
|
-
try:
|
197
|
-
os.chdir("../fastled")
|
198
|
-
sys.argv.append("--interactive")
|
199
|
-
sys.argv.append("examples/NoiseRing")
|
200
|
-
sys.exit(main())
|
201
|
-
except KeyboardInterrupt:
|
202
|
-
print("\nExiting from main...")
|
203
|
-
sys.exit(1)
|
204
|
-
except Exception as e:
|
205
|
-
print(f"Error: {e}")
|
206
|
-
sys.exit(1)
|
1
|
+
"""
|
2
|
+
Uses the latest wasm compiler image to compile the FastLED sketch.
|
3
|
+
"""
|
4
|
+
|
5
|
+
import argparse
|
6
|
+
import sys
|
7
|
+
import time
|
8
|
+
from pathlib import Path
|
9
|
+
|
10
|
+
from fastled.client_server import run_client_server
|
11
|
+
from fastled.compile_server import CompileServer
|
12
|
+
from fastled.parse_args import parse_args
|
13
|
+
|
14
|
+
|
15
|
+
def run_server(args: argparse.Namespace) -> int:
|
16
|
+
interactive = args.interactive
|
17
|
+
auto_update = args.auto_update
|
18
|
+
mapped_dir = Path(args.directory).absolute() if args.directory else None
|
19
|
+
compile_server = CompileServer(
|
20
|
+
interactive=interactive, auto_updates=auto_update, mapped_dir=mapped_dir
|
21
|
+
)
|
22
|
+
if not interactive:
|
23
|
+
print(f"Server started at {compile_server.url()}")
|
24
|
+
compile_server.wait_for_startup()
|
25
|
+
try:
|
26
|
+
while True:
|
27
|
+
if not compile_server.proceess_running():
|
28
|
+
print("Server process is not running. Exiting...")
|
29
|
+
return 1
|
30
|
+
time.sleep(0.1)
|
31
|
+
except KeyboardInterrupt:
|
32
|
+
print("\nExiting from server...")
|
33
|
+
return 1
|
34
|
+
finally:
|
35
|
+
compile_server.stop()
|
36
|
+
return 0
|
37
|
+
|
38
|
+
|
39
|
+
def main() -> int:
|
40
|
+
args = parse_args()
|
41
|
+
if args.update:
|
42
|
+
# Force auto_update to ensure update check happens
|
43
|
+
compile_server = CompileServer(interactive=False, auto_updates=True)
|
44
|
+
compile_server.stop()
|
45
|
+
print("Finished updating.")
|
46
|
+
return 0
|
47
|
+
|
48
|
+
if args.server:
|
49
|
+
print("Running in server only mode.")
|
50
|
+
return run_server(args)
|
51
|
+
else:
|
52
|
+
print("Running in client/server mode.")
|
53
|
+
return run_client_server(args)
|
54
|
+
|
55
|
+
|
56
|
+
if __name__ == "__main__":
|
57
|
+
try:
|
58
|
+
sys.exit(main())
|
59
|
+
except KeyboardInterrupt:
|
60
|
+
print("\nExiting from main...")
|
61
|
+
sys.exit(1)
|
62
|
+
except Exception as e:
|
63
|
+
print(f"Error: {e}")
|
64
|
+
sys.exit(1)
|