Ë
    ÌiE
  ã                   ó|   — d dl mc mZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZ  G d„ d	e«      Zy)
é    N)Údefaultdict)Útheme)ÚText)ÚCategorySeries)ÚShape)ÚDummySeriesÚXÚYc                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)ÚDotsa†  
    Render a series of data as dots.

    :param fill_color:
        The color to fill the dots. You may also specify a
        :func:`.style_function`. If not specified, default chart colors will be
        used.
    :param radius:
        The radius of the rendered dots. Defaults to
        :data:`.theme.default_dot_radius`. You may also specify a
        :func:`.style_function`.
    Nc                 óD   — || _         |xs t        j                  | _        y ©N)Ú_fill_colorr   Údefault_dot_radiusÚ_radius)ÚselfÚ
fill_colorÚradiuss      úT/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/leather/shapes/dots.pyÚ__init__zDots.__init__   s   € Ø%ˆÔØÒ9¤×!9Ñ!9ˆ�ó    c                 ó†   — |j                  t        «      t        u s|j                  t        «      t        u rt	        d«      ‚y)zI
        Verify this shape can be used to render a given series.
        z Dots do not support Text values.T)Ú	data_typer	   r   r
   Ú
ValueError)r   Úseriess     r   Úvalidate_serieszDots.validate_series   s8   € ð ×ÑœAÓ¤$Ñ&¨&×*:Ñ*:¼1Ó*=ÄÑ*EÜÐ?Ó@Ð@àr   c                 óÒ  ‡— t        j                  d«      }|j                  dd«       t        ˆfd„«      }|j	                  «       D �]  }	|	j
                  �|	j                  €Œ|j                  |	j
                  d|«      }
|j                  |	j                  |d«      }t        | j                  «      r| j                  |	«      }n(| j                  r| j                  }n||	j                     }t        | j                  «      r| j                  |	«      }n| j                  }|j                  t        j                  dt        |
«      t        |«      t        |«      |¬«      «       �Œ |S )z.
        Render dots to SVG elements.
        ÚgÚclasszseries dotsc                  ó   •— t        ‰ «      S r   )Únext)Úpalettes   €r   ú<lambda>zDots.to_svg.<locals>.<lambda>,   s   ø€ ¬T°'«]€ r   r   Úcircle)ÚcxÚcyÚrÚfill)ÚETÚElementÚsetr   ÚdataÚxÚyÚprojectÚcallabler   Úzr   ÚappendÚstr)r   ÚwidthÚheightÚx_scaleÚy_scaler   r"   ÚgroupÚdefault_colorsÚdÚproj_xÚproj_yr   r   s         `       r   Úto_svgzDots.to_svg%   s  ø€ ô —
‘
˜3“ˆØ�	‰	�'˜=Ô)ä$Ó%:Ó;ˆà—‘“ó 	ˆAØ�s‰sˆ{˜aŸc™c˜kØà—_‘_ Q§S¡S¨!¨UÓ3ˆFØ—_‘_ Q§S¡S¨&°!Ó4ˆFä˜×(Ñ(Ô)Ø!×-Ñ-¨aÓ0‘
Ø×!Ò!Ø!×-Ñ-‘
à+¨A¯C©CÑ0�
ä˜Ÿ™Ô%ØŸ™ a›‘àŸ™�à�L‰LœŸ™ØÜ�v“;Ü�v“;Ü�f“+Øôö ð'	ð6 ˆr   c           	      ó  — g }t        |t        «      rF|j                  «       D ]1  }|j                  t	        j
                  | t        |«      |«      «       Œ3 |S |j                  t	        j
                  | ||«      «       |S )z=
        Render the legend entries for these shapes.
        )Ú
isinstancer   Ú
categoriesÚextendr   Úlegend_to_svgr   )r   r   r"   ÚitemsÚcategorys        r   rB   zDots.legend_to_svgK   sv   € ð ˆä�fœnÔ-Ø"×-Ñ-Ó/ò X�Ø—‘œU×0Ñ0°´{À8Ó7LÈgÓVÕWðXð
 ˆð �L‰Lœ×,Ñ,¨T°6¸7ÓCÔDàˆr   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r=   rB   © r   r   r   r      s   „ ñó:òò$óLr   r   )Úxml.etree.ElementTreeÚetreeÚElementTreer)   Úcollectionsr   Úleatherr   Úleather.data_typesr   Úleather.seriesr   Úleather.shapes.baser   Úleather.utilsr   r	   r
   r   rI   r   r   ú<module>rS      s.   ðß "Ð "Ý #å Ý #Ý )Ý %ß +Ñ +ôLˆ5õ Lr   