
    +'&h                         d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  ej        ej                   ej        d          k     Zd	 Zd
 Zd ZddZddZddZd ZddZd Zd Zd Zd Zd ZdS )z7This module defines functions used by several dialects.    N)version)Column)
expression)TypeDecorator)Geometryz1.4c                 .    d                     | |          S )Nz	idx_{}_{})format)
table_namecolumn_names     \/var/www/html/reinick/venv/lib/python3.11/site-packages/geoalchemy2/admin/dialects/common.py_spatial_idx_namer      s    j+666    c                      t           r| gS | S N)_SQLALCHEMY_VERSION_BEFORE_14argss    r   _format_select_argsr      s    $ vr   c                      dS )z>Default function to check management (always True by default).T r   s    r   check_managementr      s    4r   c                 J    ||nt           fd| j        D             S )Nc                     g | ]:}t          |t                    t          |j                  - |          8|;S r   )
isinstancer   _check_spatial_typetype).0coldialectfuncspatial_typess     r   
<listcomp>z!_get_gis_cols.<locals>.<listcomp>#   sc       sF##	
 $CHmWEE S		  r   )r   columns)tabler!   r   check_col_managementr    s    `` @r   _get_gis_colsr&      sN    '#     =   r   c                     t          | |          p7t          | t                    o"t          |                     |          |          S r   )r   r   load_dialect_impl)tested_typer!   r   s      r   r   r   .   sG    k=11 ;.. 	N{44W==}MMr   c                 r    |j         }t          | t          ||          fd| j        D             }||fS )z&Get info required for dispatch events.)r%   c                     g | ]}|v|	S r   r   )r   xgis_colss     r   r"   z&_get_dispatch_info.<locals>.<listcomp>>   s#    BBB!0A0AA0A0A0Ar   )r   r&   r   r#   )r$   bindr%   r   regular_colsr-   s        @r   _get_dispatch_infor0   5   sN    lG UHgL`aaaH CBBBu}BBBLHl**r   c                     | j         | j        d<   t          j                    }|D ]}|                    |           || _         dS )z(Update the table before dispatch events._saved_columnsN)r#   infor   ColumnCollectionadd)r$   r/   column_collectionr   s       r   _update_table_for_dispatchr7   C   sU     $)=EJ  #355 # #c""""%EMMMr   c                 V    t          | ||          \  }}}t          | |           |||fS )z;Prepare the table for before_create and before_drop events.)r0   r7   )r$   r.   r%   r   r-   r/   s         r   setup_create_dropr9   P   s8    &8FZ&[&[#GX|ul333Hl**r   c                     d S r   r   )	inspectorr$   column_infos      r   reflect_geometry_columnr=   W       
Fr   c                     d S r   r   r$   r.   kws      r   before_createrB   [   r>   r   c                     d S r   r   r@   s      r   after_createrD   _   r>   r   c                     d S r   r   r@   s      r   before_droprF   c   r>   r   c                     d S r   r   r@   s      r   
after_droprH   g   r>   r   r   )__doc__
sqlalchemy	packagingr   r   sqlalchemy.sqlr   sqlalchemy.typesr   geoalchemy2.typesr   parse__version__r   r   r   r   r&   r   r0   r7   r9   r=   rB   rD   rF   rH   r   r   r   <module>rQ      sy   = =                 % % % % % % * * * * * * & & & & & & -j.D E EV[H\H\ \ 7 7 7    
       + + + +
& 
& 
&+ + + +            r   