def __init__(self, collection): if collection is None: collection = get_collection_path() self.collection_path = next(tempfile._get_candidate_names()) shutil.copy(src=collection, dst=self.collection_path) self.ankidirect = AnkiDirect(anki_database=self.collection_path)
import json from AnkiTools import AnkiDirect if __name__ == '__main__': with open('payload.json') as f: AnkiDirect().add(json.load(f))
from AnkiTools import AnkiDirect from AnkiTools.tools.path import get_collection_path test_parameters = PARAMS['test_ankidirect'] if 'CI' in os.environ or os.getenv('ANKI_APP_OPENED', '0') == '1': default_collection = Path('tests/input/collection.anki2') else: default_collection = None collections = [default_collection] + [Path('tests/input').joinpath(col) for col in json.loads( os.getenv('ANKI_ADDITIONAL_COLLECTIONS', json.dumps(["clean_collection.anki2", "dirty_collection.anki2"])))] ankidirects = dict() for collection in collections: ankidirects[collection] = AnkiDirect(anki_database=collection) @pytest.mark.parametrize('collection', collections) def test_models_dict(collection): ankidirect = ankidirects[collection] k, v = list(ankidirect.models_dict.items())[0] assert k.isdigit() assert isinstance(v, dict) @pytest.mark.parametrize('collection', collections) def test_decks_dict(collection): ankidirect = ankidirects[collection]
def get_decks(): with AnkiDirect() as api: data = api.decks_dict return data
def get_data(): with AnkiDirect() as api: data = api.data return data
def get_models(): with AnkiDirect() as api: data = api.models_dict return data
def get_cards(limit=10): with AnkiDirect() as api: data = list(api.cards)[:limit] return data
def get_notes(limit=10): with AnkiDirect() as api: data = list(api.notes)[:limit] return data