a
    h                     @  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
rbd 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ddZdddddddZdS )    )annotationsN   )parse_iso8601FTbBhHiIfdlL)Z	Int8ArrayZ
Uint8ArrayZUint8ClampedArrayZ
Int16ArrayZUint16ArrayZ
Int32ArrayZUint32ArrayZFloat32ArrayZFloat64ArrayZBigInt64ArrayZBigUint64ArrayZArrayBufferreviversz
typing.Anyz>dict[str, collections.abc.Callable[[list], typing.Any]] | None)parsedr   c            
   c  s  d d t jt jt j dd}t| trNt| tsN| |vs>| dkrFtd||  S t| tsbtdn| sntd|d u rzi }d g}|ddfg}|r| \}}}t|t	r(|\}}}	z|	||  ||< ||< W q t
y$ }
 z8td| d	|d
|
 V  d  ||< ||< W Y d }
~
qd }
~
0 0 q||v r@|| ||< q|dk r\td|V  qz| | }W n8 ty }
 z|
V  W Y d }
~
qW Y d }
~
n
d }
~
0 0 t|tr|rLt|d trL||d  }	r:|d |krt|d d| dV  q||||d |d |	ff ||||d f qq~|d dkrz tjjt|d tjjd}W n, t
y   td|d V  d }Y n0 q~|d dkrd gt|d  }t|dd  D ]\}}||||f qʐq~|d dkrVg }tt|dd  fd  D ]<\}}d d g}||d|f ||d|f || qn|d dkrtt|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 ]\}}||||f qnX|d tv r,t|d  }t|d }t||  }ntd| d
|d V  d }n2t|d g }t|D ]\}}||||f qbn:t|t!ri }|" D ]\}}||||f qn|}| ||< ||< q|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: SetZMapr   ZRegExpZObjectZ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   ZresolvedZreturn_valuestacktargetindexsourcenameZrevivererrorvalueresultoffsetZ
new_sourcekeypairtypecodedata rM   O/mnt/pikpak/tmp/myenv/lib/python3.9/site-packages/yt_dlp/utils/jslib/devalue.py
parse_iter#   s    	


&

" "
"rO   zDdict[str, collections.abc.Callable[[typing.Any], typing.Any]] | Nonec            
   C  sL   t | |d}z|d W q tyD } z|jW  Y d }~S d }~0 0 qd S )Nr   )rO   sendStopIterationrF   )r   r   	generatorrE   rM   rM   rN   parse   s
    rS   )
__future__r   r<   r:   r/   r.   r   r7   _utilsr   TYPE_CHECKINGcollections.abccollectionstypingTypeVarr   r9   rO   rS   rM   rM   rM   rN   <module>   s4   
~