Возможно, вы здесь, потому что ранее уже столкнулись с некоторыми моими проектами с открытым исходным кодом. В основном я пишу на Python и крайне редко публикую проекты, предназначенные для конечных пользователей. Чаще всего это библиотеки, доступные другим программистам. Вот некоторые из них:
-
🔗 cantok
- имплементация паттерна токенов отмены для Python. На удивление, ранее нормальных универсальных имплементаций для этого языка просто не было. -
🔗 instld
- маленький пакетный менеджер для Python, обертка вокруг pip и venv. У него есть суперспособность: он позволяет вам пользоваться всеми библиотеками мира так, будто они уже установлены на ваш компьютер. Зависимость сама, прямо в рантайме, подгружается, когда она нужна, и подчищается, когда нет. Еще одна невиданная возможность: в одном рантайме можно использовать разные версии одной и той же библиотеки, или даже несколько разных несовместимых между собой библиотек. Подробнее я рассказывал о проекте на нескольких митапах, например в Evrone или на Moscow Python Meetup. Фанфакт: логотип сделан при помощи 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.
Если у вас есть интересные идеи на тему опенсорса и вы нуждаетесь в консультации - пишите мне, по такому поводу я готов помогать безвозмездно.