o
    ó<âgú  ã                   @   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yI   dZY nw erOdZnejdkrYg d	¢Znejd
krcg d¢Znedej ƒ‚er{eD ]Ze	eƒZedurz nqne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)	Úgdal308Úgdal307Úgdal306Úgdal305Úgdal304Úgdal303Úgdal302Úgdal301Úgdal300Úposix)ÚgdalÚGDALz	gdal3.8.0z	gdal3.7.0z	gdal3.6.0z	gdal3.5.0z	gdal3.4.0z	gdal3.3.0z	gdal3.2.0z	gdal3.1.0z	gdal3.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 )z^
    Return the correct STDCALL function for certain OSR routines on Win32
    platforms.
    r
   )ÚosÚnameÚlwingdalÚlgdal)Úfunc© r   úR/var/www/html/venv/lib/python3.10/site-packages/django/contrib/gis/gdal/libgdal.pyÚstd_callQ   s   
r   ÚGDALVersionInfoc                   C   ó   t dƒS )z0Return only the GDAL version number information.s   RELEASE_NAME©Ú_version_infor   r   r   r   Úgdal_versiond   ó   r$   c                   C   r!   )z)Return the full GDAL version information.ó    r"   r   r   r   r   Úgdal_full_versioni   r%   r'   c                  C   sJ   t ƒ } t d| ¡}|std|  ƒ‚| ¡ \}}}t|ƒt|ƒ|o#t|ƒ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ÚminorÚsubminorr   r   r   Úgdal_version_infon   s   r1   c                 C   s   t  d||¡ d S )NzGDAL_ERROR %d: %s)ÚloggerÚerror)Úerror_classÚerror_numberÚmessager   r   r   Úerr_handler}   s   r7   c                 C   s   t | ƒ}||_||_|S )N)r   ÚargtypesÚrestype)r   Úargsr9   r   r   r   r   Úfunction„   s   r;   ÚCPLSetErrorHandler)*Úloggingr   r(   Úctypesr   r   r   r   Úctypes.utilr   Údjango.contrib.gis.gdal.errorr   Údjango.core.exceptionsr   Ú	getLoggerr2   Údjango.confr	   ÚGDAL_LIBRARY_PATHÚlib_pathÚAttributeErrorÚImportErrorÚOSErrorÚ	lib_namesr   Úlib_nameÚjoinr   r   r   r   r#   r8   r9   r$   r'   r1   ÚGDAL_VERSIONÚCPLErrorHandlerr7   r;   Úset_error_handlerr   r   r   r   Ú<module>   sf    

ÿ



ÿþÿ
	