/ lib / xlsxwriter / utility.pyc
utility.pyc
  1  o

  2  Q��cm�@s�ddlZddlZddlmZiZidd�dd�dd�d	d
  3  �dd
  4  �dd
�dd�dd�dd�dd�dd
  5  �dd
  6  �dd�dd�dd�dd�dd
  7  �idd
  8  �dd
  9  �dd
 10  �dd
 11  �dd
 12  �d d
 13  �d!d
 14  �d"d
 15  �d#d
 16  �d$d�d%d�d&d
 17  �d'd
 18  �d(d
 19  �d)d
 20  �d*d+�d,d-��id.d/�d0d/�d1d-�d2d
 21  �d3d
 22  �d4d-�d5d-�d6d�d7d�d8d/�d9d�d:d;�d<d�d=d�d>d/�d?d�d@d/��idAd
 23  �dBd
 24  �dCd-�dDd-�dEd+�dFd/�dGd
 25  �dHd
 26  �dId�dJd�dKd�dLd
 27  �dMd
 28  �dNd�dOd
 29  �dPd/�dQd��idRd/�dSd/�dTd�dUd
 30  �dVd/�dWd�dXd�dYd
 31  �dZd�d[d;�d\d/�d]d/�d^d/�d_d/�d`d�dad�dbd��d/d
 32  d
d
 33  d
 34  ddd
 35  dd
 36  dc�
 37  �Ze�dd�Ze�de�Ze�df�Z	d�dhdi�Z
 38  djdk�Zd�dldm�Zdndo�Z
dpdq�Zdrds�Zdtdu�Zdvdw�Zdxdy�Zdzd{�Zd|d}�Zd~d�Zd�d��Zd�d��Zd�d��Zd�d��Zd�d��ZdS)��N)�warn� ��!��"��#��$�%��&�
 39  �'�(�)�*�+�,��-�.�/�0�1�2�3�4�5�6�7�8�9�:�;�<�=�>�?�@�
�A�	�B��C�D�E�F�G�H�I�J�K�L�M��N�O�P�Q�R�S�T�U�V�W�X�Y�Z�[�\�]�^�_�`�a�b�c�d�e�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t)
 40  �u�v�w�x�y�z�{�|�}�~z^\sz\s$z(\$?)([A-Z]{1,3})(\$?)(\d+)FcCs^|dkrtd|�dS|dkrtd|�dS|d7}|r dnd}t||�}||t|�S)aU
 41      Convert a zero indexed row and column cell reference to a A1 style string.
 42  
 43      Args:
 44         row:     The cell row.    Int.
 45         col:     The cell column. Int.
 46         row_abs: Optional flag to make the row absolute.    Bool.
 47         col_abs: Optional flag to make the column absolute. Bool.
 48  
 49      Returns:
 50          A1 style string.
 51  
 52      rzRow number %d must be >= 0N�Col number %d must be >= 0�r�)r�xl_col_to_name�str)�row�col�row_abs�col_abs�col_str�rw��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\xlsxwriter\utility.py�xl_rowcol_to_cell#s
 53  rycCs2|tvr	t|}nt|�}|t|<|t|d�S)z�
 54      Optimized version of the xl_rowcol_to_cell function. Only used internally.
 55  
 56      Args:
 57         row: The cell row.    Int.
 58         col: The cell column. Int.
 59  
 60      Returns:
 61          A1 style string.
 62  
 63      rn)�	COL_NAMESrprq)rrrsrvrwrwrx�xl_rowcol_to_cell_fastAs
 64  
 65  r{cCs�|}|dkrtd|�dS|d7}d}|rdnd}|r>|d}|dkr&d}ttd�|d�}||}t|dd�}|s||S)	z�
 66      Convert a zero indexed column cell reference to a string.
 67  
 68      Args:
 69         col:     The cell column. Int.
 70         col_abs: Optional flag to make the column absolute. Bool.
 71  
 72      Returns:
 73          Column style string.
 74  
 75      rrmNrnror�r,)r�chr�ord�int)rsru�col_numrv�	remainder�
 76  col_letterrwrwrxrpVs �rpcCs�|sdSt�|�}|�d�}|�d�}d}d}t|�D]}|t|�td�dd|7}|d7}qt|�d}|d8}||fS)z�
 77      Convert a cell reference in A1 notation to a zero indexed row and column.
 78  
 79      Args:
 80         cell_str:  A1 style string.
 81  
 82      Returns:
 83          row, col: Zero indexed cell row and column indices.
 84  
 85      )rr�rrr,rnr|��re_range_parts�match�group�reversedr~r)�cell_strr�rv�row_str�expnrs�charrrrwrwrx�xl_cell_to_rowcol~s
 86  
 87  
 88   
 89  r�c
 90  Cs�|sdSt�|�}|�d�}|�d�}|�d�}|�d�}|r"d}nd}|r)d}nd}d}d}t|�D]}|t|�td	�dd
 91  |7}|d7}q3t|�d}	|d8}|	|||fS)a!
 92      Convert an absolute cell reference in A1 notation to a zero indexed
 93      row and column, with True/False values for absolute rows or columns.
 94  
 95      Args:
 96         cell_str: A1 style string.
 97  
 98      Returns:
 99          row, col, row_abs, col_abs:  Zero indexed cell row and column indices.
