@ru_python

Страница 7062 из 9768
Sfy
16.11.2018
12:01:50
Я 100% как-то не так подхожу к этому.

Tishka17
16.11.2018
12:02:06
Они не должны блокировать друг друга

Sfy
16.11.2018
12:02:07
тебе надо параллеьно read и write делать
Только с двумя потоками? Одно другое перекрывает?

Tishka17
16.11.2018
12:02:15
два потока сойдет

Google
Tishka17
16.11.2018
12:02:28
один пересылает в одну сторону, другой в обратную

или можно на asyncio

хотя хз как оно с пайпами

Sfy
16.11.2018
12:02:54
Я не подумал о потоках и о блокировке.

Спасибо.

Slam! 538
16.11.2018
12:10:39
Тут новички задают глупые вопросы или в бегинерсы пишут?

Alex
16.11.2018
12:11:09
Тут новички задают глупые вопросы или в бегинерсы пишут?
Должны писать в бегиннерсы. Но некоторым срать на правила.

Slam! 538
16.11.2018
12:15:06
Ага, нужно поставить бота, который будет при входе ставить новопришедшему РО, выводить инлайн кнопку с ссылкой на бота, где он должен будет пройти тест, если проходит - доступ к чату есть, нет - ссылка на бегинерсы

Aragaer
16.11.2018
12:15:28
я не хочу в бегинерсов

Slam! 538
16.11.2018
12:15:45
Азы, как минимум, должен знать. Я заметил, что число участников этого чата растет быстрее

Slam! 538
16.11.2018
12:16:03
Потому что он не называется Senior Python

Aragaer
16.11.2018
12:16:33
А можно взять мою yet-another-io-channels-library и там есть готовый Poller, который умеет это все делать

Google
Slam! 538
16.11.2018
12:16:54
Одмен, как идея?

Aragaer
16.11.2018
12:17:48
мне не нравится. Но мое мнение может отличаться от мнения других админов

?? Eugene
16.11.2018
12:18:30
Да глупость, конечно

Tishka17
16.11.2018
12:20:06
кстати, а никто не делал бота, который умеет в чате в сообщения с тикетами жиры описания вставлять?

Тимур
16.11.2018
12:20:10
Мы будем стебаться) а между делом может кому и помочь.

Tishka17
16.11.2018
12:20:24
или просто отвечать с краткой инфой о тикете

?? Eugene
16.11.2018
12:20:31
Почему?
Тут и эйчары сидят, и заказчики. Да и новички пусть сидят, жалко что ли

С такими ограничениями чат помрет

Tishka17
16.11.2018
12:21:33
с такими ограничениями тут будут только текстовые редакторы обсуждать

Тимур
16.11.2018
12:21:35
кстати, а никто не делал бота, который умеет в чате в сообщения с тикетами жиры описания вставлять?
Тут бот не столь важен. Его функции примитивные. Главное к джири подключиться и вме

Slam! 538
16.11.2018
12:21:36
+ best of begginers умрет

Tishka17
16.11.2018
12:21:44
просто лень разбиратсья с авторизацией в жире

а сходу не зашло

Тимур
16.11.2018
12:22:06
просто лень разбиратсья с авторизацией в жире
Тогда вопрос другой должен быть)

Tishka17
16.11.2018
12:22:23
ну мне бот нужен, если нет, сам сделаю

Тимур
16.11.2018
12:22:27
Как подключаться к джири с питона, кто делал?

Google
Tishka17
16.11.2018
12:22:35
вопрос что есть

Тимур
16.11.2018
12:22:43
Мне тоже интересно

Tishka17
16.11.2018
12:22:47
нету готового решения - начинаем спрашивать частичные

Alex
16.11.2018
12:23:24
а что там в жире с авторизацией?

Тимур
16.11.2018
12:23:36
Закроют вопрос с джирой. Я тебе на galaxy watch напишу апплик

Или смарт тв

а что там в жире с авторизацией?
Как интегрироваться к ней с питона

