Diese Woche wurden keine ausreichend großen kleinen Freuden gefunden, aber es gab 3 sehr kleine kleine Freuden.
termtosvg
Jetzt ist es üblich, Ihre Bibliotheken und Repos auf Github mit wunderschönen Animationen auszustatten, die eine Konsole mit einer Live-Demo Ihrer Kreation zeigen.

Die Tradition ist zweifellos gut und richtig. Nur das Aufnehmen solcher Animationen kann schwierig / faul / einmal sein. Die Autoren von termtosvg schossen alle Vögel mit einer Klappe und gaben den Programmierern eine großartige Möglichkeit , Konsolendemos aufzunehmen.
Im Gegensatz zu vielen anderen Lösungen schreibt termtosvg kein Video oder GIF. Dieses Ding fängt alles ab, was in der Konsole passiert, und rendert SVG-Animationen basierend auf dem, was im Terminal angezeigt wird. Bei der Ausgabe erhalten Sie nicht nur Ihre Bildschirmanimation, sondern auch eine schöne und elegante Darstellung der Konsolenoperationen. SVG wiegt weit weniger als andere Formate und kann dennoch ganz einfach bearbeitet werden.
Für anspruchsvolle Personen sind mehrere vordefinierte Farblösungen enthalten, mit denen Sie Ihre Live-Demos anpassen können.
Sie können die Ausgabe in einem hellen Thema rendern:

Sie können in einem so dunklen Thema mit Fenstersteuerungsschaltflächen und einem Fortschrittsbalken unten rendern:

Und Sie können in einem Dutzend anderer Farbschemata.
Alles ist wie gewohnt eingestellt,
pip install termtosvg
Makros können auch per Brew bereitgestellt werden (die erforderlichen Versionen von Python und eine Reihe von Abhängigkeiten werden von selbst aufgerufen).
brew install termtosvg
Das Handbuch finden Sie hier . Eine vollständige Liste der vordefinierten Themen für das Rendern finden Sie hier . All dies ist in Python, so dass Sie zumindest interessante Quellen lesen können, wenn Sie keine Konsolenanimationen benötigen.
Die Algorithmensammlung
Die Algorithmen in Python. Dieses Repo wurde bereits von vielen gesehen und ist bekannt - fast 50.000 Sterne auf Github. Die Implementierung eines Bündels klassischer Algorithmen in reinem Python - Grafiken, Mathematik, Verschlüsselung, Protokolle, Netzwerkrouting und eine Reihe verschiedener Dinge.
Nur wenige Menschen benötigen dies für die tägliche Arbeit, aber es ist sehr nützlich für die allgemeine Entwicklung oder für die Vorbereitung eines Interviews mit einem Unternehmen, das Ihnen anbieten kann, mit einem Binärbaum für ein Interview zu arbeiten.
Es sind nicht nur Haustierimplementierungen verfügbar, sondern auch andere Sprachen .
Eis

Es scheint, dass die Debugging- und Überwachungstools für leistungsstarken Code vollständig sind und alle Anforderungen des Entwicklers erfüllen - Debugger, Protokollkollektoren, Fehlerüberwachung, Metrikkollektoren.
Aber manchmal kommt es vor, dass Ingenieure den guten alten print()
Code verprügeln müssen, um herauszufinden, was passiert.
if something: print(1) operation_one() else: print(2) operation_two()
Die Debugging-Methode ist umstritten, schmutzig, effektiv und nicht jedermanns Sache. Für solche Liebhaber gibt es eine Pycodib-Bibliothek Eiscreme (sowie Implementierungen für C ++, Node.JS, Rust, Dart und PHP).
Jetzt kannst du schreiben
from icecream import ic def foo(): ic() first() if expression: ic() second() else: ic() third()
und erhalten Sie einen Debug-Code wie
ic| example.py:4 in foo() ic| example.py:11 in foo()
Für das Debuggen nur mit dieser Methode hätte ich es persönlich in den Hals geschlagen, aber mit bestimmten Modifikationen kann es verwendet werden. Es gibt noch etwas in dieser Bibliothek, das nützlich sein könnte:
- Die Fähigkeit, Eingabeargumente und das Ergebnis der Funktionen schnell und einfach abzulegen.
- Passen Sie die Ausgabe mit verschiedenen Präfixen und Daten an.
- Hängen Sie Ihre benutzerdefinierten Funktionen auf, um die Ausgabe von Debugging-Nachrichten zu verarbeiten.
Wenn all dies ordentlich mit verschiedenen Flags-Schaltern vom Debug-Modus in den Produktionsmodus kombiniert wird, stellt sich heraus, dass dies eine ziemlich vernünftige Sache ist, die Ihnen alles erzählt, was in Ihrem Code passiert.