impr: use Session instead of Engine in write_database of external parsers

This commit is contained in:
283375 2023-08-26 18:53:07 +08:00
parent a2193a7d1b
commit b334108f8c
Signed by: 283375
SSH Key Fingerprint: SHA256:UcX0qg6ZOSDOeieKPGokA5h7soykG61nz2uxuQgVLSk
2 changed files with 8 additions and 14 deletions

View File

@ -2,7 +2,6 @@ import json
from os import PathLike from os import PathLike
from typing import Any, List, Optional, Union from typing import Any, List, Optional, Union
from sqlalchemy import Engine
from sqlalchemy.orm import DeclarativeBase, Session from sqlalchemy.orm import DeclarativeBase, Session
@ -47,9 +46,7 @@ class ArcaeaParser:
def parse(self) -> List[DeclarativeBase]: def parse(self) -> List[DeclarativeBase]:
... ...
def write_database(self, engine: Engine): def write_database(self, session: Session):
with Session(engine) as session:
results = self.parse() results = self.parse()
for result in results: for result in results:
session.merge(result) session.merge(result)
session.commit()

View File

@ -1,7 +1,6 @@
import sqlite3 import sqlite3
from typing import List from typing import List
from sqlalchemy import Engine
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
from ...models.songs import ChartInfo from ...models.songs import ChartInfo
@ -29,9 +28,7 @@ class ArcsongDbParser:
return results return results
def write_database(self, engine: Engine): def write_database(self, session: Session):
with Session(engine) as session:
results = self.parse() results = self.parse()
for result in results: for result in results:
session.merge(result) session.merge(result)
session.commit()