Nesta semana, não foram encontradas pequenas alegrias grandes o suficiente, mas houve três pequenas alegrias muito pequenas.
termtosvg
Agora é habitual equipar suas bibliotecas e repositórios no github com belas animações mostrando um console com uma demonstração ao vivo de sua criação.

A tradição é sem dúvida boa e correta. Somente gravar essas animações pode ser difícil / preguiça / uma vez. Os autores do termtosvg atiraram em todos os pássaros com uma cajadada e deram aos programadores uma grande coisa para gravar demos de console.
Ao contrário de muitas outras soluções, o termtosvg não grava um vídeo ou um gif. Essa coisa captura tudo o que acontece no console e renderiza a animação SVG com base no que aparece no terminal. Na saída, você obtém não apenas a animação da tela, mas uma renderização bonita e elegante das operações do console. O SVG pesa muito menos que outros formatos e, no entanto, pode ser editado com bastante facilidade.
Para pessoas exigentes, várias soluções de cores predefinidas estão incluídas para que você possa personalizar suas demos ao vivo.
Você pode renderizar a saída em um tópico claro:

Você pode renderizar em um tema tão sombrio, com botões de controle de janela e uma barra de progresso abaixo:

E você pode em uma dúzia de outros esquemas de cores.
Tudo está definido como de costume,
pip install termtosvg
as macros também podem ser entregues via brew (as versões necessárias do Python e várias dependências serão criadas por si só)
brew install termtosvg
O manual está aqui , uma lista completa de temas predefinidos para renderização está aqui . Tudo isso está em Python, então você pode pelo menos ler fontes interessantes se não precisar de animações de console.
A coleção de algoritmos
Os algoritmos em Python. Este repositório já foi visto por muitos e é bem conhecido - quase 50.000 estrelas no github. A implementação de um conjunto de algoritmos clássicos em Python puro - gráficos, matemática, criptografia, protocolos, roteamento de rede e um monte de coisas diferentes.
Para o trabalho diário, poucas pessoas precisarão disso, mas é muito útil para o desenvolvimento geral ou para a preparação para uma entrevista com uma empresa que pode oferecer a você o trabalho com uma árvore binária para uma entrevista.
Não estão disponíveis apenas implementações para animais de estimação, mas também outros idiomas .
sorvete

Parece que as ferramentas de depuração e monitoramento para código poderoso estão completas e atendem a todas as necessidades do desenvolvedor - depuradores, coletores de logs, monitoramento de erros, coletores de métricas.
Mas às vezes acontece que os engenheiros precisam espancar o bom e velho código print()
para descobrir o que está acontecendo.
if something: print(1) operation_one() else: print(2) operation_two()
O método de depuração é controverso, sujo, eficaz e não é para todos. Para esses amantes, existe uma biblioteca de sorvetes baseada em python (além de implementações para C ++, Node.JS, Rust, Dart e PHP).
Agora você pode escrever
from icecream import ic def foo(): ic() first() if expression: ic() second() else: ic() third()
e obtenha um código de depuração como
ic| example.py:4 in foo() ic| example.py:11 in foo()
Para depurar usando um método puramente semelhante, eu pessoalmente o teria perfurado no pescoço, mas com certas modificações, ele pode ser usado. Há algo mais nesta biblioteca que pode ser útil:
- A capacidade de depositar rápida e facilmente argumentos de entrada e o resultado das funções.
- Personalize a saída com diferentes prefixos e dados.
- Desligue suas funções personalizadas para lidar com a saída de mensagens de depuração.
Se tudo isso estiver perfeitamente combinado com diferentes alternadores de sinalizadores do modo de depuração para o modo de produção, será algo bastante sensato, que informará sobre tudo o que acontece no seu código.