Skip to content

Commit 5ec71cc

Browse files
committed
DOCS-quantopian#22: Move Events API into features
Signed-off-by: Richard Lin <[email protected]>
1 parent b24a3bf commit 5ec71cc

File tree

1 file changed

+38
-40
lines changed

1 file changed

+38
-40
lines changed

README.rst

Lines changed: 38 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,44 @@ multi-indexed DataFrame:
9191
:target: https://s3.amazonaws.com/quantopian-forums/pipeline_with_qgrid.png
9292
:width: 100px
9393

94+
**Events API**:
95+
The Events API provides ``on`` and ``off`` methods which can be used to attach/detach event handlers. They're available
96+
on both the ``modin_spreadsheet`` module (see `qgrid.on <https://qgrid.readthedocs.io/en/latest/#qgrid.on>`_), and on
97+
individual SpreadsheetWidget instances (see `qgrid.QgridWidget.on <https://qgrid.readthedocs.io/en/latest/#qgrid.QgridWidget.on>`_).
98+
99+
Having the ability to attach event handlers allows us to do some interesting things in terms of using modin-spreadsheet
100+
in conjunction with other widgets/visualizations. One example is using modin-spreadsheet to filter a DataFrame that's
101+
also being displayed by another visualization.
102+
103+
Here's how you would use the ``on`` method to print the DataFrame every time there's a change made::
104+
105+
def handle_json_updated(event, spreadsheet_widget):
106+
# exclude 'viewport_changed' events since that doesn't change the DataFrame
107+
if (event['triggered_by'] != 'viewport_changed'):
108+
print(spreadsheet_widget.get_changed_df())
109+
110+
spreadsheet_widget.on('json_updated', handle_json_updated)
111+
112+
Here are some examples of how the Events API can be applied.
113+
114+
This shows how you can use modin-spreadsheet to filter the data that's being shown by a matplotlib scatter plot:
115+
116+
.. figure:: docs/images/linked_to_scatter.gif
117+
:align: left
118+
:target: docs/images/linked_to_scatter.gif
119+
:width: 600px
120+
121+
A brief demo showing modin-spreadsheet hooked up to a matplotlib plot
122+
123+
This shows how events are recorded in real-time. The demo is recorded on JupyterLab, which is not yet supported, but
124+
the functionality is the same on Jupyter Notebook.
125+
126+
.. figure:: docs/images/events_api.gif
127+
:align: left
128+
:target: docs/images/events_api.gif
129+
:width: 600px
130+
131+
A brief demo showing modin-spreadsheet's events api
94132

95133
Running from source & testing your changes
96134
------------------------------------------
@@ -136,46 +174,6 @@ Running automated tests
136174
There is a small python test suite which can be run locally by running the command ``pytest`` in the root folder
137175
of the repository.
138176

139-
Events API
140-
----------
141-
The Events API provides ``on`` and ``off`` methods which can be used to attach/detach event handlers. They're available
142-
on both the ``modin_spreadsheet`` module (see `qgrid.on <https://qgrid.readthedocs.io/en/latest/#qgrid.on>`_), and on
143-
individual SpreadsheetWidget instances (see `qgrid.QgridWidget.on <https://qgrid.readthedocs.io/en/latest/#qgrid.QgridWidget.on>`_).
144-
145-
Having the ability to attach event handlers allows us to do some interesting things in terms of using modin-spreadsheet
146-
in conjunction with other widgets/visualizations. One example is using modin-spreadsheet to filter a DataFrame that's
147-
also being displayed by another visualization.
148-
149-
Here's how you would use the ``on`` method to print the DataFrame every time there's a change made::
150-
151-
def handle_json_updated(event, spreadsheet_widget):
152-
# exclude 'viewport_changed' events since that doesn't change the DataFrame
153-
if (event['triggered_by'] != 'viewport_changed'):
154-
print(spreadsheet_widget.get_changed_df())
155-
156-
spreadsheet_widget.on('json_updated', handle_json_updated)
157-
158-
Here are some examples of how the Events API can be applied.
159-
160-
This shows how you can use modin-spreadsheet to filter the data that's being shown by a matplotlib scatter plot:
161-
162-
.. figure:: docs/images/linked_to_scatter.gif
163-
:align: left
164-
:target: docs/images/linked_to_scatter.gif
165-
:width: 600px
166-
167-
A brief demo showing modin-spreadsheet hooked up to a matplotlib plot
168-
169-
This shows how events are recorded in real-time. The demo is recorded on JupyterLab, which is not yet supported, but
170-
the functionality is the same on Jupyter Notebook.
171-
172-
.. figure:: docs/images/events_api.gif
173-
:align: left
174-
:target: docs/images/events_api.gif
175-
:width: 600px
176-
177-
A brief demo showing modin-spreadsheet's events api
178-
179177
Contributing
180178
------------
181179
All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. See the

0 commit comments

Comments
 (0)