11[build-system ]
2+ build-backend = " setuptools.build_meta"
23requires = [
34 " setuptools >= 63.0.0" , # required by pyproject+setuptools_scm integration
4- " setuptools_scm[toml] >= 7.0.5" , # required for "no-local-version" scheme
5-
5+ " setuptools_scm[toml] >= 7.0.5" # required for "no-local-version" scheme
66]
7- build-backend = " setuptools.build_meta"
87
98[project ]
10- # https://peps.python.org/pep-0621/#readme
11- requires-python = " >=3.10"
12- dynamic = [" version" ]
13- name = " pytest-plus"
14- description = " PyTest Plus Plugin :: extends pytest functionality"
15- readme = " README.md"
16- authors = [{
"name" =
" Sorin Sbarnea" ,
"email" =
" [email protected] " }]
17- maintainers = [
18- {
"name" =
" Sorin Sbarnea" ,
"email" =
" [email protected] " }
19- ]
20- license = { text = " MIT" }
9+ authors = [{
"email" =
" [email protected] " ,
"name" =
" Sorin Sbarnea" }]
2110classifiers = [
2211 " Development Status :: 5 - Production/Stable" ,
2312 " Environment :: Console" ,
@@ -38,52 +27,123 @@ classifiers = [
3827 " Topic :: Software Development :: Quality Assurance" ,
3928 " Topic :: Software Development :: Testing" ,
4029 " Topic :: System :: Systems Administration" ,
41- " Topic :: Utilities" ,
30+ " Topic :: Utilities"
4231]
32+ description = " PyTest Plus Plugin :: extends pytest functionality"
33+ dynamic = [" version" , " dependencies" , " optional-dependencies" ]
4334keywords = [" testing" , " pytest" , " plugin" ]
44- dependencies = [" pytest>=7.4.2" ]
45-
46- [project .urls ]
47- homepage = " https://github.com/pytest-dev/pytest-plus"
48- repository = " https://github.com/pytest-dev/pytest-plus"
49- changelog = " https://github.com/pytest-dev/pytest-plus/releases"
50-
51- [project .optional-dependencies ]
52- test = [" coverage>=7.0.0" , " pytest-html" ]
35+ license = {text = " MIT" }
36+ maintainers = [
37+ {
"email" =
" [email protected] " ,
"name" =
" Sorin Sbarnea" }
38+ ]
39+ name = " pytest-plus"
40+ readme = " README.md"
41+ # https://peps.python.org/pep-0621/#readme
42+ requires-python = " >=3.10"
5343
5444[project .entry-points .pytest11 ]
5545plus = " pytest_plus"
5646
57- [tool .coverage .run ]
58- omit = [" test/*" , " /private/var/folders/*" , " /tmp/*" ]
47+ [project .urls ]
48+ changelog = " https://github.com/pytest-dev/pytest-plus/releases"
49+ homepage = " https://github.com/pytest-dev/pytest-plus"
50+ repository = " https://github.com/pytest-dev/pytest-plus"
5951
6052[tool .coverage .report ]
6153fail_under = 100
6254omit = [" test/*" , " /private/var/folders/*" , " /tmp/*" ]
6355show_missing = true
6456
57+ [tool .coverage .run ]
58+ omit = [" test/*" , " /private/var/folders/*" , " /tmp/*" ]
59+
6560[tool .pytest .ini_options ]
6661addopts = " -p no:flaky"
67-
6862filterwarnings = [
6963 " error" ,
7064 " ignore:ast.(Str|Num|NameConstant) is deprecated and will be removed in Python 3.14:DeprecationWarning:_pytest.assertion.rewrite" ,
71- " ignore:Attribute s is deprecated and will be removed in Python 3.14:DeprecationWarning:_pytest.assertion.rewrite" ,
65+ " ignore:Attribute s is deprecated and will be removed in Python 3.14:DeprecationWarning:_pytest.assertion.rewrite"
7266]
7367
7468[tool .ruff ]
69+ cache-dir = " ./.cache/.ruff"
70+ fix = true
71+ # Same as Black.
72+ line-length = 88
73+ preview = true
74+ target-version = " py310"
75+
76+ [tool .ruff .lint ]
7577ignore = [
78+ " COM812" , # conflicts with ISC001 on format
79+ " CPY001" , # missing-copyright-notice
7680 " D203" , # incompatible with D211
7781 " D213" , # incompatible with D212
7882 " E501" , # we use black
83+ " ERA001" , # auto-removal of commented out code affects development and vscode integration
84+ " INP001" , # "is part of an implicit namespace package", all false positives
85+ " ISC001" , # conflicts with COM812 on format
86+ " PLW2901" , # PLW2901: Redefined loop variable
87+ " RET504" , # Unnecessary variable assignment before `return` statement
88+ # temporary disabled until we fix them:
89+ " ANN" ,
90+ " ARG002" , # Unused method argument (currently in too many places)
91+ " D102" , # Missing docstring in public method (currently in too many places)
92+ " FBT001" ,
93+ " FBT003" ,
94+ " PLR" ,
95+ " RUF012" , # Mutable class attributes should be annotated with `typing.ClassVar`
96+ " PERF203" ,
97+ " PD011" , # We are not using pandas, any .values attributes are unrelated
98+ " PLW0603" , # global lock file in cache dir
99+ # part of preview rules:
100+ " B909" , # raise-missing-from
101+ " DOC201" , # docstring-missing-returns
102+ " DOC402" , # docstring-missing-summary
103+ " DOC501" , # docstring-missing-exception
104+ " FURB101" ,
105+ " FURB103" ,
106+ " FURB110" ,
107+ " FURB113" ,
108+ " FURB118" ,
109+ " PLC0415" ,
110+ " PLC2701" ,
111+ " PLW1641" ,
112+ " S404"
79113]
80114select = [" ALL" ]
81- target-version = " py39 "
82- # Same as Black.
83- line-length = 88
115+
116+ [ tool . ruff . lint . pydocstyle ]
117+ convention = " google "
84118
85119[tool .ruff .per-file-ignores ]
86120"test/**/*.py" = [" S" ]
121+
122+ [tool .setuptools .dynamic ]
123+ dependencies = {file = [" .config/requirements.in" ]}
124+ optional-dependencies.test = {file = [" .config/requirements-test.in" ]}
125+
87126[tool .setuptools_scm ]
127+ # To prevent accidental pick of mobile version tags such 'v6'
128+ git_describe_command = [
129+ " git" ,
130+ " describe" ,
131+ " --dirty" ,
132+ " --long" ,
133+ " --tags" ,
134+ " --match" ,
135+ " v*.*"
136+ ]
88137local_scheme = " no-local-version"
138+ tag_regex = " ^(?P<prefix>v)?(?P<version>\\ d+[^\\ +]*)(?P<suffix>.*)?$"
89139write_to = " src/pytest_plus/_version.py"
140+
141+ [tool .tomlsort ]
142+ in_place = true
143+ sort_inline_tables = true
144+ sort_table_keys = true
145+
146+ [tool .uv .pip ]
147+ annotation-style = " line"
148+ custom-compile-command = " tox run -e deps"
149+ no-emit-package = [" pip" , " resolvelib" , " ruamel-yaml-clib" , " uv" ]
0 commit comments