Никита
16.11.2018
12:24:43
Кто нибудь может обьяснить поведение банального куска кода: x = 50044 y = 50044 print(id(x)) print(id(y)) Везде читал что для значений от -5 до 256 существует преалоцированный массив, по этому вызов id() на одно из этих значений выдаст одинаковый адресс. Берем значения вне этого диапазона, как в примере выше Если мы запускаем через косноль питоновскую, выдает разные айдишники, как по матчасти. Если запускать программу через интепритатор, выдает одинаковые айдишники. Как понимать?

Likanov
16.11.2018
12:25:19
Так ребят, как, при переопределении save() в django, проверить создается новый объект или изменяется старый? По pk?

Denis
16.11.2018
12:31:14
Друзья подскажите самые оптимальные решения задачи. ЕСТь бд в нее приходят даныне из нескольких источников у данных есть пара статусов. И эти данные необходимо рассылать через сторонний сервис через пост запросы, в ответ на пост запросы сервисы прислыают ответы которые меняют статус данных. И в зависимости от статуса меняет сами пост запросы, т.е. Приходит штука в одном состоянии уходит в рассылку, там какой то ответ, она тут же меняется и снова делает рассылку измененную. До этого у меня был реализован бесконечный цикл который проверял БД. Но это плохйо метод. База сидит на сервер линукса. Частота с которйо проверяется база критичный показатель. ЧТо можете посоветовать? Через некоторое время еще сервис подключу который будет взаимодействовать с данными.

nnm
16.11.2018
12:36:16
частичная репликация?

и пара ивентов?

LighteR
16.11.2018
12:39:46
Тут сегодня набрасывали, что в php type hinting сделан лучше чем в питоне. Решил глянуть как там вообще сделано. В итоге все что можно указать в тайпхинте это вот: http://php.net/manual/ru/functions.arguments.php#functions.arguments.type-declaration.types Generic'ов нет вообще. Соответственно указываешь, например, array $list, но указать какого типа данные в этом array никак нельзя. Указываешь callable $callback, а сигнатуру этого callback'а указать нельзя. Плюс там есть забавные оговорки Псевдонимы для вышеперечисленных скалярных типов не поддерживаются. Вместо этого они рассматриваются как имена классов или интерфейсов. К примеру, используя boolean как параметр или возвращаемое значение, потребует, чтобы эти аргумент или возвращаемое значение были instanceof класса или интерфейса boolean, а не типа bool Похоже, что в интерпретаторе это было сделано какими-то костылями и хардкодом.

return type'а похоже нет

BlackAndOrange
16.11.2018
12:42:45
Помогите тупому aiohttp требует, чтобы 1. Сессия создавалась в корутине 2. Создавалась одна сессия на много реквестов Мне нужен класс, асинхронный метод которого отправляет запрос. Вопрос: где мне создавать сессию? В конструкторе нельзя — это не корутина, да и непонятно где её тогда закрывать. Непосредственно в методе нельзя — придётся создавать по сессии на каждый реквест.

LighteR
16.11.2018
12:43:32
Ну, в целом, я не очень удивлен, что в php убого сделали. Удивительны люди серьезно заявляющие, что тапхинты в питоне - говно, посмотрите как сделано в php, там збс

BlackAndOrange
16.11.2018
12:43:43
В документации везде async with, но не могу же я весь класс в async with засунуть

Alex
16.11.2018
12:45:07
BlackAndOrange
16.11.2018
12:45:31
А шо за класс, сессия из клиентской части aiohttp?
Класс, которому внешний код будет кормить данные. Да, клиентской.

Alex
16.11.2018
12:46:10
Ну передавай просто экземпляру сессию в конструкторе

Google
BlackAndOrange
16.11.2018
12:46:34
Не могу, интерфейс класса фиксирован.

Потому что через классы с такими же интерфейсами отправляются смски и ещё куча всего делается

Alex
16.11.2018
12:47:41
А кваргсов у конструктора нет?

Cykooz
16.11.2018
12:49:27
Потому что через классы с такими же интерфейсами отправляются смски и ещё куча всего делается
А у тебя есть понимание для чего тебе нужна именно одна aiohttp сессия на несколько запросов, а не по одной на каждый? Какие плюсы ты ожидаешь от этого получить?

