Cette semaine, aucune joie assez grande n'a été trouvée, mais il y a eu 3 petites joies très petites.
termtosvg
Maintenant, il est de coutume d'équiper vos bibliothèques et dépôts sur github de belles animations montrant une console avec une démo en direct de votre création.

La tradition est sans aucun doute bonne et correcte. Seul l'enregistrement de telles animations peut être difficile / paresse / une fois. Les auteurs de termtosvg ont tiré sur tous les oiseaux avec une pierre et ont donné aux programmeurs une excellente chose pour enregistrer des démos de console.
Contrairement à de nombreuses autres solutions, termtosvg n'écrit pas de vidéo ou de gif. Cette chose capture tout ce qui se passe dans la console et rend l'animation SVG basée sur ce qui apparaît dans le terminal. À la sortie, vous obtenez non seulement votre animation d'écran, mais un rendu magnifique et élégant des opérations de la console. SVG pèse beaucoup moins que les autres formats, et pourtant il peut être édité assez facilement.
Pour les personnes exigeantes, plusieurs solutions de couleurs prédéfinies sont incluses afin que vous puissiez personnaliser vos démos en direct.
Vous pouvez rendre la sortie dans un sujet léger:

Vous pouvez effectuer un rendu dans un thème aussi sombre, avec des boutons de contrôle de fenêtre et une barre de progression ci-dessous:

Et vous pouvez dans une douzaine d'autres schémas de couleurs.
Tout est réglé comme d'habitude,
pip install termtosvg
les macros peuvent également être livrées via brew (les versions nécessaires de Python et un tas de dépendances seront récupérées par lui-même)
brew install termtosvg
Le manuel est ici , une liste complète des thèmes prédéfinis pour le rendu est ici . Tout cela est en Python, vous pouvez donc au moins lire des sources intéressantes si vous n'avez pas besoin d'animations de console.
La collection d'algorithmes
Les algorithmes en Python. Ce repo a déjà été vu par beaucoup et il est bien connu - près de 50 000 étoiles sur github. La mise en œuvre d'un ensemble d'algorithmes classiques en Python pur - graphiques, mathématiques, cryptage, protocoles, routage réseau et un tas de choses différentes.
Peu de gens en auront besoin pour le travail quotidien, mais cela sera très utile pour le développement général ou pour préparer un entretien avec une entreprise qui peut vous proposer de travailler avec un arbre binaire pour un entretien.
Non seulement des implémentations pour animaux de compagnie sont disponibles, mais également d' autres langues .
glace

Il semblerait que les outils de débogage et de surveillance d'un code puissant soient complets et répondent à tous les besoins du développeur - débogueurs, collecteurs de journaux, surveillance des erreurs, collecteurs de métriques.
Mais parfois, il arrive que les ingénieurs fessent le bon vieux code print()
pour comprendre ce qui se passe.
if something: print(1) operation_one() else: print(2) operation_two()
La méthode de débogage est controversée, sale, efficace et pas pour tout le monde. Pour ces amoureux, il existe une bibliothèque de glaces alimentée par python (ainsi que des implémentations pour C ++, Node.JS, Rust, Dart et PHP).
Vous pouvez maintenant écrire
from icecream import ic def foo(): ic() first() if expression: ic() second() else: ic() third()
et obtenir un code de débogage comme
ic| example.py:4 in foo() ic| example.py:11 in foo()
Pour le débogage purement par cette méthode, je l'aurais personnellement poinçonné dans le cou, mais avec certaines modifications, il peut être utilisé. Il y a quelque chose d'autre dans cette bibliothèque qui pourrait être utile:
- La possibilité de déposer rapidement et facilement des arguments d'entrée et le résultat des fonctions.
- Personnalisez la sortie avec différents préfixes et données.
- Accrochez vos fonctions personnalisées pour gérer la sortie des messages de débogage.
Si tout cela est soigneusement combiné avec différents commutateurs de drapeaux du mode débogage au mode production, alors cela s'avère tout à fait sensé, qui vous dira tout ce qui se passe dans votre code.