2121 List ,
2222 Unicode ,
2323 default ,
24+ observe ,
2425 validate ,
2526)
2627
@@ -1148,24 +1149,6 @@ def _handle_comm_msg(self, _, content, _buffs):
11481149
11491150 self .send (answer , buffers )
11501151
1151- elif event_type == "frontend-transforms" :
1152- # Transforms is an array of dicts.
1153- frontend_transforms = content .get ("transforms" )
1154-
1155- self ._transformed_data = None
1156- data = self .__dataframe_reference
1157-
1158- if frontend_transforms :
1159- self ._transformed_data = self ._apply_frontend_transforms (
1160- frontend_transforms , data
1161- )
1162- data = self ._transformed_data
1163-
1164- self ._row_count = len (data ) # Sync to frontend.
1165-
1166- # Should only request a tick if the transforms have changed.
1167- self .tick ()
1168-
11691152 elif event_type == "unique-values-request" :
11701153 column = content .get ("column" )
11711154 unique = (
@@ -1176,3 +1159,22 @@ def _handle_comm_msg(self, _, content, _buffs):
11761159 "values" : unique ,
11771160 }
11781161 self .send (answer )
1162+
1163+ @observe ("_transforms" )
1164+ def _on_transforms_changed (self , change ):
1165+ # Transforms is an array of dicts.
1166+ frontend_transforms = change ["new" ]
1167+
1168+ self ._transformed_data = None
1169+ data = self .__dataframe_reference
1170+
1171+ if frontend_transforms :
1172+ self ._transformed_data = self ._apply_frontend_transforms (
1173+ frontend_transforms , data
1174+ )
1175+ data = self ._transformed_data
1176+
1177+ self ._row_count = len (data ) # Sync to frontend.
1178+
1179+ # Should only request a tick if the transforms have changed.
1180+ self .tick ()
0 commit comments