in sapp/ui/filters.py [0:0]
def import_filter_from_path(database: DB, input_filter_path: Path) -> None:
filter_paths = (
list(input_filter_path.glob("**/*.json"))
if input_filter_path.is_dir()
else [input_filter_path]
)
imported_filterrecords = []
for path in filter_paths:
filter_instance = StoredFilter.from_file(path)
imported_filterrecords.append(
FilterRecord(
name=filter_instance.name,
description=filter_instance.description,
json=filter_instance.to_json(),
)
)
# TODO(T89343050)
models.create(database)
with database.make_session() as session:
with session.begin_nested():
for record in imported_filterrecords:
session.merge(record)
LOG.info(f"`{record.name}` filter has been imported")
try:
session.commit()
except sqlalchemy.exc.DatabaseError:
LOG.error(
"Error: Database disk image is malformed. Please recreate your SAPP db"
)
raise