Skip to content

Commit 6fdfdda

Browse files
committed
✏️ Fix reST syntax and links
1 parent 5e6cde1 commit 6fdfdda

81 files changed

Lines changed: 342 additions & 312 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.rst

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,18 @@ Python4DataScience
1010
Status
1111
------
1212

13-
.. image:: https://img.shields.io/github/contributors/cusyio/python4datascience-de.svg
13+
.. image:: https://img.shields.io/github/contributors/cusyio/Python4DataScience-de.svg
1414
:alt: Contributors
15-
:target: https://github.com/cusyio/python4datascience-de/graphs/contributors
16-
.. image:: https://img.shields.io/github/license/cusyio/python4datascience-de.svg
15+
:target: https://github.com/cusyio/Python4DataScience-de/graphs/contributors
16+
.. image:: https://img.shields.io/github/license/cusyio/Python4DataScience-de.svg
1717
:alt: License
18-
:target: https://github.com/cusyio/python4datascience-de/blob/main/LICENSE
18+
:target: https://github.com/cusyio/Python4DataScience-de/blob/main/LICENSES/BSD-3-Clause.txt
1919
.. image:: https://results.pre-commit.ci/badge/github/cusyio/Python4DataScience-de/main.svg
2020
:target: https://results.pre-commit.ci/run/github/649725482/1726568571.WhuLTrgJT3aZZkF-R0Fd8w
2121
:alt: pre-commit.ci status
22-
.. image:: https://readthedocs.org/projects/python4datascience-de/badge/?version=latest
22+
.. image:: https://app.readthedocs.org/projects/python4datascience-de/badge/?version=latest
2323
:alt: Docs
24-
:target: https://python4datascience-de.readthedocs.io/de/latest/
24+
:target: https://python4data.science/de/latest/
2525
.. image:: https://zenodo.org/badge/DOI/10.5281/zenodo..14031392.svg
2626
:alt: DOI
2727
:target: https://doi.org/10.5281/zenodo.14031392
@@ -49,18 +49,18 @@ Installation
4949

5050
.. code-block:: console
5151
52-
$ curl -O https://codeload.github.com/cusyio/python4datascience-de/zip/main
52+
$ curl -O https://codeload.github.com/cusyio/Python4DataScience-de/zip/main
5353
$ unzip main
5454
Archive: main
5555
56-
creating: python4datascience-de-main/
56+
creating: Python4DataScience-de-main/
5757
5858
5959
#. Installieren der Python-Pakete
6060

6161
.. code-block:: console
6262
63-
$ cd python4datascience-de-main
63+
$ cd Python4DataScience-de-main
6464
$ python3 -m venv .venv
6565
$ . .venv/bin/activate
6666
$ python -m pip install -e ".[dev]"

docs/clean-prep/dask-pipeline.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"\n",
1616
"In diesem Notebook werden wir zwei APIs verwenden:\n",
1717
"\n",
18-
"1. [Google Maps Geocoder](https://developers.google.com/maps/documentation/geocoding/overview)\n",
18+
"1. [Google Maps Geocoder](https://developers.google.com/maps/documentation/geocoding/guides-v3/overview)\n",
1919
"2. [Open Notify API for ISS location](http://api.open-notify.org/)\n",
2020
"\n",
2121
"Wir werden sie verwenden, um den ISS-Standort und die nächste Durchlaufzeit in Bezug auf eine Liste von Städten zu verfolgen. Um unsere Diagramme zu erstellen und Daten intelligent zu parallelisieren, verwenden wir Dask, insbesondere [Dask Delayed](../performance/dask.ipynb)."

