
    ~Zi9t                       S r SSKJr  SSKrSSKJr  SSKJr  SSKJ	r	J
r
Jr  SSKJr  SSKJr   " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S \5      r " S! S"\5      r " S# S$\5      r " S% S&\5      rg)'zChartData and related objects.    )annotationsN)Sequence)Number)BubbleWorkbookWriterCategoryWorkbookWriterXyWorkbookWriter)ChartXmlWriter)lazypropertyc                     ^  \ rS rSrSrSU 4S jjrS rS rS rS r	\
S 5       rS	 rS
 rS r\
S 5       rS rS r\
S 5       rS rSrU =r$ )_BaseChartData   a  Base class providing common members for chart data objects.

A chart data object serves as a proxy for the chart data table that will be written to an
Excel worksheet; operating as a sequence of series as well as providing access to chart-level
attributes. A chart data object is used as a parameter in :meth:`shapes.add_chart` and
:meth:`Chart.replace_data`. The data structure varies between major chart categories such as
category charts and XY charts.
c                D   > [         [        U ]  5         Xl        / U l        g N)superr   __init___number_format_series)selfnumber_format	__class__s     i/var/www/eduai.edurigo.com/question_generate/ques_gen_env/lib/python3.13/site-packages/pptx/chart/data.pyr   _BaseChartData.__init__   s    nd,.+    c                8    U R                   R                  U5      $ r   )r   __getitem__r   indexs     r   r   _BaseChartData.__getitem__!   s    ||''..r   c                6    U R                   R                  5       $ r   )r   __len__r   s    r   r    _BaseChartData.__len__$   s    ||##%%r   c                8    U R                   R                  U5      $ r   )r   appendr   seriess     r   r$   _BaseChartData.append'   s    ||""6**r   c                Z    SnU  H  nXL a  Us  $ U[        U5      -  nM     [        S5      e)z|
The total integer number of data points appearing in the series of
this chart that are prior to *series* in this sequence.
r   series not in chart data object)len
ValueError)r   r&   countthis_seriess       r   data_point_offset _BaseChartData.data_point_offset*   s;    
 K$S%%E   :;;r   c                    U R                   $ )a?  
