Size: a a a

2020 November 01

RB

Roman Bolkhovitin in rannts
Artem Malyshev
Подумал ещё раз. Мне кажется тут вообще не нужны generic'и. Напиши typing_extensions.Protocol для аргументов дескриптора и всё должно заработать.
Я не поняль как 😕
источник
2020 November 02

RB

Roman Bolkhovitin in rannts
О, похоже треды теперь во всех чатах
источник

AG

Alexander Gorokhov in rannts
Roman Bolkhovitin
О, похоже треды теперь во всех чатах
Чек
источник

AG

Alexander Gorokhov in rannts
Чёт нифига
источник

RB

Roman Bolkhovitin in rannts
источник

RB

Roman Bolkhovitin in rannts
Еще и клиент надо обновить
источник

RB

Roman Bolkhovitin in rannts
Roman Bolkhovitin
Еще и клиент надо обновить
А может просто перезагрузить.
источник

SA

Sergey Arkhipov in rannts
Вы о чем?
источник

RB

Roman Bolkhovitin in rannts
О фиче show reply
источник

KK

Kirill (Cykooz) Kuzm... in rannts
И вот про эту лычку
источник

EK

Elena K in rannts
День добрый, коллеги
а кто с алхимией дружит, подскажите:
на каждый session.begin_nested обязателен rollback или commit? или я я могу в цикле завести 5 savepoint'ов и в конце закрыть их одним коммитом?
источник

EK

Elena K in rannts
ну или есть какой-то метод их грохнуть другим путем?
источник

RB

Roman Bolkhovitin in rannts
контекстные менджеры?
источник

RB

Roman Bolkhovitin in rannts
For each Session.begin_nested() call, a corresponding Session.rollback() or Session.commit() must be issued. (But note that if the return value is used as a context manager, i.e. in a with-statement, then this rollback/commit is issued by the context manager upon exiting the context, and so should not be added explicitly.)
источник

EK

Elena K in rannts
на сколько я видела код, он там просто или rollback делает или commit в конце
источник

EK

Elena K in rannts
это я и сама так могу))
источник

EK

Elena K in rannts
а если по другому:
в цикле апдейтим записи в БД,  одна из записей в серединке выкидывает IntegrityError, если ли "умный" способ скипнуть "парщивую овцу", но обновить все остальное?  или тут только поштучно коммититься?
источник

RB

Roman Bolkhovitin in rannts
Session.begin_nested(), in the same manner as the less often used Session.begin() method, returns a SessionTransaction object which works as a context manager. It can be succinctly used around individual record inserts in order to catch things like unique constraint exceptions:

for record in records:
   try:
       with session.begin_nested():
           session.merge(record)
   except:
       print("Skipped record %s" % record)
session.commit()


а разве это не оно прямо в доке готовое?
источник

EK

Elena K in rannts
оно-то оно, только как я поняла, контекст-менеджер будет в exit коммитить на каждую иттерацию... ну или я "блондиню" и не те сорцы смотрю))
источник

RB

Roman Bolkhovitin in rannts
ну типа того, на каждую итерацию будет либо коммитить, либо откатывать и "переподнимать" исключение.

если мы про одни и те же сорцы

    def __exit__(self, type_, value, traceback):
       self._assert_active(deactive_ok=True, prepared_ok=True)
       if self.session._transaction is None:
           return
       if type_ is None:
           try:
               self.commit()
           except:
               with util.safe_reraise():
                   self.rollback()
       else:
           self.rollback()
источник