def init_db(engine): Session.configure(bind=engine) Base.metadata.create_all(engine) session = Session() # Insert library types for lib_type, lib_type_id in db_constants.LIB_TYPES_TO_ID.items(): db.insert(session, models.LibraryType, name=lib_type, id=lib_type_id) # Insert usage example list types for ue_list_type, ue_list_type_id in db_constants.UE_LIST_TYPES_TO_ID.items(): db.insert(session, models.UEListType, name=ue_list_type, id=ue_list_type_id) # Insert morpheme types for mtype, mtype_id in db_constants.MORPHEME_TYPES_TO_ID.items(): db.insert(session, models.MorphemeType, name=mtype, id=mtype_id) # Insert morpheme statuses for mstat, mstat_id in db_constants.MORPHEME_STATUSES_TO_ID.items(): db.insert(session, models.MorphemeStatus, name=mstat, id=mstat_id) # Insert known examples list db.insert(session, models.UEList, name=db_constants.KNOWN_EXAMPLES_NAME, id=db_constants.KNOWN_EXAMPLES_ID, type_id=db_constants.UE_LIST_TYPES_TO_ID['SYSTEM']) session.commit() session.close()
def main(): from sqlalchemy import create_engine from noj import init_db engine = create_engine('sqlite:///../../test.sqlite', echo=False) init_db(engine) schema_path = '../../schemas/dictionary_schema_1.0.0a.xsd' # importable_path = '../converters/daijirin2/daijirin2_importable.xml' #importable_path = '../converters/jmdict/jmdict-importable.xml' importable_path = sys.argv[1] # importable_path = '../../schemas/example_dictionary_1.0.0a.xml' import progressbar as pb widgets = ['Importing: ', pb.Percentage(), ' ', pb.Bar(), ' ', pb.Timer(), ' '] session = Session() importer = DictionaryWalker(importable_path) parser = JapaneseParser() visitor = DictionaryImporterVisitor(session, parser) importer.validate_schema(schema_path) pbar = pb.ProgressBar(widgets=widgets, maxval=len(importer)).start() for i in importer.import_generator(visitor): pbar.update(i) session.commit() session.close() pbar.finish()
def main(): from sqlalchemy import create_engine from noj import init_db from noj.model.profiles import ProfileManager from noj.tools.check_platform import isWin, isMac pm = ProfileManager() #engine = create_engine('sqlite:///../../test.sqlite', echo=False) engine = create_engine(pm.database_connect_string(), echo=False) init_db(engine) if isWin: collection_path = 'C:\Users\Mathew\Documents\Anki\User 1\collection.anki2' else: collection_path = '/Users/mathew/Documents/Anki/User 1/collection.anki2' import progressbar as pb widgets = ['Importing: ', pb.Percentage(), ' ', pb.Bar(), ' ', pb.Timer(), ' '] session = Session() # importer = AnkiWalker(collection_path, 'Japanese', # expression_field='Expression', meaning_field='Meaning') importer = AnkiWalker(collection_path, 'Core 2000 Japanese Vocabulary', expression_field='Sentence - Kanji', meaning_field='Sentence - English', sound_field='Sentence - Audio') parser = JapaneseParser() visitor = create_anki_sync_visitor(session, parser, pm) print importer._get_media_folder_path() pbar = pb.ProgressBar(widgets=widgets, maxval=len(importer)).start() for i in importer.import_generator(visitor): pbar.update(i) session.commit() session.close() pbar.finish()