
    ,h?                        d dl mZ dZdaedk(  rd ad dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlmZmZ  G d de      Zej"                  Zd Zd	 Zd
 Zd ZddZd Zd Zd dZd Zd Zej:                  dd Zes ee       ed    j?                         Z e dk(  rd dl!Z!d dl"Z!edd ZdZ# e!jH                  e#      Z% e%jL                  egef Z' e(d e)e'             e%jU                          e!jV                  jY                  e#      Z+e+j[                          e+j]                  dd       e+j_                  d       ye dk(  rad dl0Z0edd Z e0jb                  dd       d dl2Z2 e2jf                  d      Z4e4j[                         j]                  d      j_                  d       ye dk(  rda eedd        y ee       yy)!    )print_functionaj  
Commands:

2rows           Print the contents of first and last row in each sheet
3rows           Print the contents of first, second and last row in each sheet
bench           Same as "show", but doesn't print -- for profiling
biff_count[1]   Print a count of each type of BIFF record in the file
biff_dump[1]    Print a dump (char and hex) of the BIFF records in the file
fonts           hdr + print a dump of all font objects
hdr             Mini-overview of file (no per-sheet information)
hotshot         Do a hotshot profile run e.g. ... -f1 hotshot bench bigfile*.xls
labels          Dump of sheet.col_label_ranges and ...row... for each sheet
name_dump       Dump of each object in book.name_obj_list
names           Print brief information for each NAME record
ov              Overview of file
profile         Like "hotshot", but uses cProfile
show            Print the contents of all rows in each sheet
version[0]      Print versions of xlrd and Python and exit
xfc             Print "XF counts" and cell-type counts -- see code for details

[0] means no file arg
[1] means only one file arg i.e. no glob.glob pattern
N__main__)xrangeREPRc                       e Zd Zd Zd Zd Zy)
LogHandlerc                 .    || _         d | _        d| _        y Nr   )
logfileobjfileheadingshown)selfr   s     V/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/../../../bin/runxlrd.py__init__zLogHandler.__init__1   s    (DO#DDJ    c                      || _         d| _        y r
   )r   r   )r   r   s     r   setfileheadingzLogHandler.setfileheading6   s    *DDJr   c                     | j                   r8| j                  s,| j                  j                  | j                          d| _        | j                  j                  |       y )N   )r   r   r   write)r   texts     r   r   zLogHandler.write:   sB    

%%d&6&67
OO!!$'r   N)__name__
__module____qualname__r   r   r    r   r   r   r   /   s    	
		(r   r   c           	         | j                   rt        |j                  |            }|sy |r
t                | j                  rEt        | |||      D ]3  \  }}}}|st        dt        j                  |      |dz   |||fz         5 y t        | |||      D ]2  \  }}}}	|st        dt        j                  |      |dz   ||fz         4 y )Nz%cell %s%d: type=%d, data: %r, xfx: %sr   zcell %s%d: type=%d, data: %r)ragged_rowsrangerow_lenprintformatting_infoget_row_dataxlrdcolname)
bkshrowxcolrangeprintitcolxtyvalcxfx_unuseds
             r   show_rowr/   B   s    >>RZZ-.HEG'3BD('K G#b#tA<<-tAvr3EF GG
 +7r2tX*N b&b#w8DLL<NPTUVPVXZ\_;``abr   c                 b   g }| j                   }|j                  |      }|j                  |      }|D ]  }||   }	||   }
| j                  rt	        |j                  ||            }nd}|	t        j                  k(  r	 t        j                  |
|      }n9|	t        j                  k(  r$t        j                  j                  |
d|
z        }n|
}|j                  ||	||f        |S # t        j                  $ r4}t        |      j                  d|}t        j                  }	Y d }~[d }~ww xY w)N :z<Unknown error code 0x%02x>)datemode	row_types
row_valuesr!   strcell_xf_indexr#   XL_CELL_DATExldate_as_tupleXLDateErrortyper   XL_CELL_ERRORerror_text_from_codegetappend)r%   r&   r'   r(   resultdmodectyscvalsr*   ctycvalr-   showvales                 r   r"   r"   Q   s   ||D!d# 	6Dt*C;D!!2++D$78d'''-"224?G ***3377>[^b>bcMM4gt45#	6$  '' -)-a)9)91=G,,C-s   >C''D.:*D))D.c                    t                t        dt        j                  | j                     d| j                         t        d| j
                  d| j                  d| j                         t        d| j                  z         t        d| j                  z         t        d| j                  | j                  | j                  fz         t        d	| j                  z         | j                  rJt        d
