Loading poolpay/__main__.py +2 −10 Original line number Diff line number Diff line from pathlib import Path from sqlalchemy import create_engine from sqlalchemy.orm import Session from poolpay import db, paths from poolpay.card.Pirc522CardReader import Pirc522CardReader from poolpay.director.Director import Director from poolpay.display.PygameDisplay import PygameDisplay from poolpay.model.Retrievable import Retrievable from poolpay.ui.pygame.play import play from poolpay.vault.Vault import Vault Loading @@ -20,15 +16,11 @@ director = Director(play, display) with vault.open(password), Pirc522CardReader() as card_reader: try: engine = create_engine(f"sqlite:///{paths.db_file}") Retrievable.metadata.create_all(engine) db.session = Session(engine) db.open(paths.db_file) director.start() card_reader.on_card_removed(lambda reader: director.card_removed()) card_reader.on_card_presented( lambda reader: director.card_presented(reader.read_id()) ) finally: db.session.close() engine.dispose() db.close() poolpay/db.py +23 −0 Original line number Diff line number Diff line from pathlib import Path from sqlalchemy import Engine, create_engine from sqlalchemy.orm import Session from poolpay.model.Retrievable import Retrievable session: Session | None = None _engine: Engine | None = None def open(db_file: Path) -> None: global _engine _engine = create_engine(f"sqlite:///{db_file}") Retrievable.metadata.create_all(_engine) global session session = Session(_engine) def close() -> None: if session is not None: session.close() if _engine is not None: _engine.dispose() Loading
poolpay/__main__.py +2 −10 Original line number Diff line number Diff line from pathlib import Path from sqlalchemy import create_engine from sqlalchemy.orm import Session from poolpay import db, paths from poolpay.card.Pirc522CardReader import Pirc522CardReader from poolpay.director.Director import Director from poolpay.display.PygameDisplay import PygameDisplay from poolpay.model.Retrievable import Retrievable from poolpay.ui.pygame.play import play from poolpay.vault.Vault import Vault Loading @@ -20,15 +16,11 @@ director = Director(play, display) with vault.open(password), Pirc522CardReader() as card_reader: try: engine = create_engine(f"sqlite:///{paths.db_file}") Retrievable.metadata.create_all(engine) db.session = Session(engine) db.open(paths.db_file) director.start() card_reader.on_card_removed(lambda reader: director.card_removed()) card_reader.on_card_presented( lambda reader: director.card_presented(reader.read_id()) ) finally: db.session.close() engine.dispose() db.close()
poolpay/db.py +23 −0 Original line number Diff line number Diff line from pathlib import Path from sqlalchemy import Engine, create_engine from sqlalchemy.orm import Session from poolpay.model.Retrievable import Retrievable session: Session | None = None _engine: Engine | None = None def open(db_file: Path) -> None: global _engine _engine = create_engine(f"sqlite:///{db_file}") Retrievable.metadata.create_all(_engine) global session session = Session(_engine) def close() -> None: if session is not None: session.close() if _engine is not None: _engine.dispose()