Size: a a a

2020 July 29

AK

Andrey 🦉 Kovalchuk... in Moscow Python
Andrey 🦉 Kovalchuk
А, как раз, видимо не так понял.

т.е. эта хурма не подразумевает кода внутри себя? Только красно-синяя что-то делает, остальные - просто типа интерфейсы?

@overload

def fetch_resource_size(

   client_get: Callable[[str], IOResultE[httpx.Response]],

   url: str,

) -> IOResultE[int]:

   """Sync case."""
@Slyfoxyst вот тут, где »»»Sync Case»»» кода не подразумевается?
источник

VM

Vladimir Manatskov in Moscow Python
Николай Хитров
для всяких api библиотек, которым надо уметь в async и sync, такой подход уменьшил бы дублирование кода. другое дело, что далеко не все сообщество одобряет подходы из мира фп в мире питона)
какая связь между фп и нормальным синк/асинком? фп — это просто парадигма, а решение проблемы синка и асинка — это другое
источник

НХ

Николай Хитров... in Moscow Python
Vladimir Manatskov
А почему бы не сделать асинк сразу правильно?
ага. и еще чтобы тайпинг все использовали :D
источник

AS

Alexey Starkov in Moscow Python
Vladimir Manatskov
я хз, я не член комитета пайтон
ну не надо использовать asyncio тогда, в чем проблема то? он конкретно решает проблему кооперативной многозадачности, при кооперативной многозадачности хорошо видеть где красные а где синие функции явно, зачем пытаться присобачить его там где хочется вытесняющую?
источник

НХ

Николай Хитров... in Moscow Python
Andrey 🦉 Kovalchuk
А, как раз, видимо не так понял.

т.е. эта хурма не подразумевает кода внутри себя? Только красно-синяя что-то делает, остальные - просто типа интерфейсы?

@overload

def fetch_resource_size(

   client_get: Callable[[str], IOResultE[httpx.Response]],

   url: str,

) -> IOResultE[int]:

   """Sync case."""
я не шарю за ретурнсы, но тут видимо идея была в том, чтобы сделать обработки особых кейсов для async/sync, но иметь одинаковый интерфейс
источник

НХ

Николай Хитров... in Moscow Python
Vladimir Manatskov
какая связь между фп и нормальным синк/асинком? фп — это просто парадигма, а решение проблемы синка и асинка — это другое
связь в статье, что Никита решил решить проблему через приемы фп
источник

AS

Alexey Starkov in Moscow Python
pragus
gevent ;)
это хороший вариант, но мы не видем точек возможного переключения + не можем явно переключится, что убивает идею кооперативной многозадачности, но вообще да gevent нормальная тема
источник

VM

Vladimir Manatskov in Moscow Python
Alexey Starkov
ну не надо использовать asyncio тогда, в чем проблема то? он конкретно решает проблему кооперативной многозадачности, при кооперативной многозадачности хорошо видеть где красные а где синие функции явно, зачем пытаться присобачить его там где хочется вытесняющую?
а не проще сделать так, чтобы любую функцию можно было await-ить либо наоборот, любая функциия со слово async автоматически бы await-илась из асинхронного кода и синхронно вызывалась из синхронного (или даже асинхронно из синхронного...)?
источник

AS

Alexey Starkov in Moscow Python
Vladimir Manatskov
а не проще сделать так, чтобы любую функцию можно было await-ить либо наоборот, любая функциия со слово async автоматически бы await-илась из асинхронного кода и синхронно вызывалась из синхронного (или даже асинхронно из синхронного...)?
а зачем? :)
источник

AK

Andrey 🦉 Kovalchuk... in Moscow Python
Николай Хитров
я не шарю за ретурнсы, но тут видимо идея была в том, чтобы сделать обработки особых кейсов для async/sync, но иметь одинаковый интерфейс
Хочется что-то более понятное с первого взгляда. А не вот это вот всё
источник

VM

Vladimir Manatskov in Moscow Python
Alexey Starkov
а зачем? :)
потому что это питон, я не хочу думать, какого цвета функции, я хочу код писать
источник

AS

Alexey Starkov in Moscow Python
Vladimir Manatskov
потому что это питон, я не хочу думать, какого цвета функции, я хочу код писать
явное лучше чем неявное
источник

p

pragus in Moscow Python
Николай Хитров
вот одна реализация и 2 способа использования. дублирования нет
это забавный нежизнеспособный подход ))
источник

VM

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

НХ

Николай Хитров... in Moscow Python
Andrey 🦉 Kovalchuk
Хочется что-то более понятное с первого взгляда. А не вот это вот всё
тут уже к Никите с этим)
источник

НХ

Николай Хитров... in Moscow Python
pragus
это забавный нежизнеспособный подход ))
почему?
источник

p

pragus in Moscow Python
Alexey Starkov
это хороший вариант, но мы не видем точек возможного переключения + не можем явно переключится, что убивает идею кооперативной многозадачности, но вообще да gevent нормальная тема
> не можем явно переключится

а где можем явно переключиться?
источник

p

pragus in Moscow Python
таймауты как сюда вписать?
источник

НХ

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

AS

Alexey Starkov in Moscow Python
pragus
> не можем явно переключится

а где можем явно переключиться?
await asyncio.sleep(0) например, но я не специалист
источник