Skip to content

Instantly share code, notes, and snippets.

@dnewber
Last active June 2, 2020 20:46
Show Gist options
  • Select an option

  • Save dnewber/fc0c1d1d4ec0e279371179fc9ba706db to your computer and use it in GitHub Desktop.

Select an option

Save dnewber/fc0c1d1d4ec0e279371179fc9ba706db to your computer and use it in GitHub Desktop.
import os
import sys
import json
import logging
import click
from yaml import safe_load
from flask.cli import AppGroup
from tcpa import model, provider
log = logging.getLogger(__name__)
def create_facilities_groups(facilities_filename):
model.metadata.bind(model.mongo.db)
with open(facilities_filename) as f:
info = safe_load(f)
new_facilities = {
fac["id"]: model.Facility.m.create(_id=fac["id"], name=fac["name"])
for fac in info["facilities"]
}
facilities = {fac._id: fac for fac in model.Facility.m.find()}
ids_to_insert = new_facilities.keys() - facilities.keys()
if ids_to_insert:
log.info(f"Insert {len(ids_to_insert)} new facs")
model.Facility.m.insert_many(
[new_facilities[facid] for facid in ids_to_insert]
)
ids_to_update = new_facilities.keys() & facilities.keys()
if ids_to_update:
log.info(f"Update {len(ids_to_update)} facs")
for facid in ids_to_update:
new_facilities[facid].m.replace()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment