[Anki 23.10 Beta 1] Backup failed and modified_in_python

created an account, subscribed to Brand Names
:arrows_clockwise: Sync with AnkiHub or autosync on startup/quit
Then I click Install or Skip, with FSRS4Anki Helper enabled or disabled.
Each of these errors prevents closing Anki.

Error message (Install) AttributeError: 'AnkiQt' object has no attribute 'backup'

Anki 23.10 (1f6938d7) Python 3.9.15 Qt 6.5.2 PyQt 6.5.2
Platform: Windows-10-10.0.19045
Flags: frz=True ao=True sv=?
Add-ons, last update check: 2023-09-24 13:40:29

Traceback (most recent call last):

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 103, in _download_and_install_decks_inner
    result.append(_download_and_install_single_deck(ah_did))

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 129, in _download_and_install_single_deck
    result = _install_deck(

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 152, in _install_deck
    create_backup()

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\main\utils.py", line 407, in create_backup
    raise exc

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\main\utils.py", line 401, in create_backup
    aqt.mw.backup()  # type: ignore

AttributeError: 'AnkiQt' object has no attribute 'backup'


The above exception was the direct cause of the following exception:


Traceback (most recent call last):

  File "aqt.taskman", line 138, in _on_closures_pending

  File "aqt.taskman", line 82, in <lambda>

  File "aqt.taskman", line 102, in wrapped_done

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 40, in on_install_done
    on_done(future_with_exception(e))

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 56, in <lambda>
    on_done=lambda future: on_new_deck_subscriptions_done(

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 24, in on_new_deck_subscriptions_done
    on_done(future_with_exception(future.exception()))

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\menu.py", line 433, in on_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 38, in on_install_done
    import_results: List[AnkiHubImportResult] = future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 86, in <lambda>
    task=lambda: _download_and_install_decks_inner(ankihub_dids),

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\deck_installation.py", line 115, in _download_and_install_decks_inner
    raise exceptions[0]

1322529746.gui.exceptions.DeckDownloadAndInstallError: Error while downloading and installing deck c517d221-5cf4-42fa-b9d3-0c261db54dfb: 'AnkiQt' object has no attribute 'backup'

Error message (Skip with FSRS4Anki Helper enabled) AttributeError: 'NoneType' object has no attribute 'list'

Anki 23.10 (1f6938d7) Python 3.9.15 Qt 6.5.2 PyQt 6.5.2
Platform: Windows-10-10.0.19045
Flags: frz=True ao=True sv=?
Add-ons, last update check: 2023-09-24 13:40:29

Traceback (most recent call last):

  File "aqt.taskman", line 138, in _on_closures_pending

  File "aqt.taskman", line 82, in <lambda>

  File "aqt.taskman", line 102, in wrapped_done

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 39, in on_sync_done
    on_done(future_with_exception(future.exception()))

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\auto_sync.py", line 72, in sync_with_ankiweb
    _old(*args, **kwargs)

  File "decorator", line 232, in fun

  File "anki.hooks", line 89, in decorator_wrapper

  File "anki.hooks", line 86, in repl

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\threading_utils.py", line 26, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\auto_sync.py", line 60, in _rate_limited
    _old(*args, **kwargs)

  File "decorator", line 232, in fun

  File "anki.hooks", line 89, in decorator_wrapper

  File "anki.hooks", line 84, in repl

  File "aqt.main", line 1031, in _sync_collection_and_media

  File "_aqt.hooks", line 5034, in __call__

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\759844606\sync_hook.py", line 56, in <lambda>
    sync_will_start.append(lambda: create_comparelog(local_rids))

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\759844606\sync_hook.py", line 8, in create_comparelog
    local_rids.extend([id for id in mw.col.db.list("SELECT id FROM revlog")])

AttributeError: 'NoneType' object has no attribute 'list'

Error message (Sync with FSRS4Anki Helper disabled) AttributeError: 'NoneType' object has no attribute 'modified_in_python'

Anki 23.10 (1f6938d7) Python 3.9.15 Qt 6.5.2 PyQt 6.5.2
Platform: Windows-10-10.0.19045
Flags: frz=True ao=True sv=?
Add-ons, last update check: 2023-09-23 14:17:33

Traceback (most recent call last):

  File "aqt.taskman", line 138, in _on_closures_pending

  File "aqt.taskman", line 82, in <lambda>

  File "aqt.taskman", line 102, in wrapped_done

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 39, in on_sync_done
    on_done(future_with_exception(future.exception()))

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\auto_sync.py", line 72, in sync_with_ankiweb
    _old(*args, **kwargs)

  File "decorator", line 232, in fun

  File "anki.hooks", line 89, in decorator_wrapper

  File "anki.hooks", line 86, in repl

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\threading_utils.py", line 26, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\Khonkhortisan\AppData\Roaming\Anki2\addons21\1322529746\gui\auto_sync.py", line 60, in _rate_limited
    _old(*args, **kwargs)

  File "decorator", line 232, in fun

  File "anki.hooks", line 89, in decorator_wrapper

  File "anki.hooks", line 84, in repl

  File "aqt.main", line 1032, in _sync_collection_and_media

  File "aqt.sync", line 122, in sync_collection

  File "anki.collection", line 268, in save

AttributeError: 'NoneType' object has no attribute 'modified_in_python'

Sentry link (for developers)

Hmm, the part of the add-on code that can trigger this error shouldn’t be executed on Anki >= 2.1.50. Did you perhaps apply a fix for [Anki 23.10 Beta 1] ANKI_MINOR = int(ANKI_VERSION.split(“.”)[-1]) manually?

OK, I see you changed the version line to this:

 ANKI_MINOR = int(ANKI_VERSION.split(".")[-1])

But this is incorrect. anki.utils.point_version() should be used instead to get the minor patch version (ANKI_MINOR is a misnomer):

diff --git a/ankihub/settings.py b/ankihub/settings.py
index 836c364..c729b6a 100644
--- a/ankihub/settings.py
+++ b/ankihub/settings.py
@@ -21,6 +21,7 @@ from typing import Any, Callable, Dict, List, Optional
 import aqt
 from anki.buildinfo import version as ANKI_VERSION
 from anki.decks import DeckId
+from anki.utils import point_version
 from aqt.utils import askUser, showInfo
 from mashumaro import field_options
 from mashumaro.mixins.json import DataClassJSONMixin
@@ -544,7 +545,7 @@ USER_EMAIL_SLUG = "user_email"
 
 USER_SUPPORT_EMAIL_SLUG = "support@ankihub.net"
 
-ANKI_MINOR = int(ANKI_VERSION.split(".")[2])
+ANKI_MINOR = point_version()
 
 USER_FILES_PATH = Path(__file__).parent / "user_files"

point_version() is 231000 and ANKI_VERSION is 23.10, 10<66, 231000>66, I thought I tested it in the Control+Shift+; python console in a way that worked, idk what number I was thinking it was (maybe from trying to edit multiple addons at once). point_version() works perfectly and the deck imports and syncs.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.