--- libanki/anki/db.py +++ libanki/anki/db.py @@ -65,6 +65,27 @@ self._lockDB() self._seen = True + def save(self, obj): + # compat + if sqlalchemy.__version__.startswith("0.4."): + self._session.save(obj) + else: + self._session.add(obj) + + def clear(self): + # compat + if sqlalchemy.__version__.startswith("0.4."): + self._session.clear() + else: + self._session.expunge_all() + + def update(self, obj): + # compat + if sqlalchemy.__version__.startswith("0.4."): + self._session.update(obj) + else: + self._session.add(obj) + def execute(self, *a, **ka): x = self._session.execute(*a, **ka) runHook("dbFinished") --- libanki/anki/deck.py +++ libanki/anki/deck.py @@ -2841,7 +2841,10 @@ def _init(s): "Add a new deck to the database. Return saved deck." deck = Deck() - s.save(deck) + if sqlalchemy.__version__.startswith("0.4."): + s.save(deck) + else: + s.add(deck) s.flush() return deck _init = staticmethod(_init)