
Tishka17
21.06.2019
14:24:04
код в самом начале который был

Артём
21.06.2019
14:24:48
Он postgresql.Enum заменил на gino.schema.Enum

Андрей
21.06.2019
14:24:57
сейчас впилю алхимийный
только разницы не будет. Gino враппер над кор алхимией

Артём
21.06.2019
14:25:14
блин, как вы делаете, чтобы строка не переносилась при обёртывании тройным апострофом??

Google

Андрей
21.06.2019
14:25:46

Артём
21.06.2019
14:30:38

User
21.06.2019
14:34:25
парни есть сервис по типу старого
freegeoip.net/json??

Андрей
21.06.2019
14:35:54
Гугли
Я Гуглом нашел

User
21.06.2019
14:36:04
блен
окей

Tishka17
21.06.2019
14:57:58

Unknown
21.06.2019
15:12:30
Всем привет!
Вопрос по asyncio и aiohttp.
Суть:
есть handler на route в приложении, в этом handler'е нужно выполнить операции:
1. обратиться в redis и достать оттуда значение;
2. сделать get запрос на сторонний ресурс и взять оттуда данные;
3. сделать запрос в бд и достать оттуда объект.
Операции на зависят друг от друга, под них описаны корутины, которые Возвращают что-то:
1. из корутины redis'а -> str;
2. из корутины get'а -> dict;
3. из корутины бд -> MyDataType.
Вопрос:
как я понимаю, запуск вида
redis_res = await redis_coro()
get_json = await get_coro()
db_val = await db.get()
запустятся одна после другой.
Есть ли возможность их запустить в один момент времени?

Артём
21.06.2019
15:13:53
не волнуйся, так как это асинхронные корутины, они будут запускаться с задержкой примерно в 0,001 сек. думаю это не так критично.

Tigran
21.06.2019
15:14:02
в документации asyncio даже написано, как

Андрей
21.06.2019
15:15:26
И как?
Никак
Меня отвлекли на работе. А ща уже домой топаю. Отложу до понедельника.

Google

Tishka17
21.06.2019
15:15:33
эх

Unknown
21.06.2019
15:16:41

Артём
21.06.2019
15:17:21
в этом смысл корутин, если я всё правильно понимаю.)

Unknown
21.06.2019
15:20:17
в этом смысл корутин, если я всё правильно понимаю.)
Как я понял, суть в том, что они не блокируют ход выполнения. Те, если ты указал, что тебе нужно запустить пару штук (используя gather) они будут выполняться конкурентно.
Но, если ты одну корутину вызываешь после другой, как у меня в примере, то они будут выполняться последовательно, НО КОНКУРЕНТНО С ДРУГИМИ, УЖЕ ЗАПУЩЕННЫМИ.
Поправьте, если неправильный ход мыслей

Артём
21.06.2019
15:30:13
"Но, если ты одну корутину вызываешь после другой, как у меня в примере, то они будут выполняться последовательно, НО КОНКУРЕНТНО С ДРУГИМИ, УЖЕ ЗАПУЩЕННЫМИ."
- Да.

Unknown
21.06.2019
15:33:12
"Но, если ты одну корутину вызываешь после другой, как у меня в примере, то они будут выполняться последовательно, НО КОНКУРЕНТНО С ДРУГИМИ, УЖЕ ЗАПУЩЕННЫМИ."
- Да.
проверил
async def coro_1():
await asyncio.sleep(1)
print("coro 1")
async def coro_2():
print("coro 2")
async def main():
await coro_1()
await coro_2()
# await asyncio.gather(coro_1(), coro_2())
if __name__ == '__main__':
import asyncio
asyncio.run(main())
да, одна ждет другую, без использования gather.
В связи с этим вопрос, как запустить их одновременно, может есть хак, не через gather?
Как вытащить значения возвращенные корутинами, если они запущены через gather?


Артём
21.06.2019
15:35:04
а вот тут надо кого-то другого спросить.)
Когда у меня возникла такая проблема, я просто функцию, из которой мне нужен был return сделал не корутиной а обычной функцией.
как вариант - сделать обычную функцию, с обычным ретурном, внутри которой запускается корутина, например ?♂️
это то, на что хватило моих скудных познаний в этой области ?

Unknown
21.06.2019
15:36:15
Попросим @Saluev ткнуть нас в документацию и прошаримся )))

