def delete_nodegroups_driver(nodegroups: List[str], ignore_nonexistent: bool, yes: bool, use_regexp: bool, base_url: Url) -> None: if not nodegroups: print('No nodegroups specified for deletion: doing nothing.') return sparql_connection(base_url, None, [], None) allIDs = semtk3.get_nodegroup_store_data().get_column('ID') if use_regexp: regexps = [re.compile(regex_str) for regex_str in nodegroups] nonexistent = [r.pattern for r in regexps if not any(r.search(i) for i in allIDs)] to_delete = [i for i in allIDs if any(r.search(i) for r in regexps)] else: nonexistent = [n for n in nodegroups if n not in allIDs] to_delete = [n for n in nodegroups if n in allIDs] if nonexistent: print('The following nodegroups do not exist: {}'.format(', '.join(str_highlight(s) for s in nonexistent))) if not ignore_nonexistent: print(str_bad('Aborting. Remove the nonexistent IDs or use --ignore-nonexistent.')) sys.exit(1) if not yes: print('The following nodegroups would be removed: {}'.format(', '.join(str_highlight(s) for s in to_delete))) def on_confirmed() -> None: for nodegroup in to_delete: delete_nodegroup(nodegroup) confirm(on_confirmed, yes)
def delete_all_nodegroups_driver(yes: bool, base_url: Url) -> None: sparql_connection(base_url, None, [], None) allIDs = semtk3.get_nodegroup_store_data().get_column('ID') if not yes: print('The following nodegroups would be removed: {}'.format(' '.join(str_highlight(s) for s in allIDs))) def on_confirmed() -> None: for nodegroup in allIDs: delete_nodegroup(nodegroup) confirm(on_confirmed, yes)
# set semtk3 logging to DEBUG (below we switch it to the more typical logging.INFO) semtk3.get_logger().setLevel(level=logging.INFO) semtk3.set_headers({"extra": "idk"}) if not semtk3.check_services(): print("A service failed. Check logs") # don't want to demo mucking with nodegroup store. Also need valid local folder path. #semtk3.retrieve_from_store("regex", "folder path") #semtk3.delete_nodegroup_from_store("nodegroup_id") #semtk3.store_nodegroups("folder path") # # get a list of nodegroups # table = semtk3.get_nodegroup_store_data() print(table.get_rows()) # # get a table of constraints for a nodegroup_id # nodegroup_id = "Lighting Weekly Units Sold" table = semtk3.get_constraints_by_id(nodegroup_id) print(table.get_rows()) # # logging # show only high-level logging (e.g. percent complete) # semtk3.get_logger().setLevel(level=logging.INFO)
def list_nodegroups() -> SemtkTable: sparql_connection(base_url, None, [], None) return semtk3.get_nodegroup_store_data()