Summary
Installing eDisGo (tested on branch project/LoMa) under Python 3.13 fails while building the
pygeos dependency.
Current behavior
pip install aborts when building the pygeos wheel:
File ".../pygeos.../versioneer.py", line 342, in get_config_from_root
parser = configparser.SafeConfigParser()
AttributeError: module 'configparser' has no attribute 'SafeConfigParser'. Did you mean: 'RawConfigParser'?
ERROR: Failed to build 'pygeos' when getting requirements to build wheel
Cause
configparser.SafeConfigParser was deprecated since Python 3.2 and removed in Python 3.12+. The
versioneer.py bundled with pygeos still calls it, so pygeos can no longer be built on 3.13.
pygeos itself is deprecated/unmaintained — its functionality was merged into Shapely 2.0 — so
it should no longer be a dependency.
Expected behavior
eDisGo installs cleanly on the supported Python versions, including 3.13 — or the supported range is
explicitly declared and enforced.
Proposed fix
Affected files
setup.py (dependency pins; no python_requires set)
.github/workflows/ (CI Python matrix)
Acceptance criteria
- Fresh
pip install succeeds on Python 3.13 (and all declared supported versions)
pygeos no longer appears in the resolved dependency tree
Environment
- Branch:
project/LoMa · Python: 3.13
Summary
Installing eDisGo (tested on branch
project/LoMa) under Python 3.13 fails while building thepygeosdependency.Current behavior
pip installaborts when building thepygeoswheel:Cause
configparser.SafeConfigParserwas deprecated since Python 3.2 and removed in Python 3.12+. Theversioneer.pybundled withpygeosstill calls it, sopygeoscan no longer be built on 3.13.pygeositself is deprecated/unmaintained — its functionality was merged into Shapely 2.0 — soit should no longer be a dependency.
Expected behavior
eDisGo installs cleanly on the supported Python versions, including 3.13 — or the supported range is
explicitly declared and enforced.
Proposed fix
pygeosdependency (direct or transitive); ensuregeopandasuses the Shapely 2.0 backendpygeos— likely the old pins insetup.py(geopandas >=0.12.0,<1.2.0,pandas >=1.4.0,<2.2.0) — and loosen/update thempython_requiresinsetup.py(currently unset) and enforce it in CIAffected files
setup.py(dependency pins; nopython_requiresset).github/workflows/(CI Python matrix)Acceptance criteria
pip installsucceeds on Python 3.13 (and all declared supported versions)pygeosno longer appears in the resolved dependency treeEnvironment
project/LoMa· Python: 3.13