File: //lib/python3.12/__pycache__/contextlib.cpython-312.pyc
�
    )!�h�k  �                   �"  � d Z ddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZ g d�Z G d� dej                  �      Z G d	� d
ej                  �      Z G d� de�      Z G d
� de�      Z G d� d�      Z G d� deee�      Z G d� deee�      Zd� Zd� Z G d� de�      Z G d� de�      Z G d� de�      Z G d� de�      Z G d� d e�      Z G d!� d"e�      Z G d#� d$�      Z G d%� d&ee�      Z G d'� d(ee�      Z  G d)� d*ee�      Z! G d+� d,e�      Z"y)-z4Utilities for with-statement contexts.  See PEP 343.�    N)�deque��wraps)�
MethodType�GenericAlias)�asynccontextmanager�contextmanager�closing�nullcontext�AbstractContextManager�AbstractAsyncContextManager�AsyncExitStack�ContextDecorator�	ExitStack�redirect_stdout�redirect_stderr�suppress�aclosing�chdirc                   �Z   � e Zd ZdZ ee�      Zd� Zej                  d� �       Z
ed� �       Zy)r   z,An abstract base class for context managers.c                 �   � | S �z0Return `self` upon entering the runtime context.� ��selfs    �!/usr/lib/python3.12/contextlib.py�	__enter__z AbstractContextManager.__enter__   s   � ���    c                  �   � y�z9Raise any exception triggered within the runtime context.Nr   �r   �exc_type�	exc_value�	tracebacks       r   �__exit__zAbstractContextManager.__exit__   s   � � r   c                 �L   � | t         u rt        j                  |dd�      S t        S )Nr   r%   )r   �_collections_abc�_check_methods�NotImplemented��cls�Cs     r   �__subclasshook__z'AbstractContextManager.__subclasshook__    s&