Что это вообще такое? Менеджеры контекста - это очередной синтаксический сахар питона. Наверняка любой программист на Python знает вот эту конструкцию для открытия файлов: Эта конструкция гарантированно закроет ваш файл после завершения блока внутри. with - оператор для открытия менеджера контекста. Без него подобный код выглядел бы вот так: Отделение блоком кода, в котором открыт файл, естественно, удобно. Заодно исчезает возможность забыть закрыть файл. Менеджеры контекста довольно просто разрабатывать самостоятельно. Для частых однотипных операций это действительно имеет смысл делать, так как код сразу становится чистым и более читаемым. На примере кода ниже - функция print_it - это и есть наш менеджер контекста. Ему нужен декоратор contextmanager, а так же yield. Таким образом, у нас появился классический генератор. Сначала выполняются действия до yield, затем управление передается вызывающему блоку кода (телу менеджера контекста), и после его выполнения завершается код после yie