Size: a a a

2020 August 20

AT

Andrey Terekhov in Moscow Python
Anatol alexeev
благодарю , разобрался

не тот запрос отправлял в .where(  

async with conn.begin():
   await conn.execute(sa.update(accounts).values({'amount': donor_amount}).where(
       # donor_query <-- ошибка   # было
       accounts.c.id == donor_id  # стало
   ))
   await conn.execute(sa.update(accounts).values({'amount': recipient_amount}).where(
       # recipient_query <-- ошибка   # было
       accounts.c.id == recipient_id  # стало
   ))
👍🏻
источник

VM

Vladimir Manatskov in Moscow Python
Anatol alexeev
UPD. проблема найдена

кто шарит в aiopg и sqlalchemy, help!

не получается произвести транзакцию
не обновляется база данных

where = accounts.c.id == donor_id
donor_query = accounts.select().where(where)
donor = await (await conn.execute(donor_query)).fetchone()    

where = accounts.c.id == recipient_id
recipient_query = accounts.select().where(where)
recipient = await (await conn.execute(recipient_query)).fetchone()

donor_amount = donor.amount - amount
recipient_amount = recipient.amount + amount

async with conn.begin():
   await conn.execute(sa.update(accounts).values({'amount': donor_amount}).where(
       # donor_query <-- ошибка   # было
       accounts.c.id == donor_id  # стало
   ))
   await conn.execute(sa.update(accounts).values({'amount': recipient_amount}).where(
       # recipient_query <-- ошибка   # было
       accounts.c.id == recipient_id  # стало
   ))

что не так?
UPD. проблема найдена
в целом, можно не проводить вычисления на питоне, а обновить значения сразу в базе парой апдейтов, типа donor.amount = Account.amount - amount; recipient.amount = Account.amount + amount; только нужно обязательно проверить, что donor.amount >= amount .
Ну и всё строго в рамках одной транзакции
источник

Aa

Anatol alexeev in Moscow Python
Vladimir Manatskov
в целом, можно не проводить вычисления на питоне, а обновить значения сразу в базе парой апдейтов, типа donor.amount = Account.amount - amount; recipient.amount = Account.amount + amount; только нужно обязательно проверить, что donor.amount >= amount .
Ну и всё строго в рамках одной транзакции
плохо владею синтаксисом aiopg.sa
поэтому пока получается только несколькими запросами
источник

VM

Vladimir Manatskov in Moscow Python
да, иногда кажется проще тупо sql написать
источник

ST

Storm Trooper in Moscow Python
Это топ 😄👍🏼
источник

N

Nikolay in Moscow Python
источник

N

Nikolay in Moscow Python
источник

VM

Vladimir Manatskov in Moscow Python
а можно просто в папке tests/* поискать файлы по маске test_*.py
источник
2020 August 21

Aa

Anatol alexeev in Moscow Python
существует ли аналог functools.partial для асинхронной ф-и ?
источник

НК

Никита Конин (IPT)... in Moscow Python
Anatol alexeev
существует ли аналог functools.partial для асинхронной ф-и ?
functools.partial и для асинхронных функций работает
источник

Aa

Anatol alexeev in Moscow Python
Никита Конин (IPT)
functools.partial и для асинхронных функций работает
да, точно 😬
спс
источник

SZ

Shagit Ziganshin in Moscow Python
источник

p

pragus in Moscow Python
Anatol alexeev
UPD. проблема найдена

кто шарит в aiopg и sqlalchemy, help!

не получается произвести транзакцию
не обновляется база данных

where = accounts.c.id == donor_id
donor_query = accounts.select().where(where)
donor = await (await conn.execute(donor_query)).fetchone()    

where = accounts.c.id == recipient_id
recipient_query = accounts.select().where(where)
recipient = await (await conn.execute(recipient_query)).fetchone()

donor_amount = donor.amount - amount
recipient_amount = recipient.amount + amount

async with conn.begin():
   await conn.execute(sa.update(accounts).values({'amount': donor_amount}).where(
       # donor_query <-- ошибка   # было
       accounts.c.id == donor_id  # стало
   ))
   await conn.execute(sa.update(accounts).values({'amount': recipient_amount}).where(
       # recipient_query <-- ошибка   # было
       accounts.c.id == recipient_id  # стало
   ))

что не так?
UPD. проблема найдена
Особенно мило смотрится await await
источник

MD

Mike Drepin in Moscow Python
MFS2020. Реализм даже в чатике с вышкой)
источник

SS

Sergey Sukhov in Moscow Python
Mike Drepin
MFS2020. Реализм даже в чатике с вышкой)
я все думал, кто же играет в него
источник

AZ

Alexander Zelenyak in Moscow Python
Я вырос на X-Plane. MFS в те времена был попсой со средней физикой. Сейчас не знаю как, но выглядит красиво...
источник

SS

Sergey Sukhov in Moscow Python
Alexander Zelenyak
Я вырос на X-Plane. MFS в те времена был попсой со средней физикой. Сейчас не знаю как, но выглядит красиво...
ил-2 штурмовик
источник

AZ

Alexander Zelenyak in Moscow Python
Sergey Sukhov
ил-2 штурмовик
Да, там неплохая лётная модель была. Но очень ограниченная.
источник

AZ

Alexander Zelenyak in Moscow Python
F22 Raptor не посадить там было в Гонолулу...
источник

AS

Alexander Shorin in Moscow Python
@sibuken
https://www.meetup.com/pybreakfast/events/272716497/
Ну и в целом, питонячий завтрак уже вот-вот ^^^ состоится и можем пообщаться за разное. Присоединяйтесь!
источник