o
    {9c                     @   s   d dl mZ zd dlmZ W n! ey/   zd dlmZ W n ey,   d dlmZ Y nw Y nw e ZG dd deZ	G dd de
Zdd	 ejD e_G d
d deZdd	 ejD e_dS )    )RLock)Mapping)	DictMixinc                   @   s<   e Zd ZdZdZdd Zdd Zdd Zd	d
 Zdd Z	dS )LazyDictz"Dictionary populated on first use.Nc                 C   sJ   | j d u rt  z| j d u r|   W t  nt  w | j |  S N)data
_fill_lockacquire_fillreleaseupperselfkey r   -usr/lib/python3.10/site-packages/pytz/lazy.py__getitem__   s   

zLazyDict.__getitem__c                 C   sF   | j d u rt  z| j d u r|   W t  nt  w || j v S r   )r   r   r	   r
   r   r   r   r   r   __contains__      


zLazyDict.__contains__c                 C   F   | j d u rt  z| j d u r|   W t  nt  w t| j S r   )r   r   r	   r
   r   iterr   r   r   r   __iter__(   r   zLazyDict.__iter__c                 C   r   r   )r   r   r	   r
   r   lenr   r   r   r   __len__2   r   zLazyDict.__len__c                 C   sF   | j d u rt  z| j d u r|   W t  nt  w | j  S r   )r   r   r	   r
   r   keysr   r   r   r   r   <   r   zLazyDict.keys)
__name__
__module____qualname____doc__r   r   r   r   r   r   r   r   r   r   r      s    



r   c                   @   s"   e Zd ZdZg dZdddZdS )LazyListzList populated on first use.)&__str____repr____unicode____hash__
__sizeof____cmp____lt____le____eq____ne____gt____ge__appendcountindexextendinsertpopremovereversesort__add____radd____iadd____mul____rmul____imul__r   r   __nonzero__r   __setitem____delitem__r   __reversed__Z__getslice____setslice__Z__delslice__Nc                    Z   d u rt  S G dd dt  g fdd}jD ]
}t ||| q  }|S )Nc                   @      e Zd ZdS )z"LazyList.__new__.<locals>.LazyListNr   r   r   r   r   r   r   r    [       r    c                        fdd}|S )Nc                    sn   t   ztdkrt|   jD ]}t | qW t   nt   w t	t| g|R i |S Nr   )
r   r	   r   listr0   r2   _propsdelattrr   getattr)r   argskwmethod_name)r    cls	fill_iternamer   r   _lazya   s   
z-LazyList.__new__.<locals>.lazy.<locals>._lazyr   rP   rQ   r    rN   rO   rP   r   lazy`   s   
zLazyList.__new__.<locals>.lazy)rG   rH   setattr)rN   rO   rU   rP   new_listr   rS   r   __new__T   s   
zLazyList.__new__r   r   r   r   r   rH   rX   r   r   r   r   r    G   s    
r    c                 C      g | ]	}t t|r|qS r   )hasattrrG   .0propr   r   r   
<listcomp>v       r_   c                   @   s   e Zd ZdZdZdddZdS )LazySetzSet populated on first use.)0r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r   r   r<   r   r=   r>   r   __sub____and____xor____or____rsub____rand____rxor____ror____isub____iand____ixor____ior__addclearcopy
differencedifference_updatediscardintersectionintersection_update
isdisjointissubset
issupersetr2   r3   symmetric_differencesymmetric_difference_updateunionupdateNc                    rA   )Nc                   @   rB   )z LazySet.__new__.<locals>.LazySetNrC   r   r   r   r   ra      rD   ra   c                    rE   )Nc                    sx   t   z$tdkr# D ]}t| | qjD ]}t | qW t   nt   w t	t| g|R i |S rF   )
r   r	   r   r2   setrn   rH   rI   r   rJ   )r   rK   rL   irM   )ra   rN   rO   rP   r   r   rQ      s   
z,LazySet.__new__.<locals>.lazy.<locals>._lazyr   rR   ra   rN   rO   rT   r   rU      s   zLazySet.__new__.<locals>.lazy)r}   rH   rV   )rN   rO   rU   rP   new_setr   r   r   rX      s   
zLazySet.__new__r   rY   r   r   r   r   ra   y   s    ra   c                 C   rZ   r   )r[   r}   r\   r   r   r   r_      r`   N)	threadingr   collections.abcr   r   ImportErrorUserDictcollectionsr   r   rG   r    rH   r}   ra   r   r   r   r   <module>   s"    	7/3