From b334108f8c2a66f36f6a064454c31cff62f8bea2 Mon Sep 17 00:00:00 2001 From: 283375 Date: Sat, 26 Aug 2023 18:53:07 +0800 Subject: [PATCH] impr: use `Session` instead of `Engine` in `write_database` of external parsers --- src/arcaea_offline/external/arcaea/common.py | 11 ++++------- src/arcaea_offline/external/arcsong/arcsong_db.py | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/arcaea_offline/external/arcaea/common.py b/src/arcaea_offline/external/arcaea/common.py index 97d3b20..96dc86c 100644 --- a/src/arcaea_offline/external/arcaea/common.py +++ b/src/arcaea_offline/external/arcaea/common.py @@ -2,7 +2,6 @@ import json from os import PathLike from typing import Any, List, Optional, Union -from sqlalchemy import Engine from sqlalchemy.orm import DeclarativeBase, Session @@ -47,9 +46,7 @@ class ArcaeaParser: def parse(self) -> List[DeclarativeBase]: ... - def write_database(self, engine: Engine): - with Session(engine) as session: - results = self.parse() - for result in results: - session.merge(result) - session.commit() + def write_database(self, session: Session): + results = self.parse() + for result in results: + session.merge(result) diff --git a/src/arcaea_offline/external/arcsong/arcsong_db.py b/src/arcaea_offline/external/arcsong/arcsong_db.py index 7245280..1d33df9 100644 --- a/src/arcaea_offline/external/arcsong/arcsong_db.py +++ b/src/arcaea_offline/external/arcsong/arcsong_db.py @@ -1,7 +1,6 @@ import sqlite3 from typing import List -from sqlalchemy import Engine from sqlalchemy.orm import Session from ...models.songs import ChartInfo @@ -29,9 +28,7 @@ class ArcsongDbParser: return results - def write_database(self, engine: Engine): - with Session(engine) as session: - results = self.parse() - for result in results: - session.merge(result) - session.commit() + def write_database(self, session: Session): + results = self.parse() + for result in results: + session.merge(result)