10 externe Python-Pakete, die Sie lieben werden
von Adam Goldschmidt
Python ist ein Experiment darüber, wie viel Freiheit Programmierer brauchen. Zu viel Freiheit und niemand kann den Code eines anderen lesen; zu wenig und die Ausdruckskraft ist gefährdet. - Guido van Rossum
Diese Freiheit, von der Guido spricht, ist einer der Gründe, warum Python so beliebt ist. Diese Popularität ist es unter anderem, die immer mehr Entwickler dazu verleitet, die Sprache zu verwenden – was schließlich zu einigen wirklich erstaunlichen Open-Source-Projekten führt.
Normalerweise bin ich einmal am Tag auf GitHub auf Projektsuche. In diesem Artikel werde ich versuchen, 10 wunderbare Pakete zu behandeln, mit denen Sie vielleicht vertraut sind oder auch nicht. Ich beginne mit den weniger trendigen und ende mit … nun ja, Flask.
Lass uns anfangen!
Loguru – Protokollierung leicht gemacht
Das ist ein wirklich tolles Paket, das ich regelmäßig in meinen Projekten verwende. Es beschreibt sich selbst als „eine Bibliothek, die darauf abzielt, das Protokollieren in Python angenehm zu gestalten“. Mit diesem Paket können Sie Ihre Protokolle ganz einfach sofort konfigurieren.
Nach der Installation müssen Sie nur noch das Modul importieren:
from loguru import logger
Und Sie können es sofort verwenden:
logger.debug("Hello, cool debugger")
Die Dokumentation ist gut und es gibt viele Anpassungsmöglichkeiten.
mehr-itertools
Eine Vielzahl interessanter Methoden, die manchmal sehr nützlich sein können, wie zum Beispiel peekable
:
>>> p = peekable(['a', 'b'])>>> p.peek()'a'>>> next(p)'a'
oder chunked
:
>>> list(chunked([1, 2, 3, 4, 5, 6], 3))[[1, 2, 3], [4, 5, 6]]
MonkeyType – Generator für statische Typanmerkungen
monkeytype run myscript.py
Dieses Paket generiert automatisch Typanmerkungen für Sie, entweder in einer Stub-Datei oder im Quellcode selbst, indem es Laufzeittypen sammelt. Richtig, Python zwingt Sie nicht dazu, Annotationen zu verwenden – aber ich glaube, dass sie für die Lesbarkeit des Codes (und manchmal auch zur Fehlervermeidung) sehr wichtig sind, weshalb es in dieser Liste auch zwei weitere Pakete gibt, die Typanmerkungen verarbeiten: )
Pyright – Statischer Typprüfer
Aufregendes neues Paket von Microsoft. Der erste Commit erfolgte erst vor 17 Tagen! Dieses Paket ist der Konkurrent von Mypy (ebenfalls auf dieser Liste). Um ehrlich zu sein, hatte ich noch keine Gelegenheit, es zu nutzen, habe es aber auf jeden Fall vor. Ich verwende derzeit mypy als Typprüfer, aber ich werde es einmal versuchen!
request-async – Unterstützung für die Syntax async
/await
für requests
Dies ist ein neues Paket, das ich neulich auf GitHub entdeckt habe, und es scheint ziemlich vielversprechend zu sein. Wir alle kennen das Requests-Paket, mit dem wir HTTP-Anfragen einfach in unserem Code verarbeiten können. Nun, dieses Paket implementiert die Wörter async
und await
für diese Anfragen:
import requests_async as requestsresponse = await requests.get('https://example.org')print(response.status_code)print(response.text)
Ziemlich cool, oder?
HTTPie – Modernes Befehlszeilen-cURL
Diejenigen unter Ihnen, die cURL schon einmal verwendet haben, müssen wissen, dass es nicht so viel Spaß macht. Sie müssen sich die Parameternamen merken und sicherstellen, dass Ihre Daten gekapselt sind … Nun, HTTPie zielt darauf ab, dies viel einfacher zu machen. Hier ist eines ihrer Beispiele für die Übermittlung von Formulardaten:
http -f POST example.org hello=World
pipenv – Bessere Verpackung für Python
Wenn ich ein neues Projekt starte, erstelle ich immer eine neue virtualenv
und installiere einige Basispakete mit pip
. Ich muss dann die Namen dieser Pakete in einer Datei speichern, sei es setup.py
oder requirements.txt
. Diejenigen unter Ihnen, die mit npm
gearbeitet haben, wissen, dass es dort viel einfacher ist. Sie müssen lediglich npm —save
schreiben und der Paketname wird in Ihrer package.json
gespeichert. Deshalb habe ich zuerst pypkgfreeze erstellt, ein einfaches Paket, um die Versionen Ihrer aktuell verwendeten pip
-Pakete in setup.py
„einzufrieren“.
Pipenv ist jedenfalls eine interessante Lösung, die darauf abzielt, die beiden Welten zu verschmelzen – Sie beschreiben es am besten auf ihrer Repo-Seite:
Es erstellt und verwaltet automatisch eine virtuelle Umgebung für Ihre Projekte und fügt Pakete zu Ihrer Pipfile
hinzu/entfernt sie, während Sie Pakete installieren/deinstallieren. Es generiert auch den immer wichtigen Pipfile.lock
, der zum Erstellen deterministischer Builds verwendet wird.
Hier können Sie es ausprobieren.
mypy – Statischer Typprüfer
Wie ich bereits sagte, ist dies das Paket, das ich derzeit als standardmäßigen statischen Typprüfer verwende. Es hilft mir, meinen Code lesbar und elegant zu halten (glaube ich).
Schwarz
Ich habe viele Python-Formatierer ausprobiert und black
ist eindeutig mein Favorit. Die Syntax sieht ordentlich aus und die Befehlszeile läuft schnell und kann die Dateien entweder überprüfen oder tatsächlich bearbeiten – sehr nützlich für CI/CD. Hier können Sie es sogar ausprobieren!
Flasche
Ich bin mir nicht sicher, ob ich hier etwas zu schreiben habe, was noch nicht schon geschrieben wurde. Sie sind wahrscheinlich mit diesem erstaunlichen Mikro-Framework vertraut, und wenn nicht, sollten Sie es unbedingt ausprobieren.
Bevor du gehst…
Danke fürs Lesen! Für weitere coole Repos können Sie meinem GitHub-Konto folgen. Ich neige dazu, jedes coole Ding zu markieren, das ich sehe :)
Wenn Ihnen dieser Artikel gefallen hat, halten Sie bitte die Klatschtaste gedrückt. um anderen zu helfen, es zu finden. Je länger Sie es halten, desto mehr Klatschen geben Sie!
Und zögern Sie nicht, Ihre Gedanken in den Kommentaren unten mitzuteilen.