ó
    V|õh~
  ã                  ó¢  • S r SSKJr  SSKrSSKrSSKrSSKrSSKJrJ	r	J
r
Jr  SSKJrJrJr  SSKJr   " S S\	5      r " S	 S
\\R&                  SS9r " S S\R*                  5      r\R.                   " S S5      5       r " S S\\R&                  SS9rSS jrSS jr    SS jr\R:                  (       a  \R<                  \\/\4   r gg)z
PUBLIC APIé    )ÚannotationsN)ÚIEContentProviderÚIEContentProviderErrorÚregister_preference_genericÚregister_provider_generic)Ú_pot_cache_provider_preferencesÚ_pot_cache_providersÚ_pot_pcs_providers)ÚPoTokenRequestc                  ó   • \ rS rSrSrSrg)ÚPoTokenCacheProviderErroré   z+An error occurred while fetching a PO Token© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    Ú\/home/james-whalen/.local/lib/python3.13/site-packages/yt_dlp/extractor/youtube/pot/cache.pyr   r      s   † Ü5r   r   c                  óŒ   • \ rS rSr\R
                  SS j5       r\R
                  SS j5       r\R
                  S	S j5       rSr	g)
ÚPoTokenCacheProvideré   c                ó   • g ©Nr   ©ÚselfÚkeys     r   ÚgetÚPoTokenCacheProvider.get   ó   € àr   c                ó   • g r   r   )r   r   ÚvalueÚ
expires_ats       r   ÚstoreÚPoTokenCacheProvider.store!   r"   r   c                ó   • g r   r   r   s     r   ÚdeleteÚPoTokenCacheProvider.delete%   r"   r   r   N)r   ÚstrÚreturnz
str | None)r   r+   r$   r+   r%   Úint)r   r+   )
r   r   r   r   ÚabcÚabstractmethodr    r&   r)   r   r   r   r   r   r      sN   † Ø×Ñóó ðð 	×Ñóó ðð 	×Ñóó ór   r   ÚPCP)Úsuffixc                  óX   • \ rS rSr\R
                  " 5       r\R
                  " 5       rSrg)ÚCacheProviderWritePolicyé*   r   N)	r   r   r   r   ÚenumÚautoÚ	WRITE_ALLÚWRITE_FIRSTr   r   r   r   r3   r3   *   s   † Ø—	’	“€IØ—)’)“+ƒKr   r3   c                  óZ   • \ rS rSr% S\S'   S\S'   \R                  rS\S'   SrS	\S
'   Sr	g)ÚPoTokenCacheSpecé/   zdict[str, str | None]Úkey_bindingsr-   Údefault_ttlr3   Úwrite_policyNzPoTokenCacheSpecProvider | NoneÚ	_providerr   )
r   r   r   r   Ú__annotations__r3   r7   r>   r?   r   r   r   r   r:   r:   /   s,   ‡ à'Ó'ØÓØ-E×-OÑ-O€LÐ*ÓOð 26€IÐ.Ö5r   r:   c                  óF   • \ rS rSrSS jr\R                  SS j5       rSrg)ÚPoTokenCacheSpecProvideré9   c                ó   • g)NTr   )r   s    r   Úis_availableÚ%PoTokenCacheSpecProvider.is_available;   s   € Ør   c                ó   • g)z+Generate a cache spec for the given requestNr   )r   Úrequests     r   Úgenerate_cache_specÚ,PoTokenCacheSpecProvider.generate_cache_spec>   s   € ð 	r   r   N)r,   Úbool)rH   r   r,   zPoTokenCacheSpec | None)	r   r   r   r   rE   r.   r/   rI   r   r   r   r   rB   rB   9   s!   † ôð 	×Ñóó ór   rB   ÚPCSPc                ó<   • [        U [        [        R                  S9$ )z%Register a PoTokenCacheProvider class©ÚproviderÚ
base_classÚregistry)r   r   r	   r$   ©rO   s    r   Úregister_providerrS   D   s   € ä$ØÜ'Ü%×+Ñ+ñð r   c                ó<   • [        U [        [        R                  S9$ )z)Register a PoTokenCacheSpecProvider classrN   )r   rB   r
   r$   rR   s    r   Úregister_specrU   M   s   € ä$ØÜ+Ü#×)Ñ)ñð r   c                 ó@   • [        [        [        R                  /U Q76 $ )z0Register a preference for a PoTokenCacheProvider)r   r   r   r$   )Ú	providerss    r   Úregister_preferencerX   V   s'   € ô 'ÜÜ'×-Ñ-ðð 
òð r   )rO   útype[PoTokenCacheProvider])rO   ztype[PoTokenCacheSpecProvider])rW   rY   r,   zCtyping.Callable[[CacheProviderPreference], CacheProviderPreference])!r   Ú
__future__r   r.   Údataclassesr5   Ú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   ÚEnumr3   Ú	dataclassr:   rB   rS   rU   rX   ÚTYPE_CHECKINGÚCallabler-   ÚCacheProviderPreferencer   r   r   Ú<module>rf      sá   ðÙ å "ã 
Û Û Û ÷ó ÷ñ õ
 Aô6Ð 6ô 6ôÐ,¨c¯g©g¸eò ô˜tŸy™yô ð
 ×Ñ÷6ð 6ó ð6ôÐ0°#·'±'À&ò ôôðØ.ðØ3vôð 
××Ø$Ÿo™oÐ/CÀ^Ð.TÐVYÐ.YÑZÑð r   