o
    :ZœcE  ã                   @   sF   d Z ddlmZ ddlmZ ddlmZ ddlmZ G dd„ dƒZ	dS )	zL
 This object provides quoting for GEOS geometries into PostgreSQL/PostGIS.
é    )ÚBinary)Ú	ISQLQuote)Úto_pgraster)ÚGEOSGeometryc                   @   sF   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )ÚPostGISAdapterFc                 C   sL   t |ttfƒ| _| jrt|jƒ| _t| jƒ| _nt|ƒ| _|j	| _	|| _
dS )z3
        Initialize on the spatial object.
        N)Ú
isinstancer   r   Úis_geometryÚbytesÚewkbr   Ú_adapterr   ÚsridÚ	geography)ÚselfÚobjr   © r   úd/var/www/chikooza/env/lib/python3.10/site-packages/django/contrib/gis/db/backends/postgis/adapter.pyÚ__init__   s   

zPostGISAdapter.__init__c                 C   s   |t kr| S tdƒ‚)z9Does the given protocol conform to what Psycopg2 expects?z<Error implementing psycopg2 protocol. Is psycopg2 installed?)r   Ú	Exception)r   Úprotor   r   r   Ú__conform__   s   zPostGISAdapter.__conform__c                 C   s   t |tƒo
| j|jkS ©N)r   r   r
   )r   Úotherr   r   r   Ú__eq__$   s   zPostGISAdapter.__eq__c                 C   s
   t | jƒS r   )Úhashr
   ©r   r   r   r   Ú__hash__'   s   
zPostGISAdapter.__hash__c                 C   s   |   ¡ S r   )Ú	getquotedr   r   r   r   Ú__str__*   s   zPostGISAdapter.__str__c                 C   s   | j r| j |¡ dS dS )zŒ
        This method allows escaping the binary in the style required by the
        server's `standard_conforming_string` setting.
        N)r   r   Úprepare)r   Úconnr   r   r   r   -   s   ÿzPostGISAdapter.preparec                 C   s0   | j rd| jr	dnd| j ¡  ¡ f S d| j S )zP
        Return a properly quoted string for use in PostgreSQL/PostGIS.
        z%s(%s)ÚST_GeogFromWKBÚST_GeomFromEWKBz'%s'::raster)r   r   r   r   Údecoder
   r   r   r   r   r   5   s   þ
zPostGISAdapter.getquotedN)F)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   r   r      s    
r   N)
Ú__doc__Úpsycopg2r   Úpsycopg2.extensionsr   Ú/django.contrib.gis.db.backends.postgis.pgrasterr   Údjango.contrib.gis.geosr   r   r   r   r   r   Ú<module>   s    