U ÀÒ.eB ã @ s¸ d Z ddlZddlZddlZddlmZ ddlmZ ddddd d ddd g Zedg7 Zej dd… dkrnej Zne de fddi¡Zdd„ Zdd„ ZG dd„ deƒZG dd „ d e ƒZG dd„ deƒZdd„ ZG dd„ de ƒZG dd„ de ƒZG d d„ deƒZG d!d„ deƒZG d"d „ d e ƒZej d d#kZe�r@d$d%„ Zd&d'„ Znd(d%„ Zd)d'„ Zzdd*lmZ W n ek �rz eZ Y n X d+d,„ Z G d-d „ d e ƒZ!G d.d„ de!ƒZ"G d/d„ deƒZ#dS )0zAcontextlib2 - backports and enhancements to the contextlib moduleé N)Údeque©ÚwrapsÚcontextmanagerÚclosingÚnullcontextÚAbstractContextManagerÚContextDecoratorÚ ExitStackÚredirect_stdoutÚredirect_stderrÚsuppressÚContextStacké )é é ÚABCÚ __slots__© c C s0 | |krd S | | ¡ | jD ]}t||ƒ q|S ©N)ÚappendÚ __bases__Ú_classic_mro)ÚCÚresultÚBr r ú;/usr/lib/python3.8/site-packages/pip/_vendor/contextlib2.pyr s r c G sv z | j }W n" tk r, tt| g ƒƒ}Y nX |D ]>}|D ],}||jkr:|j| d krbt S q2q:t S q2dS )NT)Ú__mro__ÚAttributeErrorÚtupler Ú__dict__ÚNotImplemented)r ÚmethodsÚmroÚmethodr r r r Ú_check_methods$ s r% c @ s2 e Zd ZdZdd„ Zejdd„ ƒZedd„ ƒZ dS ) r z,An abstract base class for context managers.c C s | S )z0Return `self` upon entering the runtime context.r ©Úselfr r r Ú __enter__8 s z AbstractContextManager.__enter__c C s dS )z9Raise any exception triggered within the runtime context.Nr )r' Úexc_typeÚ exc_valueÚ tracebackr r r Ú__exit__<