fastled 1.2.67__py3-none-any.whl → 1.2.69__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 +4 -2
- fastled/app.py +3 -0
- fastled/compile_server.py +2 -1
- fastled/compile_server_impl.py +295 -274
- fastled/docker_manager.py +925 -828
- fastled/keyz.py +75 -22
- fastled/open_browser.py +3 -13
- fastled/util.py +9 -0
- {fastled-1.2.67.dist-info → fastled-1.2.69.dist-info}/METADATA +1 -1
- {fastled-1.2.67.dist-info → fastled-1.2.69.dist-info}/RECORD +14 -14
- {fastled-1.2.67.dist-info → fastled-1.2.69.dist-info}/WHEEL +0 -0
- {fastled-1.2.67.dist-info → fastled-1.2.69.dist-info}/entry_points.txt +0 -0
- {fastled-1.2.67.dist-info → fastled-1.2.69.dist-info}/licenses/LICENSE +0 -0
- {fastled-1.2.67.dist-info → fastled-1.2.69.dist-info}/top_level.txt +0 -0
fastled/keyz.py
CHANGED
@@ -1,31 +1,84 @@
|
|
1
|
-
|
1
|
+
# This was an experiment for https://localhost
|
2
|
+
# Important for audio sampling from sites like Youtube or an app like Audacity.
|
3
|
+
# However, pkg_resources does not work in the exe version of this app.
|
4
|
+
# For this to work pyinstaller needs special handling (probably a spec-file)
|
5
|
+
# in order to properly package up external resources.
|
6
|
+
|
7
|
+
|
2
8
|
from dataclasses import dataclass
|
3
|
-
|
9
|
+
|
10
|
+
_ENABLE_SSL_CONFIG = False
|
4
11
|
|
5
12
|
|
6
13
|
@dataclass
|
7
14
|
class SslConfig:
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
def get_asset_path(filename: str) -> Path | None:
|
13
|
-
"""Locate a file from the fastled.assets package resources."""
|
14
|
-
try:
|
15
|
-
resource = pkg_resources.files("fastled.assets").joinpath(filename)
|
16
|
-
# Convert to Path for file-system access
|
17
|
-
path = Path(str(resource))
|
18
|
-
return path if path.exists() else None
|
19
|
-
except (ModuleNotFoundError, AttributeError):
|
20
|
-
return None
|
15
|
+
cert: str
|
16
|
+
key: str
|
21
17
|
|
22
18
|
|
23
19
|
def get_ssl_config() -> SslConfig | None:
|
24
20
|
"""Get the keys for the server"""
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
if not _ENABLE_SSL_CONFIG:
|
22
|
+
return None
|
23
|
+
return SslConfig(
|
24
|
+
cert=_CERT,
|
25
|
+
key=_PRIVATE_KEY,
|
26
|
+
)
|
27
|
+
|
28
|
+
|
29
|
+
_PRIVATE_KEY = """-----BEGIN PRIVATE KEY-----
|
30
|
+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDlxbWcpUXPpjqs
|
31
|
+
DJPgFF1FsXPZqq0JPJqssHh4ZLfN0h4yJmj+kRcHS+pkgXnG46g6bUcL/AK5Ba08
|
32
|
+
vwnUUGkPH0v4ShKiAGYwvOcbWaqTmvvJuIoaDBXh2jSCeOTagNoaHLYEugARkkEu
|
33
|
+
0/FEW5P/79wU5vJ5G+SyZ8rBCVdxlU57pL1hKWBU7K+BLWsCiZ308NMpzHF5APZ6
|
34
|
+
YxVjhFosJPr4TjN6yXr+whrsAjSTHamD5690MbXWyyPG0jwPQyjBot/cNtt8GrsN
|
35
|
+
gcjA1E+8VKFvxO8RvZanMZLb0CGEpt7u3oaJ/jprHEsw+/UhnG6Qhksm8C/DN9kP
|
36
|
+
hselewffAgMBAAECggEARjQ6YTo+Mkvf8WGGbRjLxteJRiBX7lKOD+V7aY2ce06P
|
37
|
+
21LREbbTCm+vljXZN2OnqvJomsjNLCsH21+jaTOIZg5x79LyDn2Au7N8CWdELwVT
|
38
|
+
mTbBO2Ql63P4R0UY54onGYNcOeV6z+OX9u7a8L/qYHCxFdHalBZpsfj0gjaQeStJ
|
39
|
+
JSnvGjo6tKkwC/nUmX01qEVQgUO1+39WYqCaIWjijZNXt6XiKclEuu1AkL0u6Mpt
|
40
|
+
CzvzEDrEA66D0Lvl3Tek9B4O16Oie5anNnNMHigwU9yVc6dI8vDCRSEiz7laPTFK
|
41
|
+
xzOCQmqPGClKXkX3U+OvZp/Ss9U26Wpu0AbRKTvzAQKBgQDsMR9NjMpOmUaWkAwl
|
42
|
+
1wlUxsZ9YkRuTy7R3RfIdYWj6Lcoc4/iN0qILFM7xidkHhYTFqnsnP1SQkV6lEHV
|
43
|
+
OalYxZu9F2l1rHPc8G5YWh/KOg1rAEI47MVT4iwhA2fw6JLti/rm25AeSTMjSTqu
|
44
|
+
ht3146036opcIF3v86oGUrSXDwKBgQD5CsNcwLeUDGXozjq62T8/mTYwd2Tw3aiY
|
45
|
+
KaGp+exAW321vYm5SKsMitBMGU2tGFlv5eptSI48h7SCpgnszaexw7yj30KuvqjG
|
46
|
+
bBqq/MsKuXHyn2sG0A7MJ6zfk+4l46B45blDJZ+x7xL0dyS4UCU3zUeesgSGo4zK
|
47
|
+
ZOspPIQCMQKBgQCk35VuWP1P6IbxyxPvxi/pUeh01gfWyMdyD9fuQrtLM8PHJQQn
|
48
|
+
cVlBvU9MxoHwzV+za3qqhNwAc+p0KtHZuiqQoUCZuqIPVpZ6gAtG+YJ/dA6xxrhz
|
49
|
+
bDRC3frYALyp2m/WCoTWaiYsPgTIePHRqqt+XbQo+DwlGyL3wSvKxijx2QKBgCb0
|
50
|
+
OwioEE70/X/DukX9szn0chh0pHJUiYl7gZD/yadraCdkRUWZC0BD+j7c+lxn4Z1y
|
51
|
+
HhAH+E+Zfm+tHwJOTLuufTQ4uMpygh2/TRCPyAaeaSdlLi17n8TpM84o6mg8yZ3/
|
52
|
+
eNH68Za4aYOZm0HFL30h++DjwXd534zM6keh8pgRAoGBAKUrsjDGjuSo8l1fi4Cq
|
53
|
+
INu/rQop2h/db02zyJP5q7NKhE1nqogeLwwn+2M/LtHQ1nIzZR+rvrLNgt6oWY31
|
54
|
+
sPsv8JUfVT8GmdhU9KKmizK6eUu3rWdj2+rJARmuEaPmHcD5O6oJaGU0qadqQP34
|
55
|
+
H+enwWmpyZXAIbEu/q63DFhV
|
56
|
+
-----END PRIVATE KEY-----"""
|
57
|
+
|
58
|
+
_CERT = """-----BEGIN _CERTIFICATE-----
|
59
|
+
MIIEfTCCAuWgAwIBAgIRAPb7jkLrCuqToG+s3AQYeuUwDQYJKoZIhvcNAQELBQAw
|
60
|
+
gakxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE/MD0GA1UECww2REVT
|
61
|
+
S1RPUC1JMzcxOERPXFphY2ggVm9yaGllc0BERVNLVE9QLUkzNzE4RE8gKG5pdGVy
|
62
|
+
aXMpMUYwRAYDVQQDDD1ta2NlcnQgREVTS1RPUC1JMzcxOERPXFphY2ggVm9yaGll
|
63
|
+
c0BERVNLVE9QLUkzNzE4RE8gKG5pdGVyaXMpMB4XDTI1MDQyODAwMzk1MFoXDTI3
|
64
|
+
MDcyODAwMzk1MFowajEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRp
|
65
|
+
ZmljYXRlMT8wPQYDVQQLDDZERVNLVE9QLUkzNzE4RE9cWmFjaCBWb3JoaWVzQERF
|
66
|
+
U0tUT1AtSTM3MThETyAobml0ZXJpcykwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
67
|
+
ggEKAoIBAQDlxbWcpUXPpjqsDJPgFF1FsXPZqq0JPJqssHh4ZLfN0h4yJmj+kRcH
|
68
|
+
S+pkgXnG46g6bUcL/AK5Ba08vwnUUGkPH0v4ShKiAGYwvOcbWaqTmvvJuIoaDBXh
|
69
|
+
2jSCeOTagNoaHLYEugARkkEu0/FEW5P/79wU5vJ5G+SyZ8rBCVdxlU57pL1hKWBU
|
70
|
+
7K+BLWsCiZ308NMpzHF5APZ6YxVjhFosJPr4TjN6yXr+whrsAjSTHamD5690MbXW
|
71
|
+
yyPG0jwPQyjBot/cNtt8GrsNgcjA1E+8VKFvxO8RvZanMZLb0CGEpt7u3oaJ/jpr
|
72
|
+
HEsw+/UhnG6Qhksm8C/DN9kPhselewffAgMBAAGjXjBcMA4GA1UdDwEB/wQEAwIF
|
73
|
+
oDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBSPBydvhr9wI+FsoW/H
|
74
|
+
WK3DbS8IUDAUBgNVHREEDTALgglsb2NhbGhvc3QwDQYJKoZIhvcNAQELBQADggGB
|
75
|
+
AJVrF1yczZaxt+A2AhdeFbJQUR6NzGBTc20YeWF1YzLV5sV3QVumwZLP2M9ggRgd
|
76
|
+
xWV0xfwUHobFQk6RIPTADcLKctiurql0cgF4DPnpWVvto9RM00U3AkQcMj3xtKBV
|
77
|
+
wUqo83TcbqgL+euudFZ09gGTs9u9AENaZPcMh+rW8DDO92t+EwMI/IfopxVOJGUB
|
78
|
+
RSM3yTwV93BMYBuddt8mclzLzPK/1WONfsHU2xEascaHR1tYMOmJN9Vq4o0fzWxo
|
79
|
+
a2vI6K0aJqZV/ztdXq3akwLc6/e9hyptHWa0i/022xVCyNWIlnuEhT7ENMPxh6rX
|
80
|
+
ZCQCZVnhcSWAyFjggLJql3aSID5fPF8rmN7wWsB/I5pl9qwMR1/THMPrm5aWn1Xj
|
81
|
+
xW6PxkSGm73kd57DH7tqm5HTd8eYCbnsFofI9rC7xI6HCfwchKp+YHvIEu/LJ56E
|
82
|
+
FLnCZW/orYkHCzWntzxv1bddrw1BwaNR8Q+mu3imRP8fuyXb2UkFkINVVyOOWHuW
|
83
|
+
Kw==
|
84
|
+
-----END _CERTIFICATE-----"""
|
fastled/open_browser.py
CHANGED
@@ -8,7 +8,6 @@ from fastled.keyz import get_ssl_config
|
|
8
8
|
|
9
9
|
DEFAULT_PORT = 8089 # different than live version.
|
10
10
|
PYTHON_EXE = sys.executable
|
11
|
-
SSL_CONFIG = get_ssl_config()
|
12
11
|
|
13
12
|
|
14
13
|
# print(f"SSL Config: {SSL_CONFIG.certfile}, {SSL_CONFIG.keyfile}")
|
@@ -21,6 +20,7 @@ def _open_http_server_subprocess(
|
|
21
20
|
print("\n################################################################")
|
22
21
|
print(f"# Opening browser to {fastled_js} on port {port}")
|
23
22
|
print("################################################################\n")
|
23
|
+
ssl = get_ssl_config()
|
24
24
|
try:
|
25
25
|
# Fallback to our Python server
|
26
26
|
cmd = [
|
@@ -32,18 +32,8 @@ def _open_http_server_subprocess(
|
|
32
32
|
str(port),
|
33
33
|
]
|
34
34
|
# Pass SSL flags if available
|
35
|
-
if
|
36
|
-
|
37
|
-
[
|
38
|
-
"--cert",
|
39
|
-
str(SSL_CONFIG.certfile),
|
40
|
-
"--key",
|
41
|
-
str(SSL_CONFIG.keyfile),
|
42
|
-
]
|
43
|
-
)
|
44
|
-
print(
|
45
|
-
f"Running server on port {port} with certs: {SSL_CONFIG.certfile}, {SSL_CONFIG.keyfile}"
|
46
|
-
)
|
35
|
+
if ssl:
|
36
|
+
raise NotImplementedError("SSL is not implemented yet")
|
47
37
|
print(f"Running server on port {port}.")
|
48
38
|
print(f"Command: {subprocess.list2cmdline(cmd)}")
|
49
39
|
# Suppress output
|
fastled/util.py
CHANGED
@@ -8,3 +8,12 @@ def hash_file(file_path: Path) -> str:
|
|
8
8
|
for chunk in iter(lambda: f.read(4096), b""):
|
9
9
|
hasher.update(chunk)
|
10
10
|
return hasher.hexdigest()
|
11
|
+
|
12
|
+
|
13
|
+
def banner_string(msg: str) -> str:
|
14
|
+
"""
|
15
|
+
Return `msg` surrounded by a border of # characters, including
|
16
|
+
leading and trailing newlines.
|
17
|
+
"""
|
18
|
+
border = "#" * (len(msg) + 4)
|
19
|
+
return f"\n{border}\n# {msg}\n{border}\n"
|
@@ -1,17 +1,17 @@
|
|
1
|
-
fastled/__init__.py,sha256=
|
2
|
-
fastled/app.py,sha256=
|
1
|
+
fastled/__init__.py,sha256=msuOtc9qIr3zXuR720kXVEr15q25Fkwja57Je0ZIGiM,6770
|
2
|
+
fastled/app.py,sha256=DRoHHiaaLHENh8_4Hs730z-A5Z7d3O2_AA-Jt7w7d4Y,4026
|
3
3
|
fastled/cli.py,sha256=FjVr31ht0UPlAcmX-84NwfAGMQHTkrCe4o744jCAxiw,375
|
4
4
|
fastled/cli_test.py,sha256=qJB9yLRFR3OwOwdIWSQ0fQsWLnA37v5pDccufiP_hTs,512
|
5
5
|
fastled/client_server.py,sha256=eG82h-27Y40szCew976lv9I6bP-YxtRV6sFNDVNTapo,14525
|
6
|
-
fastled/compile_server.py,sha256=
|
7
|
-
fastled/compile_server_impl.py,sha256=
|
8
|
-
fastled/docker_manager.py,sha256=
|
6
|
+
fastled/compile_server.py,sha256=rkXvrvdav5vDG8lv_OlBX3YSCHtnHMt25nXbfeg_r78,2960
|
7
|
+
fastled/compile_server_impl.py,sha256=kBPIn1Q5Q0nyY59CoEDA6h3RX2oQDOm8cfmIvb6quJI,11001
|
8
|
+
fastled/docker_manager.py,sha256=HLjQaXB6zaxBFpcOOX1SEajCHljckD3VbPMDJgI6Ae0,35623
|
9
9
|
fastled/filewatcher.py,sha256=3qS3L7zMQhFuVrkeGn1djsB_cB6x_E2YGJmmQWVAU_w,10033
|
10
10
|
fastled/interactive_srcs.py,sha256=F5nHdJc60xsnmOtnKhngE9JytqGn56PmYw_MVSIX1ac,138
|
11
11
|
fastled/keyboard.py,sha256=UTAsqCn1UMYnB8YDzENiLTj4GeL45tYfEcO7_5fLFEg,3556
|
12
|
-
fastled/keyz.py,sha256=
|
12
|
+
fastled/keyz.py,sha256=LO-8m_7CpNDiZLM-FXhQ30f9gN1bUYz5lOsUPTIbI-c,4020
|
13
13
|
fastled/live_client.py,sha256=MDauol0mxtXggV1Pv9ahC0Jjg_4wnnV6FjGEtdd9cxU,2763
|
14
|
-
fastled/open_browser.py,sha256=
|
14
|
+
fastled/open_browser.py,sha256=Fv1w645rrVROaW4jjyU70Cfz6QPbyIqjK5yu16lhBlo,3836
|
15
15
|
fastled/parse_args.py,sha256=xgjxirQVX3FQxHZNVJtQQxTOeSJRQdGUNQ7W33Y880Y,8051
|
16
16
|
fastled/paths.py,sha256=VsPmgu0lNSCFOoEC0BsTYzDygXqy15AHUfN-tTuzDZA,99
|
17
17
|
fastled/project_init.py,sha256=OCIqpGmRMHNQtlXMTfX1x4Sou5WZgJtBNqPhnXbFFLI,4113
|
@@ -25,7 +25,7 @@ fastled/sketch.py,sha256=tHckjDj8P6BI_LWzUFM071a9qcqPs-r-qFWIe50P5Xw,3391
|
|
25
25
|
fastled/spinner.py,sha256=VHxmvB92P0Z_zYxRajb5HiNmkHHvZ5dG7hKtZltzpcs,867
|
26
26
|
fastled/string_diff.py,sha256=9Q_36W0j7HvTnvfemdq9Ldi5RznGj0duX0Y3sZmVwJI,1730
|
27
27
|
fastled/types.py,sha256=ZFqHxYIGSeQb9FiImA5KDXZLhmmVSjOrIQDduwxmCZw,4494
|
28
|
-
fastled/util.py,sha256=
|
28
|
+
fastled/util.py,sha256=17f2A52TfBErJOEGC_Vs72t1mTDocLVTfnR9hWbXW8A,501
|
29
29
|
fastled/web_compile.py,sha256=H2Tm5kMBaRjqdHqxv7L3-xSeYNHi0k0P-XM0Cn9esOo,10360
|
30
30
|
fastled/assets/example.txt,sha256=lTBovRjiz0_TgtAtbA1C5hNi2ffbqnNPqkKg6UiKCT8,54
|
31
31
|
fastled/assets/localhost-key.pem,sha256=Q-CNO_UoOd8fFNN4ljcnqwUeCMhzTplRjLO2x0pYRlU,1704
|
@@ -34,9 +34,9 @@ fastled/site/build.py,sha256=pjsaeHQQh_Zdh1g5Q78lYlUT7UPDFuNgW5YZkpsPxWc,14436
|
|
34
34
|
fastled/site/examples.py,sha256=s6vj2zJc6BfKlnbwXr1QWY1mzuDBMt6j5MEBOWjO_U8,155
|
35
35
|
fastled/test/can_run_local_docker_tests.py,sha256=LEuUbHctRhNNFWcvnz2kEGmjDJeXO4c3kNpizm3yVJs,400
|
36
36
|
fastled/test/examples.py,sha256=GfaHeY1E8izBl6ZqDVjz--RHLyVR4NRnQ5pBesCFJFY,1673
|
37
|
-
fastled-1.2.
|
38
|
-
fastled-1.2.
|
39
|
-
fastled-1.2.
|
40
|
-
fastled-1.2.
|
41
|
-
fastled-1.2.
|
42
|
-
fastled-1.2.
|
37
|
+
fastled-1.2.69.dist-info/licenses/LICENSE,sha256=b6pOoifSXiUaz_lDS84vWlG3fr4yUKwB8fzkrH9R8bQ,1064
|
38
|
+
fastled-1.2.69.dist-info/METADATA,sha256=hsv5Lr3b92rgL6Kga2OvXentTbXwpd6qM6PSzLI_ndc,22465
|
39
|
+
fastled-1.2.69.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
40
|
+
fastled-1.2.69.dist-info/entry_points.txt,sha256=RCwmzCSOS4-C2i9EziANq7Z2Zb4KFnEMR1FQC0bBwAw,101
|
41
|
+
fastled-1.2.69.dist-info/top_level.txt,sha256=Bbv5kpJpZhWNCvDF4K0VcvtBSDMa8B7PTOrZa9CezHY,8
|
42
|
+
fastled-1.2.69.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|