recipe-graph/src/insert_sites.py

29 lines
732 B
Python

from sqlalchemy.orm import sessionmaker
import db
import json
import argparse
import logging
parser = argparse.ArgumentParser(description='Import recipes into database')
parser.add_argument('file', type=str,
help='JSON file with recipe site information')
parser.add_argument('-v', '--verbose', action='store_true')
args = parser.parse_args()
if args.verbose:
logging.basicConfig(level=logging.INFO)
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)
with open(args.file) as f:
sites = json.load(f)
eng = db.get_engine()
S = sessionmaker(eng)
with S.begin() as session:
for site in sites:
logging.info(f"Adding {site}")
session.add(db.RecipeSite(**site))