1
1
[build-system ]
2
- requires = [" setuptools>=42" , " wheel" , " setuptools_scm[toml]>=3.4" ]
2
+ requires = [
3
+ " setuptools>=64" ,
4
+ " setuptools-scm>=8" ,
5
+ ]
6
+ build-backend = " setuptools.build_meta"
7
+
8
+ [project ]
9
+ name = " cmd2"
10
+ description = " Quickly build feature-rich and user-friendly interactive command line applications in Python"
11
+ readme = " README.md"
12
+ license.file = " LICENSE"
13
+ authors = [ { name = " cmd2 Contributors" } ]
14
+ requires-python = " >=3.8"
15
+ classifiers = [
16
+ " Development Status :: 5 - Production/Stable" ,
17
+ " Environment :: Console" ,
18
+ " Intended Audience :: Developers" ,
19
+ " Intended Audience :: System Administrators" ,
20
+ " License :: OSI Approved :: MIT License" ,
21
+ " Operating System :: MacOS" ,
22
+ " Operating System :: Microsoft :: Windows" ,
23
+ " Operating System :: POSIX" ,
24
+ " Operating System :: Unix" ,
25
+ " Programming Language :: Python" ,
26
+ " Programming Language :: Python :: 3 :: Only" ,
27
+ " Programming Language :: Python :: 3.8" ,
28
+ " Programming Language :: Python :: 3.9" ,
29
+ " Programming Language :: Python :: 3.10" ,
30
+ " Programming Language :: Python :: 3.11" ,
31
+ " Programming Language :: Python :: 3.12" ,
32
+ " Programming Language :: Python :: Implementation :: CPython" ,
33
+ " Topic :: Software Development :: Libraries" ,
34
+ ]
35
+ keywords = [
36
+ " cmd" ,
37
+ " command" ,
38
+ " console" ,
39
+ " prompt" ,
40
+ ]
41
+ dynamic = [
42
+ " version" ,
43
+ ]
44
+ dependencies = [
45
+ " pyperclip" ,
46
+ " wcwidth" ,
47
+ ' gnureadline ; platform_system == "Darwin"' ,
48
+ ' pyreadline3 ; platform_system == "Windows"' ,
49
+ ]
50
+ [project .optional-dependencies ]
51
+ dev = [
52
+ " codecov" ,
53
+ " doc8" ,
54
+ " flake8" ,
55
+ " Flake8-pyproject" ,
56
+ " black" ,
57
+ " isort" ,
58
+ " invoke" ,
59
+ " mypy" ,
60
+ " nox" ,
61
+ " pytest" ,
62
+ " pytest-cov" ,
63
+ " pytest-mock" ,
64
+ " sphinx" ,
65
+ " sphinx-rtd-theme" ,
66
+ " sphinx-autobuild" ,
67
+ " twine" ,
68
+ ]
69
+ test = [
70
+ " codecov" ,
71
+ " coverage" ,
72
+ " pytest" ,
73
+ " pytest-cov" ,
74
+ " pytest-mock" ,
75
+ ]
76
+ validate = [
77
+ " flake8" ,
78
+ " Flake8-pyproject" ,
79
+ " mypy" ,
80
+ " types-setuptools" ,
81
+ ]
82
+ [project .urls ]
83
+ documentation = " https://cmd2.readthedocs.io/"
84
+ repository = " https://github.com/python-cmd2/cmd2"
3
85
4
86
[tool .black ]
5
87
skip-string-normalization = true
@@ -25,3 +107,132 @@ exclude = '''
25
107
| htmlcov
26
108
)/
27
109
'''
110
+
111
+ [tool .doc8 ]
112
+ ignore-path = [
113
+ " __pycache__" ,
114
+ " *.egg" ,
115
+ " .git" ,
116
+ " .idea" ,
117
+ " .nox" ,
118
+ " .pytest_cache" ,
119
+ " .tox" ,
120
+ " .venv" ,
121
+ " .vscode" ,
122
+ " build" ,
123
+ " cmd2" ,
124
+ " cmd2.egg-info" ,
125
+ " dist" ,
126
+ " docs/_build" ,
127
+ " examples" ,
128
+ " htmlcov" ,
129
+ " plugins" ,
130
+ " tests" ,
131
+ ]
132
+ max-line-length = 120
133
+ verbose = 0
134
+
135
+ [tool .flake8 ]
136
+ count = true
137
+ ignore = [' E203' , ' E704' , ' W503' ]
138
+ max-complexity = 26
139
+ max-line-length = 127
140
+ per-file-ignores = [
141
+ ' __init__.py:F401' ,
142
+ ]
143
+ show-source = true
144
+ statistics = true
145
+ exclude = [
146
+ " __pycache__" ,
147
+ " .eggs" ,
148
+ " *.eggs" ,
149
+ " .git" ,
150
+ " .idea" ,
151
+ " .nox" ,
152
+ " .pytest_cache" ,
153
+ " .tox" ,
154
+ " .venv" ,
155
+ " .vscode" ,
156
+ " build" ,
157
+ " dist" ,
158
+ " htmlcov" ,
159
+ ]
160
+
161
+ [tool .isort ]
162
+ profile = " black"
163
+ force_grid_wrap = 0
164
+ include_trailing_comma = true
165
+ line_length = 1
166
+ multi_line_output = 3
167
+ use_parentheses = true
168
+ skip = [
169
+ " __pycache" ,
170
+ " .eggs" ,
171
+ " .git" ,
172
+ " .idea" ,
173
+ " .nox" ,
174
+ " .tox" ,
175
+ " .venv" ,
176
+ " .vscode" ,
177
+ " cmd2/__init__.py" ,
178
+ " build" ,
179
+ " dist" ,
180
+ " htmlcov" ,
181
+ ]
182
+
183
+ [tool .mypy ]
184
+ disallow_incomplete_defs = true
185
+ disallow_untyped_calls = true
186
+ disallow_untyped_defs = true
187
+ exclude = [
188
+ " examples" ,
189
+ " plugins" ,
190
+ ]
191
+ strict = true
192
+ show_column_numbers = true
193
+ show_error_codes = true
194
+ show_error_context = true
195
+ warn_redundant_casts = true
196
+ warn_return_any = true
197
+ warn_unused_ignores = false
198
+ warn_unreachable = true
199
+
200
+ [tool .pytest .ini_options ]
201
+ minversion = " 8"
202
+ addopts = " --cov=cmd2 --cov-append --cov-report=term --cov-report=html"
203
+ testpaths = [
204
+ " tests" ,
205
+ ]
206
+
207
+ [tool .ruff ]
208
+ src = [" cmd2" ]
209
+ fix = true
210
+ line-length = 127
211
+ lint.preview = true
212
+ exclude =[
213
+ " .git" ,
214
+ " __pycache__" ,
215
+ " dist" ,
216
+ " docs/_build" ,
217
+ " build" ,
218
+ ]
219
+
220
+ [tool .ruff .format ]
221
+ docstring-code-format = true
222
+ # quote-style = "double"
223
+
224
+ [tool .ruff .lint .isort ]
225
+ force-single-line = true
226
+ from-first = false
227
+ lines-between-types = 1
228
+ order-by-type = true
229
+
230
+ [tool .setuptools .package-data ]
231
+ "cmd2" = [" py.typed" ]
232
+
233
+ [tool .setuptools .packages .find ]
234
+ where = [" cmd2" ]
235
+ namespaces = false
236
+
237
+ [tool .setuptools_scm ]
238
+
0 commit comments