コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
 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)
コード例 #4
0
 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())
コード例 #5
0
 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
コード例 #6
0
 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
コード例 #7
0
 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
コード例 #8
0
 def do_cancel_all(self, arg):
     OperationHelper.request_cancel(self.server_url)
     pass
コード例 #9
0
 def do_cancel(self, arg):
     """
     cancel non commited changes, no arguments
     """
     OperationHelper.request_cancel(self.server_url)