コード例 #1
0
 def del_image(self, mid):
     '''
     从 ctx 中删除图片
     '''
     if self.__del_image(mid):
         return result(ResultType.success)
     return result(ResultType.failed, desc='invalid image id')
コード例 #2
0
 def get_ncpus(self):
     '''
     获取可用核数
     '''
     if self.mpc != None:
         return result(ResultType.success, data=self.mpc.ncpus)
     return result(ResultType.failed, desc='MPC invaliable')
コード例 #3
0
 def wrapper(obj, method, label):
     try:
         return func(obj, method, label)
     except ValueError:
         return result(ResultType.failed, desc='数据不合法,无法进行操作')
     except:
         msg = traceback.format_exc()
         return result(ResultType.failed, desc=msg)
コード例 #4
0
 def enable_mpc(self):
     '''
     启用mpc
     '''
     # 始终禁用
     try:
         self.__enable_mpc = True
         if self.mpc is None:
             self.mpc = MPCompute()
         return result(ResultType.success)
     except:
         msg = traceback.format_exc()
         return result(ResultType.failed, desc=msg)
コード例 #5
0
 def visualization(self, method, label):
     '''
     可视化
     '''
     data = sup.visualization(self.data, method, label)
     i = self.__add_image(visualization_type[method], label, data)
     return result(ResultType.success, data=bytes_to_b64(data), ext=i)
コード例 #6
0
 def disable_mpc(self):
     '''
     禁用mpc
     '''
     self.__enable_mpc = False
     if not self.mpc is None:
         self.mpc.shutdown()
         self.mpc = None
     return result(ResultType.success)
コード例 #7
0
 def normalize(self, method, label):
     '''
     数据规范化
     '''
     if self.__enable_mpc:
         new_data = self.mpc.compute(sup.normalize, args=(self.data, method, label))()
     else:
         new_data = sup.normalize(self.data, method, label)
     self.__new_version(new_data, 'normalize (%s)' % noise_type[method])
     return result(ResultType.success, data=self.__get_data())
コード例 #8
0
 def null_process(self, method, label):
     '''
     空值处理
     '''
     if self.__enable_mpc:
         new_data = self.mpc.compute(sup.null_process, args=(self.data, method, label))()
     else:
         new_data = sup.null_process(self.data, method, label)
     self.__new_version(new_data, 'null process (%s)' % noise_type[method])
     return result(ResultType.success, data=self.__get_data())
コード例 #9
0
 def open_path(self, p):
     '''
     查询目录子结构
     '''
     data = []
     for name in os.listdir(p):
         data.append({
             'name': name,
             'type': 'dir' if path.isdir(path.join(p, name)) else 'file'
         })
     return result(ResultType.success, data=data)
コード例 #10
0
 def save_data(self):
     '''
     在输入目录下创建 DPTool-output,存储数据到该目录下
     '''
     try:
         output_dir = path.join(path.dirname(self.data_path), 'DPTool-output')
         if path.exists(output_dir):
             shutil.rmtree(output_dir)
         os.mkdir(output_dir)
         # 存储处理后的数据
         output_path = path.join(output_dir, str(self.data_version) + '-' + path.basename(self.data_path))
         self.data.to_csv(output_path)
         # 存储视图
         for name in self.images:
             with open(path.join(output_dir, name + '.png'), 'wb') as f:
                 f.write(self.images[name])
         # 存储操作日志
         with open(path.join(output_dir, 'op-records.txt'), 'wb') as f:
             for item in self.op_records:
                 f.write((item + '\n').encode('utf-8'))
         return result(ResultType.success, data=output_dir)
     except:
         msg = traceback.format_exc()
         return result(ResultType.failed, desc=msg)
コード例 #11
0
 def read_file(self, p):
     '''
     读文件,获取数据,用于预览
     支持的数据文件类型:sup_file_type
     '''
     name = path.basename(p)
     i = name.rfind('.')
     file_type = name[i + 1:].lower() if i >= 0 else None
     self.data_path = p
     with open(p, 'rb') as f:
         if file_type and file_type in Context.sup_file_type:
             try:
                 if file_type == 'csv':
                     self.data = pd.read_csv(f, ';')
                 else:
                     self.data = getattr(pd, 'read_' + file_type)(f)
                 self.__reset()
                 return result(ResultType.success, data=self.__get_data())
             except:
                 msg = traceback.format_exc()
                 return result(ResultType.failed, desc=msg)
         else:
             return result(ResultType.failed, desc='unsupported file type: ' + file_type)
     return result(ResultType.failed, desc='cannot open file: ' + p)
コード例 #12
0
 def get_data(self):
     '''
     返回 context 中保存的 data
     '''
     return result(ResultType.success, data=self.__get_data())
コード例 #13
0
 def get_cwd(self):
     '''
     获取工作路径
     '''
     return result(ResultType.success, data=os.getcwd())