File: //home/arjun/.local/lib/python3.10/site-packages/exceptiongroup/__pycache__/_catch.cpython-310.pyc
o
���gH � @ s� d dl mZ d dlZd dlZd dlmZmZmZ d dlm Z d dl
mZ d dlm
Z
mZ ejdk r7dd lmZ e
rBeee gef ZG d
d� d�Zddd�ZdS )� )�annotationsN)�Callable�Iterable�Mapping)�AbstractContextManager)�
TracebackType)�
TYPE_CHECKING�Any)� � � )�BaseExceptionGroupc @ s4 e Zd Zddd�Zddd�Zddd�Zddd�ZdS )�_Catcher�handler_map�2Mapping[tuple[type[BaseException], ...], _Handler]c C s
|| _ d S �N)�_handler_map)�selfr � r �H/home/arjun/.local/lib/python3.10/site-packages/exceptiongroup/_catch.py�__init__ s
z_Catcher.__init__�return�Nonec C s d S r r )r r r r � __enter__ s z_Catcher.__enter__�etype�type[BaseException] | None�exc�BaseException | None�tb�TracebackType | None�boolc C s` |d ur.| � |�}||u rdS |d u rdS t|t�r+z||j� ty* |j|_� w ||�dS )NFT)�handle_exception�
isinstancer
� __cause__�__context__)r r r r � unhandledr r r �__exit__ s
�z_Catcher.__exit__�
BaseExceptionc C sP t |t�r|}ntd|g�}g }| j�� D ]m\}}|�|�\}}|r~zz|� ty2 ||�}Y nw W n8 tyV } z||u rF|�|� n|�|j� W Y d }~n,d }~w tyl } z|�|� W Y d }~nd }~ww t �
|�r~td|�d|�d��|�|s� nq|r�t|�dkr�|d S td|�S |r�t|j�dkr�|jd |u r�|S |S )N� zError trying to handle z with z,. Exception handler must be a sync function.r r )
r"