o
    i                     @   s  d dl mZmZ d dlZd dlZd dlmZmZ ddlm	Z	m
Z
mZmZmZmZ ddlmZmZ ddlmZmZmZ ddlmZ dd	lT d ZejZdad
ad
add Zdd Z dd Z!i Z"e#dD ]
Z$e$d e"de$ < qadD ]Z$d e"e$< qn[$e"d
fddZ%i Z&e' D ]\Z(Z)e(e&e)< qdZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3e*d  Z4e*d! Z5e*d" Z6e7d#ej8j9d$d% fd&d'Z:d(d) Z;e*d* e*d+ fd,d-Z<d.d/ Z=d0d1 Z>d2d3 Z?d4d5 Z@d6d6e>fd7d8e>fd9d8e>fd:d8e>fd;d8e>fd<d8e>fd=d>e?fd?d?e@fd@dAe@fdBdCe@fdDdEe@fdFdGe?fdHd8e>fdId8e@fdJd8e@fdKdLdMdNdOdPdQdRdSdTdUdVdWfZAdXdY ZBG dZd[ d[eCZDG d\d] d]eDZEG d^d_ d_eDZFG d`da daeDZGG dbdc dceDZHejd d d d d fdddeZIdS )f    )print_functionunicode_literalsN)joinnormpath   )XL_CELL_BLANKXL_CELL_BOOLEANXL_CELL_ERRORXL_CELL_TEXT	XLRDErrorerror_text_from_code)BookName)XFFormatis_date_format_string)Sheet)*Fc                 C   s  t d urd S dtjv rdd lm  ma  nrzdd lma  W ni ty   zdd l	m  ma  W nT ty   zdd la W nD ty   zdd l
ma  W n2 ty}   zdd lm  ma  W n tyz   zdd lma  W n tyw   tdw Y nw Y nw Y nw Y nw Y nw tt drtd}z	t | daW n	 ty   Y nw tt dott jda| rtd	d
 t j D }tt jt j|t|d d S d S )N
IronPythonr   z.Failed to import an ElementTree implementation	iterparse    TElementTreeiterc                 S   s.   g | ]}|  d ddkr|tt|fqS )_ version)lowerreplacegetattrET).0item r"   I/var/www/html/formularioweb/env/lib/python3.10/site-packages/xlrd/xlsx.py
<listcomp>=   s
    z/ensure_elementtree_imported.<locals>.<listcomp>file)r   sysr   xml.etree.ElementTreeetreer   defusedxml.cElementTreecElementTreeImportErrorxml.etree.cElementTree
lxml.etreeelementtree.ElementTree	ExceptionhasattrBYTES_IOr   ET_has_iterparseNotImplementedErrorElement_has_iterrepr__dict__keysprint__file____name__)	verbositylogfile_dummy_streametree_versionr"   r"   r#   ensure_elementtree_imported   sV   


r@   c                 C   s6   |  dd }|dkr| d | | |d  fS d| fS )N}r      r   )rfind)tagposr"   r"   r#   	split_tagD   s   rF   c                 C   s&   t |  D ]
}| | | || < qd S N)listr8   )adicturixr"   r"   r#   augment_keysJ   s   rL      ABCDEFGHIJKLMNOPQRSTUVWXYZ	123456789c                 C   s   d}d}z9| D ]4}|d7 }|| }|r|d | }q|dkr)|r$d } nt d| |d }d|  kr8tk s;J  J  W n tyL   t d|| f w t| |d  d }||fS )Nr   r   rM   zMissing col in cell name %r'Unexpected character %r in cell name %r)r0   X12_MAX_COLSKeyErrorint)	cell_nameletter_valueallow_no_colcolxcharxclvrowxr"   r"   r#   cell_name_to_rowx_colxV   s0   r]   z;{http://schemas.openxmlformats.org/spreadsheetml/2006/main}zE{http://schemas.openxmlformats.org/officeDocument/2006/relationships}z>{http://schemas.openxmlformats.org/package/2006/relationships}zI{http://schemas.openxmlformats.org/package/2006/metadata/core-properties}z"{http://purl.org/dc/elements/1.1/}z{http://purl.org/dc/terms/}z+{http://www.w3.org/XML/1998/namespace}spacez	
 i   i @  vfisz_x[0-9A-Fa-f]{4,4}_c                 C   s   t t| ddd dS )Nr   rB         )unichrrT   group)mobjr"   r"   r#   <lambda>   s    rf   c                 C   s   d| v r	||| S | S )Nr   r"   )ssubberreplr"   r"   r#   unescape   s   
rj   c                 C   s6   |j }|d u r	dS |tdkr|t}tt|S )Nr   preserve)textgetXML_SPACE_ATTRstripXML_WHITESPACEensure_unicoderj   )selfelemtr"   r"   r#   cooked_text   s   
ru   rrt   c           	      C   st   g }|D ]0}|j }||krt| |}|r|| q||kr4|D ]}|j |kr3t| |}|r3|| q qd|S )zReturns unescaped unicoder   )rD   ru   appendr   )	rr   rs   r_tagt_tagaccumchildrD   rt   tnoder"   r"   r#   get_text_from_si_or_is   s    





r}   c                 C   sJ   | D ] \}}}|st ||| q|sq||}||}t ||| qd S rG   )setattrrm   )amaprs   objxml_attrobj_attrcnv_func_or_const	raw_valuecooked_valuer"   r"   r#   map_attributes   s   
r   c                 C   s   | d u rdS t | S )Nr   )rq   rg   r"   r"   r#   cnv_ST_Xstring   s   r   c                 C   s    | sd S t | }|dksJ |S Nr   )rT   )rg   valuer"   r"   r#   cnv_xsd_unsignedInt   s
   r   c                 C   s,   | sdS | dv r
dS | dv rdS t d|  )Nr   )1trueonr   )0falseoffz unexpected xsd:boolean value: %r)
ValueErrorr   r"   r"   r#   cnv_xsd_boolean   s   r   namecommentr   
customMenudescriptionhelp	statusBarlocalSheetIdscopehiddenfunctionfuncvbProcedurevbasicxlmmacrofunctionGroupId	funcgroupshortcutKeypublishToServerworkbookParameter)r   any_errr   )r   any_externalr   )r   any_relr   )r   basic_formula_lenr   )r   binaryr   )r   builtinr   )r   complexr   )r   	evaluatedr   )r   excel_sheet_indexr   )r   excel_sheet_numr   )r   option_flagsr   )r   resultN)r   stackNc                 C   s   i }i }t | j}t|D ]@}| j| }|j }||jf}||v r2d|f }	 | jr2t|| j	d |||< |j||f}	||v rH|| 
|	 q|	g||< q| D ]}|| }
|
  dd |
D ||< qR|| _|| _d S )Nz(Duplicate entry %r in name_and_scope_mapr   r%   c                 S   s   g | ]}|d  qS )rB   r"   )r    rK   r"   r"   r#   r$      s    z)make_name_access_maps.<locals>.<listcomp>)lenname_obj_listxranger   r   r   r   r<   r9   r=   rw   r8   sortname_and_scope_mapname_map)bkr   r   	num_namesnamexnobj
name_lcasekeymsg	sort_dataalistr"   r"   r#   make_name_access_maps   s.   





r   c                   @   s.   e Zd Zd
ddZdd Zdd Zdd	 ZdS )
X12GeneralNc                 C   s   | j dkr|d urt| jd| t|| _| jj}tr!| j	 n| j
 D ]}| j dkr2| | ||j}|r>|| | q&|   d S )NrB   
=== %s ===
   )r<   fprintfr=   r   parsetreetag2methrm   r5   r   getiterator	dump_elemrD   
finish_off)rr   streamheading	getmethodrs   methr"   r"   r#   process_stream  s   



zX12General.process_streamc                 C   s   d S rG   r"   )rr   r"   r"   r#   r     s   zX12General.finish_offc                 C   s.   t | jdt|jd t||j|j|j d S )Nz,===
tag=%r len=%d attrib=%r text=%r tail=%r
r   )r   r=   rF   rD   r   attribrl   tailrr   rs   r"   r"   r#   r     s   zX12General.dump_elemc                 G   s    d| d | }| j | d S )Nz            
)r=   write)rr   fmtvargsrl   r"   r"   r#   dumpout  s   zX12General.dumpoutrG   )r;   
__module____qualname__r   r   r   r   r"   r"   r"   r#   r     s
    
r   c                	   @   s   e Zd ZedfddZed defed defed defed defiZ	d	d
 Z
edd Zdd Zdd Zdd Zdd Zdd ZeeedZeee dS )X12BookFc                 C   s>   || _ || _|| _d| j _i | j _i | _i | _g | _g | _d S r   )	r   r=   r<   nsheetsprops
relid2pathrelid2reltypesheet_targetssheetIdsrr   r   r=   r<   r"   r"   r#   __init__   s   
zX12Book.__init__lastModifiedBylast_modified_bycreatormodifiedcreatedc           	      C   s   | j dkrt| jd t|| _| jj}i }tr| j	 n| j
 D ] }| j dkr/| | ||j}|rC|\}}||j}|||< q#|dpM|d| j_|| j_| j dkr`t| jd| |   d S )NrB   z