docs/clean-prep/hypothesis.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
"source": [
6868
"## 3. Test mit `strategies` und `given`\n",
6969
"\n",
70-
"Mit [hypothesis.strategies](https://hypothesis.readthedocs.io/en/latest/data.html) könnt ihr unterschiedliche Testdaten erstellen. Hierfür beitet Hypothesis Strategien für die meisten Typen und Argumente schränken die Möglichkeiten ein um sie euren Erfordernissen anzupassen. Im Beispiel unten verwenden wir die [integers](https://hypothesis.readthedocs.io/en/latest/data.html#hypothesis.strategies.integers)-Strategie, die mit dem [Python-Decorator](https://docs.python.org/3/glossary.html#term-decorator) `@given` auf die Funktion angewendet wird. Genauer nimmt er unsere Testfunktion und wandelt sie in eine parametrisierte um sie über weite Bereiche passender Daten auszuführen:"
70+
"Mit [hypothesis.strategies](https://hypothesis.readthedocs.io/en/latest/data.html) könnt ihr unterschiedliche Testdaten erstellen. Hierfür beitet Hypothesis Strategien für die meisten Typen und Argumente schränken die Möglichkeiten ein um sie euren Erfordernissen anzupassen. Im Beispiel unten verwenden wir die [integers](https://hypothesis.readthedocs.io/en/latest/reference/strategies.html#hypothesis.strategies.integers)-Strategie, die mit dem [Python-Decorator](https://docs.python.org/3/glossary.html#term-decorator) `@given` auf die Funktion angewendet wird. Genauer nimmt er unsere Testfunktion und wandelt sie in eine parametrisierte um sie über weite Bereiche passender Daten auszuführen:"
7171
]
7272
},
7373
{
@@ -210,7 +210,7 @@
210210
"cell_type": "markdown",
211211
"metadata": {},
212212
"source": [
213-
"Nun schreiben wir einen Test `test_parse_email` zum Überprüfen unserer Methode. Als Eingabewerte verwenden wir die [emails](https://hypothesis.readthedocs.io/en/latest/data.html#hypothesis.strategies.emails)-Strategie von Hypothesis. Als `result` erwarten wir z.B.:\n",
213+
"Nun schreiben wir einen Test `test_parse_email` zum Überprüfen unserer Methode. Als Eingabewerte verwenden wir die [emails](https://hypothesis.readthedocs.io/en/latest/reference/strategies.html#hypothesis.strategies.emails)-Strategie von Hypothesis. Als `result` erwarten wir z.B.:\n",
214214
"```\n",
215215
"('0', 'A.com')\n",
216216
"('F', 'j.EeHNqsx')\n",

docs/clean-prep/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Expectations <https://greatexpectations.io/>`_ oder `MobyDQ
1919

2020
.. tip::
2121
`cusy Seminar: Daten bereinigen und validieren mit Python
22-
<https://cusy.io/de/unsere-schulungsangebote/daten-bereinigen-und-validieren-mit-python>`_
22+
<https://cusy.io/de/our-training-courses/cleanse-and-validate-data-with-python.html>`_
2323

2424
Überblick
2525
---------
@@ -28,7 +28,7 @@ Expectations <https://greatexpectations.io/>`_ oder `MobyDQ
2828
:header: "Name", "Stars", "Mitwirkende", "Commit-Aktivität", "Lizenz"
2929

3030
"`scikit-learn <https://github.com/scikit-learn/scikit-learn>`_",".. image:: https://raster.shields.io/github/stars/scikit-learn/scikit-learn",".. image:: https://raster.shields.io/github/contributors/scikit-learn/scikit-learn",".. image:: https://raster.shields.io/github/commit-activity/y/scikit-learn/scikit-learn",".. image:: https://raster.shields.io/github/license/scikit-learn/scikit-learn"
31-
"`ydata-profiling <https://github.com/ydataai/ydata-profiling>`_",".. image:: https://raster.shields.io/github/stars/ydataai/ydata-profiling",".. image:: https://raster.shields.io/github/contributors/ydataai/ydata-profiling",".. image:: https://raster.shields.io/github/commit-activity/y/ydataai/ydata-profiling",".. image:: https://raster.shields.io/github/license/ydataai/ydata-profiling"
31+
"`fg-data-profiling <https://github.com/Data-Centric-AI-Community/fg-data-profiling>`_",".. image:: https://raster.shields.io/github/stars/Data-Centric-AI-Community/fg-data-profiling",".. image:: https://raster.shields.io/github/contributors/Data-Centric-AI-Community/fg-data-profiling",".. image:: https://raster.shields.io/github/commit-activity/y/Data-Centric-AI-Community/fg-data-profiling",".. image:: https://raster.shields.io/github/license/Data-Centric-AI-Community/fg-data-profiling"
3232
"`fuzzywuzzy <https://github.com/seatgeek/fuzzywuzzy>`_",".. image:: https://raster.shields.io/github/stars/seatgeek/fuzzywuzzy",".. image:: https://raster.shields.io/github/contributors/seatgeek/fuzzywuzzy",".. image:: https://raster.shields.io/github/commit-activity/y/seatgeek/fuzzywuzzy",".. image:: https://raster.shields.io/github/license/seatgeek/fuzzywuzzy"
3333
"`Hypothesis <https://github.com/HypothesisWorks/hypothesis>`_",".. image:: https://raster.shields.io/github/stars/HypothesisWorks/hypothesis",".. image:: https://raster.shields.io/github/contributors/HypothesisWorks/hypothesis",".. image:: https://raster.shields.io/github/commit-activity/y/HypothesisWorks/hypothesis",".. image:: https://raster.shields.io/github/license/HypothesisWorks/hypothesis"
3434
"`marshmallow <https://github.com/marshmallow-code/marshmallow>`_",".. image:: https://raster.shields.io/github/stars/marshmallow-code/marshmallow",".. image:: https://raster.shields.io/github/contributors/marshmallow-code/marshmallow",".. image:: https://raster.shields.io/github/commit-activity/y/marshmallow-code/marshmallow",".. image:: https://raster.shields.io/github/license/marshmallow-code/marshmallow"

docs/clean-prep/nulls.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@
483483
"cell_type": "markdown",
484484
"metadata": {},
485485
"source": [
486-
"Nun können wir die `timestamp`-Spalte in den passenden Typ umwandeln, siehe auch [dtype konvertieren](convert-dtypes.ipynb):"
486+
"Nun können wir die `timestamp`-Spalte in den passenden Typ umwandeln, siehe auch [dtype konvertieren](../workspace/pandas/convert-dtypes.ipynb):"
487487
]
488488
},
489489
{
@@ -1316,7 +1316,7 @@
13161316
"cell_type": "markdown",
13171317
"metadata": {},
13181318
"source": [
1319-
"Anschließend verwenden wir [pandas.DataFrame.groupby](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html), um die Datensätze nach `username` zu gruppieren und dann die fehlenden Daten mit der `backfill`-Methode von [pandas.core.groupby.DataFrameGroupBy.fillna](https://pandas.pydata.org/docs/reference/api/pandas.core.groupby.DataFrameGroupBy.fillna.html) zu füllen. `limit` definiert die maximale Anzahl aufeinanderfolgender `NaN`-Werte:"
1319+
"Anschließend verwenden wir [pandas.DataFrame.groupby](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html), um die Datensätze nach `username` zu gruppieren und dann die fehlenden Daten mit der `backfill`-Methode von [pandas.api.typing.DataFrameGroupBy.bfill](https://pandas.pydata.org/docs/reference/api/pandas.api.typing.DataFrameGroupBy.bfill.html) zu füllen. `limit` definiert die maximale Anzahl aufeinanderfolgender `NaN`-Werte:"
13201320
]
13211321
},
13221322
{

docs/clean-prep/string-matching.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@
311311
"* C#: [FuzzySharp](https://github.com/BoomTownRoi/BoomTown.FuzzySharp)\n",
312312
"* Go: [go-fuzzywuzzy](https://github.com/paul-mannino/go-fuzzywuzzy)\n",
313313
"* Pascal: [FuzzyWuzzy.pas](https://github.com/DavidMoraisFerreira/FuzzyWuzzy.pas)\n",
314-
"* Kotlin: [FuzzyWuzzy-Kotlin](https://github.com/willowtreeapps/fuzzywuzzy-kotlin)\n",
314+
"* Kotlin: [FuzzyWuzzy-Kotlin](https://github.com/jens-muenker/fuzzywuzzy-kotlin)\n",
315315
"* R: [fuzzywuzzyR](https://github.com/mlampros/fuzzywuzzyR)"
316316
]
317317
}

