File: //lib/python3.9/site-packages/pip/_vendor/__pycache__/contextlib2.cpython-39.pyc
a
?�fB � @ s� d Z ddlZddlZddlZddlmZ ddlmZ g d�Zedg7 Zej dd� dkr`ej
Zne�d e
fd
di�Zdd
� Zdd� ZG dd� de�ZG dd� de
�ZG dd� de�Zdd� ZG dd� de
�ZG dd� de
�ZG dd� de�ZG dd� de�ZG d d!� d!e
�Zej d d"kZe�r2d#d$� Zd%d&� Znd'd$� Zd(d&� Zzdd)lmZ W n e�yj eZ Y n
0 d*d+� Z G d,d-� d-e
�Z!G d.d� de!�Z"G d/d0� d0e�Z#dS )1zAcontextlib2 - 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 | |v rd S |� | � | jD ]}t||� q|S �N)�append� __bases__�_classic_mro)�C�result�Br r �;/usr/lib/python3.9/site-packages/pip/_vendor/contextlib2.pyr s
r c G st z
| j }W n ty* tt| g ��}Y n0 |D ]>}|D ],}||jv r8|j| d u r`t S q0q8t S q0dS )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'