-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpyproject.toml
114 lines (107 loc) · 3.23 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
[build-system]
requires = ["setuptools>=0.62.0"]
build-backend = "setuptools.build_meta"
[project]
name = "cfdp-py"
description = "Library for high level CCSDS File Delivery Protocol (CFDP) components"
readme = "README.md"
version = "0.4.1"
requires-python = ">=3.9"
license = {text = "Apache-2.0"}
authors = [
{name = "Robin Mueller", email = "[email protected]"}
]
keywords = ["ccsds", "space", "communication", "packet", "file-transfer"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"License :: OSI Approved :: Apache Software License",
"Natural Language :: English",
"Operating System :: POSIX",
"Operating System :: Microsoft :: Windows",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Topic :: Communications",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Scientific/Engineering"
]
dependencies = [
"spacepackets~=0.26.0",
"crcmod~=1.7",
"deprecation~=2.1",
]
[project.optional-dependencies]
test = [
"pyfakefs~=5.2"
]
lint = ["ruff"]
[project.urls]
"Homepage" = "https://github.com/us-irs/cfdp-py"
[tool.ruff]
exclude = [
".git",
"venv",
"docs"
]
line-length = 100
[tool.ruff.lint]
select = [
# See https://docs.astral.sh/ruff/rules/
"F", # pyflakes
"E", # pycodestyle
"W", # pycodestyle
"I", # isort
"N", # pep8-naming
# "D", # pydocstyle (documentation!)
"ANN", # flake8-annotations
"UP", # pyupgrade
"ASYNC", # flake8-async
"S", # flake8-bandit
"B", # flake8-bugbear
"A", # flake8-builtins
"C4", # flake8-comprehensions
"DTZ", # flake8-datetimez
"ICN", # flake8-import-conventions
"INP", # flake8-no-pep420
"PIE", # flake8-pie
"PYI", # flake8-pyi
"RSE", # flake8-raise
"RET", # flake8-return
"SIM", # flake8-simplify
"TID", # flake8-tidy
"TCH", # flake8-type-checking
"PERF", # Performance
"FURB", # Refurb rules
"PL", # Pylint
"RUF" # ruff specific
]
ignore = [
"N818", # Exception names should end in "Error", requires API change
"S101", # Use of assert, should be changed in the future
"ANN204", # Do not use return typing on __init__, __new__ and __call__ methods
"E111", # Recommended to be disabled when using the ruff formatter
"E114", # Recommended to be disabled when using the ruff formatter
"SIM105" # Suppress exceptions which is more readable but much slower
]
[tool.ruff.lint.extend-per-file-ignores]
"tests/*" = [
"INP001", # Tests are implicit namespace packets
"S101", # Tests use assert
"S105", # Tests use hardcoded test credentials
"S108", # Tests use temporary files names
"S311", # Tests use random without cryptographic security requirements
"ANN", # Type hints in test are not required
"PLR0912", # Too many branches
"PLR0915", # Too many statements
"PLR2004", # Magic values in comparison are common in tests
"D" # No documentation rules in tests
]
"examples/*" = [
"INP001", # Examples are implicit namespace packets
"S101", # Examples use assert
"S104", # Possible binding to all interfaces
"S108", # Temp files
"PLR0915" # Too many statements
]
[tool.ruff.lint.pylint]
max-args = 10