-
Notifications
You must be signed in to change notification settings - Fork 4
/
pyproject.toml
129 lines (106 loc) · 2.67 KB
/
pyproject.toml
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
123
124
125
126
127
128
[tool.poetry]
name = "robenv"
version = "0.5.1a0"
description = "Management tool for ROS1 dependencies and package building."
authors = ["SSE Team <[email protected]>"]
readme = "README.md"
packages = [{ include = "robenv", from = "src" }]
[tool.poetry.scripts]
robenv = "robenv.cli:main"
[tool.poetry.dependencies]
python = "^3.8"
bloom = "^0.12.0"
cleo = "^2.0.1"
shellingham = "^1.5.0.post1"
pexpect = "^4.8.0"
defusedxml = "^0.7.1"
pyyaml = "^6.0"
deb-pkg-tools = "^8.4"
# we need this old version because of the option --install-layout for the makefile generated by bloom
setuptools = "45.2.0"
importlib-resources = { version = "^5.12.0", python = "<3.9" }
requests = "^2.31.0"
rosdep = "^0.22.0"
lark = "^1.1.9"
[tool.poetry.group.dev.dependencies]
ruff = "^0.1.5"
black = "^23.3.0"
mypy = "^1.3.0"
pre-commit = "^3.3.1"
pytest = "^7.3.1"
pytest-cov = "^4.0.0"
pytest-mock = "^3.10.0"
types-pyyaml = "^6.0.12.10"
types-requests = "^2.31.0.2"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.black]
line_length = 120
[tool.mypy]
python_version = "3.8"
files = "src"
strict = true
warn_return_any = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_unreachable = true
disallow_untyped_defs = true
no_implicit_optional = true
show_error_context = true
show_error_codes = true
show_error_code_links = true
show_column_numbers = true
pretty = true
exclude = [
"^tests/resources/*$"
]
[[tool.mypy.overrides]]
module = [
"pexpect",
"pexpect.*",
"shellingham",
"defusedxml",
"deb_pkg_tools.*",
"importlib_resources.*",
"yaml",
"requests"
]
ignore_missing_imports = true
[tool.ruff]
select = ["ALL"]
ignore = [
"D1", # docstrings
"D203", # one-blank-line-before-class
"D212", # multi-line-summary-first-line
"ERA001", # Commented out code found
"PLC0414", # useless import alias
"TCH", # type checking blocks
"ANN10", # typing self and cls
"FIX002", # TODO anywhere in comments
]
line-length = 120
target-version = "py38"
[tool.ruff.per-file-ignores]
"src/*" = ["PT"] # pytest rule set
"src/robenv/commands/*" = ["RUF012"]
"tests/*" = [
"D1", # docstrings
"T20", # print detection
"S101", # `assert` detected
"PLR0913", # too-many-arguments
]
"pkgInfo.py" = [
"D100", # public docstring
"N816", # mixed case variables
]
"tests/resources/*" = ["ALL"]
"ci-*.py" = ["T201"] # print in ci-scripts
[tool.ruff.isort]
force-single-line = true
lines-between-types = 1
lines-after-imports = 2
known-first-party = ["robenv"]
required-imports = ["from __future__ import annotations"]
[tool.ruff.flake8-tidy-imports]
ban-relative-imports = "all"