
    gj                     P    d Z ddlmZmZmZmZmZ dadad	dZ	d Z
d	dZd	dZd Zy)
z>Implementation of the ipaddres-based network types adaptation
    )new_typenew_array_typeregister_typeregister_adapterQuotedStringNc                     ddl a t        
t               at        D ]  }t        ||         t         j                  t         j
                  t         j                  t         j                  fD ]  }t        |t                y)a  
    Register conversion support between `ipaddress` objects and `network types`__.

    :param conn_or_curs: the scope where to register the type casters.
        If `!None` register them globally.

    After the function is called, PostgreSQL :sql:`inet` values will be
    converted into `~ipaddress.IPv4Interface` or `~ipaddress.IPv6Interface`
    objects, :sql:`cidr` values into into `~ipaddress.IPv4Network` or
    `~ipaddress.IPv6Network`.

    .. __: https://www.postgresql.org/docs/current/static/datatype-net-types.html
    r   N)
	ipaddress_casters_make_castersr   IPv4InterfaceIPv6InterfaceIPv4NetworkIPv6Networkr   adapt_ipaddress)conn_or_curscts      S/var/www/api/v1/venv_getwork_v1/lib/python3.12/site-packages/psycopg2/_ipaddress.pyregister_ipaddressr   %   sd       ?a&  %%y'>'>##Y%:%:<O,<    c                      t        ddt              } t        dd|       }t        ddt              }t        dd|      }| |||gS )	N)ie  INET)i  zINET[])i  CIDR)i  zCIDR[])r   cast_interfacer   cast_network)inetainetcidracidrs       r   r   r   B   sI    FFN3D7Hd3EFFL1D68T2E%u%%r   c                 D    | y t         j                  t        |             S N)r	   ip_interfacestrscurs     r   r   r   L   s    y!!#a&))r   c                 D    | y t         j                  t        |             S r!   )r	   
ip_networkr#   r$   s     r   r   r   S   s    yA''r   c                 *    t        t        |             S r!   )r   r#   )objs    r   r   r   Y   s    C!!r   r!   )__doc__psycopg2.extensionsr   r   r   r   r   r	   r
   r   r   r   r   r    r   r   <module>r.      s=   4M M 	 -:&*("r   