def list_configs( self, # type: HummingbotApplication ): columns = ["Key", " Value"] data = [[cv.key, cv.value] for cv in global_config_map.values() if cv.key in global_configs_to_display and not cv.is_secure] df = map_df_to_str(pd.DataFrame(data=data, columns=columns)) self._notify("\nGlobal Configurations:") lines = [ " " + line for line in format_df_for_printout( df, max_col_width=50).split("\n") ] self._notify("\n".join(lines)) data = [[cv.key, cv.value] for cv in global_config_map.values() if cv.key in color_settings_to_display and not cv.is_secure] df = map_df_to_str(pd.DataFrame(data=data, columns=columns)) self._notify("\nColor Settings:") lines = [ " " + line for line in format_df_for_printout( df, max_col_width=50).split("\n") ] self._notify("\n".join(lines)) if self.strategy_name is not None: data = [[cv.printable_key or cv.key, cv.value] for cv in self.strategy_config_map.values() if not cv.is_secure] df = map_df_to_str(pd.DataFrame(data=data, columns=columns)) self._notify("\nStrategy Configurations:") lines = [ " " + line for line in format_df_for_printout( df, max_col_width=50).split("\n") ] self._notify("\n".join(lines))
def list_client_configs(self # type: HummingbotApplication ): data = self.build_model_df_data(self.client_config_map, to_print=client_configs_to_display) df = map_df_to_str(pd.DataFrame(data=data, columns=columns)) self.notify("\nGlobal Configurations:") lines = [ " " + line for line in format_df_for_printout( df, table_format=self.client_config_map.tables_format, max_col_width=50).split("\n") ] self.notify("\n".join(lines)) data = self.build_model_df_data(self.client_config_map, to_print=color_settings_to_display) df = map_df_to_str(pd.DataFrame(data=data, columns=columns)) self.notify("\nColor Settings:") lines = [ " " + line for line in format_df_for_printout( df, table_format=self.client_config_map.tables_format, max_col_width=50).split("\n") ] self.notify("\n".join(lines))
def test_map_df_to_str(self): df = pd.DataFrame(data=[0.2, 0, 1, 100., 1.00]) df = map_df_to_str(df) self.assertEqual( df.to_string(), " 0\n" "0 0.2\n" "1 0\n" "2 1\n" "3 100\n" "4 1")
def list_strategy_configs(self # type: HummingbotApplication ): if self.strategy_name is not None: config_map = self.strategy_config_map data = self.build_df_data_from_config_map(config_map) df = map_df_to_str(pd.DataFrame(data=data, columns=columns)) self.notify("\nStrategy Configurations:") lines = [ " " + line for line in format_df_for_printout( df, table_format=self.client_config_map.tables_format, max_col_width=50).split("\n") ] self.notify("\n".join(lines))
def format_status(self) -> str: if not self._all_markets_ready: return "Market connectors are not ready." lines = [] warning_lines = [] markets_df = self.market_status_data_frame() lines.extend(["", " Markets:"] + [ " " + line for line in markets_df.to_string(index=False).split("\n") ]) assets_df = map_df_to_str(self.perpetual_mm_assets_df()) first_col_length = max(*assets_df[0].apply(len)) df_lines = assets_df.to_string(index=False, header=False, formatters={ 0: ("{:<" + str(first_col_length) + "}").format }).split("\n") lines.extend(["", " Assets:"] + [" " + line for line in df_lines]) # See if there're any open orders. if len(self.active_orders) > 0: df = self.active_orders_df() lines.extend(["", " Orders:"] + [ " " + line for line in df.to_string(index=False).split("\n") ]) else: lines.extend(["", " No active maker orders."]) # See if there're any active positions. if len(self.active_positions) > 0: df = self.active_positions_df() lines.extend(["", " Positions:"] + [ " " + line for line in df.to_string(index=False).split("\n") ]) else: lines.extend(["", " No active positions."]) if len(warning_lines) > 0: lines.extend(["", "*** WARNINGS ***"] + warning_lines) return "\n".join(lines)