Add bottle and FastAPI (#1095)

### Description of Changes

This PR add bottle and FastAPI as tainted software, and adds Flask as their alternative

Reviewed-on: https://codeberg.org/ethical-foss/open-slopware/pulls/1095
Reviewed-by: Ethical FOSS admin <ethical-foss-admin@noreply.codeberg.org>
This commit is contained in:
xarvos 2026-09-24 14:43:11 +02:00 • committed by hmn
commit f0ab2215e1

View file

@ -2183,10 +2183,12 @@ Note that CPython is itself tainted; see [the Programming Languages section](#pr
| Name | Last Untainted <br /> Version/Commit ID | Evidence | Alternative(s) |
|---|:---:|---|---|
| [Black](https://github.com/psf/black) | [`25.9.0`](https://github.com/psf/black/releases/tag/25.9.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/psf/black/commit/43dbc2f1ccbd74d4eea1c3615fe854961e6a07b7), [2](https://github.com/psf/black/commit/d745be69bfa9d85ec2ef6e5f9b7ec7e253b5e8ab), [3](https://github.com/psf/black/commit/8ab9719dcbeedccadf5d458d8139df38fcf84285)) <br /> [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/psf/black/pull/4790), [2](https://github.com/psf/black/pull/4804), [3](https://github.com/psf/black/pull/4825)) | [autopep8](https://github.com/hhatto/autopep8) |
| [bottle](https://github.com/bottlepy/bottle) | Not yet applicable | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/bottlepy/bottle/blob/master/AGENTS.md)) | [Flask] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1][pallets-policy]) |
| [chardet](https://github.com/chardet/chardet) | [`5.2.0`](https://github.com/chardet/chardet/releases/tag/5.2.0) | [![Vibecoded](./badges/vibecoded.svg)](#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15), [3](https://github.com/chardet/chardet/issues/327#issuecomment-4006480251)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |
| [charset\_normalizer](https://github.com/jawah/charset_normalizer) | [`3.4.9`](https://github.com/jawah/charset_normalizer/releases/tag/3.4.9) <br /> [`cc68407`](https://github.com/jawah/charset_normalizer/commits/cc6840753f17f00dea4e339ce37507747217e916) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jawah/charset_normalizer/commit/667b93c9243cc650354562b871fcfcc35282fe97)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |
| [`cryptography`](https://github.com/pyca/cryptography) | [`44.0.0`](https://github.com/pyca/cryptography/releases/tag/44.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pyca/cryptography/blob/main/AGENTS.md), [2](https://github.com/pyca/cryptography/commit/ce7f263d2b5492222497966e4132010caf650a70), [3](https://github.com/pyca/cryptography/commit/62d0783211a329c5d1d27b52c527a245e9bc842b)) <br /> [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/pyca/cryptography/pull/12976), [2](https://github.com/pyca/cryptography/pull/13137), [3](https://github.com/pyca/cryptography/pull/12937)) | [PyCryptodome](https://github.com/Legrandin/pycryptodome) |
| [Django](https://github.com/django/django) | [`5.2.9`](https://github.com/django/django/releases/tag/5.2.9) <br /> [`1820d35`](https://github.com/django/django/commits/1820d35b17f0a95f4ce888971b9ca0c7a3697c83) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/django/djangoproject.com/blob/main/djangoproject/templates/conduct/index.html#L490C11-L530), [2](https://github.com/django/django/pull/20568), [3](https://github.com/django/django/pull/20699)) <br /> [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/django/django/pull/20471), [2](https://github.com/django/django/pull/20811)) | [Flask](https://github.com/pallets/flask) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1][pallets-policy]) |
| [Django](https://github.com/django/django) | [`5.2.9`](https://github.com/django/django/releases/tag/5.2.9) <br /> [`1820d35`](https://github.com/django/django/commits/1820d35b17f0a95f4ce888971b9ca0c7a3697c83) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/django/djangoproject.com/blob/main/djangoproject/templates/conduct/index.html#L490C11-L530), [2](https://github.com/django/django/pull/20568), [3](https://github.com/django/django/pull/20699)) <br /> [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/django/django/pull/20471), [2](https://github.com/django/django/pull/20811)) | [Flask] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1][pallets-policy]) |
| [FastAPI](https://github.com/fastapi/fastapi) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/fastapi/fastapi/commit/31bbb380748ccead62fc0f42dbf4273f11dadccf), [2](https://github.com/fastapi/fastapi/commit/faee822574d3c202123f48eb09b9bd207385335b)) <br/>![AI sponsored](./badges/ai-sponsored-blue.svg) ([CodeRabbit](https://github.com/fastapi/fastapi#gold-sponsors)) | [Flask] [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1][pallets-policy]) |
| [isort](https://github.com/pycqa/isort) | [`8.0.0`](https://github.com/PyCQA/isort/releases/tag/8.0.0) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/PyCQA/isort/pull/2459), [2](https://github.com/PyCQA/isort/pull/2471), [3](https://github.com/PyCQA/isort/pull/2470)) <br /> [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/PyCQA/isort/pull/2509), [2](https://github.com/PyCQA/isort/pull/2516), [3](https://github.com/PyCQA/isort/pull/2503)) <br /> [![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/PyCQA/isort/blob/main/README.md#why-isort)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |
| [JupyterLab](https://github.com/jupyterlab/jupyterlab) | [`v4.5.6`](https://github.com/jupyterlab/jupyterlab/tree/v4.5.6) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://github.com/jupyterlab/jupyter-ai)) <br /> [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jupyterlab/jupyterlab/blob/main/AGENTS.md)) | Possibly GNU Emacs ([1](https://www.danliden.com/notes/20241112-python-setup.html), [2](https://blog.serghei.pl/posts/emacs-python-ide/)) |
| [Pygments](https://github.com/pygments/pygments) | [`2.19.2`](https://github.com/pygments/pygments/commits/2.19.2/) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/pygments/pygments/pull/3038)) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) |
@ -2891,6 +2893,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4
[ffplay]: https://ffmpeg.org/ffplay.html
[find]: https://cgit.git.savannah.gnu.org/cgit/findutils.git/
[Firebird]: https://www.firebirdsql.org
[Flask]: https://github.com/pallets/flask
[fzy]: https://github.com/jhawthorn/fzy
[Game of Trees]: https://gameoftrees.org/
[GNOME Boxes]: https://gnomeboxes.org