Example #1
0
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()
Example #2
0
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()
Example #3
0
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()