
    fh                     H   d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ  eg d          Zd	                    e          Z ej        d
                    e                    Z G d de          Z G d de          Z G d de          ZdS )    )defaultdictN)Serialisable)AliasStringIntegerBoolSequence
Descriptor)safe_string)	Tokenizer)SHEETRANGE_RE)
Print_AreaPrint_TitlesCriteria_FilterDatabaseExtractConsolidate_AreaSheet_Title|z^_xlnm\.(?P<name>{0})c                   &   e Zd ZdZ e            Z ed          Z ed          Z ed          Z ed          Z	 ed          Z
 ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z e            Z ed          Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZed             Zed             Zed	             Zed
             Zd Z dS )DefinedNamedefinedNameT)
allow_none	attr_textNc                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        || _        || _        || _        d S N)namecomment
customMenudescriptionhelp	statusBarlocalSheetIdhiddenfunctionvbProcedurexlmfunctionGroupIdshortcutKeypublishToServerworkbookParameterr   )selfr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r   s                    U/var/www/histauto/venv/lib/python3.11/site-packages/openpyxl/workbook/defined_name.py__init__zDefinedName.__init__2   s    $ 	$&	"( &.&.!2"    c                 |    t          d| j        z             }|j        d         }|j        dk    r|j        S |j        S )N=r   OPERAND)r   valueitemstypesubtype)r,   tokparseds      r-   r5   zDefinedName.typeV   s>    dj())1;)##>!{r/   c              #   4  K   | j         dk    rt          d| j        z             }|j        D ]k}|j        dk    r\t          j        |j                  }|                    d          p|                    d          }||                    d          fV  jd S d S )NRANGEr1   	notquotedquotedcells)r5   r   r3   r4   r6   r   matchgroup)r,   r7   partm	sheetnames        r-   destinationszDefinedName.destinations_   s      9C$*,--C	 6 6<7**%+DJ77A ! 4 4 I8I8II#QWWW%5%55555  6 6r/   c                 r    t                               | j                  }|r|                    d          S d S )Nr   )RESERVED_REGEXr>   r   r?   )r,   rA   s     r-   is_reservedzDefinedName.is_reservedj   s9      ++ 	#776??"	# 	#r/   c                 ^    t          j        d                              | j                  d uS )Nz
^\[\d+\].*)recompiler>   r3   r,   s    r-   is_externalzDefinedName.is_externalq   s'    z-((..tz::$FFr/   c              #      K   | j         D ]<}|dk    r	t          | |          }|!|t          v rd|z   }|t          |          fV  =d S )Nr   z_xlnm.)	__attrs__getattrRESERVEDr   )r,   keyvs      r-   __iter__zDefinedName.__iter__v   sm      > 	* 	*Ck!!c""A}== 1A;q>>))))	* 	*r/   )NNNNNNNNNNNNNNNN)!__name__
__module____qualname__tagnamer   r   r   r   r    r!   r"   r   r#   r   r$   r%   r&   r'   r(   r)   r*   r+   r
   r   r   r3   r.   propertyr5   rC   rF   rK   rR    r/   r-   r   r      s        G688Df%%%G4(((J&D)))K6T"""D$'''I7d+++LTT"""Ftt$$$H$$'''K
$$


Cg...O&D)))Kdd+++O---
IE+E  !"!!%!!%#'!!# !# !# !#H   X 6 6 X6 # # X# G G XG* * * * *r/   r   c                   (     e Zd ZdZ fdZd Z xZS )DefinedNameDictzv
    Utility class for storing defined names.
    Allows access by name and separation of global and scoped names
    c                     t          |t                    st          d          |j        |k    rt	          d          t                                          ||           d S )Nz*Value must be a an instance of DefinedNamez Key must be the same as the name)
isinstancer   	TypeErrorr   
ValueErrorsuper__setitem__)r,   rP   r3   	__class__s      r-   r`   zDefinedNameDict.__setitem__   sa    %-- 	AHIIIZ3?@@@C'''''r/   c                     || |j         <   dS )zI
        Add names without worrying about key and name matching.
        N)r   )r,   r3   s     r-   addzDefinedNameDict.add   s     !UZr/   )rS   rT   rU   __doc__r`   rc   __classcell__)ra   s   @r-   rZ   rZ      sQ         
( ( ( ( (! ! ! ! ! ! !r/   rZ   c                   D    e Zd ZdZ ee          Zd	dZd Zd Z	d Z
dS )
DefinedNameListdefinedNames)expected_typerX   c                     || _         d S r   )r   )r,   r   s     r-   r.   zDefinedNameList.__init__   s    &r/   c                     t          t                    }| j        D ]H}|j        |j        dv r||d         |j        <   $t          |j                  }|||         |j        <   I|S )z@
        Break names down into sheet locals and globals
        N)z_xlnm.Print_Titlesz_xlnm.Print_Areaz_xlnm._FilterDatabaseglobal)r   rZ   r   r#   r   int)r,   namesdefnsheets       r-   by_sheetzDefinedNameList.by_sheet   sx     O,,$ 	/ 	/D (9 ccc-1h	**D-..*.eTY''r/   c                 `    | j         D ]%}|j        |j        k    r|j        |j        k    r dS &dS )zc
        Check for whether DefinedName with the same name and scope already
        exists
        TN)r   r   r#   )r,   ro   ds      r-   
_duplicatezDefinedNameList._duplicate   sF    
 ! 	 	Av""q~9J'J'Jtt	 	r/   c                 *    t          | j                  S r   )lenr   rJ   s    r-   __len__zDefinedNameList.__len__   s    4#$$$r/   N)rX   )rS   rT   rU   rV   r	   r   r   r.   rq   rt   rw   rX   r/   r-   rg   rg      sl        G(555K' ' ' '     % % % % %r/   rg   )collectionsr   rH   !openpyxl.descriptors.serialisabler   openpyxl.descriptorsr   r   r   r   r	   r
   openpyxl.compatr   openpyxl.formular   openpyxl.utils.cellr   	frozensetrO   join_namesrI   formatrE   r   dictrZ   rg   rX   r/   r-   <module>r      s   $ # # # # # 				 : : : : : :                ( ' ' ' ' ' & & & & & & - - - - - -9 % % % & & 
(		4;;FCCDDc* c* c* c* c*, c* c* c*L! ! ! ! !d ! ! !,&% &% &% &% &%l &% &% &% &% &%r/   