@ru_python

Страница 2691 из 9768
Даниил
16.04.2017
16:45:37
я могу в своего бота портировать этот калькулятор (с твоей лицензией в заголовке файла)

Denis
16.04.2017
16:47:14
Там слишком специфический калькулятор

Даниил
16.04.2017
16:47:26
Ну я знаю)

Denis
16.04.2017
16:47:33
Большая часть кода - минимизация числа ложных срабатываний

Google
Даниил
16.04.2017
16:48:52
В компилируемых языках либо парсер писать, либо библиотеки использовать

Я надеюсь для своего нового бота библиотеки найти все-таки

Denis
16.04.2017
16:49:19
Если у тебя только арифметика и простые функции, руками проще

Даниил
16.04.2017
16:49:21
Ну или можно lua например использовать

Denis
16.04.2017
16:49:55
На тему разбора выражений у меня соседний репозиторий

Даниил
16.04.2017
16:52:28
На тему разбора выражений у меня соседний репозиторий
Мб мне враппер для этой твоей библиотеки написать?) Ну не для питона конечно

Denis
16.04.2017
16:53:36
calc.py или другой?

Даниил
16.04.2017
16:53:55
Который другой репозиторий

Скрудж
16.04.2017
16:57:05
calc.py или другой?
христос воскрес йопт, забыл про меня?((

Denis
16.04.2017
16:57:14
Ты вообще кто

Скрудж
16.04.2017
16:57:37
Denis
16.04.2017
16:57:38
Который другой репозиторий
Если ты сможешь оттуда вытащить парсер как библиотеку, можешь написать

Google
Denis
16.04.2017
16:58:21
https://github.com/kalinochkind/matrix-calculator/blob/master/src/parser.cpp Удачи

И в main.cpp тоже кусок

Даниил
16.04.2017
16:58:39
А, понял)

Лучше буду всякие готовые врапперы юзать

Игорь
16.04.2017
17:48:08
как это?
покупаешь коробочную версию антивиря, потом его обходишь

Игорь
16.04.2017
17:49:35
а что еще подробней. кладешь на пол, и обходишь его по кругу

Проксимов
16.04.2017
18:03:19
ну вы шутники епть
Лол, до тебя долго прекол доходил

Маришка
16.04.2017
18:11:49
Такс товарищи, мне нужно в асихронном лупе посмотреть работает ли корутина

Я что то накопала и докапалась до asyncio.Task().all_tasks()

Лишь

А дальше я не знаю как сравнить запущенную корутину с нужной корутиной

Nikolay
16.04.2017
18:15:02
по-хорошему надо не так

а можно сделать семафор на одну корутину

и запускать через него, это гарантирует, что будет один инстанс

Маришка
16.04.2017
18:15:34
Nikolay
16.04.2017
18:15:45
https://docs.python.org/3/library/asyncio-sync.html

ну, потому что есть примитивы синхронизации стандартные :)

Google
Маришка
16.04.2017
18:18:06
Такс, тогда можно поподробнее про семафор который в asyncio

?

Nikolay
16.04.2017
18:20:01
ну я ж скинул ссылку на доку

там расписано

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

хотя погоди, может, я вообще не в ту степь

тупой вопрос - при добавлении одной корутины в луп два раза она вообще добавляется второй раз?

никогда не пробовал :)

Маришка
16.04.2017
18:24:16
Бесит

CthUlhUzzz
16.04.2017
18:26:22
Нужно только один раз запустить?

Маришка
16.04.2017
18:27:02
ну, потому что есть примитивы синхронизации стандартные :)
До того как корутина не отработает, не создавать ее таск в лупе

Nikolay
16.04.2017
18:27:16
слушай, ну оно работает и так, как ты описала

