- PVSM.RU - https://www.pvsm.ru -
На этой неделе достаточно крупных малких радостей не нашлось, зато нашлись 3 совсем мелкие мелкие радости.
Сейчас принято снабжать свои библиотеки и репо на github красивой анимацией, показывающей консоль с живой демкой вашего творения.
Традиция, бесспорно, хорошая и правильная. Только записывать такие анимации бывает трудно/лень/некогда. Авторы termtosvg [1] пристрелили всех зайцев одим выстрелом и дали программистам прекрасную штуку для записи консольных демок.
В отличие от многих других решений, termtosvg пишет не видео или гифку. Эта штука ловит все происходящее в консоли и рендерит SVG анимацию на основе того, что появляется в терминале. На выходе вы получаете не анимацию именно вашего экрана, а красивый и стильный рендер консольных операций. SVG весит куда меньше других форматов, а еще его можно достаточно легко редактировать.
Для взыскательных людей прилагается несколько предустановленных цветовых решений, чтобы вы могли кастомизировать свои живые демки.
Можно рендерить вывод в светлой теме:

Можно рендерить в такой вот темной теме, с кнопками управления окна и прогрессбаром внизу:

А можно еще в десятке других цветовых решений.
Ставится все как обычно,
pip install termtosvg
маководы могут поставиться еще и через brew (нужные версии Python и еще пачка зависимостей подтянется сама)
brew install termtosvg
Мануал лежит тут [2], полный список предустановленных тем для рендера — здесь [3]. Все это на Python, так что можно как минимум читатать интересные исходники, если нужды в анимациях консоли у вас нет.
The Algorithms [4] на Python. Этот репо уже многие видели и он на слуху — почти 50 000 звезд на github. Реализация пачки классических алгоритмов на чистом Python — графы, математика, шифрование, протоколы, сетевая маршрутизация и куча всего разного.
Для повседневной работы такое понадобится мало кому, но очень пригодится для общего развития или для подготовки к интервью в компанию, которая может предложить вам поработать с бинарным деревом на собеседовании.
В наличии есть не только питонячие реализации, но и другие языки [5].

Казалось бы, инструментов отладки и мониторинга питонячего кода полно и они удовлетворяют всем нуждам разработчика — дебаггеры, сборщики логов, мониторинги ошибок, сборщики метрик.
Но иногда бывает так, что инженерам приходится шлепать в коде старый добрый print(), чтобы разобраться в происходящем.
if something:
print(1)
operation_one()
else:
print(2)
operation_two()
Метод отладки спорный, грязный, действенный и на любителя. Для таких любителей существует питонячая библиотека icecream [6] (а еще реализации для C++, Node.JS, Rust, Dart и PHP).
Теперь можно написать
from icecream import ic
def foo():
ic()
first()
if expression:
ic()
second()
else:
ic()
third()
и получить в ответ отладочный код типа
ic| example.py:4 in foo()
ic| example.py:11 in foo()
За отладку чисто таким вот методом лично я врезал бы по шее, но при определенных модификациях это можно использовать. Еще в этой либе есть кое-что еще, что может быть полезным:
Если это все аккуратно скомбинировать с разными флагами-переключалками из режима отладки в режим продакшн, то получается вполне себе вменяемая штука, которая доступно расскажет обо всем, происходящем у вас в коде.
Автор: Andrey Korchak
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/323602
Ссылки в тексте:
[1] termtosvg: https://github.com/nbedos/termtosvg
[2] тут: https://github.com/nbedos/termtosvg/blob/master/man/termtosvg.md
[3] здесь: https://nbedos.github.io/termtosvg/pages/templates.html
[4] The Algorithms: https://github.com/TheAlgorithms/Python
[5] другие языки: https://github.com/TheAlgorithms
[6] icecream: https://github.com/gruns/icecream
[7] Источник: https://habr.com/ru/post/459074/?utm_source=habrahabr&utm_medium=rss&utm_campaign=459074
Нажмите здесь для печати.