import itertools
import json
-from sqlalchemy import schema, orm
+from sqlalchemy import orm
from wrpylib import mwdb, wrmwdb
+from wrpylib.wrorm import Page, WrIntermapsSledrun
def investigate(filename: str, write_back_formatted: bool):
yield region, sledrun
-def update_wrintermapssledrun(engine, json_content: dict):
- """Updates the wrintermapssledrun table from the wiki. If convert errors occur, an UpdateError exception
+def update_wrintermapssledrun(session, json_content: dict):
+ """Updates the wrintermapssledrun table from the wiki. By filling in the missing fields of rows as long as
+ intermaps_sledrun_id and wr_page_id are set.
+ If convert errors occur, an UpdateError exception
is raised. No other exception type should be raised under normal circumstances.
>>> import json
>>> from sqlalchemy.engine import create_engine
>>> engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
+ >>> Session = orm.sessionmaker(bind=engine)
>>> with open('2019-12-06_090500.json') as fp:
>>> content = json.load(fp)
- >>> update_wrintermapssledrun(engine, content)
+ >>> update_wrintermapssledrun(Session(), content)
"""
- class Page:
- pass
-
- class IntermapsSledrun:
- pass
-
- metadata = schema.MetaData()
- wrintermapssledrun_table = wrmwdb.wrintermapssledrun_table(metadata)
- page_table = mwdb.page_table(metadata)
-
- Session = orm.sessionmaker(bind=engine)
- session = Session()
- orm.mapper(IntermapsSledrun, wrintermapssledrun_table)
- orm.mapper(Page, page_table)
-
- q = session.query(IntermapsSledrun)
+ q = session.query(WrIntermapsSledrun)
for intermaps_sledrun in q:
if intermaps_sledrun.intermaps_sledrun_name is None or intermaps_sledrun.intermaps_region_id is None or \
intermaps_sledrun.intermaps_region_name is None or intermaps_sledrun.intermaps_country is None:
if __name__ == '__main__':
from sqlalchemy.engine import create_engine
engine = create_engine('mysql://philipp@localhost:3306/philipp_winterrodeln_wiki?charset=utf8&use_unicode=1')
+ Session = orm.sessionmaker(bind=engine)
filename = '/home/philipp/daten/Winterrodeln/Intermaps/intermaps_winterrodeln_2019-12-06_090501.json'
with open(filename) as fp:
content = json.load(fp)
- update_wrintermapssledrun(engine, content)
+ update_wrintermapssledrun(Session(), content)