def get_dataframe(self, columns: Columns = None) -> DataFrame: if pd and get_use_objects_for_output(): dataframe = DataFrame(self.get_items()) if arg.is_defined(columns): columns = arg.get_names(columns) dataframe = dataframe[columns] return dataframe
def show(self, count: Optional[int] = None, as_dataframe: Union[bool, Auto] = AUTO) -> Optional[DataFrame]: as_dataframe = Auto.acquire(as_dataframe, get_use_objects_for_output()) if as_dataframe: return self.get_dataframe() else: return self.describe(as_dataframe=False)
def get_dataframe(self, columns: Optional[Iterable] = None) -> DataFrame: if pd and get_use_objects_for_output(): if columns: dataframe = DataFrame(self.get_items(), columns=columns) columns = arg.get_names(columns) dataframe = dataframe[columns] else: dataframe = DataFrame(self.get_items()) return dataframe
def describe(self, *filters, take_struct_from_source: bool = False, count: Count = 10, columns: Columns = None, show_header: bool = True, struct_as_dataframe: bool = False, separate_by_tabs: bool = False, allow_collect: bool = True, **filter_kwargs): if show_header: for line in self.get_str_headers(): self.log(line) example = self.example(*filters, **filter_kwargs, count=count) assert isinstance(example, ColumnarMixin) if hasattr(self, 'get_struct'): expected_struct = self.get_struct() source_str = 'native' elif take_struct_from_source: expected_struct = self.get_source_struct() source_str = 'from source {}'.format(self.get_source().__repr__()) else: expected_struct = self.get_detected_struct() source_str = 'detected from example items' expected_struct = fc.FlatStruct.convert_to_native(expected_struct) detected_struct = example.get_detected_struct(count) detected_struct.validate_about(expected_struct) message = '{} {}'.format(source_str, expected_struct.get_validation_message()) struct_as_dataframe = struct_as_dataframe and get_use_objects_for_output( ) struct_dataframe = expected_struct.describe( as_dataframe=struct_as_dataframe, show_header=False, logger=self.get_logger(), separate_by_tabs=separate_by_tabs, example=example.get_one_item(), comment=message, ) if struct_as_dataframe: return struct_dataframe else: return example.get_demo_example( as_dataframe=get_use_objects_for_output())
def describe( self, *filters, take_struct_from_source: bool = False, count: Count = DEFAULT_SHOW_COUNT, columns: Columns = None, allow_collect: bool = True, show_header: bool = True, struct_as_dataframe: bool = False, delimiter: str = ' ', output=AUTO, **filter_kwargs ): output = Auto.delayed_acquire(output, self.get_logger) if show_header: for line in self.get_str_headers(): self.output_line(line, output=output) example = self.example(*filters, **filter_kwargs, count=count) if hasattr(self, 'get_struct'): expected_struct = self.get_struct() source_str = 'native' elif take_struct_from_source: expected_struct = self.get_source_struct() source_str = 'from source {}'.format(self.get_source().__repr__()) else: expected_struct = self.get_detected_struct() source_str = 'detected from example items' expected_struct = fc.FlatStruct.convert_to_native(expected_struct) detected_struct = example.get_detected_struct(count) assert isinstance(expected_struct, fc.FlatStruct) or hasattr(expected_struct, 'describe'), expected_struct assert isinstance(detected_struct, fc.FlatStruct) or hasattr(expected_struct, 'describe'), expected_struct detected_struct.validate_about(expected_struct) validation_message = '{} {}'.format(source_str, expected_struct.get_validation_message()) struct_as_dataframe = struct_as_dataframe and get_use_objects_for_output() struct_dataframe = expected_struct.describe( as_dataframe=struct_as_dataframe, show_header=False, output=output, delimiter=delimiter, example=example.get_one_item(), comment=validation_message, ) if struct_as_dataframe: return struct_dataframe else: return example.get_demo_example(as_dataframe=get_use_objects_for_output())
def get_demo_example( self, count: int = DEFAULT_SHOW_COUNT, as_dataframe: AutoBool = AUTO, filters: Optional[Array] = None, columns: Optional[Array] = None, ) -> Union[DataFrame, Iterable]: as_dataframe = arg.acquire(as_dataframe, get_use_objects_for_output()) sm_sample = self.filter(*filters or []) if filters else self sm_sample = sm_sample.take(count) if hasattr(sm_sample, 'get_dataframe') and as_dataframe: return sm_sample.get_dataframe(columns) elif hasattr(sm_sample, 'select') and columns: return sm_sample.select(*columns).get_items() elif hasattr(sm_sample, 'get_items'): return sm_sample.get_items()
def get_demo_example( self, count: Count = DEFAULT_EXAMPLE_COUNT, filters: Columns = None, columns: Columns = None, as_dataframe: AutoBool = AUTO, ) -> Union[DataFrame, list, None]: as_dataframe = arg.acquire(as_dataframe, get_use_objects_for_output()) sm_sample = self.filter(*filters) if filters else self sm_sample = sm_sample.take(count) if as_dataframe: return sm_sample.get_dataframe(columns) elif hasattr(sm_sample, 'get_list'): return sm_sample.get_list()