o
    g4                     @   s$  d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
m	Z	mZ d dlmZ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 d	d
lmZ d dlmZ G dd deZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%G dd deZ&G d d! d!eZ'G d"d# d#eZ(G d$d% d%eZ)G d&d' d'eZ*G d(d) d)eZ+G d*d+ d+eZ,G d,d- d-eZ-G d.d/ d/eZ.G d0d1 d1eZ/G d2d3 d3eZ0G d4d5 d5eZ1G d6d7 d7eZ2G d8d9 d9eZ3G d:d; d;eZ4d<S )=    )defaultdict)Serialisable)TypedIntegerNoneSetSetBoolStringr   Sequence)ExtensionListRelation)NestedSequence)SHEET_MAIN_NS)tostring)RelationshipListRelationshipget_rels_path   )Index)
AutoFilterc                   @   "   e Zd ZdZe Z	dddZdS )HierarchyUsagehierarchyUsageNc                 C   
   || _ d S N)r   )selfr    r   N/var/www/html/api-tag/env/lib/python3.10/site-packages/openpyxl/pivot/table.py__init__'      
zHierarchyUsage.__init__r   )__name__
__module____qualname__tagnamer   r   r   r   r   r   r   r   !   
    r   c                   @   <   e Zd ZdZeedZdZdZ		dddZ	e
d	d
 ZdS )ColHierarchiesUsagecolHierarchiesUsageexpected_typecolHierarchyUsagecountNr   c                 C   
   || _ d S r   r*   )r   r-   r+   r   r   r   r   6      
zColHierarchiesUsage.__init__c                 C   
   t | jS r   )lenr+   r   r   r   r   r-   =      
zColHierarchiesUsage.countNr   )r    r!   r"   r#   r
   r   r+   __elements__	__attrs__r   propertyr-   r   r   r   r   r&   -   s    

r&   c                   @   r%   )RowHierarchiesUsagerowHierarchiesUsager(   rowHierarchyUsager,   Nr   c                 C   r.   r   r:   )r   r-   r;   r   r   r   r   K   r/   zRowHierarchiesUsage.__init__c                 C   r0   r   )r1   r;   r2   r   r   r   r-   Q   r3   zRowHierarchiesUsage.countr4   )r    r!   r"   r#   r
   r   r;   r5   r6   r   r7   r-   r   r   r   r   r8   B   s    

r8   c                   @   s   e Zd ZdZe ZeddZeg ddZeddZ	e Z
eddZeddZeddZeddZeddZeddZeedZeeddZdZ																										dd
dZd	S )PivotFilterfilterT
allow_none)Bunknownr-   percentsumcaptionEqualcaptionNotEqualcaptionBeginsWithcaptionNotBeginsWithcaptionEndsWithcaptionNotEndsWithcaptionContainscaptionNotContainscaptionGreaterThancaptionGreaterThanOrEqualcaptionLessThancaptionLessThanOrEqualcaptionBetweencaptionNotBetween
valueEqualvalueNotEqualvalueGreaterThanvalueGreaterThanOrEqualvalueLessThanvalueLessThanOrEqualvalueBetweenvalueNotBetween	dateEqualdateNotEqualdateOlderThandateOlderThanOrEqualdateNewerThandateNewerThanOrEqualdateBetweendateNotBetweentomorrowtoday	yesterdaynextWeekthisWeeklastWeek	nextMonth	thisMonth	lastMonthnextQuarterthisQuarterlastQuarternextYearthisYearlastYear
yearToDateQ1Q2Q3Q4M1M2M3M4M5M6M7M8M9M10M11M12valuesr(   r)   r?   )
autoFilterNc                 C   sL   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _d S r   )fldmpFldtype	evalOrderidiMeasureHieriMeasureFldnamedescriptionstringValue1stringValue2r   )r   r   r   r   r   r   r   r   r   r   r   r   r   extLstr   r   r   r   x   s   
zPivotFilter.__init__)NNNNNNNNNNNNN)r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r5   r   r   r   r   r   r<   V   s<    








