From e94bb778c0e6a1e8119c6e8b5fa0cea565542634 Mon Sep 17 00:00:00 2001 From: Vikash Kothary Date: Fri, 14 Oct 2022 23:31:47 +0100 Subject: [PATCH] refactor: Separate full sync into multiple files --- src/ankisyncd/full_sync/__init__.py | 28 +++++++++++++++++ .../{full_sync.py => full_sync/manager.py} | 31 +------------------ 2 files changed, 29 insertions(+), 30 deletions(-) create mode 100644 src/ankisyncd/full_sync/__init__.py rename src/ankisyncd/{full_sync.py => full_sync/manager.py} (73%) diff --git a/src/ankisyncd/full_sync/__init__.py b/src/ankisyncd/full_sync/__init__.py new file mode 100644 index 0000000..281b225 --- /dev/null +++ b/src/ankisyncd/full_sync/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- + +from ankisyncd import logging +from ankisyncd.full_sync.manager import FullSyncManager + +logger = logging.get_logger(__name__) +logger.setLevel(1) + + +def get_full_sync_manager(config): + if ( + "full_sync_manager" in config and config["full_sync_manager"] + ): # load from config + import importlib + import inspect + + module_name, class_name = config["full_sync_manager"].rsplit(".", 1) + module = importlib.import_module(module_name.strip()) + class_ = getattr(module, class_name.strip()) + + if not FullSyncManager in inspect.getmro(class_): + raise TypeError( + """"full_sync_manager" found in the conf file but it doesn''t + inherit from FullSyncManager""" + ) + return class_(config) + else: + return FullSyncManager() diff --git a/src/ankisyncd/full_sync.py b/src/ankisyncd/full_sync/manager.py similarity index 73% rename from src/ankisyncd/full_sync.py rename to src/ankisyncd/full_sync/manager.py index a458b5b..7add8c1 100644 --- a/src/ankisyncd/full_sync.py +++ b/src/ankisyncd/full_sync/manager.py @@ -1,18 +1,10 @@ -# -*- coding: utf-8 -*- - -import logging -import os -from sqlite3 import dbapi2 as sqlite import shutil -import sys +from sqlite3 import dbapi2 as sqlite from webob.exc import HTTPBadRequest from anki.db import DB from anki.collection import Collection -logger = logging.getLogger("ankisyncd.media") -logger.setLevel(1) - class FullSyncManager: def test_db(self, db: DB): @@ -77,24 +69,3 @@ class FullSyncManager: col.media.connect() return data - - -def get_full_sync_manager(config): - if ( - "full_sync_manager" in config and config["full_sync_manager"] - ): # load from config - import importlib - import inspect - - module_name, class_name = config["full_sync_manager"].rsplit(".", 1) - module = importlib.import_module(module_name.strip()) - class_ = getattr(module, class_name.strip()) - - if not FullSyncManager in inspect.getmro(class_): - raise TypeError( - """"full_sync_manager" found in the conf file but it doesn''t - inherit from FullSyncManager""" - ) - return class_(config) - else: - return FullSyncManager()