nteract / scrapbook

A library for recording and reading data in notebooks.
https://nteract-scrapbook.readthedocs.io
BSD 3-Clause "New" or "Revised" License
281 stars 26 forks source link

Pandas DataFrame example raises error "No encoder found " #72

Closed hamelsmu closed 4 years ago

hamelsmu commented 4 years ago

Running this example from the docs:

import scrapbook as sb
import pandas as pd

df = pd.DataFrame({"a": [1,2], "b": [3,4]})

sb.glue("hello", "world")
sb.glue("number", 123)
sb.glue("some_list", [1, 3, 5])
sb.glue("non_json", df, encoder='pandas')
sb.glue("some_dict", {"a": 1, "b": 2})

Causes this error:

---------------------------------------------------------------------------
ScrapbookMissingEncoder                   Traceback (most recent call last)
<ipython-input-2-730353fe4323> in <module>()
      7 sb.glue("number", 123)
      8 sb.glue("some_list", [1, 3, 5])
----> 9 sb.glue("non_json", df, encoder='pandas')
     10 sb.glue("some_dict", {"a": 1, "b": 2})

2 frames
/usr/local/lib/python3.6/dist-packages/scrapbook/encoders.py in encode(self, scrap, **kwargs)
    110             raise ScrapbookMissingEncoder(
    111                 'No encoder found for "{data_type}" data type!'.format(
--> 112                     data_type=encoder
    113                 )
    114             )

ScrapbookMissingEncoder: No encoder found for "None" data type!

Here is a reproducible Colab Notebook demonstrating this issue.

MSeal commented 4 years ago

I need to release the code that's in latest/master which has this improvement. I'll prioritize getting a release by this weekend out.

MSeal commented 4 years ago

@hamelsmu The change is released now, you can see it in version 0.4.1 (your code above works with it).