File: //usr/local/CyberPanel/lib64/python3.10/site-packages/django/db/__pycache__/utils.cpython-310.pyc
o
�h?$ � @ s, d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
d Zd
ZG dd� de�ZG d
d� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� d�Zdd � ZG d!d"� d"e �ZG d#d$� d$�ZdS )%� N)�
import_module��settings)�ImproperlyConfigured)�ConnectionDoesNotExist)�BaseConnectionHandler)�cached_property)�
import_string�default�_django_versionc @ � e Zd ZdS )�ErrorN��__name__�
__module__�__qualname__� r r �E/usr/local/CyberPanel/lib/python3.10/site-packages/django/db/utils.pyr
� r
c @ r )�InterfaceErrorNr r r r r r r r c @ r )�
DatabaseErrorNr r r r r r r r c @ r )� DataErrorNr r r r r r r r c @ r )�OperationalErrorNr r r r r r ! r r c @ r )�IntegrityErrorNr r r r r r % r r c @ r )�
InternalErrorNr r r r r r ) r r c @ r )�ProgrammingErrorNr r r r r r - r r c @ r )�NotSupportedErrorNr r r r r r 1 r r c @ s0 e Zd ZdZdd� Zdd� Zdd� Zdd � Zd
S )�DatabaseErrorWrapperz~
Context manager and decorator that reraises backend-specific database
exceptions using Django's common wrappers.
c C �
|| _ dS )zx
wrapper is a database wrapper.
It must have a Database attribute defining PEP-249 exceptions.
N)�wrapper)�selfr r r r �__init__; s
zDatabaseErrorWrapper.__init__c C s d S �Nr �r r r r � __enter__C s zDatabaseErrorWrapper.__enter__c C sp |d u rd S t ttttttttf D ]$}t | j
j|j�}t
||�r5||j� }|t tfvr/d| j
_|�|�|�qd S �NT)r r r r r r r r r
�getattrr �Databaser �
issubclass�args�errors_occurred�with_traceback)r �exc_type� exc_value� traceback�dj_exc_type�db_exc_type�dj_exc_valuer r r �__exit__F s( �
��zDatabaseErrorWrapper.__exit__c s � �fdd�}|S )Nc s6 �� � | i |��W d � S 1 sw Y d S r"