Пример #1
0
def test_series_of_text_filters():
    view = QgridWidget(df=create_df())
    view._handle_qgrid_msg_helper({
        'type': 'get_column_min_max',
        'field': 'E',
        'search_val': None
    })
    view._handle_qgrid_msg_helper({
        'field': "E",
        'filter_info': {
            'field': "E",
            'selected': [0, 1],
            'type': "text",
            'excluded': []
        },
        'type': "filter_changed"
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2

    # reset the filter...
    view._handle_qgrid_msg_helper({
        'field': "E",
        'filter_info': {
            'field': "E",
            'selected': None,
            'type': "text",
            'excluded': []
        },
        'type': "filter_changed"
    })

    # ...and apply a text filter on a different column
    view._handle_qgrid_msg_helper({
        'type': 'get_column_min_max',
        'field': 'F',
        'search_val': None
    })
    view._handle_qgrid_msg_helper({
        'field': "F",
        'filter_info': {
            'field': "F",
            'selected': [0, 1],
            'type': "text",
            'excluded': []
        },
        'type': "filter_changed"
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2
Пример #2
0
def test_series_of_text_filters():
    view = QgridWidget(df=create_df())
    view._handle_qgrid_msg_helper({
        'type': 'show_filter_dropdown',
        'field': 'E',
        'search_val': None
    })
    view._handle_qgrid_msg_helper({
        'field': "E",
        'filter_info': {
            'field': "E",
            'selected': [0, 1],
            'type': "text",
            'excluded': []
        },
        'type': "change_filter"
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2

    # reset the filter...
    view._handle_qgrid_msg_helper({
        'field': "E",
        'filter_info': {
            'field': "E",
            'selected': None,
            'type': "text",
            'excluded': []
        },
        'type': "change_filter"
    })

    # ...and apply a text filter on a different column
    view._handle_qgrid_msg_helper({
        'type': 'show_filter_dropdown',
        'field': 'F',
        'search_val': None
    })
    view._handle_qgrid_msg_helper({
        'field': "F",
        'filter_info': {
            'field': "F",
            'selected': [0, 1],
            'type': "text",
            'excluded': []
        },
        'type': "change_filter"
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2
Пример #3
0
def test_series_of_text_filters():
    view = QgridWidget(df=create_df())
    view._handle_qgrid_msg_helper({
        "type": "show_filter_dropdown",
        "field": "E",
        "search_val": None
    })
    view._handle_qgrid_msg_helper({
        "field": "E",
        "filter_info": {
            "field": "E",
            "selected": [0, 1],
            "type": "text",
            "excluded": [],
        },
        "type": "change_filter",
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2

    # reset the filter...
    view._handle_qgrid_msg_helper({
        "field": "E",
        "filter_info": {
            "field": "E",
            "selected": None,
            "type": "text",
            "excluded": [],
        },
        "type": "change_filter",
    })

    # ...and apply a text filter on a different column
    view._handle_qgrid_msg_helper({
        "type": "show_filter_dropdown",
        "field": "F",
        "search_val": None
    })
    view._handle_qgrid_msg_helper({
        "field": "F",
        "filter_info": {
            "field": "F",
            "selected": [0, 1],
            "type": "text",
            "excluded": [],
        },
        "type": "change_filter",
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2
Пример #4
0
 def test_nans(self):
     df = pd.DataFrame([(pd.Timestamp('2017-02-02'), np.nan),
                        (4, 2),
                        ('foo', 'bar')])
     view = QgridWidget(df=df)
     
     self.assertIsNotNone(view.get_changed_df())
Пример #5
0
class DJGrid:
    '''
    DataJoint/QgridWidget utility class.
    Deprecated in favor of DJRecord since we clone table state &
    dj isn't designed for data updates; possibly useful if dealing with pandas
    or updates absolutely required.
    '''
    def __init__(self, schema, tableclass):
        self._djpanda = DJPanda(schema, tableclass)
        self._widget = None

    def display(self):
        df = self._djpanda.fetch()
        self._widget = QgridWidget(df=df, show_toolbar=True)
        return self._widget

    def save(self):
        self._djpanda._edit = self._widget.get_changed_df()
        return self._djpanda.save()

    def edit(self):
        # todo: get full-loop interaction going in jupyter
        #   ... using 'interact()' requires a widget with 'FIXME WHAT NEEDS'
        # basically ixgrid is a dom widget which doesn't have whatever
        # this missing note used to say.
        raise NotImplementedError(
            'edit() not implemented. Please use .display() then .save()')
Пример #6
0
def test_integer_index_filter():
    view = QgridWidget(df=create_df())
    view._handle_qgrid_msg_helper({
        'field': "index",
        'filter_info': {
            'field': "index",
            'max': None,
            'min': 2,
            'type': "slider"
        },
        'type': "filter_changed"
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2
Пример #7
0
def test_integer_index_filter():
    view = QgridWidget(df=create_df())
    view._handle_qgrid_msg_helper({
        'field': "index",
        'filter_info': {
            'field': "index",
            'max': None,
            'min': 2,
            'type': "slider"
        },
        'type': "change_filter"
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2
Пример #8
0
def test_integer_index_filter():
    view = QgridWidget(df=create_df())
    view._handle_qgrid_msg_helper({
        "field": "index",
        "filter_info": {
            "field": "index",
            "max": None,
            "min": 2,
            "type": "slider",
        },
        "type": "change_filter",
    })
    filtered_df = view.get_changed_df()
    assert len(filtered_df) == 2