-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpyproject.toml
More file actions
113 lines (108 loc) · 3.58 KB
/
Copy pathpyproject.toml
File metadata and controls
113 lines (108 loc) · 3.58 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
[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "airdc"
version = "0.7.9"
description = "AIRDC: Collecting Multimodal Data For Your Robots"
authors = [{ name = "OpenGHz", email = "latent-shimmer@qq.com" }]
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.9"
dependencies = [
"cfgable",
"pydantic",
"numpy",
"more-itertools",
"typing-extensions",
"setproctitle",
# "hydra-joblib-launcher",
"mcap-data-loader ==0.3.5",
]
urls = { repository = "https://github.com/OpenGHz/AIRBOT-Data-Collection" }
[project.optional-dependencies]
airbot = ["ruamel.yaml"]
cv2 = ["opencv-python"]
web = ["fastapi", "uvicorn"]
v4l2 = ["linuxpy", "PyTurboJPEG"]
udev = ["pyudev"]
# mcap = ["mcap-data-loader ==0.3.1"]
mcap_ros1 = ["mcap-ros1-support"]
image = ["PyTurboJPEG", "av"]
# no hardware support, such as
# opencv, linuxpy, udev, pynput
# but pyav is included
soft = [
"pydantic-settings",
"omegaconf >=2.3.0",
"hydra-zen",
"transitions",
"bidict",
"tqdm",
]
hard = ["pynput >=1.8.1", "linuxpy", "PyTurboJPEG", "pyudev"]
ml = ["torch", "torchvision"]
plt = ["ipykernel", "holoviews"]
cfg = ["pydantic-settings", "omegaconf >=2.3.0", "hydra-zen"]
basic = ["bidict", "tqdm", "flatten-dict"]
all = ["airdc[basic]", "airdc[cfg]", "airdc[soft]", "airdc[hard]", "airdc[cv2]"]
assis = ["transitions", "hydra-zen", "flatten-dict", "tqdm"]
# robot = ["airdc[v4l2]"] # pyrealsense2
auto-atom = ["auto-atomic-operation[mujoco,gs] ==0.2.3"]
[tool.setuptools.packages.find]
where = ["."]
include = ["airdc*", "airbot_ie*"]
# pyproject's packages.find defaults to namespaces=true, so setuptools walks
# every dir (os.walk followlinks=True). Prune non-package dirs to avoid the
# infinite loop. These dirs never match `include`, so
# excluding them changes the walk only, not the discovered package set.
exclude = [
"third_party*",
"build*",
"dist*",
"data*",
"outputs*",
"multirun*",
"install*",
"airbot_logs*",
"docs*",
"tests*",
"scripts*",
]
[project.scripts]
airdc = "airdc.main:main"
airdc-desktop = "airdc.main:main_desktop"
[tool.pytest.ini_options]
minversion = "7.0"
# Only these two trees are collected. Anything else (generated outputs, the
# vendored .pixi/third_party envs, demo scripts under */manual/) is pruned so a
# bare `pytest` never wanders into non-test code or hangs on import-time scripts.
testpaths = ["tests", "airbot_ie/tests"]
norecursedirs = [
"manual",
"outputs",
"out",
"fixtures",
"data",
".pixi",
"third_party",
"build",
"dist",
"*.egg-info",
"__pycache__",
]
# -ra: summary of skips/xfails so the "why was this skipped" reason is visible.
# --strict-markers: an unregistered marker is an error, not a silent no-op.
addopts = "-ra --strict-markers"
markers = [
"software: 纯软件测试,无需任何硬件或外部服务(CI 默认目标,任何环境都应通过)",
"hardware: 需要真实硬件或运行中的外部服务;探针缺失时由 conftest 自动 skip(不报 Failed)",
"realsense: 需要 Intel RealSense 相机",
"camera: 需要 /dev/video* 摄像头(v4l2 / USB)",
"gpu: 需要 NVIDIA GPU(nvenc / cuda)",
"redis: 需要可连接的本地 Redis 服务(localhost:6379)",
"ros: 需要 ROS 环境(cv_bridge 等),建议在 pixi 环境运行",
"display: 需要图形显示($DISPLAY / $WAYLAND_DISPLAY)",
"slow: 耗时 / 基准测试,默认不跑(用 -m slow 显式选择)",
"manual: 交互 / 演示脚本,默认不收集(用 --run-manual 才收集)",
]