Ë
    P/æjê  ã                   ó~   — d dl Zd dlZd dlZd dlmZ d dlmZ d„ Zde	de
fd„Zde	fd„Zdd	e	d
ee	   de
fd„Zd„ Zd„ Zy)é    N©Úwraps)ÚOptionalc           	      ó¼   — | t         j                  vr|S t         j                  j                  | d«      }g d¢}g d¢}||v ry||vrt        d| › d|› d||z   › �«      ‚y)	z-Check if environment varable has True-y valueÚ0)Ú1ÚtrueÚTRUEÚonÚONÚyesÚYES)r   ÚfalseÚFALSEÚoffÚOFFÚnoÚNOTz'Unexpected environment variable value `ú=z`. Expected one of F)ÚosÚenvironÚgetÚRuntimeError)ÚvarÚdefaultÚvalÚtruesÚfalsess        úd/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torchaudio/_internal/module_utils.pyÚeval_envr       sw   € à
”"—*‘*ÑØˆä
�*‰*�.‰.˜˜cÓ
"€CÚ;€EÚ>€FØ
ˆe�|ØØ
�&ÑäØ5°c°U¸!¸C¸5ð AØ$ v™~Ð.ð0ó1ð 	1ð ó    ÚmodulesÚreturnc                  ó&   — t        d„ | D «       «      S )aP  Returns if a top-level module with :attr:`name` exists *without**
    importing it. This is generally safer than try-catch block around a
    `import X`. It avoids third party libraries breaking assumptions of some of
    our tests, e.g., setting multiprocessing start method when imported
    (see librosa/#747, torchvision/#544).
    c              3   ó^   K  — | ]%  }t         j                  j                  |«      d u–— Œ' y ­w©N)Ú	importlibÚutilÚ	find_spec)Ú.0Úms     r   ú	<genexpr>z&is_module_available.<locals>.<genexpr>"   s$   è ø€ ÒH¸1Œy�~‰~×'Ñ'¨Ó*°$Ô6ÑHùs   ‚+-)Úall)r"   s    r   Úis_module_availabler.      s   € ô ÑHÀÔHÓHÐHr!   c                  ó–   ‡— | D �cg c]  }t        |«      rŒ|‘Œ }}|sd„ }|S t        |«      dk(  rd|d   › �nd|› �Šˆfd„}|S c c}w )zîDecorate function to give error message if invoked without required optional modules.

    This decorator is to give better error message to users rather
    than raising ``NameError:  name 'module' is not defined`` at random places.
    c                 ó   — | S r&   © ©Úfuncs    r   Ú	decoratorz"requires_module.<locals>.decorator/   s   € ØˆKr!   é   zmodule: r   z	modules: c                 ó2   •‡ — t        ‰ «      ˆ ˆfd„«       }|S )Nc                  óR   •— t        ‰j                  › d‰j                  › d‰› �«      ‚)Nú.z
 requires ©r   Ú
__module__Ú__name__)ÚargsÚkwargsr3   Úreqs     €€r   Úwrappedz3requires_module.<locals>.decorator.<locals>.wrapped6   s*   ø€ ä" d§o¡oÐ%6°a¸¿¹°ÀjÐQTÐPUÐ#VÓWÐWr!   r   )r3   r?   r>   s   ` €r   r4   z"requires_module.<locals>.decorator5   s"   ù€ Ü�4‹[ôXó ðXð ˆNr!   )r.   Úlen)r"   r+   Úmissingr4   r>   s       @r   Úrequires_modulerB   %   si   ø€ ð "Ö@�QÔ)<¸QÕ)?ŠqÐ@€GÐ@áò	ð Ðô *-¨W«¸Ò):�˜ ™˜Ñ%À)ÈGÈ9Ð@Uˆô	ð Ðùò# As
   †A—AÚ	directionÚversionÚremovec                 ó   ‡ ‡‡— ˆ ˆˆfd„}|S )zÿDecorator to add deprecation message

    Args:
        direction (str): Migration steps to be given to users.
        version (str or int): The version when the object will be removed
        remove (bool): If enabled, append future removal message.
    c                 óŽ   •‡ — t        ‰ «      ˆˆ ˆˆfd„«       }d}‰r|d‰€dn‰› d�z  }d‰ j                  › d|› d‰› d	�|_        |S )
Nc                  óœ   •— ‰j                   › d‰j                  › d‰› �}‰r|d‰€dn‰› d�z  }t        j                  |d¬«        ‰| i |¤ŽS )Nr8   z has been deprecated. z It will be removed from Úfutureú
 release. é   )Ú
stacklevel)r:   r;   ÚwarningsÚwarn)r<   r=   ÚmessagerC   r3   rE   rD   s      €€€€r   r?   z.deprecated.<locals>.decorator.<locals>.wrappedI   sb   ø€ àŸ™Ð)¨¨4¯=©=¨/Ð9OÐPYÈ{Ð[ˆGÙØÐ6À7À?±xÐX_Ð6`Ð`jÐkÑk�Ü�M‰M˜'¨aÕ0Ù˜Ð( Ñ(Ð(r!   z#This function has been deprecated. zIt will be removed from rI   rJ   zDEPRECATED: z

    .. warning::

       z
       z	
        )r   Ú__doc__)r3   r?   rO   rC   rE   rD   s   `  €€€r   r4   zdeprecated.<locals>.decoratorH   sv   ù€ Ü	ˆt‹ö	)ó 
ð	)ð 8ˆÙØÐ1¸g¸o±(ÐSZÐ1[Ð[eÐfÑfˆGà*¨4¯<©<¨.ð 9ð 	€yð Ø€{ð 	ðˆŒð ˆr!   r1   )rC   rD   rE   r4   s   ``` r   Ú
deprecatedrQ   ?   s   ú€ öð. Ðr!   c                 ó   ‡ — ˆ fd„}|S )zLGenerate decorator to give users message about missing TorchAudio extension.c                 ó2   •‡ — t        ‰ «      ˆ ˆfd„«       }|S )Nc                  óR   •— t        ‰j                  › d‰j                  › d‰› �«      ‚)Nr8   ú r9   )r<   r=   r3   rO   s     €€r   r?   z5fail_with_message.<locals>.decorator.<locals>.wrappedf   s(   ø€ ä $§/¡/Ð!2°!°D·M±M°?À!ÀGÀ9ÐMÓNÐNr!   r   )r3   r?   rO   s   ` €r   r4   z$fail_with_message.<locals>.decoratore   s"   ù€ Ü	ˆt‹ô	Oó 
ð	Oð ˆr!   r1   )rO   r4   s   ` r   Úfail_with_messagerV   b   s   ø€ ôð Ðr!   c                 ó   — | S )zlOp-op decorator. Used in place of fail_with_message when a functionality that requires extension works fine.r1   r2   s    r   Úno_oprX   o   s   € à€Kr!   )NF)Úimportlib.utilr'   r   rM   Ú	functoolsr   Útypingr   r    ÚstrÚboolr.   rB   rQ   rV   rX   r1   r!   r   ú<module>r^      sd   ðÛ Û 	Û Ý Ý òð&I #ð I¨$ó Ið˜có ñ4 ˜#ð  ¨°©ð  Àdó  òF
ór!   