In [3]: async def foo(): ...: await asyncio.sleep(2) ...: return ...: In [4]: loop = asyncio.get_event_loop() In [5]: asyncio.ensure_future(foo()) Out[5]: <Task pending coro=<foo() running at <ipython-input-3-f033a73cac3d>:1>> In [6]: asyncio.Task.all_tasks() Out[6]: {<Task pending coro=<foo() running at <ipython-input-3-f033a73cac3d>:1>>} In [7]: task = asyncio.ensure_future(foo()) In [8]: asyncio.Task.all_tasks() Out[8]: {<Task pending coro=<foo() running at <ipython-input-3-f033a73cac3d>:1>>, <Task pending coro=<foo() running at <ipython-input-3-f033a73cac3d>:1>>} In [9]: task in asyncio.Task.all_tasks() Out[9]: True

можно просто проверить, есть ли объеки в лупе

Маришка
16.04.2017
18:27:55
ensure_future что делает еще раз можно? :D

Google
Nikolay
16.04.2017
18:28:49
ensure_future что делает еще раз можно? :D
добавляет корутину в луп)

Маришка
16.04.2017
18:29:24
Ааа

Не, все равно пока что не очень

CthUlhUzzz
16.04.2017
18:30:08
Я для отслеживания тасков делаю отдельный список в котором указатели на эти таски. И они чюсами себ оттуда удаляют по завершении

Маришка
16.04.2017
18:30:16
Понятно

Nikolay
16.04.2017
18:30:25
Не, все равно пока что не очень
что в моем коде непонятно?

Маришка
16.04.2017
18:30:40
что в моем коде непонятно?
Как это привязать к моей идее

Коду

Точнее

Admin
ERROR: S client not available

Маришка
16.04.2017
18:33:16
Т.е. я провожу проверку есть ли корутина в лупе, но опять же как это сделать?)

Еще до того как я её запустила

Nikolay
16.04.2017
18:33:40
давай из задачи исходить

зачем тебе эта проверка вообще?

Nikolay
16.04.2017
18:33:57
чтобы проверить, надо ли делать отсрочку на 15 секунд? :)

Маришка
16.04.2017
18:34:16
зачем тебе эта проверка вообще?
Что бы не запустить корутину второй раз при входе второго пользователя

Nikolay
16.04.2017
18:35:18
Что бы не запустить корутину второй раз при входе второго пользователя
ты можешь функцию проверки захода следующего пользователя запускать, как коллбэк "привета" предыдущему?

Google
Nikolay
16.04.2017
18:36:07
как устроен коллбэк на заход пользователя?

это корутина же?

ага, глянул на код, понял

Маришка
16.04.2017
18:39:18
Я в поезде дописала

Дойду до общаги и запушу изменения, тогда точно будет понятно где я хочу это проверять

В корутине handle мы проверяем если человек зашел, если да то составляем имя или юзернейм и потом создаем таск корутины welcome_user

В корутине welcome user я естественно жду если еще юзвери добавятся

А и еще в handle перед созданием таски я пихаю юзернейм в асинхронную очередь

Которую объявила глобальной

Nikolay
16.04.2017
18:43:14
ну, как минимум ты можешь делать как-то так: async def welcome_user(username, msg_id, chat_id, wait_for=0): await asyncio.sleep(wait_for) .... async def handle(msg): welcome_tasks = [] wait_for_welcome = 0 if foo: if welcome_tasks: wait_for = 15 welcome_tasks.append(ensure_future(welcome_user(*args, wait_for=wait_for)))

даже будет лучше, если welcome_tasks заменить на очередь, например

просто будешь проверять, если очередь пустая - пихаем таску в очередь, а если не пустая - то пихаем с таймаутом

Маришка
16.04.2017
18:47:13
Сложна, дай я запушу изменения и ты еще раз посмотришь

CthUlhUzzz
16.04.2017
19:08:41
Кто регистрацию делал, как проверяли email в базе?

Там по стандарту они могут быть очень разные

Вплоть до "Vasya Pupkin"@ya.ru

Проксимов
16.04.2017
19:10:03
Отправляй письмо

CthUlhUzzz
16.04.2017
19:10:36
Письмо-то понятно

Александр
16.04.2017
19:11:18
а зачем еще как то валидировать?

Проксимов
16.04.2017
19:11:23

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