o
    [h                     @   s,   d dl mZ d dlmZmZ 	dddZdS )    )SpatialReference)DEFAULT_DB_ALIASconnectionsEPSGNc           	      C   s  |pt }t| }t|jdstd|jjstd|j }t| t	s(t	| } | j
du r1td| j
||p8| j
| jd}dd |j D }d	|v rP| j|d	< d
|v r[|pX| j|d
< z|j|j| j
d W dS  |jy   |j|jdi | Y dS w )a  
    Take a GDAL SpatialReference system and add its information to the
    `spatial_ref_sys` table of the spatial backend. Doing this enables
    database-level spatial transformations for the backend.  Thus, this utility
    is useful for adding spatial reference systems not included by default with
    the backend:

    >>> from django.contrib.gis.utils import add_srs_entry
    >>> add_srs_entry(3857)

    Keyword Arguments:
     auth_name:
       This keyword may be customized with the value of the `auth_name` field.
       Defaults to 'EPSG'.

     auth_srid:
       This keyword may be customized with the value of the `auth_srid` field.
       Defaults to the SRID determined by GDAL.

     ref_sys_name:
       For SpatiaLite users only, sets the value of the `ref_sys_name` field.
       Defaults to the name determined by GDAL.

     database:
      The name of the database connection to use; the default is the value
      of `django.db.DEFAULT_DB_ALIAS` (at the time of this writing, its value
      is 'default').
    Zspatial_versionz=The `add_srs_entry` utility only works with spatial backends.z4This utility does not support your database backend.NzMSpatial reference requires an SRID to be compatible with the spatial backend.)srid	auth_name	auth_sridZ	proj4textc                 S   s   h | ]}|j qS  )name).0fr	   r	   /home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/django/contrib/gis/utils/srs.py	<setcomp>A   s    z add_srs_entry.<locals>.<setcomp>Zsrtextref_sys_name)r   r	   )r   r   hasattrops	ExceptionfeaturesZsupports_add_srs_entryZspatial_ref_sys
isinstancer   r   Zproj4_metaZ
get_fieldsZwktr
   objectsusinggetZDoesNotExistcreate)	Zsrsr   r   r   Zdatabase
connectionZSpatialRefSyskwargsZsrs_field_namesr	   r	   r   add_srs_entry   s8   



r   )r   NNN)Zdjango.contrib.gis.gdalr   Z	django.dbr   r   r   r	   r	   r	   r   <module>   s    