t        | j                        t        | j                         t        | j"                        fz         t$        j&                  s$t        d| j(                  | j*                  fz         t                y )NzBIFF version: z; datemode: z
codepage: z (encoding: z); countries: zLast saved by: %rzNumber of data sheets: %dz+Use mmap: %d; Formatting: %d; On demand: %dzRagged rows: %dzFORMATs: %d, FONTs: %d, XFs: %dz8Load time: %.2f seconds (stage 1) %.2f seconds (stage 2))r    r#   biff_text_from_numbiff_versionr3   codepageencoding	countries	user_namensheetsuse_mmapr!   	on_demandr   lenformat_list	font_listxf_listoptionssuppress_timingload_time_stage_1load_time_stage_2)r%   s    r   	bk_headerrZ   j   s   &&r7F 	G{{BKK7 	8!BLL01)BJJ67;{{B..=> 	?"..013r~~&BLL(93rzz?KL M&&L'')=)=>? @r   c                     t        d       t        t        | j                              D ]'  }| j                  |   }|j	                  d|z  d       ) y )NzFonts:z== Index %d ==   )headerindent)r    r   rR   rT   dump)r%   xfonts      r   
show_fontsrb   }   sI    hBLL)* 	=A<<?DII-1!I<	=r   c           	         t        |        | j                  dk  rt        d       y | j                  }t        dt	        |      z         |D ]x  }|r/|j                  t        j                  d|j                  z         4t        d|j                  |j                  |j                  |j                  |j                  fz         z y )N2   z(Names not extracted in this BIFF versionzName list: %d entriesz"
=== Dump of name_obj_list[%d] ===)r]   z*[%d]	Name:%r macro:%r scope:%d
	result:%r
)rZ   rJ   r    name_obj_listrR   r_   sysstdout
name_indexnamemacroscoper@   )r%   r_   nlistnobjs       r   
show_namesrn      s    "??R<=  %E
23 	YD		#**@4??R  T F		4::tzz4;;WX Y	Yr   c                 T   |sy |D ]  \  }}}}t        |dt        j                  ||      dt        j                  |dz
  |dz
        d       t        ||      D ]H  }t        ||      D ]7  }t        dt        j                  ||      d| j	                  ||             9 J  y )Nz label range r2   r   z
 contains:z    : )r    r#   cellnamer   
cell_value)	r&   labstitlerlorhiclochirxcxs	            r   print_labelsr{      s    F"& 	YCc3$--S14==QA3NP QS#& Y c* YB$--B*?rSUAVWXYY	Yr   c                    d}t        | j                        D ]  }| j                  |      }|j                  }|j                  }|s|rY|st        |        d}t        d||j                  |j                  |j                  fz         t        ||d       t        ||d       | j                  s| j                  |        y )Nr   r   +sheet %d: name = %r; nrows = %d; ncols = %dColRow)r   rO   sheet_by_indexcol_label_rangesrow_label_rangesrZ   r    ri   nrowsncolsr{   rQ   unload_sheet)r%   hdrshxr&   clabsrlabss         r   show_labelsr      s    $ 	2C""3'B''E''EbMCC"''288RXX67 8R.R.||R__S1	2r   r   c           	         t        |        	 t        j                  r	 t        t        j                        }|g}nt        | j                        }|D ]i  }| j                  |      }|j                   |j"                  }
}	t        |
      }t%        ||	      }t        d|t'        |j(                        |j                   |j"                  fz         |	ri|
