
    	i%                     X    d dl mZmZmZ d dlmZ ddlmZ  G d dej                  Z	dS )    )AnyDictOptionalwarn   )chartc                        e Zd ZdZddeeeef                  ddf fdZddee	j
                 ddf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 xZS )ChartScatterz>
    A class for writing the Excel XLSX Scatter charts.


    Noptionsreturnc                    t                                                       |i }|                    d          | _        | j        sd| _        d| _        d| _        d| _        d| _        d| _        d| _	        d	d
dddddd| _
        dS )z
        Constructor.

        Nsubtypemarker_onlymidCatr   bTrightctrrlt)centerr   leftabovebelowtopbottom)super__init__getr   cross_betweenhoriz_val_axisval_axis_positionsmooth_allowedrequires_categorylabel_position_defaultlabel_positions)selfr   	__class__s     P/srv/django_bis/venv311/lib/python3.11/site-packages/xlsxwriter/chart_scatter.pyr   zChartScatter.__init__   s    
 	?G{{9--| 	)(DL%!$"!% '.#	 
 	 
    r	   c                 ,    |dS t          d           dS )z
        Create a combination chart with a secondary chart.

        Note: Override parent method to add a warning.

        Args:
            chart: The secondary chart to combine with the primary chart.

        Returns:
            Nothing.

        NzNCombined chart not currently supported with scatter chart as the primary chartr   )r(   r	   s     r*   combinezChartScatter.combine?   s/     =F#	
 	
 	
 	
 	
r+   c                 0    |                      |           d S N)_write_scatter_chart)r(   argss     r*   _write_chart_typezChartScatter._write_chart_type[   s     	!!$'''''r+   c                    |d         r|                                  }n|                                 }|sd S d}| j        }|dk    rd}|dk    rd}|dk    rd}ddi| _        |dk    rd	}|d
k    rd	}ddi| _        |                                  |                     d           |                     |           |D ]}|                     |           |                     |           | 	                    d           d S )Nprimary_axes
lineMarkerr   straight_with_markersstraighttypenonesmooth_with_markerssmoothMarkersmoothzc:scatterChart)
_get_primary_axes_series_get_secondary_axes_seriesr   default_marker_modify_series_formatting_xml_start_tag_write_scatter_style
_write_ser_write_axis_ids_xml_end_tag)r(   r1   seriesstyler   datas         r*   r0   z!ChartScatter._write_scatter_chartf   sR     	72244FF4466F 	F, m## E--- Ej   E#)6"2D+++"Eh"E#)6"2D 	&&(((,--- 	!!%(((  	" 	"DOOD!!!! 	T"""*+++++r+   c                    | j         }| xj         dz  c_         |                     d           |                     |           |                     |           |                     |           |                     |           |                     |                    d                     |                     |                    d                     | 	                    |                    d                     | 
                    |                    d                     |                     |                    d                     |                     |           |                     |           d| j        v r|d         |                     d	           n|                     |d                    |                     d           d S )
Nr   zc:sermarkerpointslabels	trendline
error_barsr<   T)series_indexrA   
_write_idx_write_order_write_series_name_write_sp_pr_write_markerr    _write_d_pt_write_d_lbls_write_trendline_write_error_bars_write_x_val_write_y_valr   _write_c_smoothrE   )r(   rF   indexs      r*   rC   zChartScatter._write_ser   s    !QG$$$ 	 	%    	''' 	&!!! 	6::h//000 	H--... 	6::h//000 	fjj55666 	vzz,77888 	&!!! 	&!!! t|##x(8(@  &&&&  !1222'"""""r+   c                    |                      d           |                     | j                            d          d           |                     ddi           |                     ddi           |                     | j        | j        | j        dd           | j	        }d| _	        | 
                    | j        | j        | j        d	d           || _	        |                     | j        | j        | j        dd           d| _	        | 
                    | j        | j        | j        d	d           |                     | j                   |                     d           d S )
Nz
c:plotArealayoutplotr4   r   r   r   )x_axisy_axisaxis_idspositionr   )rA   _write_layoutplotarear    r2   _write_cat_val_axisr`   ra   rb   r"   _write_val_axisx2_axisy2_axis	axis2_idsrS   rE   )r(   tmps     r*   _write_plot_areazChartScatter._write_plot_area   s   
 	L))) 	4=,,X66??? 	23332333 	  ++ M	 	
 	
 	
 !++ M	 	
 	
 	
 " 	  ,, N	 	
 	
 	
  ,, N	 	
 	
 	
 	$-(((,'''''r+   c                 \   |                     d          }|                     d          }| j        |         }|                     d           |                     |          }|dk    r|                     |||           n|                     |||           |                     d           d S )N
categoriescat_data_idzc:xValstr)r    formula_datarA   _get_data_type_write_str_ref_write_num_refrE   )r(   rF   formuladata_idrH   	data_types         r*   rY   zChartScatter._write_x_val  s    **\****]++ )H%%% ''--	y9999 y999(#####r+   c                     |                     d          }|                     d          }| j        |         }|                     d           |                     ||d           |                     d           d S )Nvaluesval_data_idzc:yValnum)r    rq   rA   rt   rE   )r(   rF   ru   rv   rH   s        r*   rZ   zChartScatter._write_y_val  sy    **X&&**]++ )H%%% 	GT5111(#####r+   c                 <    d|fg}|                      d|           d S )Nvalzc:scatterStyle)_xml_empty_tag)r(   r}   
attributess      r*   rB   z!ChartScatter._write_scatter_style*  s*    cl^
,j99999r+   c                 f    | j         }|dk    r!| j        D ]}|d         d         s	dddd|d<   d S d S )Nr   linedefinedg      @r   )widthr9   r   )r   rF   )r(   r   rF   s      r*   r@   z&ChartScatter._modify_series_formatting0  sf     , m##+  f~i0 !% !#$& &F6N $# r+   c                    |                      d           |                     |           |                      d           |                     |           |                     d           |                     d           d S )Nzc:dPtzc:marker)rA   rP   rS   rE   )r(   r\   points      r*   _write_d_pt_pointzChartScatter._write_d_pt_pointA  s     	G$$$ 	J''' 	%   *%%%'"""""r+   r/   )r   N)__name__
__module____qualname____doc__r   r   rp   r   r   r	   Chartr-   r2   r0   rC   rl   rY   rZ   rB   r@   r   __classcell__)r)   s   @r*   r   r      sM         
  
c3h 8  
D  
  
  
  
  
  
D
 
Xek2 
d 
 
 
 
8( ( ( (/, /, /, /,b1# 1# 1# 1#f<( <( <( <(|$ $ $ $($ $ $ $: : : :   "# # # # # # # #r+   r   N)
typingr   r   r   warningsr    r	   r   r    r+   r*   <module>r      s    ' & & & & & & & & &            A# A# A# A# A#5; A# A# A# A# A#r+   