=== coreProps ===
r   r   r   z
props: %r
)r<   r   r=   r   r   r   core_props_menurm   r5   r   r   r   rD   rl   r   	user_namer   r   )	rr   r   getmenur   rs   menuattrr   r   r"   r"   r#   process_coreprops2  s&   





zX12Book.process_corepropsc                 C   s   |  dd S )N\/)r   r   )r   r"   r"   r#   convert_filenameF  s   zX12Book.convert_filenamec                 C   s   | j dkrt| jd t|}td }||D ]A}|d}t	|d}|d
dd }| j dkr?| d	||| || j|< |drS|d
d  | j|< qd| | j|< qd S )NrB   z
=== Relationships ===
RelationshipIdTargetTyper   rP   Id=%r Type=%r Target=%rr   zxl/)r<   r   r=   r   r   U_PKGRELfindallrm   r   r   splitr   r   
startswithr   rr   r   r   rx   rs   ridtargetreltyper"   r"   r#   process_relsJ  s   





zX12Book.process_relsc                 C   s   	 t }| j}||_t|j|_|j| |d|_	d |_
t| ||_tt|| |jd u r3d|_|j	dr<d|_| j dkrI|jdd	 d S d S )
Nr   r   r   rP   z_xlnm.r   rB   z=== Name object ===)header)r<   r   r   r   r   r   
name_indexrw   rm   r   raw_formularu   formula_textr   _defined_name_attribute_mapr   r   r   dump)rr   rs   r   r   r"   r"   r#   do_defined_name\  s"   