r<   c                   @   s0   e Zd Ze ZeeddZdZ		dddZ	dS )PivotFiltersTr   r=   Nc                 C   r.   r   r   )r   r-   r=   r   r   r   r      r/   zPivotFilters.__init__)NN)
r    r!   r"   r   r-   r   r<   r=   r5   r   r   r   r   r   r      s    r   c                   @   sN   e Zd ZdZeddZe Ze Ze Z	e Z
e Z						dddZdS )PivotTableStylepivotTableStyleInfoTr>   Nc                 C   (   || _ || _|| _|| _|| _|| _d S r   )r   showRowHeadersshowColHeadersshowRowStripesshowColStripesshowLastColumn)r   r   r   r   r   r   r   r   r   r   r         
zPivotTableStyle.__init__NNNNNN)r    r!   r"   r#   r	   r   r   r   r   r   r   r   r   r   r   r   r   r      s    
r   c                   @   sF   e Zd ZdZeddZeeddZdZ				dd	d
Z
edd ZdS )
MemberListmembersTr>   r   r)   	attribute)memberNr   c                 C   s   || _ || _d S r   )levelr   )r   r-   r   r   r   r   r   r      s   
zMemberList.__init__c                 C   r0   r   )r1   r   r2   r   r   r   r-      r3   zMemberList.count)NNr   )r    r!   r"   r#   r   r   r   r	   r   r5   r   r7   r-   r   r   r   r   r      s    

r   c                   @   s   e Zd ZdZeddZeddZeddZeddZ	e
ddZe
ddZe
ddZe
ddZe
 Z									dddZdS )MemberPropertympsTr>   Nc
           
      C   s:   || _ || _|| _|| _|| _|| _|| _|| _|	| _d S r   )	r   showCellshowTipshowAsCaptionnameLenpPospLenr   field)
r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   
zMemberProperty.__init__)	NNNNNNNNN)r    r!   r"   r#   r	   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s*    







r   c                   @   s   e Zd ZdZe Ze Ze Ze Ze Z	e Z
e Ze Ze Ze ZeddZeeddZeeddZeeddZdZ														dd	d
ZdS )PivotHierarchypivotHierarchyTr>   r)   r-   r   )r   r   Nr   c                 C   X   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _d S r   )outlinemultipleItemSelectionAllowedsubtotalTopshowInFieldList	dragToRow	dragToCol
dragToPage
dragToDatadragOffincludeNewItemsInFiltercaptionr   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r        
zPivotHierarchy.__init__)NNNNNNNNNNNr   NN)r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r5   r   r   r   r   r   r      s@    
r   c                   @   s  e Zd ZdZeddZeddZeddZeddZ	eddZ
eddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeedZeeddZdZ																			dd	d
Zedd ZdS )	Reference	referenceTr>   r(   r   xNr   c                 C   sj   || _ || _|| _|| _|| _|| _|| _|	| _|
| _|| _	|| _
|| _|| _|| _|| _|| _|| _d S r   )r   selected
byPositionrelativedefaultSubtotalsumSubtotalcountASubtotalavgSubtotalmaxSubtotalminSubtotalproductSubtotalcountSubtotalstdDevSubtotalstdDevPSubtotalvarSubtotalvarPSubtotalr   )r   r   r-   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   F  s"   
zReference.__init__c                 C   r0   r   )r1   r   r2   r   r   r   r-   n  r3   zReference.count)NNNNNNNNNNNNNNNNNr   N) r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r5   r   r7   r-   r   r   r   r   r   -  sV    

















(r   c                   @   s   e Zd ZdZeeddZeeddZ	e
ddZeg ddZeddZeddZeddZeddZeddZeddZeddZeddZeg ddZe
ddZd	Z	
													dddZdS )	PivotArea	pivotAreaTr   r   r>   )normaldataalloriginbuttontopEndtopRightr   axisRowaxisColaxisPage
axisValues)
referencesr   Nr   c                 C   r   r   )r   r   r   r   dataOnly	labelOnlygrandRowgrandCol
cacheIndexr   offsetcollapsedLevelsAreSubtotalsaxisfieldPosition)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r     r   zPivotArea.__init__)r   NNr   TNNNNTNNNN)r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r5   r   r   r   r   r   r   s  s@    









