From 45ba2cd38a9fd7be7e7a0d1a75b65e00674f6cb0 Mon Sep 17 00:00:00 2001 From: Emily Frost Date: Mon, 25 May 2020 11:04:05 -0500 Subject: [PATCH] Restructured module in preparation for setuptools packaging. --- lark => lark-ui | 23 +---------------------- dat.py => lark/dat.py | 0 metadata.py => lark/metadata.py | 3 +++ romdb.py => lark/romdb.py | 0 readme.md | 3 +++ 5 files changed, 7 insertions(+), 22 deletions(-) rename lark => lark-ui (87%) rename dat.py => lark/dat.py (100%) rename metadata.py => lark/metadata.py (98%) rename romdb.py => lark/romdb.py (100%) diff --git a/lark b/lark-ui similarity index 87% rename from lark rename to lark-ui index 4b05ce7..985efac 100755 --- a/lark +++ b/lark-ui @@ -8,11 +8,10 @@ Verify and sort game ROM images. import hashlib import sys import os -import uuid import xdg.BaseDirectory #import dat -import metadata +from lark import metadata HASH_CHUNK_SIZE = 10485760 # 10mb SQLITE_FILENAME = 'metadata.db' @@ -30,28 +29,8 @@ def get_sha1sum(filename): return sha1sum.hexdigest() - -''' -smd_dat = dat(SMD_DAT_PATH) -# TODO: Default to '.' -# TODO: Use a proper arg parser. -search_dir = sys.argv[1] -for filename in os.listdir(search_dir): - # TODO: Ignore or descend into directories. - # TODO: Compare hashes - file_path = os.path.abspath(os.path.join(search_dir, filename)) - file_sha1 = get_sha1sum(file_path) - search_result = smd_dat.search_by_sha1(file_sha1) - if search_result: - rom_data = search_result[0] - print('File %s matches database entry for %s.' % (filename, rom_data.filename)) - else: - print('File %s is not in database.' % filename) -''' # Test code! :D # TODO: Write test code that doesn't depend on external resources. -SMD_DAT_PATH = '/home/lumia/Downloads/Sega - Mega Drive - Genesis (20200303-035539).dat' -TEST_HASH = 'cfbf98c36c776677290a872547ac47c53d2761d6' def _kwargs_parse(kwargs_list): kwargs = {} diff --git a/dat.py b/lark/dat.py similarity index 100% rename from dat.py rename to lark/dat.py diff --git a/metadata.py b/lark/metadata.py similarity index 98% rename from metadata.py rename to lark/metadata.py index 95844b6..1dd7bc3 100644 --- a/metadata.py +++ b/lark/metadata.py @@ -91,11 +91,14 @@ def configure(db_path): db_path: Path for the SQLite database ''' + global _configured + global _engine _engine = sqlalchemy.create_engine('sqlite:///%s' % db_path) _SQLBase.metadata.create_all(_engine) _db_session_maker.configure(bind=_engine) _configured = True + print('Database configured.') # TODO: Passing the session object is a little clunky. Maybe there's a way to infer it somehow? def search(session, table_object, **constraints): diff --git a/romdb.py b/lark/romdb.py similarity index 100% rename from romdb.py rename to lark/romdb.py diff --git a/readme.md b/readme.md index e8329bf..2cf3628 100644 --- a/readme.md +++ b/readme.md @@ -14,6 +14,9 @@ directory structure. * A nice, Beets-like interface * Grouping ROMS in archive files +## Dependencies +* SQLAlchemy + ## Known issues * This probably isn't terribly efficient. It's Python parsing XML into an SQLite database and I only know pretty basic database design.