B
    ¥0H[j  ã               @   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r0t|jƒ| _t| jƒ| _n
t|ƒ| _|j	| _	|| _
dS )z3
        Initialize on the spatial object.
        N)Ú
isinstancer   r   Úis_geometryÚbytesÚewkbr   Ú_adapterr   ZsridÚ	geography)ÚselfÚobjr   © r   úrC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-6bm3nxem\django\django\contrib\gis\db\backends\postgis\adapter.pyÚ__init__   s    
zPostGISAdapter.__init__c             C   s   |t kr| S tdƒ‚dS )z9Does the given protocol conform to what Psycopg2 expects?z<Error implementing psycopg2 protocol. Is psycopg2 installed?N)r   Ú	Exception)r   Úprotor   r   r   Ú__conform__   s    zPostGISAdapter.__conform__c             C   s   t |tƒsdS | j|jkS )NF)r   r   r
   )r   Úotherr   r   r   Ú__eq__$   s    
zPostGISAdapter.__eq__c             C   s
   t | jƒS )N)Úhashr
   )r   r   r   r   Ú__hash__)   s    zPostGISAdapter.__hash__c             C   s   |   ¡ S )N)Ú	getquoted)r   r   r   r   Ú__str__,   s    zPostGISAdapter.__str__c             C   s   | j r| j |¡ 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   s4   | j r&d| jrdnd| j ¡  ¡ f S d| j S dS )zP
        Return a properly quoted string for use in PostgreSQL/PostGIS.
        z%s(%s)ZST_GeogFromWKBZST_GeomFromEWKBz'%s'::rasterN)r   r   r   r   Údecoder
   )r   r   r   r   r   7   s
    zPostGISAdapter.getquotedN)F)
Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r   r   r      s   
r   N)
Ú__doc__Zpsycopg2r   Zpsycopg2.extensionsr   Z/django.contrib.gis.db.backends.postgis.pgrasterr   Zdjango.contrib.gis.geosr   r   r   r   r   r   Ú<module>   s
   