Skip to content

Commit 9290948

Browse files
committed
📝 Switch from pipenv to uv
* Remove pipenv * Add pre-commit-uv * Add CI/CD-Pipelines * Add dependency bot * Add Python Docker container with uv * Update security
1 parent e236291 commit 9290948

Some content is hidden

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

52 files changed

+709
-1018
lines changed

Diff for: docs/clean-prep/bulwark.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"## 1. Installation\n",
1919
"\n",
2020
"```\n",
21-
"$ pipenv install bulwark\n",
21+
"$ uv add bulwark\n",
2222
"Installing bulwark…\n",
2323
"Adding bulwark to Pipfile's [packages]…\n",
2424
"✔ Installation Succeeded\n",

Diff for: docs/clean-prep/string-matching.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"Alternativ könnt ihr die beiden Bibliotheken auch mit anderen Paketmanagern installieren, z.B.\n",
3030
"\n",
3131
"```console\n",
32-
"$ pipenv install fuzzywuzzy[speedup]\n",
32+
"$ uv add fuzzywuzzy[speedup]\n",
3333
"```"
3434
]
3535
},

Diff for: docs/conf.py

-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,6 @@
172172
),
173173
"sphinx": ("https://www.sphinx-doc.org/en/master", None),
174174
"nbsphinx": ("https://nbsphinx.readthedocs.io/en/0.4.2", None),
175-
"pipenv": ("https://pipenv.pypa.io/en/latest", None),
176175
"spack": ("https://spack-tutorial.readthedocs.io/en/latest", None),
177176
"ipyparallel": ("https://ipyparallel.readthedocs.io/en/latest", None),
178177
"bokeh": ("https://docs.bokeh.org/en/latest", None),

Diff for: docs/data-processing/apis/fastapi/example.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Startet den Server mit dem folgenden Aufruf (hier wieder am Beispiel von
3737

3838
.. code-block:: console
3939
40-
$ pipenv run uvicorn main:app --reload
40+
$ uv run uvicorn main:app --reload
4141
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
4242
INFO: Started reloader process [89155] using statreload
4343
INFO: Started server process [89164]

Diff for: docs/data-processing/apis/fastapi/install.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Anforderungen
1010

1111
.. code-block:: console
1212
13-
$ pipenv install fastapi
13+
$ uv add fastapi
1414
Adding fastapi to Pipfile's [packages]…
1515
✔ Installation Succeeded
1616
Locking [dev-packages] dependencies…
@@ -28,7 +28,7 @@ Für die Produktion benötigt ihr außerdem einen `ASGI
2828

2929
.. code-block:: console
3030
31-
$ pipenv install uvicorn
31+
$ uv add uvicorn
3232
Adding uvicorn to Pipfile's [packages]…
3333
✔ Installation Succeeded
3434
Locking [dev-packages] dependencies…
@@ -71,10 +71,10 @@ Sie können installiert werden, z.B. mit:
7171

7272
.. code-block:: console
7373
74-
$ pipenv install fastapi[ujson]
74+
$ uv add fastapi[ujson]
7575
7676
Alternativ könnt ihr alle installieren mit:
7777

7878
.. code-block:: console
7979
80-
$ pipenv install fastapi[all]
80+
$ uv add fastapi[all]

Diff for: docs/data-processing/apis/grpc/example.rst

+4-4
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ Generieren des gRPC-Codes
5858

5959
.. code-block:: console
6060
61-
$ pipenv install grpcio grpcio-tools
62-
$ pipenv run python -m grpc_tools.protoc --python_out=. --grpc_python_out=. accounts.proto
61+
$ uv add grpcio grpcio-tools
62+
$ uv run python -m grpc_tools.protoc --python_out=. --grpc_python_out=. accounts.proto
6363
6464
Dies erzeugt zwei Dateien:
6565

@@ -97,11 +97,11 @@ Client und Server starten
9797

9898
.. code-block:: console
9999
100-
$ pipenv run python accounts_server.py
100+
$ uv run python accounts_server.py
101101
102102
#. Starten des Client von einem anderen Terminal aus:
103103

104104
.. code-block:: console
105105
106-
$ pipenv run python accounts_client.py
106+
$ uv run python accounts_client.py
107107
Account created: tom

Diff for: docs/data-processing/apis/grpc/test.rst

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ gRPC lässt sich automatisiert testen z.B. mit `pytest-grpc
1515

1616
.. code-block:: console
1717
18-
$ pipenv install pytest-grpc
18+
$ uv add pytest-grpc
1919
Installing pytest-grpc…
2020
Adding pytest-grpc to Pipfile's [packages]…
2121
✔ Installation Succeeded
@@ -50,13 +50,13 @@ gRPC lässt sich automatisiert testen z.B. mit `pytest-grpc
5050

5151
.. code-block:: console
5252
53-
$ pipenv run pytest --fixtures tests/
53+
$ uv run pytest --fixtures tests/
5454
5555
oder direkt gegen den Python-Code:
5656

5757
.. code-block:: console
5858
59-
$ pipenv run pytest --fixtures tests/ --grpc-fake-server
59+
$ uv run pytest --fixtures tests/ --grpc-fake-server
6060
============================= test session starts ==============================
6161
platform darwin -- Python 3.7.3, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
6262
rootdir: /Users/veit/cusy/trn/Python4DataScience/docs/data/grpc

Diff for: docs/data-processing/httpx/install-example.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"Alternativ könnt ihr httpx auch mit anderen Paketmanagern installieren, z.B.\n",
2424
"\n",
2525
"``` bash\n",
26-
"$ pipenv install httpx\n",
26+
"$ uv add httpx\n",
2727
"```"
2828
]
2929
},

