Skip to content
Snippets Groups Projects
Commit 45a0b8a9 authored by Alexander Schlemmer's avatar Alexander Schlemmer
Browse files

ENH: added verbose option to data model

parent 6ff421ed
No related branches found
No related tags found
2 merge requests!39Release 0.4.0,!28ENH: added verbose option to data model
Pipeline #18093 canceled
...@@ -68,14 +68,14 @@ class DataModel(dict): ...@@ -68,14 +68,14 @@ class DataModel(dict):
else: else:
super().__init__(args) super().__init__(args)
def append(self, entity): def append(self, entity: db.Entity):
self[entity.name] = entity self[entity.name] = entity
def extend(self, entities): def extend(self, entities: list[db.Entity]):
for entity in entities: for entity in entities:
self.append(entity) self.append(entity)
def sync_data_model(self, noquestion=False): def sync_data_model(self, noquestion: bool = False, verbose: bool = True):
"""Synchronize this DataModel with a CaosDB instance. """Synchronize this DataModel with a CaosDB instance.
Updates existing entities from the CaosDB instance and inserts Updates existing entities from the CaosDB instance and inserts
...@@ -100,6 +100,7 @@ class DataModel(dict): ...@@ -100,6 +100,7 @@ class DataModel(dict):
self.sync_ids_by_name(tmp_exist) self.sync_ids_by_name(tmp_exist)
if len(non_existing_entities) > 0: if len(non_existing_entities) > 0:
if verbose:
print("New entities:") print("New entities:")
for ent in non_existing_entities: for ent in non_existing_entities:
...@@ -109,13 +110,16 @@ class DataModel(dict): ...@@ -109,13 +110,16 @@ class DataModel(dict):
"entities? [y/N] ")).lower() == "y": "entities? [y/N] ")).lower() == "y":
non_existing_entities.insert() non_existing_entities.insert()
self.sync_ids_by_name(non_existing_entities) self.sync_ids_by_name(non_existing_entities)
if verbose:
print("Updated entities.") print("Updated entities.")
else: else:
return return
else: else:
if verbose:
print("No new entities.") print("No new entities.")
if len(existing_entities) > 0: if len(existing_entities) > 0:
if verbose:
print("Inspecting changes that will be made...") print("Inspecting changes that will be made...")
any_change = False any_change = False
...@@ -126,6 +130,7 @@ class DataModel(dict): ...@@ -126,6 +130,7 @@ class DataModel(dict):
), name=ent.name)) ), name=ent.name))
if diff != "": if diff != "":
if verbose:
print(diff) print(diff)
any_change = True any_change = True
...@@ -133,10 +138,13 @@ class DataModel(dict): ...@@ -133,10 +138,13 @@ class DataModel(dict):
if noquestion or input("Do you really want to apply the above " if noquestion or input("Do you really want to apply the above "
"changes? [y/N]") == "y": "changes? [y/N]") == "y":
existing_entities.update() existing_entities.update()
if verbose:
print("Synchronized existing entities.") print("Synchronized existing entities.")
else: else:
if verbose:
print("No differences found. No update") print("No differences found. No update")
else: else:
if verbose:
print("No existing entities updated.") print("No existing entities updated.")
@staticmethod @staticmethod
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment