§
    
@Äj½	  ã                   óP   — d dl Zd dlZd dlmZ d„ Zdedefd„Zdefd„Z	d„ Z
d	„ ZdS )
é    N©Úwrapsc           	      óÀ   — | t           j        vr|S t           j                             | d¦  «        }g d¢}g d¢}||v rdS ||vrt          d| › d|› d||z   › �¦  «        ‚dS )	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        úRC:\Projects\Historical\venv\Lib\site-packages\torchaudio/_internal/module_utils.pyÚeval_envr      sŸ   € à
•"”*ÐÐØˆå
Œ*�.Š.˜˜cÑ
"Ô
"€CØ;Ð;Ð;€EØ>Ð>Ð>€FØ
ˆe€|€|ØˆtØ
�&ÐÐåð0°cð 0ð 0¸Cð 0ð 0Ø$ v™~ð0ð 0ñ1ô 1ð 	1ð ˆ5ó    ÚmodulesÚreturnc                  ó4   — 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   óX   K  — | ]%}t           j                             |¦  «        d uV — Œ&d S ©N)Ú	importlibÚutilÚ	find_spec©Ú.0Úms     r   ú	<genexpr>z&is_module_available.<locals>.<genexpr>    s7   è è € ÐHÐH¸1�yŒ~×'Ò'¨Ñ*Ô*°$Ð6ÐHÐHÐHÐHÐHÐHr    )Úall)r!   s    r   Úis_module_availabler.      s!   € õ ÐHÐHÀÐHÑHÔHÑHÔHÐHr    c                  ó|   ‡— d„ | D ¦   «         }|sd„ }n(t          |¦  «        dk    rd|d         › �nd|› �Šˆfd„}|S )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                 ó0   — g | ]}t          |¦  «        °|‘ŒS © )r.   r)   s     r   ú
<listcomp>z#requires_module.<locals>.<listcomp>)   s&   € Ð@Ð@Ð@�QÕ)<¸QÑ)?Ô)?Ð@ˆqÐ@Ð@Ð@r    c                 ó   — | S r%   r1   ©Úfuncs    r   Ú	decoratorz"requires_module.<locals>.decorator-   s   € ØˆKr    é   zmodule: r   z	modules: c                 ó@   •‡ — t          ‰ ¦  «        ˆ ˆfd„¦   «         }|S )Nc                  óF   •— t          ‰j        › d‰j        › d‰› �¦  «        ‚)Nú.z
 requires ©r   Ú
__module__Ú__name__)ÚargsÚkwargsr5   Úreqs     €€r   Úwrappedz3requires_module.<locals>.decorator.<locals>.wrapped4   s,   ø€ å" d¤oÐ#VÐ#V¸¼Ð#VÐ#VÐQTÐ#VÐ#VÑWÔWÐWr    r   )r5   rA   r@   s   ` €r   r6   z"requires_module.<locals>.decorator3   s?   øø€ Ý�4‰[Œ[ðXð Xð Xð Xð Xñ Œ[ðXð ˆNr    )Úlen)r!   Úmissingr6   r@   s      @r   Úrequires_modulerD   #   sˆ   ø€ ð AÐ@˜'Ð@Ñ@Ô@€Gàð ð	ð 	ð 	ð 	õ *-¨W©¬¸Ò):Ð):Ð%˜ œÐ%Ð%Ð%Ð@UÈGÐ@UÐ@Uˆð	ð 	ð 	ð 	ð 	ð Ðr    c                 ó   ‡ — ˆ fd„}|S )zLGenerate decorator to give users message about missing TorchAudio extension.c                 ó@   •‡ — t          ‰ ¦  «        ˆ ˆfd„¦   «         }|S )Nc                  óF   •— t          ‰j        › d‰j        › d‰› �¦  «        ‚)Nr:   ú r;   )r>   r?   r5   Úmessages     €€r   rA   z5fail_with_message.<locals>.decorator.<locals>.wrappedA   s+   ø€ å $¤/ÐMÐM°D´MÐMÐMÀGÐMÐMÑNÔNÐNr    r   )r5   rA   rI   s   ` €r   r6   z$fail_with_message.<locals>.decorator@   s?   øø€ Ý	ˆt‰Œð	Oð 	Oð 	Oð 	Oð 	Oñ 
Œð	Oð ˆr    r1   )rI   r6   s   ` r   Úfail_with_messagerJ   =   s$   ø€ ðð ð ð ð ð Ðr    c                 ó   — | S )zlOp-op decorator. Used in place of fail_with_message when a functionality that requires extension works fine.r1   r4   s    r   Úno_oprL   J   s   € à€Kr    )Úimportlib.utilr&   r   Ú	functoolsr   r   ÚstrÚboolr.   rD   rJ   rL   r1   r    r   ú<module>rQ      s¦   ðØ Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ð Ð ðð ð ð&I #ð I¨$ð Ið Ið Ið Ið˜cð ð ð ð ð4
ð 
ð 
ðð ð ð ð r    