Javascript -> Python ipywidget deserializer Parameters ---------- v Object to be deserialized widget_manager ipywidget widget_manager (unused) Returns ------- any Deserialized object for use by the Python side of the library
(v, widget_manager)
| 65 | |
| 66 | |
| 67 | def _js_to_py(v, widget_manager): |
| 68 | """ |
| 69 | Javascript -> Python ipywidget deserializer |
| 70 | |
| 71 | Parameters |
| 72 | ---------- |
| 73 | v |
| 74 | Object to be deserialized |
| 75 | widget_manager |
| 76 | ipywidget widget_manager (unused) |
| 77 | |
| 78 | Returns |
| 79 | ------- |
| 80 | any |
| 81 | Deserialized object for use by the Python side of the library |
| 82 | """ |
| 83 | # Handle dict |
| 84 | # ----------- |
| 85 | if isinstance(v, dict): |
| 86 | return {k: _js_to_py(v, widget_manager) for k, v in v.items()} |
| 87 | |
| 88 | # Handle list/tuple |
| 89 | # ----------------- |
| 90 | elif isinstance(v, (list, tuple)): |
| 91 | return [_js_to_py(v, widget_manager) for v in v] |
| 92 | |
| 93 | # Handle Undefined |
| 94 | # ---------------- |
| 95 | elif isinstance(v, str) and v == "_undefined_": |
| 96 | return Undefined |
| 97 | |
| 98 | # Handle simple value |
| 99 | # ------------------- |
| 100 | else: |
| 101 | return v |
| 102 | |
| 103 | |
| 104 | # Custom serializer dict for use in ipywidget traitlet definitions |