Веб-версияОткрыть в Telegram

ПостDishka - IoC-контейнер для Python

3 апреля 2024
К
Коробка с питоном
Фотография
нажмите — покажем
Dishka - IoC-контейнер для Python Когда мы следуем подходу Dependency Injection, а особенно - слоистой архитектуре, у нас образуется отдельная группа функций и классов, выполняющих только одну задачу - создание других объектов. Такой код лучше держать поближе к main, так как он связывает воедино разные части приложения и связан с конфигурацией запуска. В сложном приложении такой компонент может содержать большое количество функций, контролировать как создание, так и корректную очистку объектов и, что самое главное, их взаимосвязь. Для упрощения работы с такими фабриками придумали отдельный тип библиотек - IoC-контейнеры (DI-фреймворки). В Python меня долго не устраивали существующие контейнеры и я решил сделать свой: Хочу представить вам Dishka 1.0 Цель этого проекта - предоставить простой и удобный IoC-контейнер, который сможет забрать всю работу с зависимостями. Мне кажется, на текущий момент это самый функциональный вариант контейнера, имеющий при этом самое простое API. • Вы можете использовать его с любым фреймворком, но для некоторых мы уже подготовили хелперы • Для создания зависимости можно указать отдельную функцию или использовать __init__ класса • Зависимости имеют ограниченное время жизни (скоуп) и вы сами управляете им • Зависимости кэшируются, поэтому один и тот же объект может быть переиспользован пока он жив. Так можно передать одно соединение с БД в несколько гейтвеев • Фабрики зависимостей можно группировать в классы и компоненты, что позволяет делать контейнер модульным • Можно декорировать объекты, использовать один объект для нескольких типов • При старте проверяется корректность конфигурации контейнера, что позволяет исключить многие ошибки Что значит версия 1.0? У библиотеки было 9 промежуточных релизов, мы ради объявить, что закончена вся работа по стабилизации её интерфейса и исправлению ошибок. И у нас есть планы по развитию, уникальные фичи сами себя не напишут. Будем рады новым пользователям, багрепортам, запросам фич и звездам на гитхабе • Github • Pypi • Документация
14 · 935 ·

Рядом в ленте

ККоробка с питономСовсем скоро (релиз запланирован на конец января - начало февраля) выйдет NumPy 2. Список изменений можно прочитать здесь, а информацию по миграции - здесь. СтаККоробка с питономПодписчиков набежало, а постов всё так же не было. Буду исправляться! Сегодня расскажу про deptry - тулзу, которая позволяет находить неиспользованные, транзити
это сообщение
ККоробка с питономТам в Python 3.12 добавили нашумевший PEP 659, а у меня пет-проект один давно не обновлялся, и так уж звёзды сошлись, что я сижу второй день обновляю его на 3.1ККоробка с питономДа, оно существует. Под капотом низкоуровневая магия, из самого понятного - оно позволяет создавать поддельные объекты на куче. Можно создать байтовый массив с
ККоробка с питономКоробка с питоном@boxwithpython · канал · Технологии
488подписчиков154постов в индексе
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем