-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
105 lines (93 loc) · 2.74 KB
/
Copy pathpyproject.toml
File metadata and controls
105 lines (93 loc) · 2.74 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
[project]
# "flatland" alone is taken on PyPI by an unrelated project, so the distribution is
# named flatland-spl (ShortestPathLab). The import package is still `flatland`.
name = "flatland-spl"
description = "Multi-agent path finding on trains, in little (or ridiculously large) gridworlds"
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.14"
dynamic = ["version"]
keywords = ["flatland", "multi-agent path finding", "mapf", "planning"]
authors = [{ name = "ShortestPathLab" }]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"Natural Language :: English",
"Programming Language :: Python :: 3.14",
]
# The environment itself, plus rendering: everything needed to build a RailEnv,
# step it and render it. See the extras below.
dependencies = [
"attrs",
"matplotlib",
"msgpack",
"nicegui",
"numpy",
"pillow",
"rich",
"typer",
]
[project.optional-dependencies]
# Opens the renderer in a native desktop window instead of a browser tab.
# Deliberately optional: a headless box has no display to open it on, and the
# renderer falls back to printing its URL there.
native = ["pywebview"]
# Needed only by the in-notebook helpers: flatland.utils.jupyter_utils and
# flatland.utils.editor. Not required to build, step or render an env.
# graphviz is here, not in the core deps, because the only thing that ever drew a graph
# was the MotionCheck visualisation in Agent-Close-Following.ipynb, which now owns it.
notebooks = [
"graphviz",
"ipycanvas",
"ipyevents",
"ipython",
"ipywidgets",
]
[project.scripts]
flatland = "flatland.cli:app"
[project.urls]
Homepage = "https://github.com/ShortestPathLab/flatland"
Repository = "https://github.com/ShortestPathLab/flatland"
Issues = "https://github.com/ShortestPathLab/flatland/issues"
[dependency-groups]
dev = [
# CI runs the notebooks, and `flatland demo` opens a native window by default,
# so the dev env installs both extras too
"flatland-spl[native,notebooks]",
"benchmarker",
"bumpversion",
"coverage",
"imageio",
"jupyter",
"notebook",
"pydeps",
"pytest",
"pyvirtualdisplay",
"ruff",
"ty",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.version]
path = "flatland/__init__.py"
[tool.hatch.build.targets.wheel]
packages = ["flatland"]
[tool.ruff]
extend-exclude = ["docs", "notebooks"]
[tool.ty.src]
include = ["flatland", "examples"]
exclude = [
"**/__pycache__",
".venv",
"build",
"dist",
"docs",
"notebooks",
]
[tool.ty.environment]
python-version = "3.14"
[tool.pytest.ini_options]
testpaths = ["tests"]