Описание тега contextmanager
Диспетчер контекста python управляет контекстом оператора with. Диспетчер контекста определяет ловушки входа и выхода, которые вызываются при входе и выходе из блока кода под оператором with соответственно.
1
ответ
Как обрабатывать ограничения скорости API с помощью диспетчера контекста?
Я пытаюсь написать менеджер контекста для обработки GitHub исключение ограничения скорости. По сути, я хочу, чтобы он прослушивал ошибку и, когда она возникает, динамически вытягивал время сброса (все сделано через GitHub API), и подождите столько в…
17 мар '17 в 20:12
1
ответ
Почему моя функция __exit__ диспетчера контекста запускается до того, как вычисления не будут завершены?
Функция выхода моего пользовательского диспетчера контекста, по-видимому, запускается до завершения вычислений. Мой менеджер контекста предназначен для упрощения написания параллельного / параллельного кода. Вот мой код менеджера контекста: import t…
05 апр '17 в 23:20
1
ответ
Уменьшить шум журнала для запросов http, contextmanager или пользовательского уровня ведения журнала?
У меня есть регистратор, который я использую для большинства своих программ, которые я установил на logging.INFO, Мне кажется, это наиболее разумная настройка, так как данные, которые я регистрирую, не обязательно являются предупреждением и т. Д. Пр…
27 апр '16 в 02:43
2
ответа
Является ли хорошей практикой выход из контекста?
Недавно я написал метод, который возвращает последовательность открытых файлов; другими словами, что-то вроде этого: # this is very much simplified, of course # the actual code returns file-like objects, not necessarily files def _iterdir(self, *pat…
11 июл '14 в 06:18
1
ответ
Десятичный пользовательский контекст Python
Контекстный менеджер decimal.localcontext по-видимому, игнорируется при использовании внутри другого контекста. Следующий пример иллюстрирует это (Python 2.7): from decimal import Decimal, Context, localcontext from contextlib import contextmanager …
16 фев '16 в 15:45
1
ответ
__del__ ненадежен, но объект не сохраняется, если я пытаюсь использовать менеджер контекста
У меня есть скрипт, который создает несколько дочерних объектов. Когда сценарий (и эти объекты) заканчиваются... объекты должны быть немного очищены (особенно закрытие и удаление временного файла). Я продолжаю читать как __del__ ненадежен - однако у…
21 дек '14 в 08:13
1
ответ
Как pySerial реализует оператор "с" без __enter__ и __exit__?
pySerial можно использовать с Python with утверждение как это: with serial.Serial("/dev/ttyS1") as ser: ser.write("AAAA") ser.read(8) Я пытался понять, что именно PySerial делает, чтобы сделать эту работу, но я не смог найти __enter__ или же __exit_…
17 мар '15 в 20:15
4
ответа
Диспетчер контекста для опционально перенаправленного ввода-вывода
Я часто сталкиваюсь с ситуацией, когда в зависимости от какого-либо аргумента командной строки ввод может происходить из файла или из стандартного ввода. То же самое касается вывода. Мне очень нравится, как работают менеджеры контекста в Python 3, и…
25 апр '14 в 19:10
2
ответа
Можно ли сделать контекстно-зависимый менеджер контекста Python, который сохраняет, изменяет и восстанавливает состояние?
У меня есть пара функций Python, которые в настоящее время переворачивают глобальную переменную между двумя значениями. Я хотел бы превратить их в менеджеры контекста, чтобы я мог использовать их как with блоков, устанавливая переменную внутри блока…
08 авг '11 в 21:02
1
ответ
Как я могу получить доступ к атрибутам менеджера контекста?
Я хочу сделать что-то вроде: class my_context(object): def __init__(self): self.obj1 = Obj() self.obj2 = Obj() ... def __enter__(self): ''' initialize objects ''' def __exit__(self, type, value, tb): ''' uninitialize objects ''' Здесь очень много Ob…
22 окт '15 в 20:20
4
ответа
Замена метода класса в стиле макросов декоратором?
У меня много проблем с тем, чтобы хорошо понять декораторов, несмотря на то, что я прочитал много статей на эту тему (включая [эту][1] очень популярную статью о SO). Я подозреваю, что я, должно быть, глуп, но со всем этим упрямством, которое приходи…
25 июл '12 в 23:07
1
ответ
Python: Как создать менеджер контекста для безопасного одновременного входа, который отличается в каждом контексте
Я хочу иметь объект conManager это экземпляр диспетчера контекста с повторным входом, так что всякий раз, когда я вхожу и выхожу из его контекста, он печатает число, но число должно быть на единицу больше, чем номер предыдущего контекста (начиная с …
14 дек '17 в 08:25
1
ответ
Необъяснимая разница между явным вызовом __enter__ в @contextmanager и выражении "with"
У меня есть тип менеджера контекста (Connection) и @contextmanager украшенная функция, которая дает этот тип изнутри with заявление. Если я явно призываю __enter__ на украшенную функцию, __exit__ вызывается на Connection прежде чем он будет возвраще…
05 апр '18 в 18:51
4
ответа
Где __enter__ и __exit__ определены для zipfile?
На основании заявления с Менеджер контекста __exit__() загружается для последующего использования. Менеджер контекста __enter__() метод вызывается. Я видел один из с использованием с zipfile Вопрос> Я проверил исходный код zipfile, расположенный зде…
09 окт '11 в 21:08
2
ответа
Как ловятся исключения с помощью менеджера контекста в python
У меня есть следующий метод, чтобы установить соединение с БД и разорвать его в конце. Функция выглядит примерно так def read_db(self, sql_statement): conn = pymysql.connect(host=self.h,user=self.u,passwd=self.pw, db=self.db,port=self.p) try: with c…
12 янв '18 в 03:32
1
ответ
Отладка в контекстном менеджере в python
У меня довольно сложный контекстный менеджер, интегрированный в мое программное обеспечение, и я делаю некоторые изменения в них. Как я могу получить полный журнал ошибок, который происходит внутри блока. Все, что я могу сделать, это: print exc_type…
09 окт '17 в 11:37
0
ответов
Как мне написать трехблочный контекстный менеджер на Python?
У меня есть много функций, которые используют шаблон менеджера контекста: @contextmanager def f(): # Do preliminary stuff. yield # Do final stuff. Я использую ExitStack позвонить всем этим контекстным менеджерам. Я рассматриваю шаблон: @threeblock_c…
26 июн '14 в 07:42
1
ответ
Python: неожиданное поведение при использовании contextmanager в методе класса
Я пытаюсь использовать конструкцию with..as в Python, чтобы упростить написание кода "обратимых вычислений". Однако, используя @contextmanager на метод класса, кажется, изменить инициализацию по умолчанию будущих экземпляров класса. Python 2.6 и 3.1…
07 авг '12 в 16:04
1
ответ
Почему Contextmanager генерирует ошибку времени выполнения "генератор не остановился после throw()"?
В моей утилите у меня есть @contextmanager def rate_limit_protection(max_tries=3, wait=300): tries = 0 while max_tries > tries: try: yield break except FacebookRequestError as e: pprint.pprint(e) if e._body['error']['message'] == '(#17) User requ…
13 янв '16 в 19:11
2
ответа
Есть ли в Python способ вручную выйти из оператора "with" (менеджер контекста)
Я использую PySide (Qt) Gui, который должен выйти из цикла при нажатии кнопки. Нажатие кнопки PySide подает сигнал, и сигнал вызывает подключенные функции. Однако, когда сигнал вызывает функции, он использует свою собственную систему для обработки о…
22 июл '14 в 15:42