The formatting template string, e.g. '#,##0.0', that determines how
X and Y values are formatted in this chart and in the Excel
spreadsheet. A number format specified on a series will override this
value for that series. Likewise, a distinct number format can be
specified for a particular data point within a series.
r   r!   s    r   r   _BaseChartData.number_format6   s     """r   c                P    [        U 5       H  u  p#XL d  M  Us  $    [        S5      e)z8
Return the integer index of *series* in this sequence.
r)   )	enumerater+   )r   r&   idxss       r   series_index_BaseChartData.series_indexA   s,      oFC{
 & :;;r   c                8    U R                   R                  U5      $ )zT
Return the Excel worksheet reference to the cell containing the name
for *series*.
)_workbook_writerseries_name_refr%   s     r   r;   _BaseChartData.series_name_refJ   s    
 $$44V<<r   c                8    U R                   R                  U5      $ )z^
The Excel worksheet reference to the X values for *series* (not
including the column label).
)r:   x_values_refr%   s     r   r>   _BaseChartData.x_values_refQ       
 $$11&99r   c                .    U R                   R                  $ )zh
Return a blob containing an Excel workbook file populated with the
contents of this chart data object.
)r:   	xlsx_blobr!   s    r   rB   _BaseChartData.xlsx_blobX   s     $$...r   c                B    U R                  U5      R                  S5      $ )z
Return a blob containing the XML for a chart of *chart_type*
containing the series in this chart data object, as bytes suitable
for writing directly to a file.
zutf-8)_xmlencoder   
chart_types     r   	xml_bytes_BaseChartData.xml_bytes`   s     yy$++G44r   c                8    U R                   R                  U5      $ )z^
The Excel worksheet reference to the Y values for *series* (not
including the column label).
)r:   y_values_refr%   s     r   rL   _BaseChartData.y_values_refh   r@   r   c                    [        S5      e)r
The worksheet writer object to which layout and writing of the Excel
worksheet for this chart will be delegated.
z%must be implemented by all subclasses)NotImplementedErrorr!   s    r   r:   _BaseChartData._workbook_writero   s     ""IJJr   c                ,    [        X5      R                  $ )z
Return (as unicode text) the XML for a chart of *chart_type*
populated with the values in this chart data object. The XML is
a complete XML document, including an XML declaration specifying
UTF-8 encoding.
)r	   xmlrG   s     r   rE   _BaseChartData._xmlw   s     j/333r   )r   r   )General)__name__
__module____qualname____firstlineno____doc__r   r   r    r$   r.   propertyr   r7   r;   r>   rB   rI   rL   r:   rE   __static_attributes____classcell__r   s   @r   r   r      s    
/&+
< # #<=: / /5: K K4 4r   r   c                      \ rS rSrSrS rS rS rS r\	S 5       r
\	S 5       r\	S	 5       r\	S
 5       r\	S 5       r\	S 5       r\	S 5       r\	S 5       r\	S 5       rSrg)_BaseSeriesData   a  
Base class providing common members for series data objects. A series
data object serves as proxy for a series data column in the Excel
worksheet. It operates as a sequence of data points, as well as providing
access to series-level attributes like the series label.
c                6    Xl         X l        X0l        / U l        g r   )_chart_data_namer   _data_points)r   
chart_datanamer   s       r   r   _BaseSeriesData.__init__   s    %
+r   c                8    U R                   R                  U5      $ r   )re   r   r   s     r   r   _BaseSeriesData.__getitem__   s      ,,U33r   c                6    U R                   R                  5       $ r   )re   r    r!   s    r   r    _BaseSeriesData.__len__   s      ((**r   c                8    U R                   R                  U5      $ r   )re   r$   )r   
data_points     r   r$   _BaseSeriesData.append   s      ''
33r   c                8    U R                   R                  U 5      $ )zU
The integer count of data points that appear in all chart series
prior to this one.
)rc   r.   r!   s    r   r.   !_BaseSeriesData.data_point_offset   s     11$77r   c                8    U R                   R                  U 5      $ )z
Zero-based integer indicating the sequence position of this series in
its chart. For example, the second of three series would return `1`.
)rc   r7   r!   s    r   r   _BaseSeriesData.index        ,,T22r   c                8    U R                   b  U R                   $ S$ )z
The name of this series, e.g. 'Series 1'. This name is used as the
column heading for the y-values of this series and may also appear in
the chart legend and perhaps other chart locations.
 )rd   r!   s    r   rg   _BaseSeriesData.name   s     "ZZ3tzz;;r   c                8    U R                   R                  U 5      $ )zP
The Excel worksheet reference to the cell containing the name for
this series.
)rc   r;   r!   s    r   name_ref_BaseSeriesData.name_ref   s     //55r   c                P    U R                   nUc  U R                  R                  $ U$ )z
The formatting template string that determines how a number in this
series is formatted, both in the chart and in the Excel spreadsheet;
for example '#,##0.0'. If not specified for this series, it is
inherited from the parent chart data object.
)r   rc   r   r   r   s     r   r   _BaseSeriesData.number_format   s-     ++ ##111r   c                X    U R                    Vs/ s H  oR                  PM     sn$ s  snf )zZ
A sequence containing the X value of each datapoint in this series,
in data point order.
)re   xr   dps     r   x_values_BaseSeriesData.x_values   &      $00100111   'c                8    U R                   R                  U 5      $ )zb
The Excel worksheet reference to the X values for this chart (not
including the column heading).
)rc   r>   r!   s    r   r>   _BaseSeriesData.x_values_ref   rt   r   c                X    U R                    Vs/ s H  oR                  PM     sn$ s  snf )zZ
A sequence containing the Y value of each datapoint in this series,
in data point order.
)re   yr   s     r   y_values_BaseSeriesData.y_values   r   r   c                8    U R                   R                  U 5      $ )zb
The Excel worksheet reference to the Y values for this chart (not
including the column heading).
)rc   rL   r!   s    r   rL   _BaseSeriesData.y_values_ref   rt   r   )rc   re   rd   r   N)rV   rW   rX   rY   rZ   r   r   r    r$   r[   r.   r   rg   ry   r   r   r>   r   rL   r\    r   r   r`   r`      s    4+4 8 8 3 3 < < 6 6 
 
 2 2 3 3 2 2 3 3r   r`   c                  <   ^  \ rS rSrSrU 4S jr\S 5       rSrU =r	$ )_BaseDataPoint   z=
Base class providing common members for data point objects.
c                B   > [         [        U ]  5         Xl        X l        g r   )r   r   r   _series_datar   )r   series_datar   r   s      r   r   _BaseDataPoint.__init__   s    nd,.'+r   c                P    U R                   nUc  U R                  R                  $ U$ )a   
The formatting template string that determines how the value of this
data point is formatted, both in the chart and in the Excel
spreadsheet; for example '#,##0.0'. If not specified for this data
point, it is inherited from the parent series data object.
)r   r   r   r|   s     r   r   _BaseDataPoint.number_format   s-     ++ $$222r   )r   r   )
rV   rW   rX   rY   rZ   r   r[   r   r\   r]   r^   s   @r   r   r      s!    ,
 
 
r   r   c                      \ rS rSrSrS rSS jr\S 5       r\R                  S 5       r\S 5       r
S	 r\S
 5       rSrg)CategoryChartData   a  
Accumulates data specifying the categories and series values for a chart
and acts as a proxy for the chart data table that will be written to an
Excel worksheet. Used as a parameter in :meth:`shapes.add_chart` and
:meth:`Chart.replace_data`.

This object is suitable for use with category charts, i.e. all those
having a discrete set of label values (categories) as the range of their
independent variable (X-axis) values. Unlike the ChartData types for
charts supporting a continuous range of independent variable values (such
as XyChartData), CategoryChartData has a single collection of category
(X) values and each data point in its series specifies only the Y value.
The corresponding X value is inferred by its position in the sequence.
c                8    U R                   R                  U5      $ )aV  
Return a newly created |data.Category| object having *label* and
appended to the end of the category collection for this chart.
*label* can be a string, a number, a datetime.date, or
datetime.datetime object. All category labels in a chart must be the
same type. All category labels in a chart having multi-level
categories must be strings.
)
categoriesadd_category)r   labels     r   r   CategoryChartData.add_category  s     ++E22r   Nc                t    [        XU5      nU R                  U5        U H  nUR                  U5        M     U$ )a  
Add a series to this data set entitled *name* and having the data
points specified by *values*, an iterable of numeric values.
*number_format* specifies how the series values will be displayed,
and may be a string, e.g. '#,##0' corresponding to an Excel number
format.
)CategorySeriesDatar$   add_data_point)r   rg   valuesr   r   values         r   
add_seriesCategoryChartData.add_series  s:     )]CK E&&u- r   c                \    [        U SS5      (       d  [        5       U l        U R                  $ )at  |data.Categories| object providing access to category-object hierarchy.

Assigning an iterable of category labels (strings, numbers, or dates) replaces
the |data.Categories| object with a new one containing a category for each label
in the sequence.

Creating a chart from chart data having date categories will cause the chart to
have a |DateAxis| for its category axis.
_categoriesF)getattr
Categoriesr   r!   s    r   r   CategoryChartData.categories(  s)     t]E22)|Dr   c                X    [        5       nU H  nUR                  U5        M     X l        g r   )r   r   r   )r   category_labelsr   r   s       r   r   r   7  s'    \
$E##E* %%r   c                .    U R                   R                  $ zd
The Excel worksheet reference to the categories for this chart (not
including the column heading).
)r:   categories_refr!   s    r   r    CategoryChartData.categories_ref>  s     $$333r   c                8    U R                   R                  U5      $ )z^
The Excel worksheet reference to the values for *series* (not
including the column heading).
)r:   
values_refr%   s     r   r   CategoryChartData.values_refF  s    
 $$//77r   c                    [        U 5      $ rO   )r   r!   s    r   r:   "CategoryChartData._workbook_writerM  s     &d++r   )r   )r   N)rV   rW   rX   rY   rZ   r   r   r[   r   setterr   r   r
   r:   r\   r   r   r   r   r      sl    	3     & & 4 48 , ,r   r   c                     ^  \ rS rSrSrU 4S jrS rS rS r\	S 5       r
\	S 5       r\	S	 5       rS
 r\	S 5       r\	S 5       r\	S 5       r\R"                  S 5       rSrU =r$ )r   iV  z
A sequence of |data.Category| objects, also having certain hierarchical
graph behaviors for support of multi-level (nested) categories.
c                F   > [         [        U ]  5         / U l        S U l        g r   )r   r   r   r   r   )r   r   s    r   r   Categories.__init__\  s     j$(*"r   c                8    U R                   R                  U5      $ r   )r   r   )r   r5   s     r   r   Categories.__getitem__a  s    ++C00r   c                6    U R                   R                  5       $ )z
Return the count of the highest level of category in this sequence.
If it contains hierarchical (multi-level) categories, this number
will differ from :attr:`category_count`, which is the number of leaf
nodes.
)r   r    r!   s    r   r    Categories.__len__d  s     ''))r   c                R    [        X5      nU R                  R                  U5        U$ )a  
Return a newly created |data.Category| object having *label* and
appended to the end of this category sequence. *label* can be
a string, a number, a datetime.date, or datetime.datetime object. All
category labels in a chart must be the same type. All category labels
in a chart having multi-level categories must be strings.

Creating a chart from chart data having date categories will cause
the chart to have a |DateAxis| for its category axis.
)Categoryr   r$   r   r   categorys      r   r   Categories.add_categorym  s'     E()r   c                    U R                   S:w  a  gU S   R                  n[        R                  [        R                  4n[	        X5      (       a  gg)a  
Return |True| if the first category in this collection has a date
label (as opposed to str or numeric). A date label is one of type
datetime.date or datetime.datetime. Returns |False| otherwise,
including when this category collection is empty. It also returns
False when this category collection is hierarchical, because
hierarchical categories can only be written as string labels.
   Fr   T)depthr   datetimedate
isinstance)r   first_cat_label
date_typess      r   	are_datesCategories.are_dates|  sD     ::?q'--mmX%6%67
o22r   c                    U R                   S:w  a  gU S   R                  n[        [        R                  [        R                  4n[        X5      (       a  gg)a  
Return |True| if the first category in this collection has a numeric
label (as opposed to a string label), including if that value is
a datetime.date or datetime.datetime object (as those are converted
to integers for storage in Excel). Returns |False| otherwise,
including when this category collection is empty. It also returns
False when this category collection is hierarchical, because
hierarchical categories can only be written as string labels.
r   Fr   T)r   r   r   r   r   r   )r   r   numeric_typess      r   are_numericCategories.are_numeric  sH     ::?
 q'--0A0ABo55r   c                    U R                   nU(       d  gUS   R                  nUSS  H  nUR                  U:w  d  M  [        S5      e   U$ )z`
The number of hierarchy levels in this category graph. Returns 0 if
it contains no categories.
r   r   Ncategory depth not uniform)r   r   r+   )r   r   first_depthr   s       r   r   Categories.depth  sT     %%
 m))"12H~~, !=>> ' r   c                n    SnU R                    H  nXL a  Us  $ X#R                  -  nM     [        S5      e)z
The offset of *category* in the overall sequence of leaf categories.
A non-leaf category gets the index of its first sub-category.
r   z$category not in top-level categories)r   
leaf_countr+   )r   r   r   this_categorys       r   r   Categories.index  s@    
 !--M(---E . ?@@r   c                :    [        S U R                   5       5      $ )z
The number of leaf-level categories in this hierarchy. The return
value is the same as that of `len()` only when the hierarchy is
single level.
c              3  8   #    U  H  oR                   v   M     g 7fr   r   ).0cs     r   	<genexpr>(Categories.leaf_count.<locals>.<genexpr>  s     :)9A<<)9   )sumr   r!   s    r   r   Categories.leaf_count  s     :)9)9:::r   c              #  @   ^#    U4S jmT" U 5       H  nUv   M	     g7f)z
A generator of (idx, label) sequences representing the category
hierarchy from the bottom up. The first level contains all leaf
categories, and each subsequent is the next level up.
c              3     >#    U  VVs/ s H  oR                     H  o"PM     M     nnnU(       a  T" U5       H  nUv   M	     U  Vs/ s H  oUR                  UR                  4PM     snv   g s  snnf s  snf 7fr   )sub_categoriesr5   r   )r   r   scr   levelcatlevelss         r   r   !Categories.levels.<locals>.levels  sk     *4P*Q?O?Ob?Ob*NP#N3EK 4 4>>:CGGSYY':>> Q
 ?s   A:A/!A:!A5)A:Nr   )r   r   r   s     @r   r   Categories.levels  s      	? D\EK "s   c                    SnU R                   b  U R                   $ U R                  S:w  a  U$ U S   R                  n[        U[        R
                  [        R                  45      (       a  gU$ )a  
Read/write. Return a string representing the number format used in
Excel to format these category values, e.g. '0.0' or 'mm/dd/yyyy'.
This string is only relevant when the categories are numeric or date
type, although it returns 'General' without error when the categories
are string labels. Assigning |None| causes the default number format
to be used, based on the type of the category labels.
rU   r   r   zyyyy\-mm\-dd)r   r   r   r   r   r   )r   GENERALr   s      r   r   Categories.number_format  sh      *&&& ::?N q'--ox7H7H'IJJ"r   c                    Xl         g r   r1   )r   r   s     r   r   r     s    #r   )r   r   )rV   rW   rX   rY   rZ   r   r   r    r   r[   r   r   r   r   r   r   r   r   r\   r]   r^   s   @r   r   r   V  s    
#
1*  "  ,  
A ; ;  &  4 $ $r   r   c                     ^  \ rS rSrSrU 4S jrS r\S 5       r\S 5       r	S r
\S 5       r\S	 5       rSS
 jr\S 5       rS rSrU =r$ )r   i  z
A chart category, primarily having a label to be displayed on the
category axis, but also able to be configured in a hierarchy for support
of multi-level category charts.
c                P   > [         [        U ]  5         Xl        X l        / U l        g r   )r   r   r   _label_parent_sub_categories)r   r   parentr   s      r   r   Category.__init__  s"    h&(!r   c                R    [        X5      nU R                  R                  U5        U$ )z
Return a newly created |data.Category| object having *label* and
appended to the end of the sub-category sequence for this category.
)r   r   r$   r   s      r   add_sub_categoryCategory.add_sub_category
  s'    
 E(##H-r   c                    U R                   nU(       d  gUS   R                  nUSS  H  nUR                  U:w  d  M  [        S5      e   US-   $ )zp
The number of hierarchy levels rooted at this category node. Returns
1 if this category has no sub-categories.
r   r   Nr   )r   r   r+   )r   r   r   r   s       r   r   Category.depth  sZ     --$Q'--&qr*H~~, !=>> + Qr   c                8    U R                   R                  U 5      $ )z
The offset of this category in the overall sequence of leaf
categories. A non-leaf category gets the index of its first
sub-category.
)r   r   r!   s    r   r5   Category.idx"  s     ||!!$''r   c                    U R                   R                  U 5      nU R                   H  nXL a  Us  $ X#R                  -  nM     [	        S5      e)zJ
The offset of *sub_category* in the overall sequence of leaf
categories.
z!sub_category not in this category)r   r   r   r   r+   )r   sub_categoryr   this_sub_categorys       r   r   Category.index+  sP    
 ""4(!%!5!50111E "6 <==r   c                ^    U R                   (       d  g[        S U R                    5       5      $ )zj
The number of leaf category nodes under this category. Returns
1 if this category has no sub-categories.
r   c              3  8   #    U  H  oR                   v   M     g 7fr   r   )r   r   s     r   r   &Category.leaf_count.<locals>.<genexpr>?  s     L7K8&&7Kr   )r   r   r!   s    r   r   Category.leaf_count7  s'     ##Lt7K7KLLLr   c                8    U R                   b  U R                   $ S$ )z
The value that appears on the axis for this category. The label can
be a string, a number, or a datetime.date or datetime.datetime
object.
rv   )r   r!   s    r   r   Category.labelA  s     #kk5t{{=2=r   c                    U R                   n[        U[        R                  [        R                  45      (       a  SU R	                  U5      -  $ [        U R                   5      $ )z
The string representation of the numeric (or date) label of this
category, suitable for use in the XML `c:pt` element for this
category. The optional *date_1904* parameter specifies the epoch used
for calculating Excel date numbers.
z%.1f)r   r   r   r   _excel_date_numberstr)r   	date_1904r   s      r   numeric_str_valCategory.numeric_str_valJ  sN     ehmmX->->?@@D33I>>>4;;r   c                    U R                   $ )z5
The sequence of child categories for this category.
)r   r!   s    r   r   Category.sub_categoriesV  s    
 ###r   c                   [         R                  U R                  p2U" UR                  UR                  UR
                  5      nU(       a
  U" SSS5      O	U" SSS5      nXE-
  nUR                  nU(       d  US:  a  US-  nU$ )z
Return an integer representing the date label of this category as the
number of days since January 1, 1900 (or 1904 if date_1904 is
|True|).
ip  r   ik        ;   )r   r   r   yearmonthdaydays)r   r  r   r   date_epochdeltaexcel_day_numbers           r   r  Category._excel_date_number]  sw     mmT[[eUZZeii8$-T1a 4b"3E :: -2!r   )r   r   r   )F)rV   rW   rX   rY   rZ   r   r   r[   r   r5   r   r   r   r  r   r  r\   r]   r^   s   @r   r   r     s    "   ( (
> M M > >
  $ $   r   r   c                      \ rS rSrSrSrg)	ChartDataiq  z
|ChartData| is simply an alias for |CategoryChartData| and may be removed
in a future release. All new development should use |CategoryChartData|
for creating or replacing the data in chart types other than XY and
Bubble.
r   N)rV   rW   rX   rY   rZ   r\   r   r   r   r   r   q  s    r   r   c                  b    \ rS rSrSrS
S jr\S 5       r\S 5       r\S 5       r	\S 5       r
S	rg)r   iz  z
The data specific to a particular category chart series. It provides
access to the series label, the series data points, and an optional
number format to be applied to each data point not having a specified
number format.
Nc                @    [        XU5      nU R                  U5        U$ )z
Return a CategoryDataPoint object newly created with value *value*,
an optional *number_format*, and appended to this sequence.
)CategoryDataPointr$   )r   r   r   rn   s       r   r   !CategorySeriesData.add_data_point  s"    
 'tMB
Jr   c                .    U R                   R                  $ )z\
The |data.Categories| object that provides access to the category
objects for this series.
)rc   r   r!   s    r   r   CategorySeriesData.categories  s     ***r   c                .    U R                   R                  $ r   )rc   r   r!   s    r   r   !CategorySeriesData.categories_ref  s     ...r   c                X    U R                    Vs/ s H  oR                  PM     sn$ s  snf )z\
A sequence containing the (Y) value of each datapoint in this series,
in data point order.
)re   r   r   s     r   r   CategorySeriesData.values  s&     $(#4#45#4R#4555r   c                8    U R                   R                  U 5      $ )ze
The Excel worksheet reference to the (Y) values for this series (not
including the column heading).
)rc   r   r!   s    r   r   CategorySeriesData.values_ref  s     **400r   r   r   )rV   rW   rX   rY   rZ   r   r[   r   r   r   r   r\   r   r   r   r   r   z  s\     + + / / 6 6 1 1r   r   c                  2    \ rS rSrSrSS jr\S 5       rSrg)XyChartDatai  z
A specialized ChartData object suitable for use with an XY (aka. scatter)
chart. Unlike ChartData, it has no category sequence. Rather, each data
point of each series specifies both an X and a Y value.
Nc                @    [        XU5      nU R                  U5        U$ )z
Return an |XySeriesData| object newly created and added at the end of
this sequence, identified by *name* and values formatted with
*number_format*.
)XySeriesDatar$   r   rg   r   r   s       r   r   XyChartData.add_series  s"     #4}=K r   c                    [        U 5      $ r   )r   r!   s    r   r:   XyChartData._workbook_writer  s      %%r   r   r   )	rV   rW   rX   rY   rZ   r   r
   r:   r\   r   r   r   r.  r.    s      & &r   r.  c                  8    \ rS rSrSrSS jrS r\S 5       rSr	g)	BubbleChartDatai  z
A specialized ChartData object suitable for use with a bubble chart.
A bubble chart is essentially an XY chart where the markers are scaled to
provide a third quantitative dimension to the exhibit.
Nc                @    [        XU5      nU R                  U5        U$ )z
Return a |BubbleSeriesData| object newly created and added at the end
of this sequence, and having series named *name* and values formatted
with *number_format*.
)BubbleSeriesDatar$   r1  s       r   r   BubbleChartData.add_series  s"     't=AK r   c                8    U R                   R                  U5      $ )zW
The Excel worksheet reference for the range containing the bubble
sizes for *series*.
)r:   bubble_sizes_refr%   s     r   r;   BubbleChartData.bubble_sizes_ref  s    
 $$55f==r   c                    [        U 5      $ r   )r   r!   s    r   r:    BubbleChartData._workbook_writer  s     $D))r   r   r   )
rV   rW   rX   rY   rZ   r   r;  r
   r:   r\   r   r   r   r6  r6    s%    > * *r   r6  c                  "    \ rS rSrSrSS jrSrg)r0  i  a  
The data specific to a particular XY chart series. It provides access to
the series label, the series data points, and an optional number format
to be applied to each data point not having a specified number format.

The sequence of data points in an XY series is significant; lines are
plotted following the sequence of points, even if that causes a line
segment to "travel backward" (implying a multi-valued function). The data
points are not automatically sorted into increasing order by X value.
Nc                @    [        XX#5      nU R                  U5        U$ )zd
Return an XyDataPoint object newly created with values *x* and *y*,
and appended to this sequence.
)XyDataPointr$   )r   r   r   r   rn   s        r   r   XySeriesData.add_data_point  s"    
 !!;
Jr   r   r   )rV   rW   rX   rY   rZ   r   r\   r   r   r   r0  r0    s    	r   r0  c                  B    \ rS rSrSrSS jr\S 5       r\S 5       rSr	g)	r8  i  a  
The data specific to a particular Bubble chart series. It provides access
to the series label, the series data points, and an optional number
format to be applied to each data point not having a specified number
format.

The sequence of data points in a bubble chart series is maintained
throughout the chart building process because a data point has no unique
identifier and can only be retrieved by index.
Nc                B    [        XX#U5      nU R                  U5        U$ )z
Append a new BubbleDataPoint object having the values *x*, *y*, and
*size*. The optional *number_format* is used to format the Y value.
If not provided, the number format is inherited from the series data.
)BubbleDataPointr$   )r   r   r   sizer   rn   s         r   r   BubbleSeriesData.add_data_point	  s$     %Ta}E
Jr   c                X    U R                    Vs/ s H  oR                  PM     sn$ s  snf )z_
A sequence containing the bubble size for each datapoint in this
series, in data point order.
)re   bubble_sizer   s     r   bubble_sizesBubbleSeriesData.bubble_sizes  s&     *.):):;):2):;;;r   c                8    U R                   R                  U 5      $ )zZ
The Excel worksheet reference for the range containing the bubble
sizes for this series.
)rc   r;  r!   s    r   r;  !BubbleSeriesData.bubble_sizes_ref  s     0066r   r   r   )
rV   rW   rX   rY   rZ   r   r[   rJ  r;  r\   r   r   r   r8  r8    s4    	 < < 7 7r   r8  c                  <   ^  \ rS rSrSrU 4S jr\S 5       rSrU =r	$ )r#  i$  z
A data point in a category chart series. Provides access to the value of
the datapoint and the number format with which it should appear in the
Excel file.
c                8   > [         [        U ]  X5        X l        g r   )r   r#  r   _value)r   r   r   r   r   s       r   r   CategoryDataPoint.__init__+  s    /Kr   c                    U R                   $ )z-
The (Y) value for this category data point.
rP  r!   s    r   r   CategoryDataPoint.value/  s    
 {{r   rS  )
rV   rW   rX   rY   rZ   r   r[   r   r\   r]   r^   s   @r   r#  r#  $  s!      r   r#  c                  L   ^  \ rS rSrSrU 4S jr\S 5       r\S 5       rSr	U =r
$ )rA  i7  z]
A data point in an XY chart series. Provides access to the x and y values
of the datapoint.
c                D   > [         [        U ]  X5        X l        X0l        g r   )r   rA  r   _x_y)r   r   r   r   r   r   s        r   r   XyDataPoint.__init__=  s    k4)+Er   c                    U R                   $ )z%
The X value for this XY data point.
)rW  r!   s    r   r   XyDataPoint.xB      
 wwr   c                    U R                   $ )z%
The Y value for this XY data point.
)rX  r!   s    r   r   XyDataPoint.yI  r\  r   )rW  rX  )rV   rW   rX   rY   rZ   r   r[   r   r   r\   r]   r^   s   @r   rA  rA  7  s5    

    r   rA  c                  <   ^  \ rS rSrSrU 4S jr\S 5       rSrU =r	$ )rE  iQ  zg
A data point in a bubble chart series. Provides access to the x, y, and
size values of the datapoint.
c                :   > [         [        U ]  XX55        X@l        g r   )r   rE  r   _size)r   r   r   r   rF  r   r   s         r   r   BubbleDataPoint.__init__W  s    ot-kaO
r   c                    U R                   $ )zD
The value representing the size of the bubble for this data point.
ra  r!   s    r   rI  BubbleDataPoint.bubble_size[  s    
 zzr   rd  )
rV   rW   rX   rY   rZ   r   r[   rI  r\   r]   r^   s   @r   rE  rE  Q  s!    
  r   rE  ) rZ   
__future__r   r   collections.abcr   numbersr   pptx.chart.xlsxr   r   r   pptx.chart.xmlwriterr	   	pptx.utilr
   r   r`   objectr   r   r   r   r   r   r.  r6  r0  r8  r#  rA  rE  r   r   r   <module>rm     s    $ "  $  
 0 "l4X l4^c3h c3LV 0T, T,nd$ d$Nq v q h! /1 /1d&. &4*k *B? ,$7| $7N &. 4k r   