-
Notifications
You must be signed in to change notification settings - Fork 305
/
pyproject.toml
146 lines (127 loc) · 3.39 KB
/
pyproject.toml
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# build-system
# - ref: https://peps.python.org/pep-0517/
#
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# project
# - ref 1: https://peps.python.org/pep-0621/
# - ref 2: https://hatch.pypa.io/latest/config/metadata/#project-metadata
#
[project]
name = "jupyterhub-kubespawner"
description = "JupyterHub Spawner for Kubernetes"
readme = "README.md"
requires-python = ">=3.7"
license = {file = "LICENSE"}
keywords = ["jupyterhub", "spawner"]
authors = [
{name = "Jupyter Contributors", email = "jupyter@googlegroups.com"},
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Programming Language :: Python :: 3",
]
dependencies = [
# NOTE: If lower bounds are updated, also update our test for the lower
# bounds in .github/workflows/test.yaml.
"escapism",
"jinja2",
"jupyterhub>=4.0.0",
"kubernetes_asyncio>=24.2.3",
"python-slugify",
"pyYAML",
"traitlets",
"urllib3",
]
dynamic = ["version"]
[project.optional-dependencies]
test = [
"kubernetes>=11",
"pytest>=5.4",
"pytest-cov",
# FIXME: unpin pytest-asyncio
"pytest-asyncio>=0.17,<0.23",
]
[project.urls]
Documentation = "https://jupyterhub-kubespawner.readthedocs.io"
Source = "https://github.com/jupyterhub/kubespawner"
Issues = "https://github.com/jupyterhub/kubespawner/issues"
# Explicitly include our profile_list templates, as hatch doesn't
# respect MANIFEST.in.
# Documentation: https://hatch.pypa.io/latest/config/build/#artifacts
[tool.hatch.build]
artifacts = [
"kubespawner/templates/*"
]
# include is required since the project name doesn't match the folder name
include = ["kubespawner"]
[tool.hatch.build.targets.wheel]
# packages is required when building wheels since the project name doesn't match
# the folder name.
packages = ["kubespawner"]
# black is used for autoformatting Python code
#
# ref: https://black.readthedocs.io/en/stable/
#
[tool.black]
skip-string-normalization = true
# target-version should be all supported versions, see
# https://github.com/psf/black/issues/751#issuecomment-473066811
target_version = [
"py37",
"py38",
"py39",
"py310",
"py311",
]
# hatch ref: https://hatch.pypa.io/latest/
#
[tool.hatch.version]
path = "kubespawner/_version.py"
# isort is used for autoformatting Python code
#
# ref: https://pycqa.github.io/isort/
#
[tool.isort]
profile = "black"
# pytest is used for running Python based tests
#
# ref: https://docs.pytest.org/en/stable/
#
[tool.pytest.ini_options]
addopts = "--verbose --color=yes --durations=10"
asyncio_mode = "auto"
# Ignore thousands of tests in dependencies installed in a virtual environment
norecursedirs = "lib lib64"
# tbump is used to simplify and standardize the release process when updating
# the version, making a git commit and tag, and pushing changes.
#
# ref: https://github.com/your-tools/tbump#readme
#
[tool.tbump]
github_url = "https://github.com/jupyterhub/kubespawner"
[tool.tbump.version]
current = "7.0.0"
regex = '''
(?P<major>\d+)
\.
(?P<minor>\d+)
\.
(?P<patch>\d+)
(?P<pre>((a|b|rc)\d+)|)
\.?
(?P<dev>(?<=\.)dev\d*|)
'''
[tool.tbump.git]
message_template = "Bump to {new_version}"
tag_template = "{new_version}"
[[tool.tbump.file]]
src = "kubespawner/_version.py"
# djlint is used for autoformatting jinja templates
#
# ref: https://www.djlint.com/docs/formatter/
#
[tool.djlint]
indent = 2
profile = "jinja"