r   c                   @   sB   e Zd ZdZe Ze Ze Ze	e
dZdZ				dddZdS )ChartFormatchartFormatr(   r   Nc                 C      || _ || _|| _|| _d S r   )chartformatseriesr   )r   r   r   r   r   r   r   r   r        
zChartFormat.__init__)NNNN)r    r!   r"   r#   r   r   r   r   r   r   r   r   r5   r   r   r   r   r   r     s    
r   c                   @   s`   e Zd ZdZeg ddZeg ddZe Z	e
edZeeddZdZ			
	
		
dddZd
S )ConditionalFormatconditionalFormat)	selectionr   r   r   )r   rowcolumnr(   Tr   )
pivotAreasr   Nr   c                 C   s"   || _ || _|| _|| _|| _d S r   )scoper   priorityr   r   )r   r   r   r   r   r   r   r   r   r     s
   
zConditionalFormat.__init__)r   NNr   N)r    r!   r"   r#   r   r   r   r   r   r   r   r   r   r   r   r   r5   r   r   r   r   r   r     s    
r   c                       sV   e Zd ZdZeedZdZdddZdd	 Z	d
d Z
edd Zd fdd	Z  ZS )ConditionalFormatListconditionalFormatsr(   r,   r   Nc                 C   r   r   )r   )r   r   r-   r   r   r   r     s   
zConditionalFormatList.__init__c                 C   sL   i }| j D ]}|jD ]}|jD ]}|jD ]}|j|jf}|||< qqq
q|S )z
        Return a dictionary of format objects keyed by (field id and format property).
        This can be used to map the formats to field but also to dedupe to match
        worksheet definitions which are grouped by cell range
        )r   r   r   r   vr   )r   fmtsfmtarearefr   keyr   r   r   by_priority  s   




z!ConditionalFormatList.by_priorityc                 C   s<   |   }dd t| ddD }|rt| | _dS dS )ar  
        Group formats by field index and priority.
        Sorted to match sorting and grouping for corresponding worksheet formats

        The implemtenters notes contain significant deviance from the OOXML
        specification, in particular how conditional formats in tables relate to
        those defined in corresponding worksheets and how to determine which
        format applies to which fields.

        There are some magical interdependencies:

        * Every pivot table fmt must have a worksheet cxf with the same priority.

        * In the reference part the field 4294967294 refers to a data field, the
        spec says -2

        * Data fields are referenced by the 0-index reference.x.v value

        Things are made more complicated by the fact that field items behave
        diffently if the parent is a reference or shared item: "In Office if the
        parent is the reference element, then restrictions of this value are
        defined by reference@field. If the parent is the tables element, then
        this value specifies the index into the table tag position in @url."
        Yeah, right!
        c                 S   s   i | ]	\\}}}||qS r   r   ).0r   r   r   r   r   r   
<dictcomp>  s    z1ConditionalFormatList._dedupe.<locals>.<dictcomp>T)reverseN)r   sorteditemslistr   r   )r   r   r   r   r   _dedupe  s
   zConditionalFormatList._dedupec                 C   r0   r   )r1   r   r2   r   r   r   r-     r3   zConditionalFormatList.countc                    s   |    t |S r   )r  superto_tree)r   r#   	__class__r   r   r  !  s   zConditionalFormatList.to_tree)r   Nr   )r    r!   r"   r#   r
   r   r   r6   r   r   r  r7   r-   r  __classcell__r   r   r	  r   r     s    

$
r   c                   @   sT   e Zd ZdZeg ddZeddZee	dZ
eeddZdZ			
	
	
dddZd
S )Formatr   )blank
formattingdrillformular   Tr>   r(   r   r   r  Nc                 C   r   r   )actiondxfIdr   r   )r   r  r  r   r   r   r   r   r   1  r   zFormat.__init__)r  NNN)r    r!   r"   r#   r   r  r   r  r   r   r   r   r   r5   r   r   r   r   r   r  &  s    

r  c                   @   s|   e Zd ZdZeddZe Zeg ddZ	eg ddZ
e Ze ZeddZeeddZdZ					
							dddZd	S )	DataField	dataFieldTr>   )averager-   	countNumsmaxminproductstdDevstdDevprB   varvarpr   )	r   
differencerA   percentDiffrunTotalpercentOfRowpercentOfColpercentOfTotalindexr   r   NrB   r     c	           	      C   s4   || _ || _|| _|| _|| _|| _|| _|| _d S r   )r   r   subtotal
showDataAs	baseFieldbaseItemnumFmtIdr   )	r   r   r   r'  r(  r)  r*  r+  r   r   r   r   r   P  s   

zDataField.__init__)NNrB   r   r%  r&  NN)r    r!   r"   r#   r	   r   r   r   r   r'  r(  r)  r*  r+  r   r   r   r5   r   r   r   r   r   r  =  s(    

r  c                   @   sd   e Zd ZdZe ZeddZeddZeddZ	eddZ
eeddZdZ						d	ddZdS )
	PageField	pageFieldTr>   r   r   Nc                 C   r   r   )r   itemhierr   capr   )r   r   r.  r/  r   r0  r   r   r   r   r   q  r   zPageField.__init__r   )r    r!   r"   r#   r   r   r.  r/  r	   r   r0  r   r   r   r5   r   r   r   r   r   r,  d  s     



r,  c                   @   sL   e Zd ZdZeg ddZe Ze Ze	e
ddZdZ					dd
dZdS )
RowColItemir   defaultrB   countAavgr  r  r  r-   r  stdDevPr  varPgrandr  r   r   r   r   r   r   r   c                 C   r   r   )trr2  r   )r   r:  r;  r2  r   r   r   r   r     r   zRowColItem.__init__N)r   r   r   r   )r    r!   r"   r#   r   r:  r   r;  r2  r
   r   r   r5   r   r   r   r   r   r1    s    r1  c                   @   r   )RowColFieldr   Nc                 C   r   r   r   )r   r   r   r   r   r     r   zRowColField.__init__r   )r    r!   r"   r#   r   r   r   r   r   r   r   r<    r$   r<  c                   @   s&   e Zd ZeedZdZ	dddZdS )AutoSortScoper(   r   Nc                 C   r   r   r   )r   r   r   r   r   r     r   zAutoSortScope.__init__r   )r    r!   r"   r   r   r   r5   r   r   r   r   r   r=    s
    
r=  c                   @   s   e Zd ZdZeddZeg ddZeddZ	eddZ
eddZeddZeddZeddZeddZeddZeddZ											d
dd	ZdS )	FieldItemr.  Tr>   r3  r   Nr   c                 C   sF   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
d S r   )nr:  hssdfmcr   de)r   r?  r:  r@  rA  rB  rC  rD  rE  r   rF  rG  r   r   r   r     s   
zFieldItem.__init__)Nr   NNTNNNNNN)r    r!   r"   r#   r	   r?  r   r:  r   r@  rA  rB  rC  rD  rE  r   r   rF  rG  r   r   r   r   r   r>    s2    









r>  c                   @   s  e Zd ZdZeeddZeeddZ	ee
ddZeddZeg ddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZeddZ eddZ!eddZ"eddZ#eddZ$eddZ%eddZ&eddZ'eddZ(eddZ)eddZ*eddZ+e,g ddZ-eddZ.eddZ/eddZ0eddZ1eddZ2eddZ3eddZ4eddZ5eddZ6eddZ7eddZ8eddZ9eddZ:eddZ;eddZ<eddZ=eddZ>eddZ?eddZ@d	ZA	
																																																		dddZBdS )
PivotField
pivotFieldTr   r   r>   r   r   )manual	ascending
descending)r  autoSortScoper   N
   rJ  c4           4      C   s0  || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _| | _|!| _ |"| _!|#| _"|$| _#|%| _$|&| _%|'| _&|(| _'|)| _(|*| _)|+| _*|,| _+|-| _,|.| _-|/| _.|0| _/|1| _0|2| _1d S r   )2r  rM  r   r   r  subtotalCaptionshowDropDownshiddenLeveluniqueMemberPropertycompact
allDrilledr+  r   r   r   r   r   r   r   r   showAllinsertBlankRowserverFieldinsertPageBreakautoShowtopAutoShowhideNewItemsmeasureFilterr   itemPageCountsortTypedataSourceSortnonAutoSortDefaultrankByr   r   r   r   r   r   r   r   r   r   r   r   showPropCellshowPropTipshowPropAsCaptiondefaultAttributeDrillState)4r   r  rM  r   r   r  rO  rP  rQ  rR  rS  rT  r+  r   r   r   r   r   r   r   r   rU  rV  rW  rX  rY  rZ  r[  r\  r   r]  r^  r_  r`  ra  r   r   r   r   r   r   r   r   r   r   r   r   rb  rc  rd  re  r   r   r   r   r     sd   5
zPivotField.__init__)3r   NNNNNTNNTNNTTTTNTTTTNNNNTNNNrN  rJ  NNNTNNNNNNNNNNNNNNNN)Cr    r!   r"   r#   r   r>  r  r   r=  rM  r   r   r	   r   r   r   r   r  rO  rP  rQ  rR  rS  rT  r   r+  r   r   r   r   r   r   r   r   rU  rV  rW  rX  rY  rZ  r[  r\  r   r]  r   r^  r_  r`  ra  r   r   r   r   r   r   r   r   r   r   r   r   rb  rc  rd  re  r5   r   r   r   r   r   rH    s    













































