11[build-system ]
2- requires = [" hatchling" , " hatch-vcs>=0.5.0 " ]
2+ requires = [" hatchling" , " setuptools-scm " , " setuptools " , " wheel " ]
33build-backend = " hatchling.build"
44
55# ###################
@@ -10,7 +10,7 @@ build-backend = "hatchling.build"
1010name = " Pytanis"
1111description = " Utilities for the program organization of conferences using Pretalx"
1212readme = " README.md"
13- requires-python = " >=3.10 "
13+ requires-python = " >=3.12 "
1414license = " MIT"
1515keywords = [" pretalx" , " conference" , " cfp" , " google sheet" , " gsheet" , " helpdesk" ]
1616authors = [
@@ -20,8 +20,8 @@ authors = [
2020classifiers = [
2121 " Development Status :: 4 - Beta" ,
2222 " Programming Language :: Python" ,
23- " Programming Language :: Python :: 3.10" ,
24- " Programming Language :: Python :: 3.11" ,
23+ # "Programming Language :: Python :: 3.10",
24+ # "Programming Language :: Python :: 3.11",
2525 " Programming Language :: Python :: 3.12" ,
2626 " Programming Language :: Python :: 3.13" ,
2727 " Programming Language :: Python :: Implementation :: CPython" ,
@@ -32,15 +32,16 @@ classifiers = [
3232]
3333dependencies = [
3434 # Core dependencies only
35- " pandas>=2" ,
35+ " pandas>=2,<3 " ,
3636 " tomli" ,
3737 " pydantic>=2.5" ,
3838 " httpx" ,
3939 " httpx-auth" ,
4040 " structlog" ,
4141 " tqdm" ,
4242 " openpyxl>=3.1.5" , # For local Excel file support
43- " pandas-stubs==2.2.3.250527" ,
43+ " pandas-stubs>=2,<3"
44+
4445]
4546dynamic = [" version" ]
4647
@@ -53,14 +54,6 @@ google = [
5354 " webcolors" ,
5455]
5556
56- # HelpDesk support (no additional deps needed beyond core)
57- helpdesk = []
58-
59- # Mailgun support (uses requests which might already be installed)
60- mailgun = [
61- " requests" ,
62- ]
63-
6457# Jupyter and visualization support
6558jupyter = [
6659 " jupyter>=1.1.1" ,
@@ -71,14 +64,14 @@ jupyter = [
7164# Schedule optimization
7265optimization = [
7366 " pyomo>=6.9.1" ,
74- " pyomo[optional]" , # for optimizing the schedule
67+ # "pyomo[optional]", # for optimizing the schedule
7568 " highspy" , # for MIP/LP/QP solver in pyomo
7669]
7770
7871# Everything
7972all = [
8073 # Include all optional groups
81- " pytanis[google,helpdesk,mailgun, jupyter,optimization]" ,
74+ " pytanis[google,jupyter,optimization]" ,
8275 " pillow" , # for the creation of social cards
8376]
8477
@@ -97,12 +90,8 @@ Source = "https://github.com/PioneersHub/pytanis"
9790allow-direct-references = true
9891
9992[tool .hatch .version ]
100- source = " vcs"
101- # For tags: use exact version. For dev: add .devN suffix
102- raw-options = { version_scheme = " release-branch-semver" , local_scheme = " no-local-version" }
103-
104- [tool .hatch .build .hooks .vcs ]
105- version-file = " src/pytanis/_version.py"
93+ path = " src/pytanis/__init__.py"
94+ pattern = " __version__ = [\" '](?P<version>[^\" ']*)[\" ']"
10695
10796[tool .hatch .build ]
10897packages = [" src/pytanis" ]
@@ -233,7 +222,7 @@ ignore = [
233222 " PLC1901" , # empty string comparisons
234223 " PLW2901" , # `for` loop variable overwritten
235224 " SIM114" , # Combine `if` branches using logical `or` operator
236- " E203" , # Whitespace before :, needed for black compatability and also `ruff format`
225+ " E203" , # Whitespace before :, needed for black compatibility and also `ruff format`
237226 " ISC001" , # causes unexpected behaviour with formatter
238227 " PLR0904" , # more than 20 public methods
239228]
@@ -262,12 +251,12 @@ ban-relative-imports = "all"
262251# ####################
263252
264253[tool .hatch .env ]
265- requires = [" hatch-pip-compile" ]
254+ requires = [" hatch-pip-compile" , " setuptools " ]
266255
267256# Default
268257[tool .hatch .envs .default ]
269258type = " pip-compile"
270- python = " 3.10 "
259+ python = " 3.12 "
271260features = [" all" ]
272261pip-compile-installer = " pip" # or "uv"
273262pip-compile-constraint = " default" # keep locks between default & others consistent
@@ -282,7 +271,7 @@ dependencies = [
282271 " pytest-vcr" ,
283272 " pytest-sugar" ,
284273 " hypothesis" ,
285- " hatch-vcs " ,
274+ " setuptools-scm " ,
286275]
287276[tool .hatch .envs .default .scripts ]
288277cov = " pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=src/pytanis --cov=tests {args}"
@@ -313,6 +302,7 @@ check-all = [
313302# Docs environment
314303[tool .hatch .envs .docs ]
315304type = " virtual"
305+ detached = true
316306dependencies = [
317307 " mkdocs~=1.5" ,
318308 " mkdocs-material~=9.4" ,
@@ -333,6 +323,7 @@ dependencies = [
333323 " pygments~=2.13" ,
334324 # Validation
335325 " linkchecker~=10.3" ,
326+ " setuptools" ,
336327 ]
337328[tool .hatch .envs .docs .env-vars ]
338329SOURCE_DATE_EPOCH = " 1580601600"
@@ -353,6 +344,7 @@ build-check = [
353344# Lint environment
354345[tool .hatch .envs .lint ]
355346type = " virtual"
347+ detached = true
356348dependencies = [
357349 " mypy~=1.15.0" ,
358350 " ruff~=0.9.7" ,
@@ -386,7 +378,7 @@ all = [
386378
387379# Notebook environment
388380# Notebooks should be related to conference work and are considered to be moved to an own project in the future.
389- # Moved to an optional environment to reduce compatibilty conflicts (subdependencies have severe security warnings)
381+ # Moved to an optional environment to reduce compatibility conflicts (subdependencies have severe security warnings)
390382[tool .hatch .envs .notebook ]
391383python = " >=3.11"
392384type = " pip-compile"
0 commit comments