@@ -6,31 +6,117 @@ build-backend = "setuptools.build_meta"
66name = " pipe"
77description = " Module enabling a sh like infix syntax (using pipes)"
88readme = " README.md"
9- license = {text = " MIT License" }
9+ license = { text = " MIT License" }
1010dynamic = [" version" ]
11- authors = [
12- {name = " Julien Palard" , email = " julien@palard.fr" },
13- ]
11+ authors = [{ name = " Julien Palard" , email = " julien@palard.fr" }]
1412classifiers = [
1513 " Programming Language :: Python" ,
1614 " Programming Language :: Python :: 3" ,
17- " Development Status :: 5 - Production/Stable" ,
18- " Intended Audience :: Developers" ,
15+ " Programming Language :: Python :: 3.8" ,
16+ " Programming Language :: Python :: 3.10" ,
17+ " Programming Language :: Python :: 3.11" ,
18+ " Programming Language :: Python :: 3.12" ,
19+ " Programming Language :: Python :: 3.13" ,
1920 " License :: OSI Approved :: MIT License" ,
21+ " Intended Audience :: Developers" ,
22+ " Development Status :: 5 - Production/Stable" ,
2023 " Operating System :: OS Independent" ,
2124 " Topic :: Software Development" ,
2225 " Topic :: Software Development :: Libraries :: Python Modules" ,
2326]
2427requires-python = " >= 3.8"
28+ keywords = [" pipe" ]
2529
2630[project .urls ]
2731repository = " https://github.com/JulienPalard/Pipe"
2832
33+ [dependency-groups ]
34+ ruff = [" ruff>=0.10.0" ]
35+ coverage = [" coverage[toml]" , " covdefaults" ]
36+ dev = [{ include-group = " ruff" }, " pre-commit>=2.21.0" , " tox>=4.23.2" ]
37+ test = [{ include-group = " coverage" }, " mock" , " pytest" , " pytest-cov" ]
38+
2939[tool .setuptools ]
30- py-modules = [
31- " pipe" ,
32- ]
40+ py-modules = [" pipe" ]
3341include-package-data = false
42+ dynamic.version.attr = " pipe.__version__"
3443
35- [tool .setuptools .dynamic .version ]
36- attr = " pipe.__version__"
44+ [tool .ruff ]
45+ lint.pydocstyle.convention = " numpy"
46+ lint.extend-select = [" C" , " D" , " FURB" , " I" , " N" , " PL" , " PTH" , " SIM" ]
47+ lint.extend-ignore = [
48+ " D100" , # Missing docstring in public module
49+ " D101" , # Missing docstring in public class
50+ " D102" , #
51+ " D103" , # Missing docstring in public function
52+ " D105" ,
53+ ]
54+
55+ [tool .coverage ]
56+ html.show_contexts = true
57+ html.skip_covered = false
58+ run.parallel = true
59+ run.omit = [
60+ " tests/*.py" ,
61+ # add others
62+ ]
63+ run.plugins = [
64+ # all plugins
65+ " covdefaults" ,
66+ ]
67+
68+
69+ [tool .tox ]
70+ requires = [" tox>=4.23.2" , " tox-uv>=1.13" ]
71+ isolated_build = true
72+ env_list = [" ruff" , " cov-report" , " py38" , " py39" , " py311" , " py312" , " py313" ]
73+
74+ [tool .tox .env_run_base ]
75+ commands = [
76+ [
77+ " coverage" ,
78+ " run" ,
79+ " -m" ,
80+ " pytest" ,
81+ " --doctest-glob=README.md" ,
82+ " --junit-xml=.build/tests/pytest_{env_name}_junit.xml" ,
83+ ],
84+ ]
85+ set_env.COVERAGE_FILE = " {toxworkdir}/.coverage"
86+ dependency_groups = [" test" ]
87+ package = " wheel"
88+ wheel_build_env = " .pkg"
89+
90+ [tool .tox .env .ruff ]
91+ recreate = false
92+ skip_install = true
93+ dependency_groups = [" ruff" ]
94+ commands = [
95+ # commands
96+ [" ruff" , " format" , " --check" , " ." ],
97+ [" ruff" , " check" , " ." ],
98+ ]
99+
100+ [tool .tox .env .cov-report ]
101+ parallel_show_output = true
102+ recreate = false
103+ set_env.COVERAGE_FILE = " {toxworkdir}/.coverage"
104+ skip_install = true
105+ dependency_groups = [" coverage" ]
106+ depends = [" py38" , " py39" , " py311" , " py312" , " py313" ]
107+ commands = [
108+ [
109+ " coverage" ,
110+ " combine" ,
111+ ],
112+ [
113+ " coverage" ,
114+ " html" ,
115+ " -d" ,
116+ " .build/coverage" ,
117+ ],
118+ [
119+ " coverage" ,
120+ " report" ,
121+ ],
122+ ]
0 commit comments