rgt+        |	      D ]Y  }|j-                  |      }|s|j/                  |      |dz
      |j1                  |      |dz
      |j3                  ||dz
         [ t+        |dz
        D ]2  }|s|dz  dk(  r|dkD  rt        d|dz
  fz         t5        | ||||       4 |r|	rt5        | ||	dz
  ||       t                | j6                  sY| j9                  |       l y # t        $ r- | j                  t        j                        j                  }Y w xY w)Nz+sheet %d: name = %s; nrows = %d; ncols = %dr   i'  zdone %d rows)rZ   r#   sheetrc_statsitemssortedr    rV   onesheetint
ValueErrorsheet_by_namenumberr   rO   r   r   r   minr   ri   r   r   r4   r5   cellr/   rQ   r   )r%   nshowr)   rclistkvr   shxranger&   r   r   r(   anshowr'   ncs                  r   showr      s   " @'**+ uHRZZ(H 	2C""3'B88RXX5EU|H&F?d277mRXXrxx89 :"5M ,DD)BT*2a40d+BqD1bd+, vax( :4%<1#4.DF945Rx9: %Rq(G<G||R__S1-	2  @&&w'7'78??@s   G   2G65G6c                 V   t        |        t        | j                        D ]  }| j                  |      }|j                  }t        d||j                  |j                  |j                  fz         g d}t        |      D ]Y  }t        |j                  |            D ]:  }|j                  ||      }|dk\  sJ |j                  ||      }||xx   dz  cc<   < [ t        d|j                         t        d|       t                | j                  s| j                  |        y )Nr}   )r   r   r   r   r   r   r   r   r   zXF statsz
type stats)rZ   r   rO   r   r   r    ri   r   r   r   r7   	cell_type_xf_index_statsrQ   r   )	r%   r   r&   r   
type_statsr'   r*   xfxrD   s	            r   	count_xfsr      s   "$ 	2C""3'BHHE?bggrxx23 4 /Ju )"2::d#34 )D**46C!8O,,tT2CsOq(O	)) *b001,
+G||R__S1!	2r   c                     dd l }dt        z   }|j                  |      }|j                  dddd       |j                  dd	d
dd       |j                  ddd
dd       |j                  dddd       |j                  ddd
dd       |j                  ddd
dd       |j                  dddd       |j                  ddddd !       |j                  d"d#ddd$!       |j                  d%d&ddd'!       |j                  d(d)ddd*!       |j	                  |       \  a}t        |      d+k(  r|d   d,v rn+t        |      d-k  r|j                  d.t        |      z         |d   }t        t        d/d0      }|d1k(  r=t        j                  |d+   t
        j                  2       t        j                  d       |d3k(  r-t        j                  |d+          t        j                  d       |d4k(  rNt        d5|d6t        j                          t        d7t        j"                         t        j                  d       t
        j$                  r$t'        t)        t
        j$                  d8            }nt        j*                  }t
        j,                  }t        j.                  }	|d9v r|}	n|dk7  rt        d:|z         t
        j0                  |d;v z  }
