@ru_python

Страница 2420 из 9768
Nikolay
05.03.2017
21:10:28
Список тасков, но не результатов.
так а если я таски тоже из генератора получаю?

imap же

(сейчас должны набежать хаскелисты и начать орать про сраные монады)

вот тут и проблема wait(), он так не может

Google
Rocket
05.03.2017
21:11:38
Nikolay
05.03.2017
21:11:40
ему туплы подавай

Rocket
05.03.2017
21:12:35
Асинхронный map-reduce получается какой то.

Nikolay
05.03.2017
21:12:47
типа того

Rocket
05.03.2017
21:12:52
Окей. А из какого генератора?

Nikolay
05.03.2017
21:12:57
вот в 3.6 вроде сделали асинхронные генераторы

надо почитать

Rocket
05.03.2017
21:13:07
Из асинхронного, вроде как, да?

Nikolay
05.03.2017
21:13:39
Да. Но это уже совсем жесть.
отнюдь, имхо, без этого вообще многое неюзабельно :)

типа того же gather(), который громоздит лист в памяти

Rocket
05.03.2017
21:14:13
Окей

Тогда надо написать диспетчер, который эвейтит источник таксков, пихает их в pending.

Google
Rocket
05.03.2017
21:15:32
И вейтить и таски и диспетчер сразу.

Nikolay
05.03.2017
21:16:00
и вся проблема сразу решается

Rocket
05.03.2017
21:17:31
async def process(source): pending = source() while len(pending): done, pending =... ...

Да, а возвращать то как? ?

CthUlhUzzz
05.03.2017
21:18:10


Rocket
05.03.2017
21:18:41
Да, ты прав, @Enchantner , нужен асинхронный генератор.

Nikolay
05.03.2017
21:19:16
Да, ты прав, @Enchantner , нужен асинхронный генератор.
сейчас попробую накидать, но я сонный уже

Rocket
05.03.2017
21:19:30
вейтим все подряд, шедулим то что пришло в соурс, йелдим то, что done.

Вот только что делать с эксепшенами?

Aragaer
05.03.2017
21:20:42
и запиваем смузи

Rocket
05.03.2017
21:22:02
Знаешь, @Enchantner , я конечно люблю такие задачки, но вот спать хочу спокойно, по этому, если мне такое понадобится в продакшене, я лучше возьму asyncio.queue

Nikolay
05.03.2017
21:22:12
Вот только что делать с эксепшенами?
то же, что и всегда, Пинки

забьем на них хер

ой

то есть

Rocket
05.03.2017
21:22:35
Nikolay
05.03.2017
21:22:44
ну ты понел

Google
Rocket
05.03.2017
21:23:20
Вот если забить, то все просто, а вот если их надо обрабатывать - то этот простой диспетчер превратится в целый фреймворк на 5 тыщ строк.

Так что я лучше возьму очередь.

Nikolay
05.03.2017
21:23:52
зависит от того, что мы хотим делать с эксепшнами

по-хорошему, на момент yield они должны быть уже обернуты

Rocket
05.03.2017
21:24:30
Их можно спускать вниз....

Но тогда... Короче нафиг такой хоккей...

Асинхронный генератор кидает асинхронные эксепшены.... Аааааааааа!

Nikolay
05.03.2017
21:27:00
Их можно спускать вниз....
это знаешь на что становится похоже?

на go

самое забавное - очередь тебе тут тоже не сильно поможет

Rocket
05.03.2017
21:28:43
Когда я только начал с ботами телеги возиться, мне пришла в голову идея запилить асинхронную машину состояний внутри tornado. Ну чтобы не делать каждый раз state.next_handler(...) а что нибудь типа yield state.wait_next_query() Причем с учетом пришедшего message type. Так вот это задачка того же плана.

Rocket
05.03.2017
21:29:08
Может быть вернусь к этому безумию.

Nikolay
05.03.2017
21:29:15
ты будешь смеяться, но я с этой задачкой столкнулся на самой примитивнейшей задаче

у меня есть поток урлов и я его хочу кроулить