docs/conf.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,12 +191,11 @@
191191
r"https://github.com/apps/pre-commit-ci/installations/new": r"https://github.com/login?integration=pre-commit-ci&return_to=%2Fapps%2Fpre-commit-ci%2Finstallations%2Fnew",
192192
r"https://itsdangerous.palletsprojects.com/": r"https://itsdangerous.palletsprojects.com/en/2.2.x/",
193193
r"https://jinja.palletsprojects.com/": r"https://jinja.palletsprojects.com/en/3.1.x/",
194-
r"https://www.monetdb.org/Documentation": r"https://www.monetdb.org/documentation-Aug2024/",
195194
r"https://ohwr.org/cern_ohl_p_v2.txt": r"https://ohwr.org/project/cernohl/-/wikis/uploads/3eff4154d05e7a0459f3ddbf0674cae4/cern_ohl_p_v2.txt",
196-
r"https://ohwr.org/cern_ohl_s_v2.txt": r"https://ohwr.org/project/cernohl/-/wikis/uploads/819d71bea3458f71fba6cf4fb0f2de6b/cern_ohl_s_v2.txt",
197-
r"https://ohwr.org/cern_ohl_w_v2.txt": r"https://ohwr.org/project/cernohl/-/wikis/uploads/82b567f43ce515395f7ddbfbad7a8806/cern_ohl_w_v2.txt",
198195
r"https://proj.org/": r"https://proj.org/en/9.5/",
196+
r"https://repository.uantwerpen.be/desktop/irua": r"https://repository.uantwerpen.be/desktop/irua",
199197
r"https://sqlalchemy-imageattach.readthedocs.io/": r"https://sqlalchemy-imageattach.readthedocs.io/en/1.1.0/",
198+
r"https://www.monetdb.org/Documentation": r"https://www.monetdb.org/documentation-Aug2024/",
200199
}
201200

