Size: a a a

2020 July 29

НХ

Николай Хитров... in Moscow Python
Alexey Starkov
await asyncio.sleep(0) например, но я не специалист
тут вопрос видимо в том, как в разных контекстах слипать. мы ж как бы избавляемся от async/await слов
источник

AS

Alexey Starkov in Moscow Python
Vladimir Manatskov
я ж не говорю о неявном. можно явно делать await и ждать синхронную функцию и это нормально, например, хотя у неё не будет async. что тут неявного?
ну так можно делать await loop.run_in_executor(sync_f)
источник

НХ

Николай Хитров... in Moscow Python
но по идее можно ту же перегрузку тогда использовать из примера выше
источник

VM

Vladimir Manatskov in Moscow Python
Alexey Starkov
ну так можно делать await loop.run_in_executor(sync_f)
я не хочу этого делать
источник

VM

Vladimir Manatskov in Moscow Python
я хочу, чтобы питон сам
источник

p

pragus in Moscow Python
Alexey Starkov
await asyncio.sleep(0) например, но я не специалист
ну вот, gevent.sleep(0) сделает то же самое
источник

AS

Alexey Starkov in Moscow Python
Николай Хитров
тут вопрос видимо в том, как в разных контекстах слипать. мы ж как бы избавляемся от async/await слов
ну вот мне интересно зачем мы избавляемся, если мы не хотим их видеть, пишем синхронный код с тредами-процессами
источник

AS

Alexey Starkov in Moscow Python
Vladimir Manatskov
я хочу, чтобы питон сам
ну, это хорошее желание :)
источник

НХ

Николай Хитров... in Moscow Python
Alexey Starkov
ну вот мне интересно зачем мы избавляемся, если мы не хотим их видеть, пишем синхронный код с тредами-процессами
да нет тут тредов процессов. кейс вообще другой
источник

AK

Andrey 🦉 Kovalchuk... in Moscow Python
А, оверлоад это из стандартных, понял, принял. У меня тут своя война
источник

AS

Alexey Starkov in Moscow Python
pragus
ну вот, gevent.sleep(0) сделает то же самое
согласен
источник

AS

Alexey Starkov in Moscow Python
Николай Хитров
да нет тут тредов процессов. кейс вообще другой
какой? неявно переключаться? треды как раз про этот кейс
источник

НХ

Николай Хитров... in Moscow Python
Alexey Starkov
какой? неявно переключаться? треды как раз про этот кейс
да нет в статье ничего про треды. речь о том, чтобы иметь одинаковый интерфейс для async/sync кода без дублирования
источник

НХ

Николай Хитров... in Moscow Python
если у тебя async, то используешь async интерфейс
источник

НХ

Николай Хитров... in Moscow Python
следовательно треды никакие не нужны
источник

НХ

Николай Хитров... in Moscow Python
ты же не синхронный код будешь запускать в async
источник

SF

Segmentation Fault in Moscow Python
А в чем сложность оборачивать синхронные функции в асинхронные и запускать через тредпул?
источник

AS

Alexey Starkov in Moscow Python
Николай Хитров
да нет в статье ничего про треды. речь о том, чтобы иметь одинаковый интерфейс для async/sync кода без дублирования
ну можно преобразовывать интерфейс
async -> sync
loop.run_until_complete
sync -> async
loop.run_in_executor
но для внутренностей иблиотеки все равно придется выбрать одну реализацию
источник

AK

Andrey 🦉 Kovalchuk... in Moscow Python
А статья ниче
источник

p

pragus in Moscow Python
Николай Хитров
не очень понял. а в чем сложность?
сложность в ленивости и обилии таймаутов :) как минимум, map должна на каждой итерации проверять не выбросили ошибку и дальше надо эту ошибку пробрасывать выше и что-то делать с накопленным результатом(и не всегда это означает отбрасывать целиком)
источник