-
Notifications
You must be signed in to change notification settings - Fork 67
Expand file tree
/
Copy pathpyproject.toml
More file actions
122 lines (113 loc) · 3.44 KB
/
Copy pathpyproject.toml
File metadata and controls
122 lines (113 loc) · 3.44 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
[build-system]
requires = ["flit_core >= 3.4"]
build-backend = "flit_core.buildapi"
[project]
name = "i2rt"
version = "1.1.2"
readme = "README.md"
requires-python = ">=3.10"
dynamic = ["description"]
dependencies = [
"click<8.2.0",
# crcmod-plus is a maintained fork that installs into the `crcmod` namespace, so code still does `import crcmod`.
"crcmod-plus>=2.3.1",
"dm-env==1.6",
"mink>=0.0.13",
"mujoco>=3.3.5",
"numpy==2.2.6",
"portal==3.7.3",
"pydantic>=2.0",
"pygame==2.6.1",
"python-can==4.5.0",
"pyyaml>=6.0.0",
"qpsolvers[quadprog]==4.7.1",
"rerun-sdk>=0.32.2",
"ruckig==0.15.3",
"threadpoolctl==3.6.0",
"tyro>=1.0.0",
"viser>=0.2.0",
# USB-to-GPIO converter for the linear-rail brake + limit switches on x86/non-Pi hosts.
"pyserial>=3.5",
# Raspberry Pi GPIO (linear-rail brake + limit switches). Pi-only via PEP 508 markers.
# rpi-lgpio is a drop-in for `from RPi import GPIO` that works on Pi 5 (BCM2712);
# legacy RPi.GPIO fails with "cannot determine peripheral soc base addr" on Pi 5.
"rpi-lgpio>=0.6; sys_platform == 'linux' and (platform_machine == 'aarch64' or platform_machine == 'armv7l' or platform_machine == 'armv6l')",
]
[project.optional-dependencies]
dev = [
"pyright>=1.1.408",
"pytest>=8.4.0",
"pytest-xdist>=3.8.0",
"ruff>=0.15.6",
]
[tool.uv]
# ruckig 0.15.3 publishes only an sdist, so it is compiled from source on a fresh
# install (e.g. CI). Its build fails under scikit-build-core >= 0.10, which rejects the
# package's deprecated `cmake.targets`. Pin the build backend below that so it builds.
build-constraint-dependencies = ["scikit-build-core<0.10"]
[tool.flit.module]
name = "i2rt"
[tool.ruff]
line-length = 119 # Set the max line length to 119 characters.
lint.select = [
"ANN", # Annotations.
"B", # bugbear rules
# "D", # docstring rules.
"E", # pycodestyle errors.
"F", # Pyflakes rules.
"I", # Import sorting.
"PLC", # Pylint convention warnings.
"PLE", # Pylint errors.
"PLR", # Pylint refactor recommendations.
"PLW", # Pylint warnings.
"RUF", # Ruff rules.
]
lint.ignore = [
"ANN204",
"ANN401",
"E741", # Ambiguous variable name. (l, O, or I)
"F841",
"E402",
"E501",
"PLR1722",
"PLR2004", # Magic value used in comparison.
"PLR0915", # Too many statements.
"PLR0913", # Too many arguments.
"PLC0414", # Import alias does not rename variable. (this is used for exporting names)
"PLC0415", # Import not at top level (conditional and __main__ imports are standard).
"PLC1901", # Use falsey strings.
"PLR0911", # Too many return statements.
"PLR0912", # Too many branches.
"PLW0603", # Global statement updates are discouraged.
"PLW2901", # For loop variable overwritten.
"RUF005",
"RUF009",
"RUF012",
]
lint.extend-select = ["E501"]
lint.exclude = ["*.ipynb"]
[tool.ruff.format]
docstring-code-format = true
skip-magic-trailing-comma = false
[tool.mypy]
python_version = "3.12"
ignore_missing_imports = true
warn_unused_configs = true
exclude = ["scripts/"]
[tool.coverage.report]
exclude_also = [
"raise NotImplementedError",
"if __name__ == .__main__.:",
"class .*\\bProtocol\\):",
"@(abc\\.)?abstractmethod",
"def __repr__",
]
omit = ["*exceptions.py"]
[dependency-groups]
dev = [
"pre-commit>=4.5.1",
"pyright>=1.1.408",
"pytest>=8.4.0",
"pytest-xdist>=3.8.0",
"ruff>=0.15.6",
]