U
    ¦¡c£
  ã                   @   s>   d dl mZ d dlmZ edƒZdd„ Zdd„ ZeedœZd	S )
é   )Ú	Undefined)Ú
get_moduleZnumpyc                    s²   t | tƒr ‡ fdd„|  ¡ D ƒS t | ttfƒr@‡ fdd„| D ƒS tdk	ržt | tjƒrž| jdkr–| jj	dkr–| jdkr–| jd	kr–t
| ƒt| jƒ| jd
œS |  ¡ S | tkrªdS | S dS )a´  
    Python -> Javascript ipywidget serializer

    This function must repalce all objects that the ipywidget library
    can't serialize natively (e.g. numpy arrays) with serializable
    representations

    Parameters
    ----------
    v
        Object to be serialized
    widget_manager
        ipywidget widget_manager (unused)

    Returns
    -------
    any
        Value that the ipywidget library can serialize natively
    c                    s   i | ]\}}|t |ˆ ƒ“qS © ©Ú	_py_to_js©Ú.0ÚkÚv©Úwidget_managerr   ú6/tmp/pip-unpacked-wheel-fki0jwev/plotly/serializers.pyÚ
<dictcomp>   s      z_py_to_js.<locals>.<dictcomp>c                    s   g | ]}t |ˆ ƒ‘qS r   r   ©r   r
   r   r   r   Ú
<listcomp>$   s     z_py_to_js.<locals>.<listcomp>Nr   )ÚuÚiÚfZint64Zuint64)ÚbufferÚdtypeÚshapeÚ_undefined_)Ú
isinstanceÚdictÚitemsÚlistÚtupleÚnpZndarrayÚndimr   ÚkindÚ
memoryviewÚstrr   Útolistr   ©r
   r   r   r   r   r      s$    
ÿ
þýü	r   c                    s^   t | tƒr ‡ fdd„|  ¡ D ƒS t | ttfƒr@‡ fdd„| D ƒS t | tƒrV| dkrVtS | S dS )a   
    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
    c                    s   i | ]\}}|t |ˆ ƒ“qS r   ©Ú	_js_to_pyr   r   r   r   r   W   s      z_js_to_py.<locals>.<dictcomp>c                    s   g | ]}t |ˆ ƒ‘qS r   r$   r   r   r   r   r   \   s     z_js_to_py.<locals>.<listcomp>r   N)r   r   r   r   r   r!   r   r#   r   r   r   r%   D   s    
r%   )Z	from_jsonZto_jsonN)Zbasedatatypesr   Zoptional_importsr   r   r   r%   Zcustom_serializersr   r   r   r   Ú<module>   s
   =&