quantopian / qgrid

An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks
Apache License 2.0
3.03k stars 424 forks source link

get_changed_df() does not reflect column re-ordering #363

Open info-rchitect opened 3 years ago

info-rchitect commented 3 years ago

Environment

Windows Python 3.8.8

Description of Issue

Enabled the following grid options:

grid_options={'forceFitColumns': False, 'enableColumnReorder': True, 'enableTextSelectionOnCells': True, 'editable': True}

Expected the following code to reflect any column re-ordering done:

new_df = self.widgets['qgrid_table'].get_changed_df()

Cell edits worked but column re-ordering does not get reflected in the changed dataframe.

Here is a snapshot of my qgrid widget where I moved the 'X_COORD' column before the 'WAFER_NUM' column.

image

Here is what i see when I query the new_df dataframe columns:

new_df = self.widgets['qgrid_table'].get_changed_df()
print(new_df.columns)
Index(['SERIAL_NUMBER', 'BARCODE', 'WAFER_NUM', 'X_COORD', 'Y_COORD',
       'VENDOR_SCRIBE', 'LOT_ID', 'MFG_AREA_NAME', 'MFG_STEP_NAME',
       'TEST_PROGRAM_NAME', 'TEST_PROGRAM_VERSION', 'TEST_CODE',
       'PRODUCT_SUB_FAMILY', 'OPN', 'IDV', 'FAB', 'MAJOR_DIE_REVISION',
       'MINOR_DIE_REVISION', 'GROSS_DIE_PER_WAFER', 'SORT_IDV', 'PART_NAME',
       'PRODUCT_LINE', 'DIE_GRADE', 'PRODUCT_VARIANT', 'TECHNOLOGY_NODE',
       'TECHNOLOGY_FAMILY', 'PACKAGE_LEADS', 'UNIT_START_DATE', 'FILE_NAME',
       'TEST_TEMPERATURE', 'LOT_START_DATE', 'LOT_END_DATE', 'EQUIPMENT_ID',
       'EQUIPMENT_TYPE', 'PROBER_HANDLER_ID', 'PROBECARD_LOADBOARD_ID',
       'CHUCK_ID', 'OPERATOR_ID', 'SITE_INDEX', 'INDEX_TIME', 'TEST_TIME',
       'PART_ID', 'RANK_ASC', 'RANK_DESC', 'SEQ_NUMBER', 'COMPONENT_HASH',
       'COMPONENT_NAME', 'BIN_DOC_REVISION', 'HARD_BIN', 'HARD_BIN_DESC',
       'SOFT_BIN', 'SOFT_BIN_DESC', 'DISP_FLAG'],
      dtype='object')

...