U
    Ï~fh­  ã                   @   sP   d dl mZmZ G dd„ deƒZeeeef ddœdd„Zee	edœd	d
„Z
dS )é    )ÚAnyÚDictc                   @   s   e Zd ZdZdS )ÚAlreadyUsedErrorz&An Outcome can only be unwrapped once.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r	   r	   ú1/tmp/pip-unpacked-wheel-58dcm9s0/outcome/_util.pyr      s   r   N)Úmodule_nameÚ	namespaceÚreturnc                    sV   t d dœ‡ ‡fdd„‰ |d }t|ttfƒs8tt|ƒƒ‚|D ]}|| }ˆ |ƒ q<d S )N)Úobjr   c                    sJ   t | dd ƒ}|d k	rF| d¡rFˆ| _t| tƒrF| j ¡ D ]}ˆ |ƒ q8d S )Nr   zoutcome.)ÚgetattrÚ
startswithr   Ú
isinstanceÚtypeÚ__dict__Úvalues)r   ÚmodÚ
attr_value©Úfix_oner   r	   r
   r      s    
z&fixup_module_metadata.<locals>.fix_oneÚ__all__)Úobjectr   ÚtupleÚlistÚAssertionErrorÚrepr)r   r   Zall_listZobjnamer   r	   r   r
   Úfixup_module_metadata	   s    r   )ÚexcÚnr   c                 C   s0   | j }t|ƒD ]}|d k	st‚|j}q|  |¡S )N)Ú__traceback__Úranger   Útb_nextÚwith_traceback)r    r!   ÚtbÚ_r	   r	   r
   Úremove_tb_frames   s
    r(   )Útypingr   r   ÚRuntimeErrorr   Ústrr   r   ÚBaseExceptionÚintr(   r	   r	   r	   r
   Ú<module>   s   
ý