100  
101      )rrFFrnr�rrTFrr,r|r�)
102  r�r�rurvrtr�r�rsr�rrrwrwrx�xl_cell_to_rowcol_abs�s*
103  
104  
105  
106  
107   
108  r�cCsHt||�}t||�}|dus|durtd�dS||kr|S|d|S)aG
109      Convert zero indexed row and col cell references to a A1:B1 range string.
110  
111      Args:
112         first_row: The first cell row.    Int.
113         first_col: The first cell column. Int.
114         last_row:  The last cell row.     Int.
115         last_col:  The last cell column.  Int.
116  
117      Returns:
118          A1:B1 style range string.
119  
120      N�#Row and column numbers must be >= 0r$�ryr��	first_row�	first_col�last_row�last_col�range1�range2rwrwrx�xl_range�s
121  
122  r�cCsPt||dd�}t||dd�}|dus|durtd�dS||kr"|S|d|S)a\
123      Convert zero indexed row and col cell references to a $A$1:$B$1 absolute
124      range string.
125  
126      Args:
127         first_row: The first cell row.    Int.
128         first_col: The first cell column. Int.
129         last_row:  The last cell row.     Int.
130         last_col:  The last cell column.  Int.
131  
132      Returns:
133          $A$1:$B$1 style range string.
134  
135      TNr�r$r�r�rwrwrx�xl_range_abs�sr�cCs"t||||�}t|�}|d|S)a�
136      Convert worksheet name and zero indexed row and col cell references to
137      a Sheet1!A1:B1 range formula string.
138  
139      Args:
140         sheetname: The worksheet name.    String.
141         first_row: The first cell row.    Int.
142         first_col: The first cell column. Int.
143         last_row:  The last cell row.     Int.
144         last_col:  The last cell column.  Int.
145  
146      Returns:
147          A1:B1 style range string.
148  
149      r)r��quote_sheetname)�	sheetnamer�r�r�r��
150  cell_rangerwrwrx�xl_range_formulasr�cCs*|��s|�d�s|�dd�}d|}|S)z�
151      Convert a worksheet name to a quoted  name if it contains spaces or
152      special characters.
153  
154      Args:
155         sheetname: The worksheet name. String.
156  
157      Returns:
158          A quoted worksheet string.
159  
160      rz''z'%s')�isalnum�
161  startswith�replace)r�rwrwrxr�sr�cCs"d}|D]
162  }|t�|d�7}q|S)a}
163      Get the pixel width of a string based on individual character widths taken
164      from Excel. UTF8 characters, and other unhandled characters, are given a
165      default width of 8.
166  
167      Args:
168         string: The string to calculate the width for. String.
169  
170      Returns:
171          The string width in pixels. Note, Excel adds an additional 7 pixels of
172          padding in the cell.
173  
174      rr/)�CHAR_WIDTHS�get)�string�lengthr�rwrwrx�xl_pixel_width1sr�cCs�idd�dd�dd�dd�d	d
175  �dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�}||vr:||}t�d |�sFtd!|�d"|�d#���S)$N�blackz#000000�bluez#0000FF�brownz#800000�cyanz#00FFFF�grayz#808080�greenz#008000�limez#00FF00�magentaz#FF00FF�navyz#000080�orangez#FF6600�pink�purplez#800080�redz#FF0000�silverz#C0C0C0�whitez#FFFFFF�yellowz#FFFF00z#[0-9a-fA-F]{6}z$Color '%s' isn't a valid Excel color�FFr	)�rer�r�lstrip�upper)�color�named_colorsrwrwrx�xl_colorFsL��������	�
176  ���
����r�cCst|�}t�dd|�}|S)Nz^FFro)r�r��sub)r�Z	rgb_colorrwrwrx�
get_rgb_colorgsr�c
177  Cs(gddd�ddiddd�ddd�ddd�ddiddid��ddd�ddiddd�ddd�ddd�ddiddid��ddd�ddiddd�ddd�ddd�ddiddid��ddd�dd	iddd�ddd�ddd�ddiddid��d	dd�dd
178  id	dd�d	dd�d	dd�dd	idd	id��d
179  dd�ddid
180  dd�d
181  dd�d
182  dd�dd
183  idd
184  id��ddd�ddiddd�ddd�ddd�ddiddid��ddd�ddiddd�ddd�ddd�ddd�ddd�d��ddd�ddiddd�ddd�ddd�ddd�ddd�d��ddd�dd	id	dd�d	dd�d	dd�d	dd�d	dd�d��d	dd�dd
185  id
186  dd�d
187  dd�d
188  dd�d
189  dd�d
190  dd�d��d
191  dd�ddiddd�ddd�ddd�ddd�ddd�d��ddd�ddiddd�ddd�ddd�ddd�ddd�d��ddiddiddd�ddd�ddd�ddd�ddd�d��ddiddiddd�ddd�ddd�ddd�ddd�d��ddidd	iddd�ddd�ddd�ddd�ddd�d��dd	idd
192  id	dd�d	dd�d	dd�d	dd�d	dd�d��dd
193  iddid
194  dd�d
195  dd�d
196  dd�d
197  dd�d
198  dd�d��ddiddiddd�ddd�ddd�ddd�ddd�d��ddd�d
dd�ddd�ddd�ddd�ddd�ddd�d��ddd�d
dd�ddd�ddd�ddd�ddd�ddd�d��ddd�d
dd�ddd�ddd�ddd�ddd�ddd�d��d	dd�d
dd�d	dd�d	dd�d	dd�d	dd�d	dd�d��d
199  dd�d
dd�d
200  dd�d
201  dd�d
202  dd�d
203  dd�d
204  dd�d��ddd�d
dd�ddd�ddd�ddd�ddd�ddd�d��ddd�ddd�ddd�ddd�ddd�ddd�ddd�d��ddd�d
dd�d
dd�d
dd�d
dd�d
dd�d
dd�d��ddiddiddiddiddiddiddid��ddiddiddiddiddiddiddid��ddiddiddiddiddiddiddid��ddiddiddiddiddiddiddid��ddiddiddiddiddiddiddid��ddiddiddidd iddiddiddid��dd!idd"idd#idd$idd%idd&idd'id��dd(idd)iddidd*idd*idd(idd)id��dd+iddidd
205  iddiddiddidd	id��ddiddidd
206  iddiddiddidd	id��}||S),Nrz-0.499984740745262)�theme�tintr�rz0.39997558519241921)�series�negative�markers�first�last�high�lowr r!r"r#z-0.249977111117893rz0.79998168889431442rz0.499984740745262z0.249977111117893z0.34998626667073579�rgbZFF323232ZFFD00000�FF000000ZFF0070C0ZFF376092ZFF5F5F5FZFFFFB620ZFFD70077ZFF5687C2ZFF359CEBZFF56BE79ZFFFF5055ZFF777777ZFFC6EFCEZFFFFC7CEZFF8CADD6ZFFFFDC47ZFFFFEB9CZFF60D276ZFFFF5367ZFF00B050ZFFFF0000ZFFFFC000rrw)�style_id�stylesrwrwrx�get_sparkline_styleqs
207  ��	������!��)��1��9��A��I��Q��Y��a��i��q��y�����
208  ���������"���*���2���:���B���J���R���Z���b���j���r���z�������������������#����-r�cCst|tjtjtjtjf�S)N)�
209  isinstance�datetime�date�time�	timedelta)�dtrwrwrx�supported_datetime�s
210  �r�cCs&|r
211  |jdd�}|S|jrtd��|S)N)�tzinfoz�Excel doesn't support timezones in datetimes. Set the tzinfo in the datetime/time object to None or use the 'remove_timezone' Workbook() option)r�r��	TypeError)�dt_obj�remove_timezonerwrwrx�remove_datetime_timezone�s��r�cCs|}d}|rt�ddd�}nt�ddd�}t|tj�r%t||�}||}n9t|tj�r8tj�|���}||}n&t|tj�rOtj�||�}t||�}||}nt|tj�rZd}|}nt	d��|j
212  t|j�t|j
�d	d
213  }t|tj�r|��dkr|d8}|s�|s�|dkr�|d7}|S)
NFiprnikr;�Tz$Unknown or unsupported datetime typeg��.Ai�Q)ilrnrn�;)r�r�r�r��fromordinal�	toordinalr��combiner�r��days�float�seconds�microseconds�isocalendar)r��	date_1904r�Z	date_type�is_timedelta�epoch�deltaZ
214  excel_timerwrwrx�datetime_to_excel_datetime�s@
215  
216  
217  
218  
219  ���r�cCst�|�s
220  t�|�rdSdS)NTF)�
221  re_leading�search�re_trailing)r�rwrwrx�preserve_whitespace�sr�)FF)F)r�r��warningsrrzr��compiler�r�r�ryr{rpr�r�r�r�r�r�r�r�r�r�r�r�r�r�rwrwrwrx�<module>s�����������������������������������������������������������������	�	�	�	�	�	�	�	�
222  �
223  �
224  �
225  �
226  �
227  �
228  �
229  �������
230  
231  
232  
233  
234  ( .!
235  14