zX12Book.do_defined_namec                 C   s"   |D ]}|  | qt| j d S rG   )r	  r   r   )rr   rs   r{   r"   r"   r#   do_defined_namesp  s   zX12Book.do_defined_namesc                 C   s  | j }|j}|td }t|d}tt|d}| j| }| j| }| j	dkr6| 
d||||| |dkrH| j	dkrF| 
d|| d S |d}	d	d	d
dd}
|j|
|	  t|d ||d}t|_t|_|j| |j| | jd
7  _| j| | j| d S )NidsheetIdr   rB   z+sheetx=%d sheetId=%r rid=%r type=%r name=%r	worksheetz#Ignoring sheet of type %r (name=%r)stater   r   )Nvisibler   
veryHidden)positionr   number)r   r   rm   U_ODRELrT   rj   rq   r   r   r<   r   _sheet_visibilityrw   r   X12_MAX_ROWSutter_max_rowsrR   utter_max_cols_sheet_list_sheet_namesr   r   )rr   rs   r   sheetxr   r  r   r  r   r  visibility_mapsheetr"   r"   r#   do_sheetu  s>   





zX12Book.do_sheetc                 C   s0   t |d}| jdkr| d| || j_d S )Ndate1904rB   zdatemode=%r)r   rm   r<   r   r   datemode)rr   rs   r  r"   r"   r#   do_workbookpr  s   
zX12Book.do_workbookpr)definedNames
workbookPrr  N)r;   r   r   DLFr   U_CPr   U_DC	U_DCTERMSr   r   staticmethodr   r  r	  r
  r  r   r   rL   U_SSML12r"   r"   r"   r#   r     s(    
