Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DatePicker.controls raises TypeError: Object of type date is not JSON serializable #1810

Closed
MarcSkovMadsen opened this issue Nov 27, 2020 · 0 comments · Fixed by #3759
Closed

Comments

@MarcSkovMadsen
Copy link
Collaborator

Panel 0.10.2
Bokeh 2.2.3

I'm currently working on styling all Panel widgets using https://fast.design. A very powerful tool is the .controls of each widget that allows me to quickly visualize and test different values of parameters and the looks.

For the DatePicker it raises a TypeError: Object of type date is not JSON serializable if I set the DatePicker.value up front.

from panel import widgets as pnw
from datetime import date
import panel as pn

component = pnw.DatePicker(name='Date Picker', height=200, width=200)
component.value = date(2020, 2, 18)
controls = component.controls()
pn.Column(component, controls).servable()
$ python -m panel serve 'scripts\issue_dataframe.py' --dev
2020-11-27 05:30:37,579 Starting Bokeh server version 2.2.3 (running on Tornado 6.0.4)
2020-11-27 05:30:37,580 User authentication hooks NOT provided (default user enabled)
2020-11-27 05:30:37,583 Bokeh app running at: http://localhost:5006/issue_dataframe
2020-11-27 05:30:37,583 Starting Bokeh server with process id: 22468
2020-11-27 05:30:41,695 404 GET /test_fast_bokeh_css (::1) 0.53ms
2020-11-27 05:30:43,704 Error running application handler <bokeh.application.handlers.script.ScriptHandler object at 0x00000209B290BA48>: Object of type date is not JSON serializable
File "encoder.py", line 179, in default:
raise TypeError(f'Object of type {o.__class__.__name__} ' Traceback (most recent call last):
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\bokeh\application\handlers\code_runner.py", line 197, in run
    exec(self._code, module.__dict__)
  File "C:\repos\private\panel-extensions-template\scripts\issue_dataframe.py", line 8, in <module>
    pn.Column(component, controls).servable()
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\viewable.py", line 313, in servable
    self.server_doc(title=title, location=True)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\viewable.py", line 749, in server_doc
    model = self.get_root(doc)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\viewable.py", line 482, in get_root
    root = self._get_model(doc, comm=comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\layout\base.py", line 112, in _get_model
    objects = self._get_objects(model, [], doc, root, comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\layout\base.py", line 102, in _get_objects
    child = pane._get_model(doc, root, model, comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\layout\base.py", line 112, in _get_model
    objects = self._get_objects(model, [], doc, root, comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\layout\tabs.py", line 157, in _get_objects
    child = pane._get_model(doc, root, model, comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\layout\base.py", line 112, in _get_model
    objects = self._get_objects(model, [], doc, root, comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\layout\base.py", line 102, in _get_objects
    child = pane._get_model(doc, root, model, comm)
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\widgets\base.py", line 108, in _get_model
    model = self._widget_type(**self._process_param_change(self._init_properties()))
  File "C:\repos\private\panel-extensions-template\.venv\lib\site-packages\panel\widgets\input.py", line 357, in _process_param_change
    value = json.dumps(value)
  File "C:\Program Files\Python37\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "C:\Program Files\Python37\lib\json\encoder.py", line
199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Program Files\Python37\lib\json\encoder.py", line
257, in iterencode
    return _iterencode(o, 0)
  File "C:\Program Files\Python37\lib\json\encoder.py", line
179, in default
    raise TypeError(f'Object of type {o.__class__.__name__} '
TypeError: Object of type date is not JSON serializable

2020-11-27 05:30:43,786 WebSocket connection opened
2020-11-27 05:30:43,786 ServerConnection created
@MarcSkovMadsen MarcSkovMadsen added the TRIAGE Default label for untriaged issues label Nov 27, 2020
@philippjfr philippjfr added type: bug and removed TRIAGE Default label for untriaged issues labels Nov 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants