
    Şi~
                       d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	m
Z
mZ ddlmZmZmZ ddlmZ  G d de	          Z G d	 d
eej        d          Z G d dej                  Zej         G d d                      Z G d deej        d          ZddZddZddZej        rej        eegef         Z dS dS ) z
PUBLIC API    )annotationsN)IEContentProviderIEContentProviderErrorregister_preference_genericregister_provider_generic)_pot_cache_provider_preferences_pot_cache_providers_pot_pcs_providers)PoTokenRequestc                      e Zd ZdZdS )PoTokenCacheProviderErrorz+An error occurred while fetching a PO TokenN)__name__
__module____qualname____doc__     gC:\Users\betacode\Desktop\descargarYoutube\venv\Lib\site-packages\yt_dlp/extractor/youtube/pot/cache.pyr   r      s        5555r   r   c                  t    e Zd Zej        dd            Zej        dd	            Zej        dd
            ZdS )PoTokenCacheProviderkeystrreturn
str | Nonec                    d S Nr   selfr   s     r   getzPoTokenCacheProvider.get       r   value
expires_atintc                    d S r   r   )r   r   r!   r"   s       r   storezPoTokenCacheProvider.store!   r    r   c                    d S r   r   r   s     r   deletezPoTokenCacheProvider.delete%   r    r   N)r   r   r   r   )r   r   r!   r   r"   r#   )r   r   )r   r   r   abcabstractmethodr   r%   r'   r   r   r   r   r      s~            	    	     r   r   PCP)suffixc                  J    e Zd Z ej                    Z ej                    ZdS )CacheProviderWritePolicyN)r   r   r   enumauto	WRITE_ALLWRITE_FIRSTr   r   r   r-   r-   *   s(        	I$)++KKKr   r-   c                  J    e Zd ZU ded<   ded<   ej        Zded<   dZded	<   dS )
PoTokenCacheSpeczdict[str, str | None]key_bindingsr#   default_ttlr-   write_policyNzPoTokenCacheSpecProvider | None	_provider)r   r   r   __annotations__r-   r0   r6   r7   r   r   r   r3   r3   /   sQ         ''''-E-OLOOOO 26I555555r   r3   c                  8    e Zd Zd	dZej        d
d            ZdS )PoTokenCacheSpecProviderr   boolc                    dS )NTr   )r   s    r   is_availablez%PoTokenCacheSpecProvider.is_available;   s    tr   requestr   PoTokenCacheSpec | Nonec                    dS )z+Generate a cache spec for the given requestNr   )r   r>   s     r   generate_cache_specz,PoTokenCacheSpecProvider.generate_cache_spec>   s	     	r   N)r   r;   )r>   r   r   r?   )r   r   r   r=   r(   r)   rA   r   r   r   r:   r:   9   sL            	     r   r:   PCSPprovidertype[PoTokenCacheProvider]c                D    t          | t          t          j                  S )z%Register a PoTokenCacheProvider classrC   
base_classregistry)r   r   r	   r!   rC   s    r   register_providerrJ   D   s%    $'%+   r   type[PoTokenCacheSpecProvider]c                D    t          | t          t          j                  S )z)Register a PoTokenCacheSpecProvider classrF   )r   r:   r
   r!   rI   s    r   register_specrM   M   s%    $+#)   r   	providersr   Ctyping.Callable[[CacheProviderPreference], CacheProviderPreference]c                 <    t          t          t          j        g| R  S )z0Register a preference for a PoTokenCacheProvider)r   r   r   r!   )rN   s    r   register_preferencerQ   V   s.     ''- 
   r   )rC   rD   )rC   rK   )rN   rD   r   rO   )!r   
__future__r   r(   dataclassesr.   typing&yt_dlp.extractor.youtube.pot._providerr   r   r   r   &yt_dlp.extractor.youtube.pot._registryr   r	   r
   %yt_dlp.extractor.youtube.pot.providerr   r   ABCr   Enumr-   	dataclassr3   r:   rJ   rM   rQ   TYPE_CHECKINGCallabler#   CacheProviderPreferencer   r   r   <module>r^      s7     " " " " " " 



                          
 A @ @ @ @ @6 6 6 6 6 6 6 6 6    ,cge        ty   
 6 6 6 6 6 6 6 6    0#'&              
 [$o/C^.TVY.YZ[ [r   