Вопросы по теме 'contextmanager'

Можно ли создать контекстно-зависимый менеджер контекста Python, который сохраняет, изменяет и восстанавливает состояние?
У меня есть пара функций Python, которые в настоящее время переворачивают глобальную переменную между двумя значениями. Я хотел бы превратить их в контекстные менеджеры, чтобы я мог использовать их как блоки with , устанавливая переменную внутри...
2491 просмотров
schedule 01.06.2023

Перехват исключения в менеджере контекста __enter__()
Можно ли обеспечить вызов метода __exit__() , даже если в __enter__() есть исключение? >>> class TstContx(object): ... def __enter__(self): ... raise Exception('Oops in __enter__') ... ... def __exit__(self, e_typ, e_val,...
19988 просмотров

Многострочный с предложением в Python
Как я могу распределить длинное предложение with в Python на несколько строк? Прямо сейчас у меня есть with self.context_manager_one(some, parameters, that, are, passed) \ as return_value_one, \...
1384 просмотров
schedule 16.06.2023

Файл открывается и закрывается в python
Я читал, что когда файл открывается в формате ниже with open(filename) as f: #My Code f.close() явное закрытие файла не требуется. Может кто-нибудь объяснить, почему так? Кроме того, если кто-то явно закроет файл, будет ли это иметь...
37594 просмотров

Соглашение об именах для классов диспетчера контекста (с блоками)
Существует ли общее соглашение об именах для классов или функций, предназначенных для использования в блоке with , например with CreateSomeContext() as x: ... ? Что-то, что сигнализирует о том, что класс или результат функции следует...
1236 просмотров

Контекстный менеджер внутри контекстного менеджера
У меня есть контекстный менеджер S3TempFile , который берет локальный файл, загружает его в s3, позволяет вам использовать файл s3 и при выходе удаляет файл из s3. Я хочу создать еще один, S3TempRecordsFile , который берет список записей,...
53 просмотров
schedule 30.07.2022

Диспетчер контекста, который возвращается из родительской функции, не вызывая исключения
Может ли диспетчер контекста вызвать функцию, в которой он находится, в return при обработке исключения? У меня есть шаблон try-except, общий для нескольких методов, которые я пишу, и я надеюсь высушить его с помощью контекстного менеджера....
557 просмотров
schedule 05.06.2023

менеджер контекста ткани с sudo
Возможно ли иметь диспетчер контекста, который просто сохраняет состояние предыдущего выполнения run . В коде: РЕДАКТИРОВАТЬ: не рабочее решение, чего я и ожидал with sudo('. myapp'): #this runs a few things and sets many env variables...
783 просмотров
schedule 25.05.2023

Ошибка многопроцессорной библиотеки Python (AttributeError: __exit__)
Я получаю эту ошибку при использовании pool.map(funct, iterable) : AttributeError: __exit__ Без объяснения, только трассировка стека до файла pool.py в модуле. используя таким образом: with Pool(processes=2) as pool:...
23089 просмотров

Значение оператора with без ключевого слова as
Я знаком с использованием оператора Python with как средства обеспечения завершения объекта в случае возникновения исключения. Обычно это выглядит как with file.open('myfile.txt') as f: do stuff... что является сокращением для f =...
8838 просмотров
schedule 19.08.2022

Итерируемый и контекстный менеджер Python
Я хочу поведения как такового: with A() as f: for x in f: do_something(f) это правильный способ сделать это? class A: def __enter__(self): print "Entering context" def __iter__(self): for x in...
1766 просмотров
schedule 02.09.2022

Как пользовательский тег jinja2 может взаимодействовать с контекстом запроса фляги
Я пишу собственное расширение jinja2 для использования в приложениях flask , и я ищу способ получить доступ к данным контекста шаблонов с помощью тега, который я реализую. То есть я хочу, чтобы тег расширения использовал параметры контекста,...
1203 просмотров
schedule 07.10.2022

Как мне сделать контекстный менеджер с циклом внутри?
Я хочу что-то вроде этого: from contextlib import contextmanager @contextmanager def loop(seq): for i in seq: try: do_setup(i) yield # with body executes here do_cleanup(i) except...
4696 просмотров
schedule 18.04.2023

Проблема с новой строкой в ​​контекстном менеджере Python
Используя contextmanager Python, я хочу создать оболочку для отображения Linux- как прогресс определенного блока кода: Doing something... done. [42 ms] Это работает - вроде: from contextlib import contextmanager import time...
145 просмотров
schedule 20.10.2023

Обратный диспетчер контекста
Я нахожусь на среднем уровне с Python, и недавно я играл с менеджерами контекста Python. Я хотел инвертировать порядок, в котором выполняются вход и выход. Итак, я написал этот менеджер контекста: class ReversibleContextManager(object): def...
165 просмотров
schedule 22.01.2023

почему Contextmanager выдает ошибку времени выполнения «генератор не остановился после throw()»?
В моей утилите.py у меня есть, @contextmanager def rate_limit_protection(max_tries=3, wait=300): tries = 0 while max_tries > tries: try: yield break except FacebookRequestError as e:...
9600 просмотров
schedule 12.08.2023

Почему devnull не работает при сокрытии вывода консоли, если он определен в этом диспетчере контекста?
У меня есть диспетчер контекста, определенный для «заглушения» вывода некоторого кода Python путем временного переопределения stdout и stderr. Когда devnull определен в основной функции кода, вывод кода успешно подавляется, однако, когда devnull...
106 просмотров
schedule 06.03.2023

Удаление генератора из контекстного менеджера
Я только что увидел следующий код: from __future__ import print_function from future_builtins import map # generator with open('test.txt', 'r') as f: linegen = map(str.strip, f) # file handle should be closed here for line in linegen: #...
93 просмотров
schedule 10.06.2023

Python contextmanager () против закрытия (): что подходит для объекта потока?
В другом ответе здесь , который использует contextlib для определения пользовательской "открытой" функции для использования с with , contextmanager из contextlib используется для определите функцию, которая обрабатывает открытие и потоковую...
449 просмотров
schedule 20.09.2022

Python __enter__/__exit__ против __init__ (или __new__)/__del__
Я искал, и я не могу придумать какой-либо веской причины для использования __enter__ / __exit__ python вместо __init__ (или __new__ ?) / __del__ . Я понимаю, что __enter__ / __exit__ предназначены для использования с оператором with в...
13250 просмотров