modin-project / modin-spreadsheet Goto Github PK
View Code? Open in Web Editor NEWThis project forked from quantopian/qgrid
An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks
License: Apache License 2.0
This project forked from quantopian/qgrid
An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks
License: Apache License 2.0
Common UserWarnings may be off-putting for newcomers. DataFrame.to_json
is a function that defaults to pandas implementation and is called whenever the spreadsheet rows are rendered.
Sorting on the widget also causes a UserWarning.
Should we ignore all UserWarnings in the spreadsheet API?
python 3.10.11 h11da44f_0 intel
pip install "modin[spreadsheet]"
aiohttp==3.8.5
aiohttp-cors==0.7.0
aiosignal==1.3.1
ansicon==1.89.0
anyio==3.7.1
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
asn1crypto @ file:///home/conda/feedstock_root/build_artifacts/asn1crypto_1647369152656/work
asttokens==2.2.1
async-lru==2.0.3
async-timeout==4.0.2
attrs==23.1.0
Babel==2.12.1
backcall==0.2.0
beautifulsoup4==4.12.2
bleach==6.0.0
blessed==1.20.0
boto3==1.28.10
botocore==1.31.10
brotlipy @ file:///D:/bld/brotlipy_1666764804378/work
cachetools==5.3.1
certifi==2023.5.7
cffi @ file:///D:/bld/cffi_1671179506518/work
chardet @ file:///D:/bld/chardet_1669990505384/work
charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1678108872112/work
click==8.1.6
cloudpickle==2.2.1
colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1666700638685/work
colorful==0.5.5
comm==0.1.3
conda_package_streaming @ file:///home/conda/feedstock_root/build_artifacts/conda-package-streaming_1685101166527/work
cryptography @ file:///D:/bld/cryptography-split_1685659586775/work
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
Cython @ file:///D:/bld/cython_1685025169174/work
dask==2023.7.1
debugpy==1.6.7
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.7
distributed==2023.7.1
dpcpp-llvm-spirv==0.0.0+dev
dpctl==0.14.5+24.g33c241c01
dpnp==0.12.1
exceptiongroup==1.1.2
executing==1.2.0
fastjsonschema==2.18.0
filelock==3.12.2
fqdn==1.5.1
frozenlist==1.4.0
fsspec==2023.6.0
funcsigs==1.0.2
google-api-core==2.11.1
google-auth==2.22.0
googleapis-common-protos==1.59.1
gpustat==1.1
grpcio==1.56.2
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1663625384323/work
importlib-metadata==6.8.0
ipykernel==6.25.0
ipython==8.14.0
ipython-genutils==0.2.0
ipywidgets==7.0.0
isoduration==20.11.0
jedi==0.18.2
Jinja2==3.1.2
jinxed==1.2.0
jmespath==1.0.1
joblib @ file:///home/conda/feedstock_root/build_artifacts/joblib_1663332044897/work
json5==0.9.14
jsonpatch @ file:///home/conda/feedstock_root/build_artifacts/jsonpatch_1632759296524/work
jsonpointer==2.0
jsonschema==4.18.4
jsonschema-specifications==2023.7.1
jupyter==1.0.0
jupyter-console==6.6.3
jupyter-events==0.6.3
jupyter-lsp==2.2.0
jupyter_client==8.3.0
jupyter_core==5.3.1
jupyter_server==2.7.0
jupyter_server_terminals==0.4.4
jupyterlab==4.0.3
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.8
jupyterlab_server==2.24.0
kiwisolver @ file:///D:/bld/kiwisolver_1666805768319/work
llvmlite==0.40.0
locket==1.0.0
MarkupSafe==2.1.3
matplotlib-inline==0.1.6
menuinst @ file:///D:/bld/menuinst_1666839998718/work
mistune==3.0.1
mkl-fft==1.3.6
mkl-random==1.2.2
mkl-service==2.4.0
mkl-umath==0.1.1
modin==0.23.0
modin-spreadsheet==0.1.2
mpi4py-mpich==3.1.2
msgpack==1.0.5
multidict==6.0.4
nbclient==0.8.0
nbconvert==7.7.3
nbformat==5.9.1
nest-asyncio==1.5.6
notebook==7.0.0
notebook_shim==0.2.3
numba @ file:///D:/bld/numba_1686793785624/work
numba-dpex==0.21.1+1.gffee89509
numpy==1.24.3
nvidia-ml-py==12.535.77
opencensus==0.11.2
opencensus-context==0.1.3
overrides==7.3.1
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1681337016113/work
pandas==2.0.3
pandocfilters==1.5.0
parso==0.8.3
partd==1.4.0
pickleshare==0.7.5
platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1687097136512/work
pluggy @ file:///home/conda/feedstock_root/build_artifacts/pluggy_1667232663820/work
plumbum==1.8.2
pooch @ file:///home/conda/feedstock_root/build_artifacts/pooch_1679580333621/work
prometheus-client==0.17.1
prompt-toolkit==3.0.39
protobuf==4.23.4
psutil==5.9.5
pure-eval==0.2.2
py-spy==0.3.14
pyarrow==12.0.1
pyasn1==0.5.0
pyasn1-modules==0.3.0
pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1636257122734/work
pydantic==1.10.12
Pygments==2.15.1
pyOpenSSL @ file:///home/conda/feedstock_root/build_artifacts/pyopenssl_1685514481738/work
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1687132014935/work
PySocks @ file:///D:/bld/pysocks_1648857426124/work
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work
python-json-logger==2.0.7
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1680088766131/work
pywin32==304
pywinpty==2.0.11
PyYAML @ file:///D:/bld/pyyaml_1666772550103/work
pyzmq==25.1.0
qtconsole==5.4.3
QtPy==2.3.1
ray==2.6.1
referencing==0.30.0
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1684774241324/work
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.9.2
rpyc==4.1.5
rsa==4.9
ruamel.yaml @ file:///D:/bld/ruamel.yaml_1686994025923/work
ruamel.yaml.clib @ file:///D:/bld/ruamel.yaml.clib_1670412994006/work
s3transfer==0.6.1
scikit-learn @ file:///D:/bld/scikit-learn_1685023828887/work
scipy==1.10.1
Send2Trash==1.8.2
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
smart-open==6.3.0
sniffio==1.3.0
sortedcontainers==2.4.0
soupsieve==2.4.1
stack-data==0.6.2
TBB==0.2
tblib==2.0.0
terminado==0.17.1
threadpoolctl @ file:///home/conda/feedstock_root/build_artifacts/threadpoolctl_1643647933166/work
tinycss2==1.2.1
tomli==2.0.1
toolz @ file:///home/conda/feedstock_root/build_artifacts/toolz_1657485559105/work
tornado==6.3.2
traitlets==5.9.0
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1685704949284/work
tzdata==2023.3
unidist==0.4.1
uri-template==1.3.0
urllib3==1.26.16
virtualenv==20.21.0
wcwidth==0.2.6
webcolors==1.13
webencodings==0.5.1
websocket-client==1.6.1
widgetsnbextension==3.0.8
win-inet-pton @ file:///D:/bld/win_inet_pton_1666755058235/work
wincertstore==0.2
yarl==1.9.2
zict==3.0.0
zipp==3.16.2
zstandard==0.19.0
Error after installing modin-spreadsheet when I followed README to execute jupyter nbextension enable --py --sys-prefix modin_spreadsheet
:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\Scripts\jupyter-nbextension-script.py", line 9, in
sys.exit(main())
File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_core\application.py", line 277, in launch_instance
return super().launch_instance(argv=argv, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\traitlets\config\application.py", line 1043, in launch_instance
app.start()
File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 972, in start
super().start()
File "C:\ProgramData\Anaconda3\lib\site-packages\jupyter_core\application.py", line 266, in start
self.subapp.start()
File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 882, in start
self.toggle_nbextension_python(self.extra_args[0])
File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 855, in toggle_nbextension_python
return toggle(module,
File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 470, in enable_nbextension_python
return _set_nbextension_state_python(True, module, user, sys_prefix,
File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 368, in _set_nbextension_state_python
m, nbexts = _get_nbextension_metadata(module)
File "C:\ProgramData\Anaconda3\lib\site-packages\notebook\nbextensions.py", line 1107, in _get_nbextension_metadata
m = import_item(module)
File "C:\ProgramData\Anaconda3\lib\site-packages\traitlets\utils\importstring.py", line 38, in import_item
return import(parts[0])
ModuleNotFoundError: No module named 'modin_spreadsheet'
pip install "modin[all]"
pip install --upgrade tornado>=6.2.0
pip install --upgrade jupyter-client>=7.4.4
pip install "modin[spreadsheet]"
pip install --upgrade ipywidgets==7.0.0
jupyter nbextension enable --py --sys-prefix modin_spreadsheet
I downgraded ipywidgets, which was suggested by #49.
$ python --version
$ pip freeze
or $ conda list
(please include modin-spreadsheet, notebook, and jupyterlab versions)$ jupyter labextension list
[Open Browser Console for more detailed log - Double click to close this message]
Failed to load model class 'ModinSpreadsheetModel' from module 'modin_spreadsheet'
Error: Script error for "modin_spreadsheet"
http://requirejs.org/docs/errors.html#scripterror
at makeError (http://localhost:8888/voila/static/require.min.js:1:1067)
at HTMLScriptElement.onScriptError (http://localhost:8888/voila/static/require.min.js:1:13218)
import modin_spreadsheet
import pandas as pd
df = pd.DataFrame({'A': [1.2, 'foo', 4], 'B': [3, 4, 5]})
df = df.set_index(pd.Index(['bar', 7, 3.2]))
view = modin_spreadsheet.show_grid(df)
view
...
No
...
No
...
Change internal df when column is reordered and record in history.
Column reordering is enabled using the enableColumnReorder
grid option.
Add a method for building modin-spreadsheet through docker
This will help users who might want to use Docker for development. Ex. https://discuss.modin.org/t/show-hide-columns-as-a-toolbar-function/214/3
Section from README.rst
Running the demo notebooks locally
----------------------------------
There are a couple of demo notebooks in the `qgrid-notebooks <https://github.com/quantopian/qgrid-notebooks/>`_ repository
which will help you get familiar with the functionality that qgrid provides. Here are the steps to clone the
qgrid-notebooks repository and open a demo notebook:
#. Install qgrid by following the instructions in the `Installation`_ section above, if you haven't already
#. Clone the qgrid-notebooks repository from GitHub::
git clone https://github.com/quantopian/qgrid-notebooks.git
#. Install the dev requirements for the repository and start the notebook server::
cd qgrid-notebooks
pip install -r requirements_dev.txt
jupyter notebook
#. Click on one of the two notebooks (`index.ipynb <https://github.com/quantopian/qgrid-notebooks/blob/master/index.ipynb>`_ or `experimental.ipynb <https://github.com/quantopian/qgrid-notebooks/blob/master/experimental.ipynb>`_) that you see listed in the notebook UI in your browser.
Also
See the `events notebook <https://mybinder.org/v2/gh/quantopian/qgrid-notebooks/master?filepath=events.ipynb>`_ for more examples of using these new API methods.
Currently, sorts are applied again after a filter is applied. As a performance enhancement, when a more restrictive filter is applied on the df, there is no need to re-sort. This may not be feasible if each additional filter is done on the unfiltered_df rather than the internal df.
We could refactor to apply filters onto the internal df, but this is a trade-off of inefficiency when replaying code and minimizing relevant history code vs. performance of widget.
Use versioneer to do the versioning.
Get rid of remaining irrelevant qgrid references. Add demos including history features.
Button on column header or a right click menu to drop a column.
Rename to command to Condense History
$Python 3.11.9
$ aiofiles==22.1.0 aiosignal==1.3.1 aiosqlite==0.20.0 analytics-python==1.4.post1 anyio==4.3.0 argon2-cffi==23.1.0 argon2-cffi-bindings==21.2.0 arrow==1.3.0 asttokens==2.4.1 async-lru==2.0.4 attrs==23.2.0 Babel==2.15.0 backoff==1.10.0 beautifulsoup4==4.12.3 bleach==6.1.0 certifi==2024.2.2 cffi==1.16.0 chardet==5.2.0 charset-normalizer==3.3.2 click==8.1.7 cloudpickle==3.0.0 cloup==3.0.5 colorama==0.4.6 comm==0.2.2 dask==2024.5.1 dataframe_api_compat==0.2.7 debugpy==1.8.1 decorator==5.1.1 defusedxml==0.7.1 distributed==2024.5.1 entrypoints==0.4 et-xmlfile==1.1.0 executing==2.0.1 fastjsonschema==2.19.1 filelock==3.14.0 fqdn==1.5.1 frozenlist==1.4.1 fsspec==2024.5.0 glcontext==2.5.0 h11==0.14.0 httpcore==1.0.5 httpx==0.27.0 idna==3.7 importlib_metadata==7.1.0 ipykernel==6.29.4 ipysheet==0.7.0 ipython==8.24.0 ipython-genutils==0.2.0 ipywidgets==8.1.2 isoduration==20.11.0 isosurfaces==0.1.2 jedi==0.19.1 Jinja2==3.1.4 json5==0.9.25 jsonpointer==2.4 jsonschema==4.22.0 jsonschema-specifications==2023.12.1 jupyter==1.0.0 jupyter-console==6.6.3 jupyter-events==0.10.0 jupyter-lsp==2.2.5 jupyter-ydoc==0.2.5 jupyter_client==7.4.9 jupyter_core==5.7.2 jupyter_server==2.14.0 jupyter_server_fileid==0.9.2 jupyter_server_terminals==0.5.3 jupyter_server_ydoc==0.8.0 jupyterlab==3.6.7 jupyterlab_pygments==0.3.0 jupyterlab_server==2.27.2 jupyterlab_widgets==3.0.10 locket==1.0.0 manim==0.18.1 ManimPango==0.5.0 mapbox-earcut==1.0.1 markdown-it-py==3.0.0 MarkupSafe==2.1.5 matplotlib-inline==0.1.7 mdurl==0.1.2 mistune==3.0.2 mitoinstaller==0.0.310 mitosheet==0.1.575 moderngl==5.10.0 moderngl-window==2.4.6 modin==0.30.0 modin-spreadsheet==0.1.2 monotonic==1.6 msgpack==1.0.8 multipledispatch==1.0.0 nbclassic==1.1.0 nbclient==0.10.0 nbconvert==7.16.4 nbformat==5.10.4 nest-asyncio==1.6.0 networkx==3.3 notebook==6.5.7 notebook_shim==0.2.4 numpy==1.26.4 openpyxl==3.1.2 overrides==7.7.0 packaging==24.0 pandas==2.2.2 pandocfilters==1.5.1 parso==0.8.4 partd==1.4.2 pillow==10.3.0 platformdirs==4.2.2 plotly==5.22.0 prometheus_client==0.20.0 prompt-toolkit==3.0.43 protobuf==5.27.0 psutil==5.9.8 pure-eval==0.2.2 pyarrow==16.1.0 pycairo==1.26.0 pycparser==2.22 pydub==0.25.1 pyglet==2.0.15 Pygments==2.18.0 pyrr==0.10.3 python-dateutil==2.9.0.post0 python-json-logger==2.0.7 pytz==2024.1 pywin32==306 pywinpty==2.0.13 PyYAML==6.0.1 pyzmq==26.0.3 qtconsole==5.5.2 QtPy==2.4.1 ray==2.20.0 referencing==0.35.1 requests==2.32.2 rfc3339-validator==0.1.4 rfc3986-validator==0.1.1 rich==13.7.1 rpds-py==0.18.1 scipy==1.13.0 screeninfo==0.8.1 Send2Trash==1.8.3 six==1.16.0 skia-pathops==0.8.0.post1 sniffio==1.3.1 sortedcontainers==2.4.0 soupsieve==2.5 srt==3.5.3 stack-data==0.6.3 svgelements==1.9.6 tblib==3.0.0 tenacity==8.3.0 termcolor==2.4.0 terminado==0.18.1 tinycss2==1.3.0 toolz==0.12.1 tornado==6.4 tqdm==4.66.4 traitlets==5.14.3 types-python-dateutil==2.9.0.20240316 typing_extensions==4.11.0 tzdata==2024.1 uri-template==1.3.0 urllib3==2.2.1 watchdog==4.0.0 wcwidth==0.2.13 webcolors==1.13 webencodings==0.5.1 websocket-client==1.8.0 widgetsnbextension==4.0.10 y-py==0.6.2 ypy-websocket==0.8.4 zict==3.0.0 zipp==3.19.0
cant import modin.spreedsheat after pip install modin[all]
modin.spreedsheat doesnt even exist then
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[11], line 1
----> 1 import modin.spreadsheet
ModuleNotFoundError: No module named 'modin.spreadsheet'
this also doesnt work:
# This notebook expects that Modin and Ray are installed, e.g. by `pip install modin[ray]`.
# For all ways to install Modin see official documentation at:
# https://modin.readthedocs.io/en/latest/installation.html
# modin-spreadsheet is the pip distribution name, modin_spreadsheet is the import name
import modin_spreadsheet
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[8], line 7
1 # This notebook expects that Modin and Ray are installed, e.g. by `pip install modin[ray]`.
2 # For all ways to install Modin see official documentation at:
3 # https://modin.readthedocs.io/en/latest/installation.html
4
5
6 # modin-spreadsheet is the pip distribution name, modin_spreadsheet is the import name
----> 7 import modin_spreadsheet
File C:\Python311\Lib\site-packages\modin_spreadsheet\__init__.py:6
3 except ImportError:
4 raise ImportError("Please run `pip install modin`")
----> 6 from .grid import (
7 enable,
8 disable,
9 set_defaults,
10 on,
11 off,
12 set_grid_option,
13 show_grid,
14 SpreadsheetWidget,
15 )
16 from ._version import get_versions
19 def _jupyter_nbextension_paths():
File C:\Python311\Lib\site-packages\modin_spreadsheet\grid.py:558
554 else:
555 return str(x)
--> 558 @widgets.register()
559 class SpreadsheetWidget(widgets.DOMWidget):
560 """
561 The widget class which is instantiated by the ``show_grid`` method. This
562 class can be constructed directly but that's not recommended because
(...)
598
599 """
601 _view_name = Unicode("ModinSpreadsheetView").tag(sync=True)
TypeError: register() missing 1 required positional argument: 'widget'
have I done my setup wrong? hasthe documentation changed or are the examples outdated?
modin_spreadsheet
works with Ray=1.1.0 but not Ray=1.2.0
In Jupyter notebook, the kernel dies when spreadsheet = modin_spreadsheet.show_grid(df, show_toolbar=True, grid_options={'forceFitColumns': False})
called
There's no obvious error in the browser console or notebook server log
When running pytest, all tests fail due to Broken Pipe
.
More investigation needs to be done
The history cell will output code that might error if it uses columns with number names because of how we format the variable names.
The sort column code snippet is currently:
df.sort_values('{self._sort_field}', ascending={self._sort_ascending}, inplace=True)
This assumes the column name is always a string. To allow columns with numbers as the name, it should be:
df.sort_values({repr(self._sort_field)}, ascending={self._sort_ascending}, inplace=True)
This should be fixed for wherever there is a use of '{variable}' for columns or rows.
What did you expect to happen?
If you create a spreadsheet widget and display in two different cells, then edit the cells in one of the widgets. The 2nd widget should update with the same value automatically.
What happened instead?
The 2nd widget doesn't update with the value unless you change the viewport and force a re-render.
Added update_table
function to end of edit_cell
logic in PR#17
I don't see displaying the same widgets multiple times as a common use case, issue is not high priority.
If I have an all number column, then convert a cell value to a string. When I try to dropdown the filter on the column, the whole widget freezes because column is still assumed to be number?
if all(np.isnan(col_series)):
is called leading to TypeError
Add button or API to filter history code to only statements that are relevant to final state of the changed df.
History cell and internal history state should be changed.
Operating System:
Python Version: 3.10.4
How did you install modin-spreadsheet: pip
Python packages:
```
aiohttp==3.8.4
aiohttp-cors==0.7.0
aiosignal==1.3.1
altair==4.2.2
anyio==3.6.2
appnope==0.1.3
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
asn1crypto==1.5.1
asttokens==2.2.1
async-timeout==4.0.2
attrs==22.2.0
autopep8==2.0.0
Babel==2.11.0
backcall==0.2.0
backoff==2.1.2
bcrypt==4.0.1
beautifulsoup4==4.11.1
big==0.6.16
black==22.10.0
bleach==5.0.1
blessed==1.19.1
blinker==1.5
boto==2.49.0
boto3==1.26.80
botocore==1.29.80
cachetools==5.3.0
certifi==2022.12.7
cffi==1.15.1
cfgv==3.3.1
charset-normalizer==2.1.1
click==8.0.4
cloudpickle==2.2.0
colorful==0.5.4
contourpy==1.0.6
cryptography==39.0.1
cycler==0.11.0
dask==2022.10.2
db-dtypes==1.0.5
debugpy==1.6.3
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.6
distributed==2022.10.2
entrypoints==0.4
exceptiongroup==1.1.0
execnet==1.9.0
executing==1.2.0
fabric==2.7.1
fastjsonschema==2.16.2
filelock==3.9.0
fonttools==4.38.0
frozenlist==1.3.3
fsspec==2023.1.0
gitdb==4.0.10
GitPython==3.1.31
google-api-core==2.11.0
google-auth==2.16.1
google-cloud-bigquery==3.6.0
google-cloud-core==2.3.2
google-crc32c==1.5.0
google-resumable-media==2.4.1
googleapis-common-protos==1.58.0
gpustat==1.0.0
grpcio==1.51.3
grpcio-status==1.51.3
HeapDict==1.0.1
identify==2.5.17
idna==3.4
importlib-metadata==6.0.0
iniconfig==2.0.0
invoke==1.7.3
ipdb==0.13.9
ipycytoscape==1.3.3
ipykernel==6.16.0
ipython==8.7.0
ipython-genutils==0.2.0
ipywidgets==8.0.4
isort==5.10.1
jedi==0.18.2
Jinja2==3.1.2
jmespath==1.0.1
json5==0.9.10
jsonschema==4.17.0
jupyter==1.0.0
jupyter-client==7.3.4
jupyter-console==6.4.4
jupyter-core==4.11.1
jupyter-server==1.23.0
jupyterlab==3.5.0
jupyterlab-pygments==0.2.2
jupyterlab-widgets==3.0.3
jupyterlab_server==2.16.3
kiwisolver==1.4.4
locket==1.0.0
lz4==4.0.2
markdown-it-py==2.2.0
MarkupSafe==2.1.1
matplotlib==3.6.2
matplotlib-inline==0.1.6
mdurl==0.1.2
mistune==2.0.4
-e git+ssh://[email protected]/mvashishtha/modin.git@6eba2774220c64bcfdf8b036d543df5486f1e157#egg=modin
modin-spreadsheet @ git+https://github.com/modin-project/modin-spreadsheet.git@49ffd89f683f54c311867d602c55443fb11bf2a5
monotonic==1.6
mpi4py-mpich==3.1.2
msgpack==1.0.4
multidict==6.0.4
mypy-extensions==0.4.3
nbclassic==0.4.8
nbclient==0.7.0
nbconvert==7.2.3
nbformat==5.7.0
nest-asyncio==1.5.6
nodeenv==1.7.0
notebook==6.5.2
notebook_shim==0.2.2
numpy==1.24.2
nvidia-ml-py==11.495.46
opencensus==0.11.0
opencensus-context==0.1.3
oscrypto==1.3.0
packaging==23.0
pandas==1.5.3
pandocfilters==1.5.0
paramiko==2.11.0
parso==0.8.3
partd==1.3.0
pathlib2==2.3.7.post1
pathspec==0.10.2
pexpect==4.8.0
pickleshare==0.7.5
Pillow==9.4.0
platformdirs==2.5.3
pluggy==1.0.0
plumbum==1.8.1
ponder @ file:///Users/maheshvashishtha/software_sources/soda/dist/ponder-0.0.3-py3-none-any.whl
pre-commit==3.0.4
prettytable==3.4.1
prometheus-client==0.13.1
prompt-toolkit==3.0.36
proto-plus==1.22.2
protobuf==3.20.3
psutil==5.9.4
ptyprocess==0.7.0
pure-eval==0.2.2
py==1.11.0
py-spy==0.3.14
pyarrow==10.0.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycodestyle==2.10.0
pycparser==2.21
pycryptodomex==3.17
pydantic==1.10.2
pydeck==0.8.0
Pygments==2.13.0
PyJWT==2.6.0
Pympler==1.0.1
PyNaCl==1.5.0
pyOpenSSL==23.0.0
pyparsing==3.0.9
pyrsistent==0.19.2
pytest==7.2.1
pytest-runtime-xfail==1.0.3
pytest-xdist==3.2.0
python-dateutil==2.8.2
pytz==2022.7.1
pytz-deprecation-shim==0.1.0.post0
PyYAML==6.0
pyzmq==24.0.1
qgrid==1.3.1
qtconsole==5.4.0
QtPy==2.3.0
ray==2.1.0
redis==3.5.3
requests==2.28.2
rich==13.3.2
rpyc==4.1.5
rsa==4.9
s3transfer==0.6.0
segment==0.2.0
segment-analytics-python==2.2.1
semver==2.13.0
Send2Trash==1.8.0
six==1.16.0
smart-open==6.2.0
smmap==5.0.0
sniffio==1.3.0
snowflake-connector-python==3.0.0
sortedcontainers==2.4.0
soupsieve==2.3.2.post1
spectate==1.0.1
sqlglot==11.2.3
sqlparse==0.4.3
stack-data==0.6.2
streamlit==1.19.0
tblib==1.7.0
terminado==0.17.0
tinycss2==1.2.1
toml==0.10.2
tomli==2.0.1
toolz==0.12.0
tornado==6.1
traitlets==5.7.0
typing_extensions==4.5.0
tzdata==2022.7
tzlocal==4.2
unidist==0.2.2
urllib3==1.26.14
validators==0.20.0
virtualenv==20.16.6
wcwidth==0.2.5
webencodings==0.5.1
websocket-client==1.4.2
widgetsnbextension==4.0.5
yarl==1.8.2
zict==2.2.0
zipp==3.15.0
```
Jupyter lab packages (if applicable): $ jupyter labextension list
JupyterLab v3.5.0
/Users/maheshvashishtha/opt/anaconda3/envs/ponder-product-testing/share/jupyter/labextensions
jupyter-cytoscape v1.3.3 enabled OK
jupyterlab_pygments v0.2.2 enabled OK (python, jupyterlab_pygments)
@jupyter-widgets/jupyterlab-manager v5.0.3 enabled OK (python, jupyterlab_widgets)
/usr/local/share/jupyter/labextensions
jupyterlab-plotly v5.6.0 enabled OK
I'm trying to use modin-spreadsheet. Following the README instructions, I tried jupyter nbextension enable --py --sys-prefix modin_spreadsheet
and jupyter nbextension enable --py --sys-prefix widgetsnbextension
. The latter worked but the first gives
Enabling notebook extension modin_spreadsheet/extension...
- Validating: problems found:
- require? X modin_spreadsheet/extension
then running the notebook fails with an error starting with Failed to load model class 'ModinSpreadsheetModel' from module 'modin_spreadsheet'
.
[Open Browser Console for more detailed log - Double click to close this message]
Failed to load model class 'ModinSpreadsheetModel' from module 'modin_spreadsheet'
Error: No version of module modin_spreadsheet is registered
at f.loadClass (http://localhost:8888/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/134.bcbea9feb6e7c4da7530.js?v=bcbea9feb6e7c4da7530:1:74856)
at f.loadModelClass (http://localhost:8888/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:10729)
at f._make_model (http://localhost:8888/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:7517)
at f.new_model (http://localhost:8888/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:5137)
at f.handle_comm_open (http://localhost:8888/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.3e1e5adfd821b9b96340.js?v=3e1e5adfd821b9b96340:1:3894)
at _handleCommOpen (http://localhost:8888/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/134.bcbea9feb6e7c4da7530.js?v=bcbea9feb6e7c4da7530:1:73393)
at b._handleCommOpen (http://localhost:8888/static/lab/jlab_core.e37d4bbc8c984154bc26.js?v=e37d4bbc8c984154bc26:2:1001251)
at async b._handleMessage (http://localhost:8888/static/lab/jlab_core.e37d4bbc8c984154bc26.js?v=e37d4bbc8c984154bc26:2:1003241)
pip install git+https://github.com/modin-project/modin-spreadsheet.git@49ffd89f683f54c311867d602c55443fb11bf2a5
jupyter nbextension enable --py --sys-prefix widgetsnbextension
jupyter nbextension enable --py --sys-prefix modin_spreadsheet
jupyter notebook
import modin.pandas as pd
import modin_spreadsheet
df = pd.DataFrame([1, 2])
modin_spreadsheet.show_grid(df)
First when I googled the error I saw something about ipywidgets so I tried to install ipywidgets 7.0. That worked, except ipywidgets 7.0 didn't work in python 3.10 because it had some from collections
import that were invalid, so I had to switch to python 3.8, and then I was able to show_grid
with modin_spreadsheet
(I think? now I can't reproduce this in a python 3.8 environment, and I don't know what's wrong.). But I should be able to use python 3.10 and ipywidgets 7.0 and run the nbextension
enable commands.
Also need to add fixes to apply_history
$ python --version
= Python 3.7.10$ pip freeze
or $ conda list
(please include modin-spreadsheet, notebook, and jupyterlab versions)aiobotocore==1.3.0
aiohttp==3.7.4.post0
aiohttp-cors==0.7.0
aioitertools==0.7.1
aioredis==1.3.1
alembic @ file:///home/conda/feedstock_root/build_artifacts/alembic_1613901514078/work
anyio @ file:///home/conda/feedstock_root/build_artifacts/anyio_1612745536224/work/dist
argon2-cffi @ file:///home/conda/feedstock_root/build_artifacts/argon2-cffi_1602546578258/work
async-generator==1.10
async-timeout==3.0.1
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1605083924122/work
Babel @ file:///home/conda/feedstock_root/build_artifacts/babel_1605182336601/work
backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
backports.functools-lru-cache==1.6.1
bleach @ file:///home/conda/feedstock_root/build_artifacts/bleach_1612213472466/work
blessings==1.7
blinker==1.4
botocore==1.20.49
brotlipy==0.7.0
cachetools==4.2.2
certifi==2020.12.5
certipy==0.1.3
cffi @ file:///home/conda/feedstock_root/build_artifacts/cffi_1613413867554/work
chardet @ file:///home/conda/feedstock_root/build_artifacts/chardet_1610093487176/work
click==8.0.1
colorama==0.4.4
colorful==0.5.4
cryptography @ file:///home/conda/feedstock_root/build_artifacts/cryptography_1612993734132/work
decorator==4.4.2
defusedxml==0.6.0
entrypoints @ file:///home/conda/feedstock_root/build_artifacts/entrypoints_1602701733603/work/dist/entrypoints-0.3-py2.py3-none-any.whl
filelock==3.0.12
fsspec==2021.5.0
google-api-core==1.29.0
google-auth==1.30.1
googleapis-common-protos==1.53.0
gpustat==0.6.0
grpcio==1.38.0
hiredis==2.0.0
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1593328102638/work
importlib-metadata @ file:///home/conda/feedstock_root/build_artifacts/importlib-metadata_1610355166636/work
ipykernel @ file:///home/conda/feedstock_root/build_artifacts/ipykernel_1613852948592/work/dist/ipykernel-5.5.0-py3-none-any.whl
ipython @ file:///home/conda/feedstock_root/build_artifacts/ipython_1612487002309/work
ipython-genutils==0.2.0
ipywidgets @ file:///home/conda/feedstock_root/build_artifacts/ipywidgets_1609995587151/work
jedi @ file:///home/conda/feedstock_root/build_artifacts/jedi_1610146791823/work
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1612119311452/work
jmespath==0.10.0
json5 @ file:///home/conda/feedstock_root/build_artifacts/json5_1600692310011/work
jsonschema==3.2.0
jupyter==1.0.0
jupyter-client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1610375432619/work
jupyter-console==6.4.0
jupyter-core @ file:///home/conda/feedstock_root/build_artifacts/jupyter_core_1612125257337/work
jupyter-offlinenotebook @ file:///home/conda/feedstock_root/build_artifacts/jupyter-offlinenotebook_1610833110941/work
jupyter-resource-usage @ file:///home/conda/feedstock_root/build_artifacts/jupyter-resource-usage_1608550684149/work
jupyter-server @ file:///home/conda/feedstock_root/build_artifacts/jupyter_server_1613709403212/work
jupyter-telemetry @ file:///home/conda/feedstock_root/build_artifacts/jupyter_telemetry_1605173804246/work
jupyterhub @ file:///home/conda/feedstock_root/build_artifacts/jupyterhub-feedstock_1607688225833/work
jupyterlab @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_1612296988614/work
jupyterlab-pygments @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_pygments_1601375948261/work
jupyterlab-server @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_server_1613760084674/work
jupyterlab-widgets @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_widgets_1609173350931/work
Mako @ file:///home/conda/feedstock_root/build_artifacts/mako_1610659158978/work
MarkupSafe @ file:///home/conda/feedstock_root/build_artifacts/markupsafe_1610127564475/work
mistune @ file:///home/conda/feedstock_root/build_artifacts/mistune_1610112870915/work
modin @ file:///home/jovyan
modin-spreadsheet==0.1.2
msgpack==1.0.2
multidict==5.1.0
nbclassic @ file:///home/conda/feedstock_root/build_artifacts/nbclassic_1610352513187/work
nbclient @ file:///home/conda/feedstock_root/build_artifacts/nbclient_1612903843315/work
nbconvert @ file:///home/conda/feedstock_root/build_artifacts/nbconvert_1605401831777/work
nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1611005694671/work
nest-asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1605195931949/work
notebook @ file:///home/conda/feedstock_root/build_artifacts/notebook_1610575319689/work
nteract-on-jupyter==2.1.3
numpy==1.20.3
nvidia-ml-py3==7.352.0
oauthlib==3.0.1
opencensus==0.7.13
opencensus-context==0.1.2
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1612459636436/work
pamela==1.0.0
pandas==1.2.4
pandocfilters==1.4.2
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1607618318316/work
pexpect==4.8.0
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602535628301/work
prometheus-client @ file:///home/conda/feedstock_root/build_artifacts/prometheus_client_1605543085815/work
prompt-toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1613068548426/work
protobuf==3.17.2
psutil @ file:///home/conda/feedstock_root/build_artifacts/psutil_1610127094245/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
py-spy==0.3.7
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1593275161868/work
pycurl==7.43.0.6
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1613412098605/work
PyJWT @ file:///home/conda/feedstock_root/build_artifacts/pyjwt_1610910308735/work
pyOpenSSL @ file:///home/conda/feedstock_root/build_artifacts/pyopenssl_1608055815057/work
pyparsing==2.4.7
pyrsistent @ file:///home/conda/feedstock_root/build_artifacts/pyrsistent_1610146801408/work
PySocks @ file:///home/conda/feedstock_root/build_artifacts/pysocks_1610291444829/work
python-dateutil==2.8.1
python-editor==1.0.4
python-json-logger @ file:///home/conda/feedstock_root/build_artifacts/python-json-logger_1602545356084/work
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1612179539967/work
PyYAML==5.4.1
pyzmq @ file:///home/conda/feedstock_root/build_artifacts/pyzmq_1613478743724/work
qtconsole==5.1.0
QtPy==1.9.0
ray==1.1.0
redis==3.5.3
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1608156231189/work
rsa==4.7.2
ruamel.yaml @ file:///home/conda/feedstock_root/build_artifacts/ruamel.yaml_1610291373612/work
ruamel.yaml.clib @ file:///home/conda/feedstock_root/build_artifacts/ruamel.yaml.clib_1610146839777/work
s3fs==2021.5.0
Send2Trash==1.5.0
six @ file:///home/conda/feedstock_root/build_artifacts/six_1590081179328/work
sniffio @ file:///home/conda/feedstock_root/build_artifacts/sniffio_1610318316464/work
SQLAlchemy @ file:///home/conda/feedstock_root/build_artifacts/sqlalchemy_1612225082967/work
terminado @ file:///home/conda/feedstock_root/build_artifacts/terminado_1609794176029/work
testpath==0.4.4
tornado @ file:///home/conda/feedstock_root/build_artifacts/tornado_1610094704591/work
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1602771532708/work
typing-extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1602702424206/work
urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1611695416663/work
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1600965781394/work
webencodings==0.5.1
widgetsnbextension @ file:///home/conda/feedstock_root/build_artifacts/widgetsnbextension_1603129364725/work
wrapt==1.12.1
yarl==1.6.3
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1603668650351/work
jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~/examples/spreadsheet$```
* Jupyter lab packages (if applicable): `$ jupyter labextension list`
```jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~/examples/spreadsheet$ jupyter labextension list
JupyterLab v3.0.7
/srv/conda/envs/notebook/share/jupyter/labextensions
jupyter-offlinenotebook v0.2.1 enabled OK
@jupyter-widgets/jupyterlab-manager v3.0.0 enabled OK (python, jupyterlab_widgets)
@jupyter-server/resource-usage v0.5.0 enabled OK (python, jupyter-resource-usage)
jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~/examples/spreadsheet$```
### Description of Issue
* I created a binder to see the Mondin spreadsheet in action in a hosted cloud environment. I created this binder: https://hub-binder.mybinder.ovh/user/modin-project-modin-hw4zx31y/notebooks/examples/spreadsheet/tutorial.ipynb
* The crucial Notebook cell where the spreadsheet should be rendered does not in fact render the spreadsheet. Even when I call `display(spreadsheet)`
Nothing happens.
### Reproduction Steps
1. Visit Mondin homepage, http://modin.org/
2. Click on binder icon (https://mybinder.org/v2/gh/modin-project/modin/master)
3. Wait for the build to finish.
4. Follow instructions regarding the installation of modin and ray from requirements.txt
5. Start walking through the notebook
### What steps have you taken to resolve this already?
When the naken "spreadsheet" instance in the notebook cell did nothing, I tried calling "display(spreadsheet)" but that made no difference.
### Anything else?
Here is the log of the installation script:
```jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~$ ls
asv_bench commitlint.config.js examples modin requirements-dev.txt stress_tests
ci docker LICENSE NOTICE scripts versioneer.py
CODE_OF_CONDUCT.md docs LICENSE_HEADER README.md setup.cfg
CODEOWNERS environment-dev.yml MANIFEST.in requirements setup.py
jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~$ cd examples/spreadsheet/
jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~/examples/spreadsheet$ ls
requirements.txt tutorial.ipynb
jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~/examples/spreadsheet$ pip install -r requirements.txt
Collecting git+https://github.com/modin-project/modin (from -r requirements.txt (line 3))
Cloning https://github.com/modin-project/modin to /tmp/pip-req-build-8fuh2x_p
Running command git clone -q https://github.com/modin-project/modin /tmp/pip-req-build-8fuh2x_p
Collecting s3fs
Downloading s3fs-2021.5.0-py3-none-any.whl (24 kB)
Collecting ray==1.1.0
Downloading ray-1.1.0-cp37-cp37m-manylinux2014_x86_64.whl (48.5 MB)
|████████████████████████████████| 48.5 MB 27.5 MB/s
Collecting modin-spreadsheet
Downloading modin_spreadsheet-0.1.2-py2.py3-none-any.whl (1.8 MB)
|████████████████████████████████| 1.8 MB 29.0 MB/s
Requirement already satisfied: pandas==1.2.4 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from modin==0.9.1+68.g6475c9e->-r requirements.txt (line 3)) (1.2.4)
Requirement already satisfied: packaging in /srv/conda/envs/notebook/lib/python3.7/site-packages (from modin==0.9.1+68.g6475c9e->-r requirements.txt (line 3)) (20.9)
Requirement already satisfied: numpy>=1.16.5 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from modin==0.9.1+68.g6475c9e->-r requirements.txt (line 3)) (1.20.3)
Collecting colorama
Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting gpustat
Downloading gpustat-0.6.0.tar.gz (78 kB)
|████████████████████████████████| 78 kB 16.7 MB/s
Collecting msgpack<2.0.0,>=1.0.0
Downloading msgpack-1.0.2-cp37-cp37m-manylinux1_x86_64.whl (273 kB)
|████████████████████████████████| 273 kB 48.7 MB/s
Collecting redis>=3.5.0
Downloading redis-3.5.3-py2.py3-none-any.whl (72 kB)
|████████████████████████████████| 72 kB 1.5 MB/s
Collecting colorful
Downloading colorful-0.5.4-py2.py3-none-any.whl (201 kB)
|████████████████████████████████| 201 kB 68.6 MB/s
Requirement already satisfied: requests in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ray==1.1.0->-r requirements.txt (line 2)) (2.25.1)
Collecting opencensus
Downloading opencensus-0.7.13-py2.py3-none-any.whl (127 kB)
|████████████████████████████████| 127 kB 65.4 MB/s
Collecting pyyaml
Downloading PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl (636 kB)
|████████████████████████████████| 636 kB 51.0 MB/s
Collecting aiohttp
Downloading aiohttp-3.7.4.post0-cp37-cp37m-manylinux2014_x86_64.whl (1.3 MB)
|████████████████████████████████| 1.3 MB 53.9 MB/s
Collecting py-spy>=0.2.0
Downloading py_spy-0.3.7-py2.py3-none-manylinux1_x86_64.whl (3.1 MB)
|████████████████████████████████| 3.1 MB 52.8 MB/s
Requirement already satisfied: jsonschema in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ray==1.1.0->-r requirements.txt (line 2)) (3.2.0)
Requirement already satisfied: prometheus-client>=0.7.1 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ray==1.1.0->-r requirements.txt (line 2)) (0.9.0)
Collecting aioredis
Downloading aioredis-1.3.1-py3-none-any.whl (65 kB)
|████████████████████████████████| 65 kB 8.3 MB/s
Collecting filelock
Downloading filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting protobuf>=3.8.0
Downloading protobuf-3.17.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.0 MB)
|████████████████████████████████| 1.0 MB 58.9 MB/s
Collecting click>=7.0
Downloading click-8.0.1-py3-none-any.whl (97 kB)
|████████████████████████████████| 97 kB 18.4 MB/s
Collecting aiohttp-cors
Downloading aiohttp_cors-0.7.0-py3-none-any.whl (27 kB)
Collecting grpcio>=1.28.1
Downloading grpcio-1.38.0-cp37-cp37m-manylinux2014_x86_64.whl (4.2 MB)
|████████████████████████████████| 4.2 MB 51.8 MB/s
Requirement already satisfied: pytz>=2017.3 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from pandas==1.2.4->modin==0.9.1+68.g6475c9e->-r requirements.txt (line 3)) (2021.1)
Requirement already satisfied: python-dateutil>=2.7.3 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from pandas==1.2.4->modin==0.9.1+68.g6475c9e->-r requirements.txt (line 3)) (2.8.1)
Requirement already satisfied: importlib-metadata in /srv/conda/envs/notebook/lib/python3.7/site-packages (from click>=7.0->ray==1.1.0->-r requirements.txt (line 2)) (3.4.0)
Requirement already satisfied: six>=1.5.2 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from grpcio>=1.28.1->ray==1.1.0->-r requirements.txt (line 2)) (1.15.0)
Requirement already satisfied: notebook>=6.0.3 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from modin-spreadsheet->-r requirements.txt (line 4)) (6.2.0)
Collecting jupyter>=1.0.0
Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)
Requirement already satisfied: ipywidgets>=7.0.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from modin-spreadsheet->-r requirements.txt (line 4)) (7.6.3)
Requirement already satisfied: widgetsnbextension~=3.5.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (3.5.1)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (1.0.0)
Requirement already satisfied: ipykernel>=4.5.1 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (5.5.0)
Requirement already satisfied: traitlets>=4.3.1 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (5.0.5)
Requirement already satisfied: ipython>=4.0.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (7.20.0)
Requirement already satisfied: nbformat>=4.2.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (5.1.2)
Requirement already satisfied: tornado>=4.2 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (6.1)
Requirement already satisfied: jupyter-client in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipykernel>=4.5.1->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (6.1.11)
Requirement already satisfied: jedi>=0.16 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.18.0)
Requirement already satisfied: setuptools>=18.5 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (49.6.0.post20210108)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (3.0.16)
Requirement already satisfied: pygments in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (2.8.0)
Requirement already satisfied: pexpect>4.3 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (4.8.0)
Requirement already satisfied: backcall in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.2.0)
Requirement already satisfied: decorator in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (4.4.2)
Requirement already satisfied: pickleshare in /srv/conda/envs/notebook/lib/python3.7/site-packages (from ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.7.5)
Requirement already satisfied: parso<0.9.0,>=0.8.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.8.1)
Collecting jupyter-console
Downloading jupyter_console-6.4.0-py3-none-any.whl (22 kB)
Collecting qtconsole
Downloading qtconsole-5.1.0-py3-none-any.whl (119 kB)
|████████████████████████████████| 119 kB 51.5 MB/s
Requirement already satisfied: nbconvert in /srv/conda/envs/notebook/lib/python3.7/site-packages (from jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (6.0.7)
Requirement already satisfied: jupyter-core in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (4.7.1)
Requirement already satisfied: ipython-genutils in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbformat>=4.2.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.2.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from jsonschema->ray==1.1.0->-r requirements.txt (line 2)) (0.17.3)
Requirement already satisfied: attrs>=17.4.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from jsonschema->ray==1.1.0->-r requirements.txt (line 2)) (20.3.0)
Requirement already satisfied: Send2Trash>=1.5.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (1.5.0)
Requirement already satisfied: jinja2 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (2.11.3)
Requirement already satisfied: terminado>=0.8.3 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (0.9.2)
Requirement already satisfied: argon2-cffi in /srv/conda/envs/notebook/lib/python3.7/site-packages (from notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (20.1.0)
Requirement already satisfied: pyzmq>=17 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (22.0.3)
Requirement already satisfied: ptyprocess>=0.5 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.7.0)
Requirement already satisfied: wcwidth in /srv/conda/envs/notebook/lib/python3.7/site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets>=7.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.2.5)
Collecting fsspec==2021.05.0
Downloading fsspec-2021.5.0-py3-none-any.whl (111 kB)
|████████████████████████████████| 111 kB 73.8 MB/s
Collecting aiobotocore>=1.0.1
Downloading aiobotocore-1.3.0.tar.gz (48 kB)
|████████████████████████████████| 48 kB 7.6 MB/s
Collecting botocore<1.20.50,>=1.20.49
Downloading botocore-1.20.49-py2.py3-none-any.whl (7.4 MB)
|████████████████████████████████| 7.4 MB 62.9 MB/s
Collecting wrapt>=1.10.10
Downloading wrapt-1.12.1.tar.gz (27 kB)
Collecting aioitertools>=0.5.1
Downloading aioitertools-0.7.1-py3-none-any.whl (20 kB)
Requirement already satisfied: typing-extensions>=3.6.5 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from aiohttp->ray==1.1.0->-r requirements.txt (line 2)) (3.7.4.3)
Requirement already satisfied: chardet<5.0,>=2.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from aiohttp->ray==1.1.0->-r requirements.txt (line 2)) (4.0.0)
Collecting async-timeout<4.0,>=3.0
Downloading async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting yarl<2.0,>=1.0
Downloading yarl-1.6.3-cp37-cp37m-manylinux2014_x86_64.whl (294 kB)
|████████████████████████████████| 294 kB 59.3 MB/s
Collecting multidict<7.0,>=4.5
Downloading multidict-5.1.0-cp37-cp37m-manylinux2014_x86_64.whl (142 kB)
|████████████████████████████████| 142 kB 68.3 MB/s
Requirement already satisfied: urllib3<1.27,>=1.25.4 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from botocore<1.20.50,>=1.20.49->aiobotocore>=1.0.1->s3fs->-r requirements.txt (line 1)) (1.26.3)
Collecting jmespath<1.0.0,>=0.7.1
Downloading jmespath-0.10.0-py2.py3-none-any.whl (24 kB)
Requirement already satisfied: idna>=2.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from yarl<2.0,>=1.0->aiohttp->ray==1.1.0->-r requirements.txt (line 2)) (2.10)
Collecting hiredis
Downloading hiredis-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl (85 kB)
|████████████████████████████████| 85 kB 10.7 MB/s
Requirement already satisfied: cffi>=1.0.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from argon2-cffi->notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (1.14.5)
Requirement already satisfied: pycparser in /srv/conda/envs/notebook/lib/python3.7/site-packages (from cffi>=1.0.0->argon2-cffi->notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (2.20)
Collecting nvidia-ml-py3>=7.352.0
Downloading nvidia-ml-py3-7.352.0.tar.gz (19 kB)
Requirement already satisfied: psutil in /srv/conda/envs/notebook/lib/python3.7/site-packages (from gpustat->ray==1.1.0->-r requirements.txt (line 2)) (5.8.0)
Collecting blessings>=1.6
Downloading blessings-1.7-py3-none-any.whl (18 kB)
Requirement already satisfied: zipp>=0.5 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from importlib-metadata->click>=7.0->ray==1.1.0->-r requirements.txt (line 2)) (3.4.0)
Requirement already satisfied: MarkupSafe>=0.23 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from jinja2->notebook>=6.0.3->modin-spreadsheet->-r requirements.txt (line 4)) (1.1.1)
Requirement already satisfied: bleach in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (3.3.0)
Requirement already satisfied: jupyterlab-pygments in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.1.2)
Requirement already satisfied: testpath in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.4.4)
Requirement already satisfied: pandocfilters>=1.4.1 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (1.4.2)
Requirement already satisfied: entrypoints>=0.2.2 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.3)
Requirement already satisfied: nbclient<0.6.0,>=0.5.0 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.5.2)
Requirement already satisfied: mistune<2,>=0.8.1 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.8.4)
Requirement already satisfied: defusedxml in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.6.0)
Requirement already satisfied: async-generator in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (1.10)
Requirement already satisfied: nest-asyncio in /srv/conda/envs/notebook/lib/python3.7/site-packages (from nbclient<0.6.0,>=0.5.0->nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (1.4.3)
Requirement already satisfied: webencodings in /srv/conda/envs/notebook/lib/python3.7/site-packages (from bleach->nbconvert->jupyter>=1.0.0->modin-spreadsheet->-r requirements.txt (line 4)) (0.5.1)
Collecting google-api-core<2.0.0,>=1.0.0
Downloading google_api_core-1.29.0-py2.py3-none-any.whl (93 kB)
|████████████████████████████████| 93 kB 3.1 MB/s
Collecting opencensus-context==0.1.2
Downloading opencensus_context-0.1.2-py2.py3-none-any.whl (4.4 kB)
Collecting googleapis-common-protos<2.0dev,>=1.6.0
Downloading googleapis_common_protos-1.53.0-py2.py3-none-any.whl (198 kB)
|████████████████████████████████| 198 kB 21.7 MB/s
Collecting google-auth<2.0dev,>=1.25.0
Downloading google_auth-1.30.1-py2.py3-none-any.whl (146 kB)
|████████████████████████████████| 146 kB 43.2 MB/s
Collecting rsa<5,>=3.1.4
Downloading rsa-4.7.2-py3-none-any.whl (34 kB)
Collecting cachetools<5.0,>=2.0.0
Downloading cachetools-4.2.2-py3-none-any.whl (11 kB)
Collecting pyasn1-modules>=0.2.1
Downloading pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
|████████████████████████████████| 155 kB 47.9 MB/s
Requirement already satisfied: pyparsing>=2.0.2 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from packaging->modin==0.9.1+68.g6475c9e->-r requirements.txt (line 3)) (2.4.7)
Collecting pyasn1<0.5.0,>=0.4.6
Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB)
|████████████████████████████████| 77 kB 11.3 MB/s
Requirement already satisfied: certifi>=2017.4.17 in /srv/conda/envs/notebook/lib/python3.7/site-packages (from requests->ray==1.1.0->-r requirements.txt (line 2)) (2020.12.5)
Collecting qtpy
Downloading QtPy-1.9.0-py2.py3-none-any.whl (54 kB)
|████████████████████████████████| 54 kB 6.2 MB/s
Building wheels for collected packages: aiobotocore, wrapt, gpustat, nvidia-ml-py3
Building wheel for aiobotocore (setup.py) ... done
Created wheel for aiobotocore: filename=aiobotocore-1.3.0-py3-none-any.whl size=45779 sha256=ec1b0773ef183f84905b3b59b743ae3523a29ebe26163ad15d033d709173a1a0
Stored in directory: /home/jovyan/.cache/pip/wheels/46/81/f1/c47c29199f73c49ecca9464f77aa181d267d33c8316d563980
Building wheel for wrapt (setup.py) ... done
Created wheel for wrapt: filename=wrapt-1.12.1-cp37-cp37m-linux_x86_64.whl size=71003 sha256=e61bc02f0cb191474572dc6a5aadaaf5f805123250afdb236b7a3aa56ff024e2
Stored in directory: /home/jovyan/.cache/pip/wheels/62/76/4c/aa25851149f3f6d9785f6c869387ad82b3fd37582fa8147ac6
Building wheel for gpustat (setup.py) ... done
Created wheel for gpustat: filename=gpustat-0.6.0-py3-none-any.whl size=12617 sha256=d322053e73e7c3bcea70730afb817a10f1b8ef652fc51cb938e61a162ff28449
Stored in directory: /home/jovyan/.cache/pip/wheels/e6/67/af/f1ad15974b8fd95f59a63dbf854483ebe5c7a46a93930798b8
Building wheel for nvidia-ml-py3 (setup.py) ... done
Created wheel for nvidia-ml-py3: filename=nvidia_ml_py3-7.352.0-py3-none-any.whl size=19191 sha256=9f4a3ba518fb6d88046f76505b67b7e145e36db3ab9673edac1db76bc9fbf191
Stored in directory: /home/jovyan/.cache/pip/wheels/df/99/da/c34f202dc8fd1dffd35e0ecf1a7d7f8374ca05fbcbaf974b83
Successfully built aiobotocore wrapt gpustat nvidia-ml-py3
Installing collected packages: pyasn1, rsa, pyasn1-modules, protobuf, multidict, cachetools, yarl, qtpy, jmespath, googleapis-common-protos, google-auth, async-timeout, wrapt, qtconsole, opencensus-context, nvidia-ml-py3, jupyter-console, hiredis, google-api-core, botocore, blessings, aioitertools, aiohttp, redis, pyyaml, py-spy, opencensus, msgpack, jupyter, grpcio, gpustat, fsspec, filelock, colorful, colorama, click, aioredis, aiohttp-cors, aiobotocore, s3fs, ray, modin-spreadsheet
Successfully installed aiobotocore-1.3.0 aiohttp-3.7.4.post0 aiohttp-cors-0.7.0 aioitertools-0.7.1 aioredis-1.3.1 async-timeout-3.0.1 blessings-1.7 botocore-1.20.49 cachetools-4.2.2 click-8.0.1 colorama-0.4.4 colorful-0.5.4 filelock-3.0.12 fsspec-2021.5.0 google-api-core-1.29.0 google-auth-1.30.1 googleapis-common-protos-1.53.0 gpustat-0.6.0 grpcio-1.38.0 hiredis-2.0.0 jmespath-0.10.0 jupyter-1.0.0 jupyter-console-6.4.0 modin-spreadsheet-0.1.2 msgpack-1.0.2 multidict-5.1.0 nvidia-ml-py3-7.352.0 opencensus-0.7.13 opencensus-context-0.1.2 protobuf-3.17.2 py-spy-0.3.7 pyasn1-0.4.8 pyasn1-modules-0.2.8 pyyaml-5.4.1 qtconsole-5.1.0 qtpy-1.9.0 ray-1.1.0 redis-3.5.3 rsa-4.7.2 s3fs-2021.5.0 wrapt-1.12.1 yarl-1.6.3
jovyan@jupyter-modin-2dproject-2dmodin-2dkus8igqq:~/examples/spreadsheet$```
Provides better defaults so that modin_spreadsheet.show_grid
only needs the dataframe most of the time. Will help make modin.spreadsheet.from_dataframe
less verbose.
$ python --version
3.8.5pip
, conda
, or other (please explain)
)$ pip freeze
or $ conda list
(please include modin-spreadsheet, notebook, and jupyterlab versions)$ jupyter labextension list
test_date_index fails on certain modin issues:
0.8.1, 0.8.2, 0.9.1 works
0.8.3, 0.9.0 does not work
pytest -k test_date_index
Tried the modin versions above
problem appears to come from & operator between filtered panda dataframes with the same index for all rows. (combined_condition = combined_condition & c
on line 1476 of grid.py) In versions that fail, the result of the & has excess rows (e.g. a 4 row dataframe becomes 16 rows)
...
Right now if you edit a date column, the history will look like:
# Edit cell
df.loc[(1, 'Date')]=Timestamp('2013-01-15 00:00:00')
unfiltered_df.loc[(1, 'Date')]=Timestamp('2013-01-15 00:00:00')
If you call spreadsheet.apply_history(), Timestamp is not defined, so it doesn't work. Would need to change history to include the import name or import objects to be supported.
We have recently pushed some changes that have fixed modin-spreadsheet so that things aren't breaking. We should build a new release ASAP.
Two modes for recording history:
Compressed mode will only keep the relevant history at any given point.
Code to reproduce:
def create_df():
return pd.DataFrame(
{
"A": 1.0,
"Date": pd.Timestamp("20130102"),
"C": pd.Series(1, index=list(range(4)), dtype="float32"),
"D": np.array([3] * 4, dtype="int32"),
"E": pd.Categorical(["test", "train", "foo", "bar"]),
"F": ["foo", "bar", "buzz", "fox"],
}
)
df = create_df()
spreadsheet = SpreadsheetWidget(df=df)
spreadsheet._handle_view_msg_helper(
{
"row_index": 2,
"column": "A",
"unfiltered_index": 3,
"value": 3,
"type": "edit_cell",
}
)
$ python --version
pip
, conda
, or other (please explain)
)$ pip freeze
or $ conda list
(please include modin-spreadsheet, notebook, and jupyterlab versions)$ jupyter labextension list
pytest does not pass test_nans
Error from pytest:
FAILED modin_spreadsheet/tests/test_grid.py::test_nans - TypeError: unsupported operand type(s) for +: 'int' and 'str'
Error from traceback:
modin_spreadsheet/grid.py:1130: TypeError
Add modin
version and update notebook
and pandas
version
Potentially remove pandas
since it's a modin
dependency
See: modin-project/modin#4838 for additional context
This is a CI blocker for Modin.
Use user-facing functions instead of duplicating functionality in _handle_view_msg_helper
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.