Skip to content

Commit e57b439

Browse files
committed
Move the packaging machinery to pyproject.toml
1 parent 7d39117 commit e57b439

5 files changed

Lines changed: 117 additions & 103 deletions

File tree

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ python:
88
- method: pip
99
path: .
1010
extra_requirements:
11-
- doc
11+
- docs
1212
sphinx:
1313
configuration: docs/conf.py

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ bootstrap: $(VENV)/bin/activate
2323
$(VENV)/bin/activate:
2424
$(PYTHON_BIN) -m venv $(VENV)
2525
$(PYTHON) -m pip install build==1.5.0 pip==26.1 setuptools==82.0.1 wheel==0.47.0
26-
$(PYTHON) -m pip install -e .[dev,doc,test]
26+
$(PYTHON) -m pip install -e .[dev,docs,test]
2727
$(PYTHON) -m pip install 'pifpaf @ git+https://github.com/jd/pifpaf.git@18e693f5b86f9fd12fd2eaba35822af04c1f85ae#egg=aetcd'
2828

2929
build: bootstrap

pyproject.toml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
[build-system]
2+
requires = [
3+
"setuptools-scm[toml]==10.0.5",
4+
"setuptools==82.0.1",
5+
"wheel==0.47.0",
6+
]
7+
build-backend = "setuptools.build_meta"
8+
9+
[tool.setuptools.packages.find]
10+
include = ["aetcd"]
11+
12+
[project]
13+
name = "aetcd"
14+
description = "Python asyncio-based client for etcd"
15+
readme = "README.rst"
16+
license = "Apache-2.0"
17+
license-files = ["LICENSE"]
18+
keywords = ["etcd", "asyncio", "client"]
19+
classifiers = [
20+
"Development Status :: 4 - Beta",
21+
"Intended Audience :: Developers",
22+
"Programming Language :: Python :: 3",
23+
"Programming Language :: Python :: 3.10",
24+
"Programming Language :: Python :: 3.11",
25+
"Programming Language :: Python :: 3.12",
26+
"Programming Language :: Python :: 3.13",
27+
"Programming Language :: Python :: 3.14",
28+
"Topic :: Database",
29+
]
30+
authors = [
31+
{name = "Andrey Martyanov", email = "andrey@martyanov.com"},
32+
]
33+
requires-python = ">=3.10,<4"
34+
dependencies = [
35+
"grpcio>1.66.0,<2",
36+
"protobuf>4,<7",
37+
]
38+
dynamic = ["version"]
39+
40+
[project.optional-dependencies]
41+
dev = [
42+
"flake8-commas==4.0.0",
43+
"flake8-docstrings==1.7.0",
44+
"flake8-isort==7.0.0",
45+
"flake8-pyproject==1.2.4",
46+
"flake8-quotes==3.4.0",
47+
"flake8==7.3.0",
48+
"grpcio-tools==1.75.1",
49+
"pep8-naming==0.15.1",
50+
"twine==6.2.0",
51+
]
52+
docs = [
53+
"sphinx==8.1.3",
54+
"sphinx_rtd_theme==3.1.0",
55+
]
56+
test = [
57+
"pytest-asyncio==1.3.0",
58+
"pytest-cov==7.1.0",
59+
"pytest-mock==3.15.1",
60+
"pytest==9.0.3",
61+
]
62+
63+
[project.urls]
64+
Documentation = "https://aetcd.readthedocs.io"
65+
Code = "https://github.com/martyanov/aetcd"
66+
Issues = "https://github.com/martyanov/aetcd/issues"
67+
68+
[tool.setuptools_scm]
69+
70+
[tool.flake8]
71+
max-line-length = 95
72+
max-complexity = 10
73+
ignore = [
74+
"D1",
75+
]
76+
exclude = [
77+
"aetcd/rpc",
78+
]
79+
application-import-names = [
80+
"aetcd",
81+
]
82+
83+
[tool.pytest.ini_options]
84+
addopts = "--cov=aetcd --no-cov-on-fail"
85+
testpaths = [
86+
"aetcd",
87+
"tests",
88+
]
89+
asyncio_mode = "auto"
90+
91+
[tool.coverage.report]
92+
show_missing = true
93+
exclude_lines = [
94+
"pragma: no cover",
95+
"if __name__ == '__main__':",
96+
]
97+
98+
[tool.coverage.run]
99+
omit = [
100+
"aetcd/rpc/*",
101+
]
102+
103+
[tool.isort]
104+
line_length = 95
105+
multi_line_output = 3
106+
force_single_line = true
107+
lines_after_imports = 2
108+
include_trailing_comma = true
109+
src_paths = [
110+
"aetcd",
111+
"tests",
112+
]
113+
skip_glob = [
114+
"aetcd/rpc/*",
115+
]

setup.cfg

Lines changed: 0 additions & 25 deletions
This file was deleted.

setup.py

Lines changed: 0 additions & 76 deletions
This file was deleted.

0 commit comments

Comments
 (0)