
    j                     <    d Z  G d de          ZdedefdZd ZdS )zObjects shared by opc modules.c                   6     e Zd ZdZ fdZ fdZ fdZ xZS )CaseInsensitiveDictaL  Mapping type that behaves like dict except that it matches without respect to the
    case of the key.

    E.g. cid['A'] == cid['a']. Note this is not general-purpose, just complete enough to
    satisfy opc package needs. It assumes str keys, and that it is created empty; keys
    passed in constructor are not accounted for
    c                 x    t          t          |                               |                                          S N)superr   __contains__lowerselfkey	__class__s     Y/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/docx/opc/shared.pyr   z CaseInsensitiveDict.__contains__   s*    ($//<<SYY[[III    c                 x    t          t          |                               |                                          S r   )r   r   __getitem__r   r	   s     r   r   zCaseInsensitiveDict.__getitem__   s*    ($//;;CIIKKHHHr   c                 z    t          t          |                               |                                |          S r   )r   r   __setitem__r   )r
   r   valuer   s      r   r   zCaseInsensitiveDict.__setitem__   s,    ($//;;CIIKKOOOr   )__name__
__module____qualname____doc__r   r   r   __classcell__)r   s   @r   r   r      s         J J J J JI I I I IP P P P P P P P Pr   r   clsmethod_namec                 "    t          | |          S )z,Return method of `cls` having `method_name`.)getattr)r   r   s     r   cls_method_fnr      s    3$$$r   c                 V     d j         z   j        } fd}t          ||          S )z@lazyprop decorator.

    Decorated method will be called only on first access to calculate a cached property
    value. After that, the cached value is returned.
    z_%sc                     	 t          |           S # t          $ r!  |           }t          | |           |cY S w xY wr   )r   AttributeErrorsetattr)objr   cache_attr_namefs     r   get_prop_valuez$lazyproperty.<locals>.get_prop_value%   s[    	3000 	 	 	AcFFEC%000LLL	s    (>>)doc)r   r   property)r$   	docstringr%   r#   s   `  @r   lazypropertyr)      sL     aj(O	I      N	2222r   N)r   dictr   typestrr   r)    r   r   <module>r.      sx    $ $P P P P P$ P P P&%t %# % % % %
3 3 3 3 3r   