def test_data_frame_editor_multi_select(self): view = View( Item("data", editor=DataFrameEditor(multi_select=True), width=400)) viewer = sample_data() with reraise_exceptions(), \ create_ui(viewer, dict(view=view)): pass
def view_summary_group_builder(self): """ Build view element for the numerical data summary display """ editor_kw = dict(show_index=True, columns=self.visible_columns, fonts=self.fonts, formats=self.formats) summary_editor = DataFrameEditor(**editor_kw) summary_group = VGroup( make_window_title_group(self.summary_section_title, title_size=3, include_blank_spaces=False), Item("model.summary_df", editor=summary_editor, show_label=False, visible_when="len(model.summary_df) != 0"), # Workaround the fact that the Label's visible_when is buggy: # encapsulate it into a group and add the visible_when to the group HGroup( Label("No data columns with numbers were found."), visible_when="len(model.summary_df) == 0" ), HGroup( Item("show_summary_controls"), Spring(), visible_when="len(model.summary_df) != 0" ), show_border=True, ) return summary_group
def _df_changed(self, old, new): ArrawViewClass = type( 'ArrawViewClass', (HasTraits, ), { 'df': Instance(pd.DataFrame), 'view': View( HGroup( Item( name='df', show_label=False, style='custom', springy=True, editor=DataFrameEditor( #titles=[str(x) for x in new.columns.values], #format='%g', show_index=False, )), scrollable=True), scrollable=True, resizable=True) }) array_view = ArrawViewClass() array_view.df = new self.array_view = array_view
def test_data_frame_editor_multi_select(): view = View( Item('data', editor=DataFrameEditor(multi_select=True), width=400)) viewer = sample_data() with store_exceptions_on_all_threads(): ui = viewer.edit_traits(view=view) ui.dispose()
class DataFrameViewer(HasTraits): data = Instance('pandas.core.frame.DataFrame') view = View( Item('data', editor=DataFrameEditor(), width=400) )
def bring_ui_up(self, model, num_outputs=1): adapter = self.adapter_class(df_attr_name="cost_data", num_outputs=num_outputs) cost_data_editor = DataFrameEditor(adapter=adapter) view = View(Item('cost_data', editor=cost_data_editor)) ui = model.edit_traits(view=view) try: yield ui finally: ui.dispose()
def test_data_frame_editor_alternate_adapter(): class AlternateAdapter(DataFrameAdapter): pass alternate_adapter_view = View( Item('data', editor=DataFrameEditor(adapter=AlternateAdapter()), width=400)) viewer = sample_data() with store_exceptions_on_all_threads(): ui = viewer.edit_traits(view=alternate_adapter_view) ui.dispose()
class TimeTemps(HasTraits): data = Instance('pandas.core.frame.DataFrame') def _data_default(self): return pd.read_csv('testsched.csv') # view view = View(Item('data', show_label=False, editor=DataFrameEditor(editable=False, show_index=False)), width=200, resizable=True)
def test_data_frame_editor_alternate_adapter(self): class AlternateAdapter(DataFrameAdapter): pass alternate_adapter_view = View( Item( "data", editor=DataFrameEditor(adapter=AlternateAdapter()), width=400, )) viewer = sample_data() with reraise_exceptions(), \ create_ui(viewer, dict(view=alternate_adapter_view)): pass
class DataFrameEditorDemo(HasTraits): df = Instance(DataFrame) traits_view = View(Item('df', show_label=False, editor=DataFrameEditor( formats={ 'RuntimeInMinutes': '%.4d', 'BudgetInMillions': '%d', 'BoxOfficeRevenueInMillions': '%d', 'AcademyAwardNominations': '%d', 'AcademyAwardWins': '%d', 'RottenTomatoesScore': '%.2f' })), title="DataFrameEditor", resizable=True, id='traitsui.demo.Applications.data_frame_editor_demo')
def build_df_editor_grid_data(group_data, num_outputs): """ Build a dataframe editor for grid data. """ adapter = DataFrameWithColumnOutputsAdapter(num_outputs=num_outputs, df_attr_name="group_data") formats = {SIM_COL_NAME: "%s"} for key in group_data: if SimulationGroup.col_is_output(key): formats[key] = "%.3f" elif key != SIM_COL_NAME: formats[key] = "%g" # Because of the way the DataFrame editor is implemented, # the `model.` prefix should not be passed for the update name: sim_group_df_editor = DataFrameEditor(adapter=adapter, formats=formats, update="group_data_updated_event") return sim_group_df_editor
def traits_view(self): adapter = DataFrameWithColumnOutputsAdapter(df_attr_name="cost_data", num_outputs=1) cost_data_editor = DataFrameEditor(adapter=adapter) experiment_list_editor = ListStrEditor(title="Target experiments", editable=False) component_list_editor = ListStrEditor(title="Target components", editable=False) parameter_editor = ListStrEditor(title="Target parameters", editable=False) spinner_editor = RangeEditor(low=1, high=1000, mode='spinner') # To disable the run button once the optimizer is running: model_created = "model.status == '{}'".format(MULTI_SIM_RUNNER_CREATED) view = View( VGroup( HGroup( Item('model.name', label="Optimizer name"), Spring(), Item('model.type', style='readonly', label="Optimizer type"), Spring(), Item('model.num_steps', style='readonly', label="Num. steps"), Spring(), Item('model.size', style='readonly', label="Num. simulations"), ), HGroup(Item('model.target_experiment_names', editor=experiment_list_editor, show_label=False, style='readonly'), Spring(), Item('model.target_components', editor=component_list_editor, show_label=False, style='readonly'), Spring(), Item('model.scanned_param_names', editor=parameter_editor, show_label=False, style='readonly'), Spring(), VGroup( Spring(), Item('view_edit_cost_function_button', show_label=False), Spring(), ), label="Inputs", show_border=True), VGroup( Item('sort_by', label="Sort table by"), Item('model.cost_data', editor=cost_data_editor, show_label=False), label="Output data", show_border=True, ), Item('model.num_optimal_simulations', editor=spinner_editor, label='Number of optimal simulations to save'), HGroup( Item('run_button', show_label=False, enabled_when=model_created), Spring(), Item('model.status', style='readonly'), Item('model.percent_run', style='readonly', label="Completion"), Spring(), Item('export_data_to_csv_button', show_label=False, enabled_when='model.has_run'), ), ), resizable=True, ) return view
class DataFrameViewer(HasTraits): data = Instance(DataFrame) df_refreshed = Event view = View( Item('data', editor=DataFrameEditor(refresh="df_refreshed")))
class DataFrameViewer(HasTraits): data = Instance(DataFrame) df_updated = Event view = View(Item('data', editor=DataFrameEditor(update="df_updated")))
def view_data_group_builder(self): """ Build view element for the Data display """ editor_kw = dict(show_index=True, columns=self.visible_columns, fonts=self.fonts, formats=self.formats) data_editor = DataFrameEditor(selected_row="selected_idx", multi_select=True, **editor_kw) filter_group = HGroup( Item("model.filter_exp", label="Filter", width=self.filter_item_width), Item("pop_out_filter_button", show_label=False, style="custom", tooltip="Open filter editor..."), Item("apply_filter_button", show_label=False, visible_when="not model.filter_auto_apply", style="custom", tooltip="Apply current filter"), Item("save_filter_button", show_label=False, enabled_when="model.filter_exp not in _known_expr", visible_when="filter_manager", style="custom", tooltip="Save current filter"), Item("load_filter_button", show_label=False, visible_when="filter_manager", style="custom", tooltip="Load a filter..."), Item("manage_filter_button", show_label=False, visible_when="filter_manager", style="custom", tooltip="Manage filters..."), ) truncated = ("len(model.displayed_df) < len(model.filtered_df) and " "not model.show_selected_only") more_label = "Show {} More".format(self.model.num_display_increment) display_control_group = HGroup( Item("model.show_selected_only", label="Selected rows only"), Item("truncation_msg", style="readonly", show_label=False, visible_when=truncated), Item("show_more_button", editor=ButtonEditor(label=more_label), show_label=False, visible_when=truncated), Item("show_all_button", show_label=False, visible_when=truncated), ) data_group = VGroup( make_window_title_group(self.data_section_title, title_size=3, include_blank_spaces=False), HGroup( Item("model.sort_by_col", label="Sort by"), Item("shuffle_button", show_label=False, visible_when="show_shuffle_button"), Spring(), filter_group ), HGroup( Item("model.displayed_df", editor=data_editor, show_label=False), ), HGroup( Item("show_column_controls", label="\u2190 Show column control", visible_when="not _many_columns"), Item("open_column_controls", show_label=False, visible_when="_many_columns"), Spring(), Item("_show_summary", label=u'\u2193 Show summary', visible_when="allow_show_summary"), Spring(), display_control_group ), show_border=True ) return data_group
from traitsui.view import View from traitsui.tests._tools import store_exceptions_on_all_threads, skip_if_null class DataFrameViewer(HasTraits): data = Instance('pandas.core.frame.DataFrame') view = View(Item('data', editor=DataFrameEditor(), width=400)) format_mapping_view = View( Item('data', editor=DataFrameEditor(formats={ 'X': '%05d', 'Y': '%s' }), width=400)) font_mapping_view = View( Item('data', editor=DataFrameEditor(fonts={ 'X': 'Courier 10 bold', 'Y': 'Swiss' }), width=400)) columns_view = View( Item( 'data', editor=DataFrameEditor(columns=['X', ('Zed', 'Z'), 'missing']), # noqa
class DataFrameViewer(HasTraits): data = Instance("pandas.core.frame.DataFrame") view = View(Item("data", editor=DataFrameEditor(), width=400))
def test_scroll_to_row_hint_warnings(self): with self.assertWarns(DeprecationWarning): dfe = DataFrameEditor(scroll_to_row_hint="center") with self.assertWarns(DeprecationWarning): dfe.scroll_to_row_hint
ToolkitName, ) class DataFrameViewer(HasTraits): data = Instance("pandas.core.frame.DataFrame") view = View(Item("data", editor=DataFrameEditor(), width=400)) format_mapping_view = View( Item( "data", editor=DataFrameEditor(formats={ "X": "%05d", "Y": "%s" }), width=400, )) font_mapping_view = View( Item( "data", editor=DataFrameEditor(fonts={ "X": "Courier 10 bold", "Y": "Swiss" }), width=400, )) columns_view = View(