aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-09work around tox bug regarding section flake8Daniel Schadt
See https://github.com/tox-dev/tox/issues/2636 - without the rename, tox fails to recognize the configuration for flake8, as there is a (non-testenv) section named the same.
2022-12-09fix tox and poetry interactionDaniel Schadt
The Poetry FAQ[1] gives some options on how tox and poetry can be used together, since both of them want to do the virtual env managing. Since we mostly want to use tox as a venv manager and to easily run multiple linters, and we want to have poetry do the dependency management, the method of explicitely using `poetry install` seems to be the most reasonable. This means we don't have to generate a requirements.txt file or make duplicated listings of our dependencies in tox.ini. [1]: https://python-poetry.org/docs/master/faq/#is-tox-supported
2022-12-09Merge branch 'type-hints'Daniel Schadt
2022-12-08pin tox to old versionDaniel Schadt
There seems to be an issue with the latest one.
2022-12-08run black in CIDaniel Schadt
2022-12-08black formattingDaniel Schadt
This seems like something we should do rather earlier than later. Using black takes away the pain of manually formatting the code, adhering to the style guidelines and it takes away bikeshedding over minor things.
2022-12-08type hints for fietsboek.utilDaniel Schadt
2022-12-08add mypy to GitLab CIDaniel Schadt
2022-12-08first try with mypyDaniel Schadt
It would be nice to gradually improve the typing situation in Fietsboek. At least the parts that do not do heavy metaprogramming should have types. For most of the API, we already have types in the doc strings, so those could be removed then.
2022-12-08don't use session_key directlyDaniel Schadt
While it should be fine the way it was, we might want to introduce more "secret keys" (like for additional cookies), for which we would need more secrets.
2022-12-06enable account registrations for testingDaniel Schadt
2022-12-06add some tests for the registration formDaniel Schadt
2022-12-06actually capture email.smtp_url in the configDaniel Schadt
2022-12-06fix lintsDaniel Schadt
2022-12-06Merge branch 'pydantic'Daniel Schadt
2022-12-06update CHANGELOGDaniel Schadt
2022-12-05small documentation fixesDaniel Schadt
2022-12-05fix CSRF issue for account creationDaniel Schadt
We forgot to include the CSRF token here.
2022-12-05access settings through new Config objectDaniel Schadt
This takes away the pain of dealing with default values or value conversions in main()
2022-12-05parse/validate config with pydanticDaniel Schadt
This is the first step, in the next step, we should actually use request.config.
2022-12-03serve gzip compressed GPX data if possibleDaniel Schadt
This way, we not only save the decompression time, we can also save bandwidth! We *might* even consider using brotli, which seems to be widely supported and has even better compression ratios, but brotli compression of full efficiency is also slow. Ideally, we'd save a "fast compressed" version of the GPX file on upload, and then have a slower background-queue re-compress them with higher settings. That however should probably wait till we move the GPX data out of the database(?!), then we can even serve the data straight with a FileResponse.
2022-11-28bump version to 0.4.0v0.4.0Daniel Schadt
2022-11-28add a checklist for the release processDaniel Schadt
2022-11-28add Sphinx as docs dependencyDaniel Schadt
2022-11-28remove MANIFESTDaniel Schadt
Poetry does the right thing by default, so no more need to declare this.
2022-11-28update changelogDaniel Schadt
2022-11-28Allow overwriting of the home pageDaniel Schadt
2022-11-21disable the privacy popupDaniel Schadt
We're proxying all tiles through Fietsboek now, which means that no external services get to see the users' IPs. Therefore, we can disable this popup with a good conscience.
2022-11-21don't leak the Thunderforest API keyDaniel Schadt
This was leftover code from before the tile-proxy times.
2022-11-21fix map if OSM layer is not presentDaniel Schadt
2022-11-21small documentation fixesDaniel Schadt
2022-11-20change default emailDaniel Schadt
2022-11-20update CHANGELOGDaniel Schadt
2022-11-20Merge branch 'tile-proxy'Daniel Schadt
2022-11-20remove bisect.insortDaniel Schadt
This is due to compatibility reasons, such that the code works in Python <3.10.
2022-11-19restore compatibility with python 3.7Daniel Schadt
importlib.metadata was introduced in 3.8 :-(
2022-11-19add docs for more tile proxy informationDaniel Schadt
2022-11-19add an option to disable the tile proxyDaniel Schadt
2022-11-18split layer extraction into two functionsDaniel Schadt
2022-11-18fix SQLAlchemy deprecationDaniel Schadt
2022-11-18fix lintDaniel Schadt
I'm a slave to the linters now.
2022-11-17tileproxy: relay HTTP status codesDaniel Schadt
This is nice if we hit a 404 or something on the source, especially with user-configured sources. As a small side, we now don't give the client the URL in the error message, as that could contain API keys that we don't want to leak.
2022-11-17add a shortcut for Thunderforest mapsDaniel Schadt
Now, we can add Thunderforest maps with thunderforest.api_key = ... thunderforest.maps = cycling ...
2022-11-17enable custom map layersDaniel Schadt
This change shuffles around quite a bit because we no longer hardcode our map layers in osm-monkeypatch.js, but instead can pass them through from the Python code. This allows us to dynamically define extra layers, for example to disable layers the admin doesn't want, or to add extra layers that are not yet available. This change for example allows to embed thunderforest maps by adding the following to the config: fietsboek.tile_layers.tf_cycling = TF Cycling fietsboek.tile_layers.tf_cycling.url = https://thunderforest.com/... fietsboek.tile_layers.tf_cycling.access = restricted The next step is to make the Thunderforest maps a bit easier to access (by providing special support for those), but for now, this seems like a good first step and the necessary groundwork.
2022-11-17doc: add intersphinx links for jinja2/markupsafeDaniel Schadt
2022-11-17remember timeouts for tile serversDaniel Schadt
1. This makes Fietsboek faster because we don't have to wait for the timeout on every single request. 2. This is better for the servers, as we don't add more requests when they're already overloaded.
2022-11-17add a timeout to the tile proxyDaniel Schadt
This avoids blocking the whole pipeline
2022-11-17initial support for proxying OSM tilesDaniel Schadt
2022-11-15switch out setuptools for poetryDaniel Schadt
setup.py is the very old style for packaging, so I wanted to replace it with something more "modern". pyproject.toml seems like the way to go in the future. At first, I wanted to simply configure setuptools using pyproject.toml, but that support is in beta and seemed to cause some issues with the tox virtualenvs. Poetry seems to work fine and provides a better dependency resolver (given that dependencies are actually specified well) and some other goodies. For users, nothing much should change, as "pip install" still works.
2022-11-12Merge branch 'updater'Daniel Schadt