a
    xd8                     @   s  d dl Z d dlZd dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZ e dZzd dlmZ ejZW n eeeefy   dZY n0 erdZn6ejdkrg d	Zn"ejd
krg dZnedej ereD ]Ze	eZedur qqedu redde eeZejdkr:d dlmZ eeZdd ZedZege_ ee_!dd Z"dd Z#dd Z$e$ Z%edeeeZ&dd Z'e&e'Z'dd Z(e(de&ge&Z)e)e' dS )    N)CDLL	CFUNCTYPEc_char_pc_int)find_library)GDALException)ImproperlyConfiguredzdjango.contrib.gis)settingsnt)Zgdal301Zgdal300Zgdal204Zgdal203Zgdal202Zgdal201Zgdal20posix)	ZgdalZGDALz	gdal3.1.0z	gdal3.0.0z	gdal2.4.0z	gdal2.3.0z	gdal2.2.0z	gdal2.1.0z	gdal2.0.0zGDAL is unsupported on OS "%s".zzCould not find the GDAL library (tried "%s"). Is GDAL installed? If it is, try setting GDAL_LIBRARY_PATH in your settings.z", ")WinDLLc                 C   s   t jdkrt|  S t|  S dS )z^
    Return the correct STDCALL function for certain OSR routines on Win32
    platforms.
    r
   N)osnamelwingdallgdal)func r   W/var/www/html/Ranjet/env/lib/python3.9/site-packages/django/contrib/gis/gdal/libgdal.pystd_call=   s    
r   ZGDALVersionInfoc                   C   s   t dS )z0Return only the GDAL version number information.s   RELEASE_NAME_version_infor   r   r   r   gdal_versionP   s    r   c                   C   s   t dS )z)Return the full GDAL version information.    r   r   r   r   r   gdal_full_versionU   s    r   c                  C   sJ   t  } td| }|s"td|  | \}}}t|t||oFt|fS )Ns7   ^(?P<major>\d+)\.(?P<minor>\d+)(?:\.(?P<subminor>\d+))?z(Could not parse GDAL version string "%s")r   rematchr   groupsint)vermmajorminorZsubminorr   r   r   gdal_version_infoZ   s    r"   c                 C   s   t d|| d S )NzGDAL_ERROR %d: %s)loggererror)Zerror_classZerror_numbermessager   r   r   err_handleri   s    r&   c                 C   s   t | }||_||_|S )N)r   argtypesrestype)r   argsr(   r   r   r   r   functionp   s    r*   ZCPLSetErrorHandler)*loggingr   r   ctypesr   r   r   r   Zctypes.utilr   Zdjango.contrib.gis.gdal.errorr   Zdjango.core.exceptionsr   	getLoggerr#   Zdjango.confr	   ZGDAL_LIBRARY_PATHZlib_pathAttributeErrorImportErrorOSErrorZ	lib_namesr   Zlib_namejoinr   r   r   r   r   r'   r(   r   r   r"   ZGDAL_VERSIONZCPLErrorHandlerr&   r*   Zset_error_handlerr   r   r   r   <module>   s`   







	