Возможно, вы здесь, потому что ранее уже столкнулись с некоторыми моими проектами с открытым исходным кодом. В основном я пишу на Python и крайне редко публикую проекты, предназначенные для конечных пользователей. Чаще всего это библиотеки, доступные другим программистам. Вот некоторые из них:
-
🔗 transfunctions
— библиотека, предлагающая решение одной из главных проблем Python — дублирования экосистемы на sync и async части. -
🔗 cantok
— имплементация паттерна токенов отмены для Python. На удивление, ранее нормальных универсальных имплементаций для этого языка просто не было. -
🔗 instld
— маленький пакетный менеджер для Python, обертка вокруг pip и venv. Он позволяет вам пользоваться всеми библиотеками мира так, будто они уже установлены на ваш компьютер. Зависимость сама, прямо в рантайме, подгружается, когда она нужна, и подчищается, когда нет. Еще эта штука решает Diamond Dependency Problem, но попутно вскрывает фундаментальные проблемы безопасности в Python. Фанфакт: логотип сделан при помощи paint. -
🔗 suby
— симпатичная обертка вокруг сабпроцессов. Умеет в поддержку коллбеков для потоков вывода, токенов отмены из cantok и таймаутов. -
🔗 locklib
— всякий расширенный тулинг для блокировок. Если вы пишете асинхронный, многопоточный или многопроцессный код — вам это может показаться интересным. -
🔗 escaping
— реимплементация try-except (а если точнее — suppress из стандартной библиотеки) с блэкджеком и шлюхами. -
🔗 awaits
— содержит несколько декораторов, которые умеют превращать обычные функции в корутинные, а также запускать код в фоновом тред-пуле. -
🔗 polog
— логгер с суперспособностями. Среди них: возможность работать в многопоточном и однопоточном режиме, способность применять изменения любых настроек на лету, универсальность режимов использования, когда вы можете одну и ту же функцию использовать как есть, а также как декоратор или контекстный менеджер. -
🔗 emptylog
— универсальный протокол логгера + несколько его имплементаций: “пустой” логгер для заглушек в функциях, логгер, который запоминает все вызовы, а также логгер, который принтит все логи в консоль. Главная цель этой библиотеки — сделать DI логирования простым и доступным, а тестирование логов — такой же базовой практикой в юнит-тестировании, как и тестирование бизнес-логики. -
🔗 astrologic
— набор моих экспериментов по автоматической оптимизации кода на уровне AST. Самое интересное, что тут есть — декоратор, который оптимизирует хвостовую рекурсию. -
🔗 fazy
— ленивые f-строки. Вычисление конкретного значения строки происходит не в момент создания строки, а в момент использования. Это тоже экспериментальный проект, не воспринимайте слишком всерьез. -
🔗 flask_fixture
— небольшой плагин для Pytest, который умеет запускать сервер Flask в фоне для ваших тестов. -
🔗 antitesting
— еще один плагин для Pytest. С его помощью можно прописывать список тестов, которые нужно пропустить при запуске, в одном или нескольких специальных файликах, а не прямо в исходном коде тестов. -
🔗 cbfa
— расширение для FastAPI, позволяющее писать эндпоинты в class-based стиле. -
🔗 metronomes
— нужно для вызова произвольных функций по расписанию. -
🔗 displayhooks
— полезная штука для интеракций с sys.displayhook — коллбеком, который печатает результаты выражений в REPL.
Если у вас есть интересные идеи на тему опенсорса и вы нуждаетесь в консультации — пишите мне, по такому поводу я готов помогать безвозмездно.