#r   c                   @   s.   e Zd ZedfddZd	ddZd	ddZdS )
X12SSTr   c                 C   s.   || _ || _|| _tr| j| _d S | j| _d S rG   )r   r=   r<   r3   process_stream_iterparser   process_stream_findallr   r"   r"   r#   r     s   zX12SST.__init__Nc                 C   s   | j dkr|d urt| jd| td }d}| jj}t|D ]-\}}|j|kr)q|d }| j dkr>t| jd| | 	| t
| |}|| |  q| j dkrZ| dt| | j dkrpt|D ]\}	}
t| jd	|	|
 qcd S d S )
NrB   r   sirP   r   r   element #%d
Entries in SST: %dzSST x=%d s=%r
)r<   r   r=   r(  r   _sharedstringsr   r   rD   r   r}   rw   clearr   r   	enumerate)rr   r   r   si_tagelemnossteventrs   r   rK   rg   r"   r"   r#   r*    s*   






zX12SST.process_stream_iterparsec                 C   s   | j dkr|d urt| jd| t|| _td }d}| jj}| j	|D ]!}|d }| j dkr=t| jd| | 
| t| |}|| q&| j dkrW| dt| d S d S )	NrB   r   r,  rP   r   r   r-  r.  )r<   r   r=   r   r   r   r(  r   r/  r   r   r}   rw   r   r   )rr   r   r   r2  r3  r4  rs   r   r"   r"   r#   r+    s    



zX12SST.process_stream_findallrG   )r;   r   r   r#  r   r*  r+  r"   r"   r"   r#   r)    s    
	r)  c                   @   sR   e Zd ZedfddZdd Zdd Zdd	 Zd
d ZeeeedZ	e
e	e dS )	X12Stylesr   c                 C   sd   || _ || _|| _ddg| _d | _i | _ttddttdd D ]}d| j|< q"d| j jd< d S )Nr         -   0   r   rB   )	r   r=   r<   	xf_countsxf_typefmt_is_daterH   range_xf_index_to_xl_type_map)rr   r   r=   r<   rK   r"   r"   r#   r     s   
 zX12Styles.__init__c                 C   
   d| _ d S r   r<  r   r"   r"   r#   do_cellstylexfs     
zX12Styles.do_cellstylexfsc                 C   r@  )Nr   rA  r   r"   r"   r#   
do_cellxfs  rC  zX12Styles.do_cellxfsc                 C   sp   t |d}t|d}t| j|}|| j|< t||d |}|| jj|< | jdkr6| 	d||| d S d S )N
formatCodenumFmtIdrB   r   z$numFmtId=%d formatCode=%r is_date=%d)
rq   rm   rT   r   r   r=  r   
format_mapr<   r   )rr   rs   rE  rF  is_datefmt_objr"   r"   r#   	do_numfmt  s   

zX12Styles.do_numfmtc                 C   s   | j dkrd S | j| j  }|d | j| j < t }| jj| | j jd7  _t|dd}||_	| j
|d}|d | jj|< | jdkrX| d|| | t| jj d S d S )Nr   rF  r   r   rB   r   zxfx=%d numFmtId=%d)r<  r;  r   r   xf_listrw   xfcountrT   rm   
format_keyr=  r?  r<   r   r6   )rr   rs   xfxxfrF  rH  r"   r"   r#   do_xf  s   

