B ReB @ s d Z ddlZddlZddlZddlmZ ddlmZ ddddd d ddd g Zedg7 Zej dd dkrnej Znede fddiZdd Zdd ZG dd deZG dd d e ZG dd deZdd ZG dd de ZG dd de ZG d d deZG d!d deZG d"d d e Zej d d#kZer@d$d% Zd&d' Znd(d% Zd)d' Zydd*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 deZ#dS )0zAcontextlib2 - backports and enhancements to the contextlib module N)deque)wrapscontextmanagerclosingnullcontextAbstractContextManagerContextDecorator ExitStackredirect_stdoutredirect_stderrsuppressContextStack ) ABC __slots__ c C s4 | |krd S | | x| jD ]}t|| qW |S )N)append __bases___classic_mro)CresultBr r /builddir/build/BUILDROOT/alt-python37-pip-20.2.4-6.el8.x86_64/opt/alt/python37/lib/python3.7/site-packages/pip/_vendor/contextlib2.pyr s r c G sp y | j }W n" tk r, tt| g }Y nX x<|D ]4}x.|D ]"}||jkr>|j| d kr^tS P q>W tS q4W dS )NT)__mro__AttributeErrortupler __dict__NotImplemented)r methodsmromethodr 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__<