202201
linkcheck_ignore = [
@@ -213,27 +212,47 @@
213212
r"https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/git/README.md#aliases",
214213
r"https://github.com/spring-projects/spring-framework/blob/30bce7/CONTRIBUTING.md#format-commit-messages",
215214
r"https://github.com/torvalds/subsurface-for-dirk/blob/master/README.md#contributing",
215+
r"https://zenodo.org/records/7540792#.Y-QQGK3MKUn",
216216
# 403 Client Error: Forbidden for url
217+
r"https://academic.oup.com/*",
218+
r"https://besjournals.onlinelibrary.wiley.com/journal/*",
217219
r"https://codebeautify.org/yaml-validator",
218220
r"https://collections.plos.org/collection/software/",
219221
r"https://currentprotocols.onlinelibrary.wiley.com/journal/1934340x",
222+
r"https://data.mendeley.com/datasets/wg4bpm33hj/2",
223+
r"https://data.stackexchange.com/",
220224
r"https://data.unicef.org/",
225+
r"https://dataverse.org/",
221226
r"https://direct.mit.edu/artl",
222-
r"https://besjournals.onlinelibrary.wiley.com/journal/*",
227+
r"https://dl.acm.org/journal/toms",
223228
r"https://journals.sagepub.com/home/*",
224229
r"https://doi.org/10.1002/asi.23538",
230+
r"https://exiftool.sourceforge.net/install.html",
231+
r"https://journals.iucr.org/j/",
232+
r"https://journals.sagepub.com/home/*",
225233
r"https://linux.die.net/man/",
226234
r"https://onlinelibrary.wiley.com/",
227235
r"https://opensource.org/",
236+
r"https://peerj.com/articles/cs-86/",
237+
r"https://pubmed.ncbi.nlm.nih.gov/11726920/",
228238
r"https://pubs.acs.org/journal/",
239+
r"https://sourceforge.net/",
240+
r"https://wordnet.princeton.edu/*",
241+
r"https://www.canlii.org/",
229242
r"https://www.cell.com/",
243+
r"https://www.gesis.org/cews/daten-und-informationen/statistiken/datenzugang",
244+
r"https://www.ipums.org/",
230245
r"https://www.journals.elsevier.com/",
246+
r"https://www.nhtsa.gov/research-data/fatality-analysis-reporting-system-fars",
247+
r"https://www.npmjs.com/*",
248+
r"https://www.oecd.org/en/data.html",
231249
r"https://www.psychonomic.org/",
232250
r"https://www.reddit.com/r/datasets/",
233251
r"https://www.sciencedirect.com/journal/",
252+
r"https://www.sec.gov/submit-filings/about-edgar",
234253
r"https://www.siam.org/publications/journals/",
235-
r"https://sourceforge.net/",
236254
r"https://www.tandfonline.com/",
255+
r"https://zsh.sourceforge.io/",
237256
]
238257

