def do_delete(self, arg): """ delete element, usage : delete <class_id> <_uuid> """ argsp = arg.split(' ') if not len(argsp) == 2: print("modify takes 2 parameters, usage :\n" + "delete <class_id> <_uuis>") data_type, _uuid = argsp OperationHelper.request_delete(self.server_url, data_type, _uuid)
def do_commit(self, class_id): """ commit changes on DB and save it, usage : commit <class_id> """ if not class_id in DATA_TYPE_MAPPING: print( "No implemented class_id provided : {0}, expected {1}".format( class_id, list(DATA_TYPE_MAPPING.keys()))) else: OperationHelper.request_commit(self.server_url, class_id)
def do_purge(self, arg): """ purge everything on DB no arguments """ answer = None while answer not in ["Y", "n"]: answer = input("Are you sure you want to purge everything ? Y/n") if answer == "n": print("I guess you were joking") else: OperationHelper.request_purge(self.server_url)
def do_query(self, select_statement): """ performs a query using sql query statement """ result_json = OperationHelper.request_select_statement( self.server_url, select_statement) result = pd.read_json(result_json.text) print(result.to_string())
def do_done(self, arg): try: new_element = self.data_type.new(**self.data_element) except Exception as e: print(e) else: print('a new {0} is born'.format(new_element.class_id)) inserted = OperationHelper.request_insert(self.server_url, new_element) print('insertion of {0} is {1}'.format(new_element._uuid, inserted)) return True
def do_done(self, arg): """ Element modification is finished, then update :param arg: """ results = list() for colname in filter( lambda colname: colname not in self.data_type. on_creation_columns, self.current_data_element): if self.current_data_element[colname] != self.past_data_element[ colname]: res = OperationHelper.request_modify( self.server_url, self.class_id, self._uuid, colname, self.current_data_element[colname]) print("modify {0} is {1}".format(colname, res)) results.append(res) return True
def __init__(self, data_type, tmp_files, _uuid, server_url): cmd.Cmd.__init__(self) if not data_type in DATA_TYPE_MAPPING.keys(): print("data_type must be in {0}".format( list(DATA_TYPE_MAPPING.keys()))) return None self.class_id = data_type self.data_type = DATA_TYPE_MAPPING[data_type] self._uuid = _uuid self.server_url = server_url request_json_result = OperationHelper.request_select_statement( self.server_url, self.QUERY_TEMPLATE.format(data_type, self._uuid)) request_json_result = json.loads(request_json_result.text) df_request_result = pd.DataFrame(request_json_result) if df_request_result.shape[0] != 1: print("number of rows : {0} for uuid {1}".format( df_request_result.shape[0], _uuid)) self.past_data_element = df_request_result.iloc[0].to_dict() self.current_data_element = self.past_data_element.copy() self.tmp_files = tmp_files
def do_cancel_all(self, arg): OperationHelper.request_cancel(self.server_url) pass
def do_cancel(self, arg): """ cancel non commited changes, no arguments """ OperationHelper.request_cancel(self.server_url)