Diff for: docs/data-processing/intake/install.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Intake lässt sich einfach für euren Jupyter-Kernel installieren mit:
1818

1919
.. code-block:: console
2020
21-
$ pipenv install intake
21+
$ uv add intake
2222
2323
Katalog mit Beispieldaten erstellen
2424
-----------------------------------
@@ -28,7 +28,7 @@ erstellen mit:
2828

2929
.. code-block:: console
3030
31-
$ pipenv run intake example
31+
$ uv run intake example
3232
Creating example catalog...
3333
Writing us_states.yml
3434
Writing states_1.csv

Diff for: docs/data-processing/postgresql/ipython-sql.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Ihr könnt ipython-sql einfach in eurem Jupyter-Kernel installieren mit:
1515

1616
.. code-block:: console
1717
18-
$ pipenv install ipython-sql
18+
$ uv add ipython-sql
1919
2020
Erste Schritte
2121
--------------

Diff for: docs/data-processing/serialisation-formats/excel.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"source": [
88
"# Excel\n",
99
"\n",
10-
"pandas unterstützt auch das Lesen von Tabellendaten, die in Dateien von Excel 2003 (und höher) gespeichert sind, entweder mit der Klasse `ExcelFile` oder der Funktion `pandas.read_excel`. Intern verwenden diese Werkzeuge die Zusatzpakete [xlrd](https://xlrd.readthedocs.io/en/latest/) und [openpyxl](https://openpyxl.readthedocs.io/en/stable/), um XLS- bzw. XLSX-Dateien zu lesen. Diese müssen separat von pandas mit pipenv installiert werden.\n",
10+
"pandas unterstützt auch das Lesen von Tabellendaten, die in Dateien von Excel 2003 (und höher) gespeichert sind, entweder mit der Klasse `ExcelFile` oder der Funktion `pandas.read_excel`. Intern verwenden diese Werkzeuge die Zusatzpakete [xlrd](https://xlrd.readthedocs.io/en/latest/) und [openpyxl](https://openpyxl.readthedocs.io/en/stable/), um XLS- bzw. XLSX-Dateien zu lesen. Diese müssen separat von pandas mit uv installiert werden.\n",
1111
"\n",
1212
"Um `ExcelFile` zu verwenden, erstellt eine Instanz, indem ihr einen Pfad zu einer xls- oder xlsx-Datei übergebt:"
1313
]

Diff for: docs/data-processing/serialisation-formats/xml-html/beautifulsoup.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
" Alternativ könnt ihr BeautifulSoup auch mit anderen Paketmanagern installieren, z.B.\n",
3737
"\n",
3838
" ``` bash\n",
39-
" $ pipenv install beautifulsoup4\n",
39+
" $ uv add beautifulsoup4\n",
4040
" ```"
4141
]
4242
},

Diff for: docs/data-processing/serialisation-formats/xml-html/xml-html-examples.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"Alternativ könnt ihr BeautifulSoup auch mit anderen Paketmanagern installieren, z.B.\n",
2828
"\n",
2929
"``` bash\n",
30-
"$ pipenv install lxml beautifulsoup4 html5lib\n",
30+
"$ uv add lxml beautifulsoup4 html5lib\n",
3131
"```"
3232
]
3333
},

Diff for: docs/performance/asyncio-example.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"Ihr könnt das Paket in eurer Jupyter- oder JupyterHub-Umgebung installieren mit\n",
2121
"\n",
2222
"``` bash\n",
23-
"$ pipenv install nest-asyncio\n",
23+
"$ uv add nest-asyncio\n",
2424
"```\n",
2525
"\n",
2626
"Ihr könnt es dann in euer Notebook importieren und verwenden mit:"