zX12Styles.do_xf)cellStyleXfscellXfsnumFmtrO  N)r;   r   r   r#  r   rB  rD  rJ  rP  r   rL   r(  r"   r"   r"   r#   r6    s    
r6  c                   @   s^   e Zd ZedfddZdddZdd Zd	d
 Zdd Zdd Z	dd Z
de
iZeee dS )X12Sheetr   c                 C   s^   || _ || _|| _d| _|j| _| jj| _i | _i | _	|j
| _
d| _d| _tr-| j| _d S d S )NrP   r   )r  r=   r<   r\   bookr   r/  r4  r   r   merged_cellswarned_no_cell_namewarned_no_row_numr3   own_process_streamr   )rr   r  r=   r<   r"   r"   r#   r     s   
zX12Sheet.__init__Nc                 C   s   | j dkr|d urt| jd| td }| j}t|D ]+\}}|j|kr.|| |  q|jtd kr;| 	| q|jtd krG| 
| q|   d S )NrB   r   row	dimension	mergeCell)r<   r   r=   r(  do_rowr   r   rD   r0  do_dimensiondo_merge_cellr   )rr   r   r   row_tagself_do_rowr5  rs   r"   r"   r#   rY    s   


zX12Sheet.own_process_streamc                 C   s   | j dkrt| jd t|}td }||D ]2}|d}|d}|ddd }| j dkr<| 	d	||| || j
|< ttd
|| j|< qd S )NrB   z
=== Sheet Relationships ===
r   r   r   r   r   rP   r   zxl/worksheets)r<   r   r=   r   r   r   r   rm   r   r   r   r   r   r   r   r"   r"   r#   r  .  s   





zX12Sheet.process_relsc                 C   s0  t | }|d }|jtd ksJ dd |D }|d }|jtd ks(J | jj}ddlm} td }td	 }	td
 }
|td D ]P}|d| d |
 }||d| d |	 d |
 7 }|	d}| }|t
|	d |_t| \|_|_}d|_|D ]}| jt| |7  _q|||< qEd S )Nr   authorsc                 S   s   g | ]}|j qS r"   )rl   )r    rs   r"   r"   r#   r$   @  s    z4X12Sheet.process_comments_stream.<locals>.<listcomp>r   commentList)Noterl   rv   rt   r   z./r   refauthorIdr   )r   r   getrootrD   r(  r  cell_note_maprd  r   rm   rT   authorr]   r\   rX   rl   ru   )rr   r   rootauthor_listrb  comment_listrh  rd  text_tagrx   ry   rs   tsre  notecoordsrt   r"   r"   r#   process_comments_stream<  s.   "

z X12Sheet.process_comments_streamc                 C   sX   | d}|r(|dd }t|dd\}}|d | j_|d ur*|d | j_d S d S d S )Nre  :rP   T)rW   r   )rm   r   r]   r  	_dimnrows	_dimncols)rr   rs   re  last_cell_refr\   rX   r"   r"   r#   r^  T  s   

zX12Sheet.do_dimensionc           	      C   sx   | d}|r:z	|d\}}W n ty   |}|}Y nw t|\}}t|\}}| j||d ||d f d S d S )Nre  rr  r   )rm   r   r   r]   rV  rw   )	rr   rs   re  first_cell_refru  
first_rowx
first_colx	last_rowx	last_colxr"   r"   r#   r_  _  s   

zX12Sheet.do_merge_cellc              	      s   fdd}| d}|d u r+|  jd7  _d}| jr*| js*| d| j d| _n	t|d | _d}d| j  kr@tk sCJ  J | jd| jdkrV| d	|| j| t}|D ]}| d}|d u r{d7 | jrz| jsz| d
 d| _nUdd}z/|D ]*}	|d7 }|	dkrq||	 }
|
rd |
 qd d  krt	k sJ  J  W n t
