
    e"                        d dl mZ d dlmZmZ ddlT ddlT ddlT ddlT ddl	T ddl
T ddlT ddlT ddlT ddlT ddlT  G d de          Zee_        d Z ed  e                                            D                       Zd	S )
   )HoloMap)DataConversionDataset   )*c                       e Zd ZdZddZddZddZddZddZddZ	dd	Z
dd
ZddZddZddZddZddZddZddZddZddZddZddZddZddZddZddZdS )ElementConversionz
    ElementConversion is a subclass of DataConversion providing
    concrete methods to convert a Dataset to specific Element
    types.
    Nc                 $     | t           |||fi |S N)Barsselfkdimsvdimsgroupbykwargss        :lib/python3.11/site-packages/holoviews/element/__init__.pybarszElementConversion.bars        tD%::6:::    c                 $     | t           |||fi |S r   )
BoxWhiskerr   s        r   boxzElementConversion.box        tJug@@@@@r   c                 $     | t           |||fi |S r   )	Bivariater   s        r   	bivariatezElementConversion.bivariate        tIueW?????r   c                 $     | t           |||fi |S r   )Curver   s        r   curvezElementConversion.curve         tE5%;;F;;;r   c                 $     | t           |||fi |S r   )	ErrorBarsr   s        r   	errorbarszElementConversion.errorbars#   r   r   c           	         |g }|.| j         j        r| j         j        d         }nt          d          |r@| j                             ||g          }||d<   d |d<    |j        |t
          t          fi |S | j         }t          |                    |          g|j	                  }|j
        |j        d         j        k    r
|j
        |d<   t          |                    |          ffi t          |fi |S )N    zKMust supply an explicit value dimension if no value dimensions are defined r   r   )r   labelgroup)_elementr   	Exceptionreindexr   r   Distributiondictget_dimensionr(   r)   paramdefaultdimension_values)r   dimr   r   	reindexedelementparamss          r   distributionzElementConversion.distribution&   s4   ?G;}" Gm)!, !F G G G 	:--gu==I!F7O"F7O$9$Wg|NNvNNNmG!6!6s!;!; < '/ / /F}g 6 >>>")-w!9!9#!>!> @ : :"&v"8"8"8"8: : :r   c                 $     | t           |||fi |S r   )HeatMapr   s        r   heatmapzElementConversion.heatmap=        tGUE7==f===r   c                 $     | t           |||fi |S r   )Imager   s        r   imagezElementConversion.image@   r"   r   c                 $     | t           |||fi |S r   )Pointsr   s        r   pointszElementConversion.pointsC        tFE5'<<V<<<r   c                      | j         ||fi |}t          |j        fi | j        j                            d          S NT)onlychanged)r:   Rasterdatar*   r0   valuesr   r   r   r   r   r:   s         r   rasterzElementConversion.rasterF   sK    $,ue66v66glSSdm&9&@&@T&@&R&RSSSr   c                 $     | t           |||fi |S r   )Scatterr   s        r   scatterzElementConversion.scatterJ   r;   r   c                 $     | t           |||fi |S r   )	Scatter3Dr   s        r   	scatter3dzElementConversion.scatter3dM   r   r   c                 $     | t           |||fi |S r   )Spikesr   s        r   spikeszElementConversion.spikesP   rB   r   c                 $     | t           |||fi |S r   )Spreadr   s        r   spreadzElementConversion.spreadS   rB   r   c                      | j         ||fi |}t          |j        fi | j        j                            d          S rD   )r:   SurfacerG   _tabler0   rH   rI   s         r   surfacezElementConversion.surfaceV   sK    $,ue66v66w|RRt{'8'?'?D'?'Q'QRRRr   c                 $     | t           |||fi |S r   )
TriSurfacer   s        r   
trisurfacezElementConversion.trisurfaceZ   r   r   c                 $     | t           |||fi |S r   )VectorFieldr   s        r   vectorfieldzElementConversion.vectorfield]   s     tKwAA&AAAr   c                 $     | t           |||fi |S r   )Violinr   s        r   violinzElementConversion.violin`   rB   r   c                 $     | t           |||fi |S r   )Labelsr   s        r   labelszElementConversion.labelsc   rB   r   c                 $     | t           |||fi |S r   )Chordr   s        r   chordzElementConversion.chordf   r"   r   c                 $     | t           |||fi |S r   )HexTilesr   s        r   hextileszElementConversion.hextilesi   s     tHeUG>>v>>>r   c                 $     | t           |||fi |S r   )Arear   s        r   areazElementConversion.areal   r   r   c                 $     | t           |||fi |S r   )Tabler   s        r   tablezElementConversion.tableo   r"   r   )NNN)NN)__name__
__module____qualname____doc__r   r   r   r!   r%   r7   r:   r>   rA   rJ   rM   rP   rS   rV   rZ   r]   r`   rc   rf   ri   rl   ro   rr    r   r   r	   r	      s
        ; ; ; ;A A A A@ @ @ @< < < <@ @ @ @: : : :.> > > >< < < <= = = =T T T T> > > >@ @ @ @= = = == = = =S S S SA A A AB B B B= = = == = = =< < < <? ? ? ?; ; ; ;< < < < < <r   r	   c                     t          | t                    rt          | dd          r| t          urdS t	          | t                    S )NabstractF)
isinstancetypegetattrElement
issubclass)objs    r   publicr   v   sG    c4   GCU$C$C SZHZHZuc7###r   c                 6    h | ]\  }}t          |          |S rw   )r   ).0_k_vs      r   	<setcomp>r   {   s'    @@@vr2VBZZ@@@@r   N)corer   	core.datar   r   
annotationchartchart3dgeomgraphspathrJ   sankeystatstabulartilesr	   _conversion_interfacer   listlocalsitems__all__rw   r   r   <module>r      s3         / / / / / / / /                                            `< `< `< `< `< `< `< `<F !2 $ $ $
 $@@!1!1@@@
A
Ar   