239258

docs/data-processing/apis/fastapi/example.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ Erstellt die Datei :file:`main.py` mit diesem Inhalt:
1616
1717
from fastapi import FastAPI
1818
19-
2019
app = FastAPI()
2120
2221
@@ -33,7 +32,7 @@ Erstellt die Datei :file:`main.py` mit diesem Inhalt:
3332
------------
3433

3534
Startet den Server mit dem folgenden Aufruf (hier wieder am Beispiel von
36-
`uvicorn <http://www.uvicorn.org/>`_):
35+
`uvicorn <https://uvicorn.dev>`_):
3736

3837
.. code-block:: console
3938
@@ -81,7 +80,6 @@ zu erhalten:
8180
8281
from fastapi import FastAPI
8382
84-
8583
app = FastAPI()
8684
8785

docs/data-processing/apis/fastapi/extensions.rst

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ Erweiterungen
88
Administration
99
--------------
1010

11-
`SQLAlchemy Admin for Starlette/FastAPI <https://github.com/aminalaee/sqladmin>`_
11+
`SQLAlchemy Admin for Starlette/FastAPI <https://github.com/smithyhq/sqladmin>`_
1212
Flexible Admin-Schnittstelle für
1313
:doc:`/data-processing/postgresql/sqlalchemy`-Modelle
1414

1515
.. image:: https://raster.shields.io/pypi/dm/sqladmin
1616
:alt: Downloads
17-
.. image:: https://raster.shields.io/github/contributors/aminalaee/sqladmin
17+
.. image:: https://raster.shields.io/github/contributors/smithyhq/sqladmin
1818
:alt: Mitwirkende
19-
.. image:: https://raster.shields.io/github/commit-activity/y/aminalaee/sqladmin
19+
.. image:: https://raster.shields.io/github/commit-activity/y/smithyhq/sqladmin
2020
:alt: Commit-Aktivität
21-
.. image:: https://raster.shields.io/github/license/aminalaee/sqladmin
21+
.. image:: https://raster.shields.io/github/license/smithyhq/sqladmin
2222
:alt: Lizenz
2323

2424
`Piccolo Admin <https://github.com/piccolo-orm/piccolo_admin>`_
@@ -131,22 +131,22 @@ ORMs
131131
.. image:: https://raster.shields.io/github/license/tortoise/tortoise-orm
132132
:alt: Lizenz
133133

134-
`ormar <https://github.com/collerek/ormar/>`_
134+
`ormar <https://github.com/ormar-orm/ormar/>`_
135135
Asynchroner Mini-ORM, mit dem ihr nur ein Set von Modellen pflegen und ggf.
136136
mit :doc:`/data-processing/postgresql/alembic` migrieren müsst (→ `Beispiel
137-
<https://collerek.github.io/ormar/latest/fastapi/>`__); zudem wird er
137+
<https://ormar-orm.github.io/ormar/latest/fastapi/>`__); zudem wird er
138138
unterstützt von `fastapi-users
139139
<https://github.com/fastapi-users/fastapi-users>`_, `fastapi-crudrouter
140140
<https://github.com/awtkns/fastapi-crudrouter>`_ und `fastapi-pagination
141141
<https://github.com/uriyyo/fastapi-pagination>`_.
142142