y   td|	|f w |r||d  |krtd||f t| dd}| dd d } dkr|D ]}|j}|tkr|j}q|tkrqtd| |s| jjr| jtd| qZ| jd t|| qZ dkrg|D ]}|j}|tkr5|j}q&|tkr<q&|| q&|sU| jjrT| jtd| qZ| jt| }| jt|| qZ dkr|D ]}|j}|tkrt| |}qn|tkrqn|| qn| jt|| qZ dkr|D ]}|j}|tkr|j}q|tkrq|| q| jtt|| qZ dkrd}|D ]}|j}|tkr|j}q|tkrq|| qt| }| jt|| qZ dkrH|D ]'}|j}|tkrt| |}q|tkr|j}q|tkr$q|| q|s=| jjr<| jtd| qZ| jt|| qZtd f d S )Nc                    s   t d | f )Nz9cell type %s has unexpected child <%s> at rowx=%r colx=%r)r0   )	child_tag	cell_typerX   r\   r"   r#   bad_child_tagp  s   z&X12Sheet.do_row.<locals>.bad_child_tagrv   r   r   zno row number; assuming rowx=%drP   r   z'<row> row_number=%r rowx=%d explicit=%dz%no cellname; assuming rowx=%d colx=%d$rM   rQ   z!cell name %r but row number is %rrg   r   rt   nzunexpected tag %rr   strbez#N/A	inlineStrz'Unknown cell type %r in rowx=%d colx=%d)rm   r\   r<   rX  r   rT   r  _UPPERCASE_1_REL_INDEXrW  rR   rS   r0   rD   V_TAGrl   F_TAGr   formatting_infor  put_cellr   floatr4  r
   ru   r   r   error_code_from_textr	   IS_TAGr}   )rr   row_elemr~  
row_numberexplicit_row_numberrV   	cell_elemrU   rY   rZ   r[   xf_indextvaluer{   r{  r   r"   r|  r#   r]  n  s   



























 zX12Sheet.do_rowrZ  rG   )r;   r   r   r#  r   rY  r  rq  r^  r_  r]  r   rL   r(  r"   r"   r"   r#   rT    s    
 rT  c                 C   s  t || t }||_||_||_|rtdd|_||_|r+|r(td|jd d|_||_	t
|||}	| |d }
|	|
 ~
| |d }
|	|
d ~
d}||v ra| || }
|	|
 t|||}d	|v rz| |d	 }
||
d
 ~
n	 d}t|||}||v r| || }
||
d ~
t|jD ]j}|	j| }| || }
|j| }t|||}d|j||f }||
| ~
d|ddd  }||v r| |}|| ~|j D ]\}}|dkr|j|}|r||v r| |}|| ~q|  q|S )Nz(formatting_info=True not yet implementedFzEWARNING *** on_demand=True not yet implemented; falling back to Falser%   zxl/_rels/workbook.xml.relszxl/workbook.xmlWorkbookzdocprops/core.xmlzxl/styles.xmlstyleszxl/sharedstrings.xmlSSTzSheet %r (sheetx=%d) from %rzxl/worksheets/_rels/%s.relsr   r   rP   comments)r@   r   r=   r<   r  r4   use_mmap	on_demandr9   ragged_rowsr   openr  r   r   r6  r)  r>  r   r   r  rT  r   rsplitr   itemsr   rm   rq  tidy_dimensions)zfcomponent_namesr=   r<   r  r  r  r  r   x12bookzflo
props_namex12sty	sst_fnamex12sstr  fnamer  x12sheetr   
rels_fnamezfrelsrelidr  comments_fnamecomments_streamr"   r"   r#   open_workbook_2007_xml  sx   









r  )J
__future__r   r   rer'   os.pathr   r   biffhr   r   r	   r
   r   r   rU  r   r   
formattingr   r   r   r  r   timemachineDEBUGstdoutr#  r   r3   r5   r@   rF   rL   r  r   _xr]   r  r  _code_textr(  r  r   r$  r%  r&  rn   rp   r  rR   r  r  r  compileUNICODEsubrj   ru   r}   r   r   r   r   r  r   objectr   r   r)  r6  rT  r  r"   r"   r"   r#   <module>   s    &




 18  