o
    ad                     @   s    d dl Z dd ZefddZdS )    Nc                    s    fdd}t  |S )a6  
    Decorate func so it's only ever called the first time.

    This decorator can ensure that an expensive or non-idempotent function
    will not be expensive on subsequent calls and is idempotent.

    >>> func = once(lambda a: a+3)
    >>> func(3)
    6
    >>> func(9)
    6
    >>> func('12')
    6
    c                     s    t  ds | i | _ jS )Nalways_returns)hasattrr   )argskwargsfunc 7/usr/lib/python3/dist-packages/keyring/util/__init__.pywrapper   s   
zonce.<locals>.wrapper)	functoolswraps)r   r
   r   r   r	   once   s   r   c              	   c   s.    | D ]}z| V  W q |y   Y qw dS )zk
    yield the results of calling each element of callables, suppressing
    any indicated exceptions.
    Nr   )	callables
exceptionscallabler   r   r	   suppress_exceptions   s   r   )r   r   	Exceptionr   r   r   r   r	   <module>   s    