-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpyproject.toml
More file actions
91 lines (80 loc) · 2.31 KB
/
Copy pathpyproject.toml
File metadata and controls
91 lines (80 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
[build-system]
requires = ["setuptools>=69", "wheel>=0.43", "tomli>=2; python_version < '3.11'"]
build-backend = "setuptools.build_meta"
[dependency-groups]
dev = [
"black",
"isort",
"mypy",
"pytest",
"pytest-xdist",
"pyright",
"ruff",
"httpx",
"build>=1",
"setuptools>=69",
"wheel>=0.43",
"tomli>=2",
]
[project]
name = "fastled"
dynamic = ["version"]
readme = "README.md"
description = "FastLED Wasm Compiler"
requires-python = ">=3.10"
keywords = ["fastled", "wasm", "rust"]
license = { text = "BSD 3-Clause License" }
classifiers = ["Programming Language :: Python :: 3"]
dependencies = [
# Build-system dependencies for the FastLED C++ -> WASM compile.
# `meson` configures the build; `ninja` is meson's backend. Both ship
# standalone executables when pip-installed. Rust owns Emscripten
# resolution using kernel host/process capabilities and invokes the checked-in
# emcc.py/em++.py/emar.py entry points directly.
"meson>=1.4",
"ninja>=1.11",
# The native CLI uses uv to provision FastLED's project-local Python and
# Node runtimes. Keeping uv in the wheel environment makes first-run WASM
# builds independent of Homebrew or a user-managed shell installation.
"uv>=0.5",
]
[tool.setuptools]
package-dir = {"" = "src"}
include-package-data = true
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
fastled = ["assets/*", "frontend/**/*", "bin/*"]
[tool.ruff]
line-length = 200
[tool.pylint."MESSAGES CONTROL"]
good-names = [
"c",
"i",
"ok",
"id",
"e",
"f"
]
disable = [
"missing-function-docstring",
"missing-module-docstring"
]
[tool.isort]
profile = "black"
[tool.pyright]
venvPath = "."
venv = ".venv"
# ci/*.py smoke scripts are executed by path, so sibling modules such as
# `safari_smoke` resolve at runtime; mirror that for the type checker.
extraPaths = ["ci"]
[tool.mypy]
ignore_missing_imports = true
disable_error_code = ["import-untyped"]
[project.scripts]
# `fastled` remains a Python compatibility entry point during the migration.
# It resolves and execs the bundled Rust `fastled[.exe]` binary from package
# data; the shim deliberately does not search PATH to avoid recursive launch.
fastled = "fastled.cli:main"
fastled-wasm = "fastled.cli:main"
fled = "fastled.cli:main"