-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
129 lines (117 loc) · 3.58 KB
/
pyproject.toml
File metadata and controls
129 lines (117 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[build-system]
requires = [
"setuptools>=80",
]
build-backend = "setuptools.build_meta"
[project]
dynamic = [
"readme",
]
name = "agh"
version = "0.3.0"
license = "LGPL-3.0-or-later"
license-files = ["LICENSE"]
description = "An assignment grading helper"
authors = [
{ name = "Tuck Williamson", email = "williamsonth@g.cofc.edu" },
]
classifiers = [
# complete classifier list: http://pypi.python.org/pypi?%3Aaction=list_classifiers
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Operating System :: Unix",
"Operating System :: POSIX",
# "Operating System :: Microsoft :: Windows",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
# "Programming Language :: Python :: 3.9",
# "Programming Language :: Python :: 3.10",
# "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
# uncomment if you test on these interpreters:
# "Programming Language :: Python :: Implementation :: IronPython",
# "Programming Language :: Python :: Implementation :: Jython",
# "Programming Language :: Python :: Implementation :: Stackless",
"Topic :: Utilities",
]
keywords = [
# eg: "keyword1", "keyword2", "keyword3",
]
requires-python = ">=3.12"
dependencies = [
"pytest>=8.4.2",
"pytest-shell-utilities>=1.9.7",
"rich>=14.2.0",
"ipython>=9.6.0",
"argcomplete",
"rich-argparse",
]
[project.optional-dependencies]
# rst = ["docutils>=0.11"]
[dependency-groups]
test = [
"pytest",
]
[project.scripts]
agh = "agh.cli:run"
[project.entry-points.pytest11]
agh-pytest-plugin = "agh.pytest_plugin"
[project.urls]
"Sources" = "https://github.com/Tuck-Williamson/python-agh"
"Documentation" = "https://python-agh.readthedocs.io/"
"Changelog" = "https://python-agh.readthedocs.io/en/latest/changelog.html"
"Issue Tracker" = "https://github.com/Tuck-Williamson/python-agh/issues"
[tool.ruff]
extend-exclude = ["static", "ci/templates", "src/agh/humanhash.py", "tests"]
line-length = 140
src = [
"src",
# "tests"
]
target-version = "py310"
[tool.ruff.lint.per-file-ignores]
"ci/*" = ["S"]
[tool.ruff.lint]
ignore = [
"RUF001", # ruff-specific rules ambiguous-unicode-character-string
"S101", # flake8-bandit assert
"S308", # flake8-bandit suspicious-mark-safe-usage
"S603", # flake8-bandit subprocess-without-shell-equals-true
"S607", # flake8-bandit start-process-with-partial-path
"E501", # pycodestyle line-too-long
"S605", # injection with os.system
"S604", # injection with os.system
"S324", # insecure hash (not using as a secure hash)
]
select = [
"B", # flake8-bugbear
"C4", # flake8-comprehensions
"DTZ", # flake8-datetimez
"E", # pycodestyle errors
"EXE", # flake8-executable
"F", # pyflakes
"I", # isort
"INT", # flake8-gettext
"PIE", # flake8-pie
"PLC", # pylint convention
"PLE", # pylint errors
"PT", # flake8-pytest-style
"PTH", # flake8-use-pathlib
"RSE", # flake8-raise
"RUF", # ruff-specific rules
"S", # flake8-bandit
"UP", # pyupgrade
"W", # pycodestyle warnings
]
[tool.ruff.lint.flake8-pytest-style]
fixture-parentheses = false
mark-parentheses = false
[tool.ruff.lint.isort]
forced-separate = ["conftest"]
force-single-line = true
[tool.ruff.format]
quote-style = "double"