rH  c                   @   sR   e Zd ZdZe Ze Ze Ze Z	eddZ
eddZ						dddZdS )LocationlocationTr>   Nc                 C   r   r   )r   firstHeaderRowfirstDataRowfirstDataColrowPageCountcolPageCount)r   r   rh  ri  rj  rk  rl  r   r   r   r     r   zLocation.__init__r   )r    r!   r"   r#   r	   r   r   rh  ri  rj  rk  rl  r   r   r   r   r   rf    s    

rf  c                       s  e Zd ZdZdZdZdZdZdZe	 Z
e Ze ZeddZe	 Ze	ddZe	ddZe Ze	ddZe Ze	ddZe	ddZe	ddZe	ddZe Ze Ze Ze Ze Ze Ze Z e Z!e Z"e Z#e Z$e Z%e Z&e Z'e Z(e Z)e Z*e Z+e Z,e Z-e Z.e Z/e Z0e Z1e Z2e Z3e Z4e Z5e Z6e Z7e Z8e Z9e Z:e Z;e Z<e Z=e Z>e Z?e Z@e ZAe ZBe ZCe	ddZDe	ddZEe ZFe ZGeddZHeddZIe ZJe ZKe ZLe ZMe ZNe ZOePeQd	ZReSeTdd
ZUeSeVdd
ZWeSeXdd
ZYeSeVdd
ZZeSeXdd
Z[eSe\dd
Z]eSe^dd
Z_eSe`dd
ZaePebddZceSeddd
ZeeSefdd
ZgePehddZieSejdd
ZkePelddZmePenddZoePepddZqer ZsdZt																																																																																						dddZu fddZvewdd Zxdd Zydd Zzdd Z{ewdd Z|  Z}S )TableDefinitionzJapplication/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xmlzNhttp://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTabler   z!/xl/pivotTables/pivotTable{0}.xmlpivotTableDefinitionNTr>   r(   r   r   )rg  pivotFields	rowFieldsrowItems	colFieldscolItems
pageFields
dataFieldsformatsr   chartFormatspivotHierarchiesr   filtersr9   r'   Fr   r   cW           W      C   s  || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _|| _| | _|!| _ |"| _!|#| _"|$| _#|%| _$|&| _%|'| _&|(| _'|)| _(|*| _)|+| _*|,| _+|-| _,|.| _-|/| _.|0| _/|1| _0|2| _1|3| _2|4| _3|5| _4|6| _5|7| _6|8| _7|9| _8|:| _9|;| _:|<| _;|=| _<|>| _=|?| _>|@| _?|A| _@|B| _A|C| _B|D| _C|E| _D|F| _E|G| _F|H| _G|I| _H|J| _I|K| _J|L| _K|M| _L|N| _Md | _M|O| _N|P| _O|Q| _P|R| _Q|S| _R|T| _S|U| _T|V| _Ud S r   )Vr   cacheId
dataOnRowsdataPositiondataCaptiongrandTotalCaptionerrorCaption	showErrormissingCaptionshowMissing	pageStylepivotTableStylevacatedStyletagupdatedVersionminRefreshableVersionasteriskTotals	showItemseditDatadisableFieldListshowCalcMbrsvisualTotalsshowMultipleLabelshowDataDropDown	showDrill
printDrillshowMemberPropertyTipsshowDataTipsenableWizardenableDrillenableFieldPropertiespreserveFormattinguseAutoFormattingpageWrappageOverThenDownsubtotalHiddenItemsrowGrandTotalscolGrandTotalsfieldPrintTitlesitemPrintTitles	mergeItemshowDropZonescreatedVersionindentshowEmptyRowshowEmptyColshowHeadersrS  r   outlineDatacompactData	publishedgridDropZones	immersivemultipleFieldFiltersr   rowHeaderCaptioncolHeaderCaptionfieldListSortAscendingmdxSubqueriescustomListSortautoFormatIdapplyNumberFormatsapplyBorderFormatsapplyFontFormatsapplyPatternFormatsapplyAlignmentFormatsapplyWidthHeightFormatsrg  ro  rp  rq  rr  rs  rt  ru  rv  r   rw  rx  r   ry  r9   r'   r   r   )Wr   r   rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rS  r   r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  rg  ro  rp  rq  rr  rs  rt  ru  rv  r   rw  rx  r   ry  r9   r'   r   r   r   r   r   r     s   X
zTableDefinition.__init__c                    s   t   }|dt |S )Nxmlns)r  r  setr   )r   treer	  r   r   r    s   
zTableDefinition.to_treec                 C   s   | j | jS r   )_pathr   _idr2   r   r   r   path  s   zTableDefinition.pathc                 C   s<   |  || t|  }|| jdd | ||  dS )z4
        Add to zipfile and update manifest
        r   N)_write_relsr   r  writestrr  append)r   archivemanifestxmlr   r   r   _write  s   zTableDefinition._writec                 C   s   | j du rdS t }t| j j| j jd}|| |j| _| j jdd | vr0| j || t	| j}t
| }||dd | dS )z@
        Write the relevant child objects and add links
        N)TypeTargetr   )cacher   r   rel_typer  r  r   namelistr  r   r   r  r  )r   r  r  relsr;  r  r  r   r   r   r    s   


zTableDefinition._write_relsc                 C   sD   | j si S tt}| j  D ]\}}| j| j}|| | q|S )z8Map fields to associated conditional formats by priority)r   r   r  r   ru  r   r  )r   fieldsidxprior   r   r   r   formatted_fields  s   z TableDefinition.formatted_fieldsc                 C   s   | j  dt| j S )z;
        Provide a simplified summary of the table
         )r   dictrg  r2   r   r   r   summary  s   zTableDefinition.summary)VNNFNNNNFNTNNNNr   r   FTFFTTTTTFTTTTTTFr   FFTTFFFTr   r   FFTTFFTFFTNr   NNNNNNFFFFFFNr   r   r   r   r   r   r   r   Nr   r   Nr   NNNN)~r    r!   r"   	mime_typer  r  r  r#   r  r	   r   r   rz  r   r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rS  r   r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r   rf  rg  r   rH  ro  r<  rp  r1  rq  rr  rs  r,  rt  r  ru  r  rv  r   r   r   rw  r   rx  r   r   r<   ry  r8   r9   r&   r'   r   r   r   r   r5   r   r  r7   r  r  r  r  r  r  r   r   r	  r   rm    s|   













 2

rm  N)5collectionsr   !openpyxl.descriptors.serialisabler   openpyxl.descriptorsr   r   r   r   r   r	   r
   openpyxl.descriptors.excelr   r   openpyxl.descriptors.sequencer   openpyxl.xml.constantsr   openpyxl.xml.functionsr   openpyxl.packaging.relationshipr   r   r   r  r   openpyxl.worksheet.filtersr   r   r&   r8   r<   r   r   r   r   r   r   r   r   r   r   r  r  r,  r1  r<  r=  r>  rH  rf  rm  r   r   r   r   <module>   sF   (?$5F6L', $