o
    ߥi                     @   s   d dl Z d dlZd dlZd dlZedZG dd deje Zdedej	eddf fddZ
d	edejeejeef f fd
dZdS )    NTc                   @   sl   e Zd ZdZdejdef ddfddZejddd	e	dd fd
dZ
ejded	e	defddZ
dd Z
dS )cached_propertyz
    A property that is only computed once per instance and then replaces
    itself with an ordinary attribute. Deleting the attribute resets the
    property.
    func.returnNc                 C   s   || _ t| | d S N)r   	functoolsupdate_wrapper)selfr    r
   ?/home/ubuntu/.local/lib/python3.10/site-packages/baize/utils.py__init__   s   zcached_property.__init__objclsc                 C      d S r   r
   r	   r   r   r
   r
   r   __get__      zcached_property.__get__c                 C   r   r   r
   r   r
   r
   r   r      r   c                 C   sD   |d u r| }|S |  |}t|rt|}| }|j| j j< |S r   )r   inspectisawaitableasyncioensure_future__dict____name__)r	   r   r   valueresultr
   r
   r   r      s   


)r   
__module____qualname____doc__typingCallabler   r   overloadtyper   objectr
   r
   r
   r   r   	   s    r   sr   c                 c   s    | d d dkrg| dd  } |  d}|dkrD| dd|| dd| d rD|  d|d }|dkrD| dd|| dd| d s(|dk rLt| }| d | }| V  | |d  } | d d dks	d S d S )N   ;r   "\"   )findcountlenstrip)r#   endfr
   r
   r   _parseparam+   s   
((
r/   linec                 C   s   t d|  }| }i }|D ]I}|d}|dkrW|d|   }||d d  }t|dkrS|d |d   krAdkrSn n|dd }|d	d
dd}|||< q||fS )zfParse a Content-type like header.

    Return the main content-type and a dictionary of options.

    r%   =r   Nr$   r(   r&   z\\\r'   )r/   __next__r)   r,   lowerr+   replace)r0   partskeypdictpinamer   r
   r
   r   parse_header8   s   
,r=   )r   r   r   r   TypeVarr   Genericr   str	Generatorr/   TupleDictr=   r
   r
   r
   r   <module>   s    
"*