o
    i                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 G d
d dZG dd deZdS )zPathable accessors module    )contextmanager)Any)Dict)Hashable)Iterator)List)Mapping)Unionc                	   @   s   e Zd ZdZdee deeef fddZ	dee defddZ
dee defdd	Zedee deeeeef ef  fd
dZdS )BaseAccessorzBase accessor.partsreturnc                 C      t NNotImplementedErrorselfr    r   X/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pathable/accessors.pystat      zBaseAccessor.statc                 C   r   r   r   r   r   r   r   keys   r   zBaseAccessor.keysc                 C   r   r   r   r   r   r   r   len   r   zBaseAccessor.lenc                 C   r   r   r   r   r   r   r   open   s   zBaseAccessor.openN)__name__
__module____qualname____doc__r   r   r   strr   r   r   intr   r   r   r	   r   r   r   r   r   r   r
      s    r
   c                	   @   s   e Zd ZdZdeeef fddZdee de	e
ef fddZdee defd	d
Zdee defddZedee deeeeef ef  fddZdS )LookupAccessorz5Accessor for object that supports __getitem__ lookupslookupc                 C   s
   || _ d S r   r!   )r   r!   r   r   r   __init__"   s   
zLookupAccessor.__init__r   r   c                 C   r   r   r   r   r   r   r   r   %   r   zLookupAccessor.statc                 C   s6   |  |}| W  d    S 1 sw   Y  d S r   )r   r   r   r   dr   r   r   r   (      $zLookupAccessor.keysc                 C   s6   |  |}t|W  d    S 1 sw   Y  d S r   )r   r   r$   r   r   r   r   ,   r&   zLookupAccessor.lenc                 c   s*    | j }|D ]}|| }qz|V  W d S w r   r"   )r   r   contentpartr   r   r   r   0   s   
zLookupAccessor.openN)r   r   r   r   r   r   r   r#   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r   r       s    r    N)r   
contextlibr   typingr   r   r   r   r   r   r	   r
   r    r   r   r   r   <module>   s    