def pull_df(self, md5): """Wrapper for the Workbench get_dataframe method Args: md5: pull the dataframe identified by this md5 Returns: The uncompressed/unserialized dataframe """ try: _packed_df = self.workbench.get_dataframe(md5) _df = pd.read_msgpack(lz4.loads(_packed_df)) return _df except zerorpc.exceptions.RemoteError as e: return repr_to_str_decorator.r_to_s(self._data_not_found)(e)
def _work_request(self, worker, md5=None): """Wrapper for a work_request to workbench""" # I'm sure there's a better way to do this if not md5 and not self.session.md5: return 'Must call worker with an md5 argument...' elif not md5: md5 = self.session.md5 # Is the md5 a sample_set? if self.workbench.is_sample_set(md5): return self.workbench.set_work_request(worker, md5) # Make the work_request with worker and md5 args try: return self.workbench.work_request(worker, md5) except zerorpc.exceptions.RemoteError as e: return repr_to_str_decorator.r_to_s(self._data_not_found)(e)
def __init__(self): ''' Workbench CLI Initialization ''' # Workbench CLI version self.version = version.__version__ # Workbench CLI Help self.help = help_content.WorkbenchShellHelp() # Grab server arguments self.server_info = client_helper.grab_server_args() # Spin up workbench server self.workbench = None self._connect(self.server_info) # Create a user session self.session = self.Session() # We have a command_set for our Interactive Shell self.command_dict = self._generate_command_dict() self.command_set = set(self.command_dict.keys()) # Our Interactive IPython shell self.ipshell = None # Our File Streamer self.streamer = file_streamer.FileStreamer(self.workbench, self._progress_print) # Register infomation (for help and other stuff) with Workbench self._register_info() # Help decorator self.help_deco = repr_to_str_decorator.r_to_s(self.workbench.help) # What OS/Version do we have? self.beer = '\360\237\215\272' if sys.platform == 'darwin' else ' '