143143
.. image:: https://raster.shields.io/pypi/dm/ormar
144144
:alt: Downloads
145-
.. image:: https://raster.shields.io/github/contributors/collerek/ormar
145+
.. image:: https://raster.shields.io/github/contributors/ormar-orm/ormar
146146
:alt: Mitwirkende
147-
.. image:: https://raster.shields.io/github/commit-activity/y/collerek/ormar
147+
.. image:: https://raster.shields.io/github/commit-activity/y/ormar-orm/ormar
148148
:alt: Commit-Aktivität
149-
.. image:: https://raster.shields.io/github/license/collerek/ormar
149+
.. image:: https://raster.shields.io/github/license/ormar-orm/ormar
150150
:alt: Lizenz
151151

152152
`Prisma Client Python <https://github.com/RobertCraigie/prisma-client-py>`_
@@ -229,7 +229,7 @@ ODMs
229229
`Beanie <https://github.com/BeanieODM/beanie>`_
230230
Asynchroner Python-Objekt-Dokumenten-Mapper (ODM) für MongoDB, basierend auf
231231
`Motor <https://motor.readthedocs.io/en/stable/>`_ und `Pydantic
232-
<https://docs.pydantic.dev/latest/>`__
232+
<https://pydantic.dev/docs/validation/latest/get-started/>`__
233233

234234
.. image:: https://raster.shields.io/pypi/dm/beanie
235235
:alt: Downloads
@@ -242,7 +242,8 @@ ODMs
242242

243243
`ODMantic <https://github.com/art049/odmantic/>`_
244244
Asynchroner ODM (Object Document Mapper) für MongoDB basierend auf
245-
Python-Type-Hints und `pydantic <https://docs.pydantic.dev/latest/>`__
245+
Python-Type-Hints und `pydantic
246+
<https://pydantic.dev/docs/validation/latest/get-started/>`__
246247

247248
.. image:: https://raster.shields.io/pypi/dm/odmantic
248249
:alt: Downloads
@@ -675,17 +676,17 @@ Ruhende Projekte
675676
.. image:: https://raster.shields.io/github/license/perdy/starlette-prometheus
676677
:alt: Lizenz
677678

678-
`FastAPI Utilities <https://github.com/dmontagu/fastapi-utils>`_
679+
`FastAPI Utilities <https://github.com/fastapiutils/fastapi-utils>`_
679680
Hilfsprogramme zur Reduzierung von Boilerplate und zur Wiederverwendung
680681
gemeinsamer Funktionen in verschiedenen Projekten.
681682

682683
.. image:: https://raster.shields.io/pypi/dm/fastapi-utils
683684
:alt: Downloads
684-
.. image:: https://raster.shields.io/github/contributors/dmontagu/fastapi-utils
685+
.. image:: https://raster.shields.io/github/contributors/fastapiutils/fastapi-utils
685686
:alt: Mitwirkende
686-
.. image:: https://raster.shields.io/github/commit-activity/y/dmontagu/fastapi-utils
687+
.. image:: https://raster.shields.io/github/commit-activity/y/fastapiutils/fastapi-utils
687688
:alt: Commit-Aktivität
688-
.. image:: https://raster.shields.io/github/license/dmontagu/fastapi-utils
689+
.. image:: https://raster.shields.io/github/license/fastapiutils/fastapi-utils
689690
:alt: Lizenz
690691

691692
`Fastapi Camelcase <https://github.com/nf1s/fastapi-camelcase>`_

docs/data-processing/apis/fastapi/index.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ basierenden Type-Hints.
1010

1111
Hauptmerkmale sind:
1212

13-
* sehr hohe Leistung dank `pydantic <https://docs.pydantic.dev/latest/>`_ für
14-
den Datenteil und `Starlette <https://www.starlette.io/>`_ für den Web-Teil
13+
* sehr hohe Leistung dank `pydantic
14+
<https://pydantic.dev/docs/validation/latest/get-started/>`_ für den Datenteil
15+
und `Starlette <https://www.starlette.io/>`_ für den Web-Teil
1516
* schnell und einfach zu codieren
1617
* Validierung für die meisten Python-Datentypen, einschließlich
1718

0 commit comments

Comments
 (0)