BlackAndOrange
16.11.2018
12:49:49
Могут быть, но они приходят из текстового конфига, заставить внешний код создавать ажно целую сессию нельзя. Условно, там происходит вот что: for supplier, supplier_cfg in config['suppliers'].items(): self.suppliers.append(supplier(**supplier_cfg))



^ документация aiohttp

Cykooz
16.11.2018
12:50:58
Перформанс
Ну мало ли что в документации - у тебя именно за счёт чего будет "перфоманс"?

Alex
16.11.2018
12:51:17
Можешь в конструкторе вызвать метод создания в loop.run_until_ complete

BlackAndOrange
16.11.2018
12:51:24
Ну мало ли что в документации - у тебя именно за счёт чего будет "перфоманс"?
За счёт реюзейджа коннекшна. Серьёзная часть запросов будет к одному серверу.

Cykooz
16.11.2018
12:51:40
Ок, это весская причина

BlackAndOrange
16.11.2018
12:53:28
Т. е. это не я не вижу способа создать сессию для класса, это его принципиально нет? Окей, тогда другой вопрос. Зачем закрывать aiohttp-сессию? Что может произойти плохого, если этого не сделать? Сфейлится последний реквест?

Cykooz
16.11.2018
12:53:44
Тогда, если нельзя менять внешний код, который вызывает методы класса, то - создавать сессию в момент первого вызова, сохранять её в какое-то поле объекта и далее использовать во всех остальных вызовах (это вот та самая мемоизация про которую выше писали) С закрыванием сессии конечно "ах", это потребует изменение вызывающего кода

Alex
16.11.2018
12:55:16
Странно, что у твоего интерфейса не предусмотрен метод, который убирается за собой после работы

Google
BlackAndOrange
16.11.2018
12:56:37
И говорит, что это very dangerous idea

Alex
16.11.2018
12:57:13
Вызови корутину в конструкторе через run_until_complete

BlackAndOrange
16.11.2018
12:57:48
Вызови корутину в конструкторе через run_until_complete
Звучит логично Неясно ещё как эту сессию закрывать И что вообще такое «закрытие aiohttp-сессии»

Alex
16.11.2018
12:58:16
Ну у сессии надо вызвать метод закрытия

?

Cykooz
16.11.2018
12:58:59
Если же можно что то изменить "снаружи", то правильнее сделать через асинхронный контекстный менеджер, что бы вот так оно работало: async with Foo() as foo: await foo.send_request() await foo.send_request() await foo.send_request() ...

Cykooz
16.11.2018
12:59:38
В этом случае в Foo.__aenter__ создаёшь сессию, а в Foo.__aexit__ закрываешь её

LighteR
16.11.2018
13:01:50
aiohttp ругается
Да, посмотрел в код ClientSession. Так не получится

Если loop туда явно передать, то будет работать

import asyncio import aiohttp session = aiohttp.ClientSession(loop=asyncio.get_event_loop()) class Foo: async def get(self): async with session as s: async with s.get('http://httpbin.org/get') as resp: print(resp.status) asyncio.get_event_loop().run_until_complete(Foo().get())

BlackAndOrange
16.11.2018
13:07:11
LighteR
16.11.2018
13:08:09
Забавно Спасибо, это вариант Тогда ясно нафига ему нужно стартовать внутри корутины
Если не передавать луп и вызывать вне корутины, то он рейзит ошибку, потому что нет гарантии что в дальнейшем он будет запущен на том же самом лупе

BlackAndOrange
16.11.2018
13:08:34
Ну да, ясно Он не рейзит ошибку у меня, просто даёт warning и фоллбэкается к get_event_loop()

LighteR
16.11.2018
13:09:22
но в любом случае он как бы предостерегает тебя

oj_gen
16.11.2018
13:13:19
А что из стандартной библиотеки представляет реальный Список (структуру данных)? Нужно что-то, что умеет удалять из середины за O(1).

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