File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/psycopg2/__pycache__/extras.cpython-311.pyc
�
    � h��  �                   �  � d Z ddlZddlZddlZddlmZm	Z	 ddl
ZddlZddlm
Z ddl
mZ ddl
mZ ddl
mZmZ dd	lmZ dd
lmZmZmZmZmZ ddl m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. dd
l/m0Z0  G d� de�  �        Z1 G d� de�  �        Z2 G d� de1�  �        Z3 G d� de4�  �        Z5 G d� de�  �        Z6 G d� de1�  �        Z7 G d� de	�  �        Z8 G d� de�  �        Z9 G d� de�  �        Z: ed �  �        d!� �   �         Z; e<e;�  �        e:_;         G d"� d#e�  �        Z= G d$� d%e�  �        Z> G d&� d'e=�  �        Z? G d(� d)e>�  �        Z@ G d*� d+e�  �        ZA G d,� d-e�  �        ZB G d.� d/eC�  �        ZD G d0� d1e�  �        Z G d2� d3�  �        ZEdId4�ZF G d5� d6�  �        ZGdId7�ZHd8� ZId9� ZJ G d:� d;�  �        ZK	 	 dJd=�ZL G d>� d?�  �        ZMdKd@�ZNdA� ZOdLdC�ZPdMdD�ZQdE� ZR ejS        dF ejT        dG�  �        z   dHz   �  �        ZUdS )Nz�Miscellaneous goodies for psycopg2
This module is a generic place used to hold little helper functions
and classes until a better place in the distribution is found.
�    N)�
namedtuple�OrderedDict)�
extensions�   )�cursor)�
connection)�adapt�quote_ident)�	lru_cache)�REPLICATION_PHYSICAL�REPLICATION_LOGICAL�ReplicationConnection�ReplicationCursor�ReplicationMessage)�json�Json�
register_json�register_default_json�register_default_jsonb)�Range�NumericRange�	DateRange�
DateTimeRange�DateTimeTZRange�register_range�RangeAdapter�RangeCaster)�register_ipaddressc                   �L   � � e Zd ZdZ� fd�Z� fd�Zd� fd�	Z� fd�Z� fd�Z� xZ	S )	�DictCursorBasez%Base class for all dict-like cursors.c                 �   �� d|v r|d         }|d= nt          d�  �        � t          �   �         j        |i |�� d| _        d| _        || _        d S )N�row_factoryz;DictCursorBase can't be instantiated without a row factory.F)�NotImplementedError�super�__init__�_query_executed�	_prefetchr"