o
    i                     @  s   d dl mZ d dlZd dlZd dlZd dlZd dlZddlm	Z	 dZ
e
r1d dlZd dlZedZdddd	d
ddddddddZdddddZdddddZdS )    )annotationsN   )parse_iso8601FTbBhHiIfdlL)	Int8Array
Uint8ArrayUint8ClampedArray
Int16ArrayUint16Array
Int32ArrayUint32ArrayFloat32ArrayFloat64ArrayBigInt64ArrayBigUint64ArrayArrayBufferreviversparsed
typing.Anyr   >dict[str, collections.abc.Callable[[list], typing.Any]] | Nonec            
   c  s   d d t jt jt j dd}t| tr(t| ts(| |vs | dkr$td||  S t| ts1td| s7td|d u r=i }d g}|ddfg}|rV| \}}}t|t	r|\}}}	z
|	|| ||< W n$ t
y }
 ztd| d	|d
|
 V  d ||< W Y d }
~
nd }
~
ww qF||v r|| ||< qF|dk rtd|V  qFz| | }W n ty }
 z	|
V  W Y d }
~
qFd }
~
ww t|tr/|rt|d tr||d  }	r|d |krt|d d| dV  qF||||d |d |	ff ||||d f qF|d dkr7ztjjt|d tjjd}W n, t
y6   td|d V  d }Y nw |d dkr^d gt|d  }t|dd  D ]\}}||||f qOn|d dkrg }tt|dd  fd ddiD ]\}}d d g}||d|f ||d|f || qwn|d dkrt|d }n|d dkr|d }n|d dkrt|d }n|d dkri }tt|dd  fd ddiD ]\}}||||f qnd|d tv rt|d  }t|d }t||  }nGtd| d
|d V  d }n7t|d g }t|D ]\}}||||f q nt|t!rJi }|" D ]\}}||||f q;n|}| ||< ||< |sI|d S )Ng       )ir"   zinvalid integer inputzexpected int or list as inputz"expected a non-empty list as inputr   zfailed to parse z as z: zinvalid index:    z  cannot point to itself (index: )Date)tzzinvalid date: SetMapr   strictTRegExpObjectBigIntnullzinvalid type at )#mathnaninf
isinstanceintbool
ValueErrorlistpoptuple	Exception	TypeError
IndexErrorstrgetappenddtdatetimefromtimestampr   timezoneutclen	enumeratezipiterrecompile_ARRAY_TYPE_LOOKUPbase64	b64decodearraytolistdictitems)r   r   resolvedreturn_valuestacktargetindexsourcenamerevivererrorvalueresultoffset
new_sourcekeypairtypecodedata rd   N/home/ubuntu/.local/lib/python3.10/site-packages/yt_dlp/utils/jslib/devalue.py
parse_iter#   s   	


"
(
(brf   Ddict[str, collections.abc.Callable[[typing.Any], typing.Any]] | Nonec            
   C  sD   t | |d}	 z|d  ty! } z	|jW  Y d }~S d }~ww )Nr   )rf   sendStopIterationr\   )r   r   	generatorr[   rd   rd   re   parse   s   
rk   )r   r   r   r    )r   r   r   rg   )
__future__r   rO   rM   rB   rA   r1   rJ   _utilsr   TYPE_CHECKINGcollections.abccollectionstypingTypeVarr   rL   rf   rk   rd   rd   rd   re   <module>   s6    
~