Handle closed-time typos from SWP API and update local dev setup (#32)

* updated dependencies, fixed "geschlossen" parsing

* httpretty.core warning patch

---------

Co-authored-by: Hadrian Burkhardt <hadrian.burkhardt@gmx.de>
This commit is contained in:
2026-02-18 23:00:09 +01:00
committed by GitHub
parent a31cfd4f4e
commit 68e092b06e
14 changed files with 1178 additions and 1 deletions
@@ -0,0 +1,74 @@
Metadata-Version: 2.4
Name: om-parser-stw-potsdam-v2
Version: 2.0.1
Summary: OpenMensa parser components for Studentenwerk Potsdam.
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: requests
Requires-Dist: pyopenmensa
Requires-Dist: flask
Requires-Dist: cachetools
Requires-Dist: uwsgi
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: coveralls; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: httpretty; extra == "dev"
Requires-Dist: pycodestyle; extra == "dev"
Requires-Dist: pydocstyle; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx-autobuild; extra == "dev"
Requires-Dist: sphinx-rtd-theme; extra == "dev"
# OpenMensa Parser STW Potsdam
[![CircleCI](https://dl.circleci.com/status-badge/img/gh/f4lco/om-parser-stw-potsdam-v2/tree/master.svg?style=shield)](https://dl.circleci.com/status-badge/redirect/gh/f4lco/om-parser-stw-potsdam-v2/tree/master)
[![Coverage Status](https://coveralls.io/repos/github/f4lco/om-parser-stw-potsdam-v2/badge.svg?branch=master)](https://coveralls.io/github/f4lco/om-parser-stw-potsdam-v2?branch=master)
[![Read the Docs](https://readthedocs.org/projects/om-parser-stw-potsdam-v2/badge/?version=latest&style=flat)](https://om-parser-stw-potsdam-v2.readthedocs.io/en/latest/)
[OpenMensa][om] parser components query canteen websites for menus and transform them into OpenMensa's data format.
This project came to life after the website of the canteens of the Studentenwerk Potsdam changed, and is therefore the successor to [kaifabian/om-parser-potsdam][prev-parser] (hence the "-v2").
Among others, OpenMensa powers the popular [Mensa Uni Potsdam][steppschuh] Android app.
The current application is built with [Python][py], [PyOpenMensa][pom], and [Flask][flask]. Learn more about the technical details at [Read the Docs][rtd].
## Local development (modern)
Recommended: Python 3.12+.
**Option A (uv, recommended)** ::
$ uv venv
$ uv pip install -e ".[dev]"
$ uv run flask --app stw_potsdam.views run
**Option B (venv + pip)** ::
$ python -m venv .venv
$ . .venv/bin/activate
$ pip install -r requirements-dev.txt
$ FLASK_APP=stw_potsdam.views flask run
**Legacy (Pipenv)** ::
$ pipenv install --dev
$ make run
**Contributions** are always welcome, in particular if the response format of the canteens change. Feel free to file a PR with improvements.
**Deployment** If in need of a deployment, file a PR to this fork: [kaifabian/om-parser-potsdam-v2][kai]. Kai is currently in charge of running an instance of the parser and the registration on the OpenMensa platform.
**Where to go next** maybe use this parser or the OpenMensa API to source a new dataset for training a predictor for your favorite lunch?
**License** Just assume this project is licensed in terms of [WTFPL](http://www.wtfpl.net/) ;)
[om]: https://openmensa.org
[prev-parser]: https://github.com/kaifabian/om-parser-potsdam
[rtd]: https://om-parser-stw-potsdam-v2.readthedocs.io/en/latest/
[steppschuh]: https://steppschuh.net/blog/?p=951
[py]: http://python.org
[pom]: https://github.com/mswart/pyopenmensa
[flask]: https://palletsprojects.com/p/flask/
[kai]: https://github.com/kaifabian/om-parser-stw-potsdam-v2
@@ -0,0 +1,22 @@
README.md
pyproject.toml
om_parser_stw_potsdam_v2.egg-info/PKG-INFO
om_parser_stw_potsdam_v2.egg-info/SOURCES.txt
om_parser_stw_potsdam_v2.egg-info/dependency_links.txt
om_parser_stw_potsdam_v2.egg-info/requires.txt
om_parser_stw_potsdam_v2.egg-info/top_level.txt
stw_potsdam/__init__.py
stw_potsdam/config.py
stw_potsdam/swp_webspeiseplan_api.py
stw_potsdam/swp_webspeiseplan_parser.py
stw_potsdam/views.py
stw_potsdam/xml_types/__init__.py
stw_potsdam/xml_types/builder.py
stw_potsdam/xml_types/canteen_xml.py
stw_potsdam/xml_types/feed_xml.py
stw_potsdam/xml_types/meal_xml.py
stw_potsdam/xml_types/openmensa_xml.py
stw_potsdam/xml_types/times_xml.py
tests/test_consistency.py
tests/test_retrieval.py
tests/test_views.py
@@ -0,0 +1 @@
@@ -0,0 +1,17 @@
requests
pyopenmensa
flask
cachetools
uwsgi
[dev]
pytest
coveralls
pytest-cov
httpretty
pycodestyle
pydocstyle
pylint
sphinx
sphinx-autobuild
sphinx-rtd-theme
@@ -0,0 +1 @@
stw_potsdam