t
        j2                  }|rt3        j4                          |d+d  D ]  }t7        j6                  |      D ]  }t        d<|z         |t        j*                  k7  r|j9                  d=|z         |d+k(  r#t3        j:                         }|rt        d>|d?       t<        rdd l}|jA                          da	 tC        jB                         }t        jD                  |t
        jF                  ||	t
        jH                  |
t
        jJ                  t
        jL                  @      }tC        jB                         }t
        jN                  st        dA||z
  fz         tC        jB                         }|dFk(  rt_               n|dGk(  rta        d       n|dHk(  rta               n|dIk(  rta        d-       n|dJk(  rta        dK       n|dLk(  rta        dM       n|dNk(  rt_               tc        |       ni|dOk(  rte               nX|dPk(  rte        d+Q       nE|dRk(  rtg               n4|dSk(  rti               n#t        dT|z         t        j                  d+       ~|d+k(  r%t3        j:                         }|rt        dU|dV|d?       t
        jN                  r^tC        jB                         }t        dW||z
  fz           y # t        jP                  $ r/}t        dBtS        |      jT                  dC|       Y d }~d }~wtV        $ rH t        dD       tY        jZ                  t        j*                  E       t        j                  d+       Y t\        $ rS}t        dBtS        |      jT                  dC|       tY        jZ                  t        j*                  E       Y d }~qd }~ww xY w)XNr   z/
%prog [options] command [input-file-patterns]
z-lz--logfilenamer1   zcontains error messages)defaulthelpz-vz--verbosityr   z-level of information and diagnostics provided)r;   r   r   z-mz--mmapz41: use mmap; 0: don't use mmap; -1: accept heuristicz-ez
--encodingzencoding overridez-fz--formattingz10 (default): no fmt info
1: fmt info (all cells)
z-gz--gczQ0: auto gc enabled; 1: auto gc disabled, manual collect after each file; 2: no gcz-sz
--onesheetz-restrict output to this sheet (name or index)z-uz--unnumbered
store_truez)omit line numbers or offsets in biff_dump)actionr   r   z-dz--on-demandz,load sheets on demand instead of all at oncez-tz--suppress-timingz*don't print timings (diffs are less messy)z-rz--ragged-rowsz$open_workbook(..., ragged_rows=True)r   )version   z"Expected at least 2 args, found %d__VERSION__zunknown; before 0.5	biff_dump)
unnumbered
biff_countr   zxlrd: z, from zPython:w)r   r   z9Unexpected value (%r) for mmap option -- assuming default)xfcz
=== File: %s ===z
=== File: %s ===
zGC before open:zunreachable objects)	verbositylogfilerP   encoding_overrider!   rQ   r   zOpen took %.2f secondsz*** Open failed: rp   z*** KeyboardInterrupt ***)filer   ovr   2rows3rows   bench)r)   fontsnames	name_dump)r_   labelsr   z*** Unknown command <%s>zGC post cmd:z->z
command took %.2f seconds
)5optparsecmd_docOptionParser
add_option
parse_argsrV   rR   errorgetattrr#   r_   r   rf   exitcount_recordsr    __file__r   logfilenamer   openrg   mmapUSE_MMAP
formattinggcdisableglobr   collectPSYCOpsycofulltimeopen_workbookr   rL   rQ   r   rW   	XLRDErrorr;   r   KeyboardInterrupt	traceback	print_excBaseExceptionrZ   r   rb   rn   r   r   )cmd_argsr   usageoparserargscmdxlrd_versionr   mmap_optmmap_argfmt_optgc_modepatternfnamen_unreachabler   t0r%   t1rG   s                       r   mainr      s   CgM''./* 	 	, 	-@ 	 	B 	(G 	 	I 	,$ 	 	& 	.- 	 	
 	&d 	 	f 	,@ 	 	B 	.< 	 	> 	-? 	 	A 	%= 	 	? 	/7 	 	9  **84t9>d1g6Y]MM>TJK1gt]4IJ+IId1g'*<*<=HHQK,tAw'HHQK)t}}EF)S[[)HHQK g&9&93!?@GjjG<<==vH^MPXXY$$y(89**JJLABx H	FG7+ GF*U23cjj(**+AE+IJa<$&JJLM$/@UV JJLEB++")"3"3W!)*1*:*:(/")"3"3$+$7$7B B"226"R%AB YY[%<bMD[QKF]HG^QKG^QKG^Q'G^bMrNG^rNK'r*H_OE\bM4s:;HHQKa<$&JJLM$neT=J_`..B9RUHDEOGFH	FT _ ~~ tAw7G7GKL(  56''SZZ8HHQK$ tAw7G7GKL''SZZ8s-   BV""Z5$WAZ2Z:AZZhotshotz	XXXX.profr@   r   calls   profilezmain(av)z	YYYY.prof
cumulative   r   )r   )i  r   )5
__future__r   r   rV   r   r   r#   rf   r   r   r   r   xlrd.timemachiner   r   objectr   
empty_cell	null_cellr/   r"   rZ   rb   rn   r{   r   r   r   r   argvavlowerfirstargr   hotshot.statsprof_log_nameProfileprofruncallr@   r    reprclosestatsload
strip_dirs
sort_statsprint_statscProfilerunpstatsStatspr   r   r   <module>r     s   &0 zE-(V (" Ib2&=YY2"'2R2(\| 
!"BR!u{{}H9V#w}-d,bV,hV%

""=1)"	Y	VZ-FLL%	!!,/;;B?	W	RVRG r   