Diff for: docs/performance/dask.ipynb

+7-7
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"## Skalierung von Laptops bis hin zu Clustern\n",
2222
"\n",
2323
"\n",
24-
"Dask kann mit pipenv einfach auf einem Laptop installiert werden und erweitert die Größe der Datensätze von *passt in den Arbeitsspeicher* zu *passt auf die Festplatte*. Dask kann jedoch auch auf einen Cluster mit Hunderten von Rechnern skaliert werden. Dask ist robust, flexibel, Data Local und hat eine geringe Latenzzeit. Weitere Informationen findet ihr in der Dokumentation zum [Distributed Scheduler](https://distributed.dask.org/en/latest/). Dieser einfache Übergang zwischen einer einzelnen Maschine und einem Cluster ermöglicht einen einfachen Start und ein Wachstum nach Bedarf."
24+
"Dask kann mit uv auf einem Laptop installiert werden und erweitert die Größe der Datensätze von *passt in den Arbeitsspeicher* zu *passt auf die Festplatte*. Dask kann jedoch auch auf einen Cluster mit Hunderten von Rechnern skaliert werden. Dask ist robust, flexibel, Data Local und hat eine geringe Latenzzeit. Weitere Informationen findet ihr in der Dokumentation zum [Distributed Scheduler](https://distributed.dask.org/en/latest/). Dieser einfache Übergang zwischen einer einzelnen Maschine und einem Cluster ermöglicht einen einfachen Start und ein Wachstum nach Bedarf."
2525
]
2626
},
2727
{
@@ -35,16 +35,16 @@
3535
"Ihr könnt alles installieren, was für die meisten gängigen Anwendungen von Dask erforderlich ist (Arrays, Dataframes, …). Dies installiert sowohl Dask als auch Abhängigkeiten wie NumPy, Pandas, usw., die für verschiedene Arbeiten benötigt werden:\n",
3636
"\n",
3737
"``` bash\n",
38-
"$ pipenv install \"dask[complete]\"\n",
38+
"$ uv add \"dask[complete]\"\n",
3939
"```\n",
4040
"\n",
4141
"Es können aber auch nur einzelne Subsets installiert werden:\n",
4242
"\n",
4343
"``` bash\n",
44-
"$ pipenv install \"dask[array]\"\n",
45-
"$ pipenv install \"dask[dataframe]\"\n",
46-
"$ pipenv install \"dask[diagnostics]\"\n",
47-
"$ pipenv install \"dask[distributed]\"\n",
44+
"$ uv add \"dask[array]\"\n",
45+
"$ uv add \"dask[dataframe]\"\n",
46+
"$ uv add \"dask[diagnostics]\"\n",
47+
"$ uv add \"dask[distributed]\"\n",
4848
"```"
4949
]
5050
},
@@ -294,7 +294,7 @@
294294
"Für das folgende Beispiel muss Dask mit der `distributed`-Option installiert werden, z.B.\n",
295295
"\n",
296296
"``` bash\n",
297-
"$ pipenv install \"dask[distributed]\"\n",
297+
"$ uv add \"dask[distributed]\"\n",
298298
"```\n",
299299
"</div>"
300300
]

Diff for: docs/performance/ipython-profiler.ipynb

+4-4
Original file line numberDiff line numberDiff line change
@@ -260,13 +260,13 @@
260260
"Alternativ könnt ihr `line-profiler` auch mit anderen Paketmanagern installieren, z.B.\n",
261261
"\n",
262262
"```\n",
263-
"$ pipenv install line_profiler\n",
263+
"$ uv add line_profiler\n",
264264
"```\n",
265265
"\n",
266266
"Falls ihr Python 3.7.x verwendet und die Fehlermeldung bekommt `error: command 'clang' failed with exit status 1`, bleibt aktuell nur, `Cython` zusammen mit den Ressourcen aus dem Git-Repository zu installieren:\n",
267267
"\n",
268268
"```\n",
269-
"$ pipenv install Cython git+https://github.com/rkern/line_profiler.git#egg=line_profiler\n",
269+
"$ uv add Cython git+https://github.com/rkern/line_profiler.git#egg=line_profiler\n",
270270
"```\n",
271271
"\n",
272272
"Nun könnt ihr IPython mit der `line_profiler`-Erweiterung laden:"
@@ -346,7 +346,7 @@
346346
"Alternativ könnt ihr `memory-profiler` auch mit anderen Paketmanagern installieren, z.B.\n",
347347
"\n",
348348
"```\n",
349-
"$ pipenv install memory_profiler\n",
349+
"$ uv add memory_profiler\n",
350350
"```"
351351
]
352352
},
@@ -463,7 +463,7 @@
463463
"Sie lässt sich einfach im Kernel installieren mit\n",
464464
"\n",
465465
"```\n",
466-
"$ pipenv install py-heat-magic\n",
466+
"$ uv add py-heat-magic\n",
467467
"Installing py-heat-magic…\n",
468468
"…```"
469469
]

