-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
67 lines (60 loc) · 2.11 KB
/
pyproject.toml
File metadata and controls
67 lines (60 loc) · 2.11 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
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "package_xml_validation"
version = "0.1.0"
description = "Validates package xml of ros2 pkgs"
readme = "README.md"
requires-python = ">=3.9"
# Version bounds: floor = a release we've tested; ceiling = the next major,
# so a breaking upstream release (lxml 7.x, etc.) surfaces as an explicit
# resolver conflict for downstream users rather than a silent break. This
# project is a published library, so we deliberately do not commit a lock
# file (pip install consumers don't read it).
dependencies = [ # NOSONAR S8565: library, not application; lock file would not affect consumers
"argcomplete>=3.1,<4",
"catkin-pkg>=1.0,<2",
"lxml>=5,<7",
"PyYAML>=6,<7",
"rosdep>=0.22,<1",
]
[project.optional-dependencies]
dev = [
"mypy>=1.10,<2",
"types-PyYAML>=6,<7",
"lxml-stubs>=0.5,<1",
]
[tool.setuptools]
packages = [
"package_xml_validation",
"package_xml_validation.helpers",
"package_xml_validation.helpers.formatter",
"package_xml_validation.helpers.validation_steps",
]
[tool.setuptools.package-data]
package_xml_validation = ["data/*.yaml"]
[project.scripts]
package-xml-validator = "package_xml_validation.package_xml_validator:main"
[tool.mypy]
python_version = "3.9"
files = ["package_xml_validation"]
# Strictness flags - everything in the package is annotated, so we can run
# tight from the start. Stubs that may be incomplete (lxml-stubs) are why
# we don't enable `--strict` wholesale: it would force `disallow_any_*`
# on the lxml interop boundary.
warn_unused_ignores = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
no_implicit_optional = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
strict_equality = true
# Untyped third-party packages. Listed explicitly (rather than
# `ignore_missing_imports = true` globally) so a missing stub for any
# *other* dep surfaces as a real error.
[[tool.mypy.overrides]]
module = ["rosdep2.*", "rospkg.*", "argcomplete.*", "catkin_pkg.*", "regex"]
ignore_missing_imports = true