Дмитрий
21.06.2019
15:37:01
в теории сработает грязный хак типа
class A:
async def coro1(self):
self.a1 = await outer.coro1()
async def coro2(self):
self.a2 = await outer.coro2()
async def start(self):
asyncio.gather(self.coro1(), self.coro2())

Unknown
21.06.2019
15:38:32

Дмитрий
21.06.2019
15:39:12

Misha
21.06.2019
15:40:03
results - список с возращенными значениями

Vladyslav
21.06.2019
15:44:17
https://docs.python.org/3/library/asyncio-task.html#asyncio.gather
для кого доки пишут?
If all awaitables are completed successfully, the result is an aggregate list of returned values. The order of result values corresponds to the order of awaitables in aws.

Unknown
21.06.2019
15:44:33

Артём
21.06.2019
15:51:15

Google

Unknown
21.06.2019
15:52:38

Артём
21.06.2019
15:53:05
хорошо. А то мне аж прямо за глаз зацепилось "if ALL awaitables completed successfully"

Santa
21.06.2019
16:04:29
Ребят, как обфуцировать исполняемый файл ?

Alexander
21.06.2019
16:15:06
Как Питон захватывает участок памяти при параллельной работе?
Если у меня есть например такое:
m=min(new, m)
, во время всего вызова min() m заблокирована?
Или только в момент чтения он ее блокирует?

Алексей
21.06.2019
16:15:48
Чего?

Ilia
21.06.2019
16:15:49

Aragaer
21.06.2019
16:15:51
предположу, что он никак ничего не блокирует

Alexander
21.06.2019
16:16:07

Aragaer
21.06.2019
16:16:27
но если ты во время выполнения min из другого потока попытаешься этот m ковырнуть, будь готов к неожиданным результатам

Alexander
21.06.2019
16:17:19

Вадим
21.06.2019
16:17:21
У кого-нибудь возникала такая ошибка:from object_detection.protos import string_int_label_map_pb2
ImportError: cannot import name 'string_int_label_map_pb2'

Aragaer
21.06.2019
16:17:27
ага

Jentry
21.06.2019
16:17:28

Admin
ERROR: S client not available

Ilia
21.06.2019
16:17:52

Aragaer
21.06.2019
16:18:20
ну да, это предполагалось
что у кого-то "извне" есть доступ вот именно к этому m

Jentry
21.06.2019
16:18:57
если этот m - список, то доступ вполне себе есть)

Google

Santa
21.06.2019
16:19:19
Кто подскажет про обфускацию исполняемого файла?

Ilya
21.06.2019
16:27:21
привет, вопрос не по питону но все же , кто юзал апиху линкедин ?

Tishka17
21.06.2019
16:30:14
Как же я люблю рефакторинг
Полдня ломаешь голову, потом ещё день пишешь. А в результате код и короче и понятнее

TpouHuK
21.06.2019
16:31:58
я вызываю метод объекта
child.set_container(container)

Tishka17
21.06.2019
16:32:14
И как всегда задаюсь вопросом: ну вот я же сразу хотел так делать, почему не сделал?

TpouHuK
21.06.2019
16:32:21
и в самом методе, в self переходит аргумент container, это как?
как такое возможно? >_<

Tishka17
21.06.2019
16:33:31
А покажи код child

TpouHuK
21.06.2019
16:34:30
хм, кто-то передавал класс вместо объекта

Tishka17
21.06.2019
16:38:02
:)))
Вилка?

Артем
21.06.2019
16:40:53
Вилка?
Какая сейчас вилка для питона?

Tishka17
21.06.2019
16:41:02
Хз
Я не хр, я только свои потребности могу сказать, но я работу не ищу

Andrew
21.06.2019
16:54:37
Привет

Владимир
21.06.2019
16:55:41

Andrew
21.06.2019
16:59:06
Привет. Я сейчас работаю над созданием бота в телеге(магаз), хочу подключить корзину чтоб покупатель мог добавить туда товары, но не знаю вообще как реализовать это. Подскажите хотяб команду или метод чтоб я начал изучать в этом направлении

Tishka17
21.06.2019
17:00:37
Эм. Ну тебе надо корзину где-то хранить

Google

Tishka17
21.06.2019
17:00:43
Берешь любую базу данных