Diff for: docs/performance/scalene.ipynb

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"Linux, MacOS und WSL:\n",
2828
"\n",
2929
"```bash\n",
30-
"$ pipenv install scalene\n",
30+
"$ uv add scalene\n",
3131
"```"
3232
]
3333
},

Diff for: docs/productive/dvc/fds.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ FastDS kann einfach installiert werden mit:
1616

1717
.. code-block:: console
1818
19-
$ pipenv install fastds
19+
$ uv add fastds
2020
2121
Einführung
2222
----------

Diff for: docs/productive/dvc/index.rst

+1-11
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ dann so aus:
6161

6262
.. code-block:: console
6363
64-
$ pipenv install dvc[ssh]
64+
$ uv add dvc[ssh]
6565
6666
Alternativ kann DVC auch über andere Paketmanager installiert werden:
6767

@@ -79,16 +79,6 @@ Alternativ kann DVC auch über andere Paketmanager installiert werden:
7979
8080
$ brew install iterative/homebrew-dvc/dvc
8181
82-
.. note::
83-
Beachtet, dass das folgende Beispiel mit einer aktuellen DVC-Version erstellt
84-
wurde (1.0.0a9), die :abbr:`z.T. (zum Teil)` eine andere Syntax als frühere
85-
Versionen verwendet. Dies könnt ihr aktuell (8. Juni 2020) nur mit pip
86-
installieren:
87-
88-
.. code-block:: console
89-
90-
$ pipenv install dvc[all]==1.0.0a9
91-
9282
.. toctree::
9383
:hidden:
9484

Diff for: docs/productive/dvc/pipeline.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Die generierte ``dvc.yaml``-Datei sieht dann z.B. folgendermaßen aus:
6868
6969
stages:
7070
split:
71-
cmd: pipenv run python src/split.py data/data.xml
71+
cmd: uv run python src/split.py data/data.xml
7272
deps:
7373
- data/data.xml
7474
- src/split.py

Diff for: docs/productive/envs/index.rst

+12-10
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,26 @@
22
..
33
.. SPDX-License-Identifier: BSD-3-Clause
44
5-
Umgebungen reproduzieren
6-
========================
5+
Python-Umgebungen
6+
=================
77

8-
Reproduzierbare und sichere Python-Umgebungen sind nur schwer zu gewährleisten.
9-
Mit dem Python Paketmanager :term:`pip`, würde das so aussehen:
8+
Im Python Basics Tutorial ist bereits beschrieben, wie ihr mit
9+
:ref:`python-basics:venv` eine Python-Umgebung erstellen könnt. Diese jedoch
10+
reproduzierbar und sicher zu erstellen, ist deutlich komplexer. Mit dem Python
11+
Paketmanager :term:`pip`, könnte das :abbr:`z.B. (zum Beispiel)` so aussehen:
1012

1113
.. code-block:: console
1214
1315
$ python -m pip install --no-deps --require-hashes ----only-binary=:all:
1416
15-
Dezidierte Umgebungen (:abbr:`z.B. (zum Beispiel)` mit :doc:`pipenv/index`,
16-
und :doc:`Spack <spack/index>` vereinfachen dies, wenn ihr die Dateien mit den
17-
Spezifikationen speichert, also :abbr:`z.B. (zum Beispiel)` mit ``Pipfile``,
18-
``Pipfile.lock``, ``package-lock.json`` :abbr:`etc (et cetera)`. Auf diese Weise
19-
könnt ihr und andere eure Umgebungen reproduzieren.
17+
Dezidierte Umgebungen (:abbr:`z.B. (zum Beispiel)` mit :term:`uv` oder
18+
:doc:`Spack <spack/index>` vereinfachen dies, wenn ihr die Dateien mit den
19+
Spezifikationen speichert, also :abbr:`z.B. (zum Beispiel)` mit :file:`uv.lock`
20+
oder :file:`spack.lock`. Auf diese Weise könnt ihr und andere eure Umgebungen
21+
reproduzieren.
2022

2123
.. toctree::
2224
:hidden:
2325

26+
uv/index
2427
spack/index
25-
pipenv/index

0 commit comments

Comments
 (0)