но хочу кроулить его я конечным набором воркеров, скажем, сотней

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

в итоге самый логичный и правильный выход из этого тупика - асинхронные генераторы

Nikolay
05.03.2017
21:43:00
Мое имхо - очереди.
не для того я в асинхронщину подавался, чтобы многопоточный подход использовать

Google
Nikolay
05.03.2017
21:43:07
но так-то да

Rocket
05.03.2017
21:43:18
asyncio.queue - суть тот же chan из go

YaOurTea
05.03.2017
21:44:59
math.sqrt(numpy.sum(numpy.power((data - neuron), 2))) ошибка unsupported operand type(s) for -: 'map' and 'float' data - это map, neuron - float

Nikolay
05.03.2017
21:45:28
оберни data в numpy.vector() или как он там

это же векторная операция

вроде просто numpy.array()

Rocket
05.03.2017
21:46:43
Пихаешь в source queue урлы, забираешь из destination queue результаты. Если source или destination переполняется, то await'ы ждут. Вполне себе асинхронно, причем, "воркеров" можно добавлять/убрать динамически.

Nikolay
05.03.2017
21:47:50
(по крайней мере, я так думал, оно не сработало)

Admin
ERROR: S client not available

Rocket
05.03.2017
21:48:47
Я попробую zmq в режиме client/server и расскажу. По идее не должно теряться.

Nikolay
05.03.2017
21:51:33
а вообще, если говорить о эксепшнах - то такой код надо уже писать в функциональном стиле, где их быть не должно

вот за это я и не люблю го - туда и эксепшны не завезли, и в функциональном стиле хер напишешь чо

Rocket
05.03.2017
21:52:28
Вопрос подходов. Я эксепшены люблю.

В питоне конечно же. В плюсах - ненавижу.

Nikolay
05.03.2017
21:53:09
http://img0.liveinternet.ru/images/attach/c/5/86/189/86189212_ZHirik_mem.jpg

Nikolay
05.03.2017
21:53:23
я эксепшны не очень люблю, но без них никуда

во многих случаях

Google
Nikolay
05.03.2017
21:54:11
но, в то же время, из-за своего “явное лучше неявного” эксепшны в питоне стали одним из немногих недостатков синтаксиса

Rocket
05.03.2017
21:54:22
Хех. Помню одну сетевую библиотеку в delphi, там message passing через эксепшены был сделан.

Nikolay
05.03.2017
21:54:29
в руби можно foo() rescue callback() написать

в питоне же, чтобы поймать и обработать эксепшен, надо минимум 4 строчки

Nikolay
05.03.2017
21:56:02
Так же как в плюсах.
я привык к if (-1 == func()) error(“OLOLO”)

тоже, по сути, одна строчка

но это, скорее, си

а не c++

Rocket
05.03.2017
21:57:04
я привык к if (-1 == func()) error(“OLOLO”)
Ага. А потом i = 1 напишешь 1 раз и все, прощай последние волосы в паху...

Nikolay
05.03.2017
21:57:28
Ага. А потом i = 1 напишешь 1 раз и все, прощай последние волосы в паху...
так для этого единица и ставится на первое место

у тебя на этапе компиляции все упадет же

Rocket
05.03.2017
21:58:02
так для этого единица и ставится на первое место
А меня это всегда бесило. Глаз режет.

Nikolay
05.03.2017
21:58:15
А меня это всегда бесило. Глаз режет.
согласен, непривычно, но разумно же

Aragaer
05.03.2017
21:58:24
ничонизнаю, -Wall -Werror и у меня тоже упадет на компиляции

или вы игнорите варнинги компилятора?

Tony
05.03.2017
21:58:56
хочу работать

а работы нет

Nikolay
05.03.2017
21:59:03
или вы игнорите варнинги компилятора?
он, сука, игнорит мои комментарии, а я в ответ его ворнинги буду игнорить

а то чо он

melancholiac
05.03.2017
21:59:39
а работы нет
а у меня скила :(

Nikolay
05.03.2017
21:59:50
а работы нет
работа есть всегда

Страница 2420 из 9768