Ë
    ùÿæiI  ã                   óª   — d dl Z d dlmZ d dlmZmZ d dlmZ  ed«      Z ed«      Z	 ed«      Z
 e«       Zdeee
ef   e	f   d	eee
ef   e	f   fd
„Zy)é    N)ÚCallable)ÚConcatenateÚTypeVar)Ú	ParamSpecÚ_PÚ_TÚ_CÚfÚreturnc           	      ó¾   ‡ ‡— d‰ j                   z   Št        j                  ‰ «      dt        dt        j
                  dt        j                  dt        fˆˆ fd„«       }|S )a  
    Like `@functools.cache` but for methods.

    `@functools.cache` (and similarly `@functools.lru_cache`) shouldn't be used
    on methods because it caches `self`, keeping it alive
    forever. `@cache_method` ignores `self` so won't keep `self` alive (assuming
    no cycles with `self` in the parameters).

    Footgun warning: This decorator completely ignores self's properties so only
    use it when you know that self is frozen or won't change in a meaningful
    way (such as the wrapped function being pure).
    Ú_cache_method_ÚselfÚargsÚkwargsr   c                 óÀ   •— |rt        d«      ‚t        | ‰d «      x}si }t        | ‰|«       |j                  |t        «      }|t        ur|S  ‰| g|¢­i |¤Ž}|||<   |S )Nz.cache_method does not accept keyword arguments)ÚAssertionErrorÚgetattrÚsetattrÚgetÚ_cache_sentinel)r   r   r   ÚcacheÚcached_valueÚvalueÚ
cache_namer
   s         €€úk/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torch/utils/_functools.pyÚwrapzcache_method.<locals>.wrap    sw   ø€ áÜ Ð!QÓRÐRÜ   z°4Ó8Ð8�Ð8ØˆEÜ�D˜* eÔ,à—y‘y ¤Ó7ˆØœÑ.ØÐÙ�$Ð(˜Ò( Ñ(ˆàˆˆd‰Øˆó    )Ú__name__Ú	functoolsÚwrapsr	   r   r   r   r   )r
   r   r   s   ` @r   Úcache_methodr!      sY   ù€ ð " A§J¡JÑ.€Jä‡_�_�QÓð”2ð œbŸg™gð ´·±ð ¼rõ ó ðð €Kr   )r   Úcollections.abcr   Útypingr   r   Útyping_extensionsr   r   r   r	   Úobjectr   r!   © r   r   Ú<module>r'      sr   ðÛ Ý $ß 'Ý 'ñ ˆtƒ_€ÙˆTƒ]€ÙˆTƒ]€ñ “(€ð!Ø�˜B ˜FÑ# RÐ'Ñ(ð!àˆk˜"˜b˜&Ñ! 2Ð%Ñ&ô!r   