ó
J~‰Pc           @  så  d  d l  m Z 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 j d ƒ Z y d  d l m Z e j Z Wn# e e e e f k
 r× d Z n Xe rç d Z ng e j d	 k rd
 d d d d g Z n@ e j d k r;d d d d d d d g Z n e d e j ƒ ‚ e r„x- e D]" Z e e ƒ Z e d k	 r[Pq[q[Wn  e d k r¬e d d j e ƒ ƒ ‚ n  e e ƒ Z e j d	 k ræd  d l m Z e e ƒ Z  n  d „  Z! e! d ƒ Z" e g e" _# e e" _$ d „  Z% d „  Z& e j' d ƒ Z( d  „  Z) e) ƒ  Z* e+ e* d! ƒ Z, e+ e* d" ƒ Z- e* d# oze+ e* d# ƒ Z. e, e- e. f Z/ [* e	 d e e e ƒ Z0 d$ „  Z1 e0 e1 ƒ Z1 d% „  Z2 e2 d& e0 g e0 ƒ Z3 e3 e1 ƒ d S('   iÿÿÿÿ(   t   unicode_literalsN(   t   c_char_pt   c_intt   CDLLt	   CFUNCTYPE(   t   find_library(   t   OGRException(   t   ImproperlyConfiguredu   django.contrib.gis(   t   settingsu   ntu   gdal19u   gdal18u   gdal17u   gdal16u   gdal15u   posixu   gdalu   GDALu	   gdal1.9.0u	   gdal1.8.0u	   gdal1.7.0u	   gdal1.6.0u	   gdal1.5.0u   Unsupported OS "%s"u]   Could not find the GDAL library (tried "%s"). Try setting GDAL_LIBRARY_PATH in your settings.u   ", "(   t   WinDLLc         C  s#   t  j d k r t |  St |  Sd S(   u_   
    Returns the correct STDCALL function for certain OSR routines on Win32
    platforms.
    u   ntN(   t   ost   namet   lwingdalt   lgdal(   t   func(    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   std_call9   s    u   GDALVersionInfoc           C  s
   t  d ƒ S(   u1   Returns only the GDAL version number information.t   RELEASE_NAME(   t   _version_info(    (    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   gdal_versionJ   s    c           C  s
   t  d ƒ S(   u*   Returns the full GDAL version information.u    (   R   (    (    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   gdal_full_versionN   s    u5   ^(?P<major>\d+)\.(?P<minor>\d+)(\.(?P<subminor>\d+))?c          C  sc   t  ƒ  j ƒ  }  t j |  ƒ } | s7 t d |  ƒ ‚ n  t g  d D] } | | j | ƒ f ^ qA ƒ S(   Nu(   Could not parse GDAL version string "%s"u   majoru   minoru   subminor(   u   majoru   minoru   subminor(   R   t   decodet   version_regext   matchR   t   dictt   group(   t   vert   mt   key(    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   gdal_version_infoS   s
     u   majoru   minoru   subminorc         C  s   t  j d | | f ƒ d  S(   Nu   GDAL_ERROR %d: %s(   t   loggert   error(   t   error_classt   error_numbert   message(    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   err_handlerb   s    c         C  s"   t  |  ƒ } | | _ | | _ | S(   N(   R   t   argtypest   restype(   R   t   argsR$   R   (    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   functionf   s    		u   CPLSetErrorHandler(4   t
   __future__R    t   loggingR
   t   ret   ctypesR   R   R   R   t   ctypes.utilR   t   django.contrib.gis.gdal.errorR   t   django.core.exceptionsR   t	   getLoggerR   t   django.confR   t   GDAL_LIBRARY_PATHt   lib_patht   AttributeErrort   EnvironmentErrort   ImportErrort   Nonet	   lib_namesR   t   lib_namet   joinR   R	   R   R   R   R#   R$   R   R   t   compileR   R   t   _verinfot   intt   GDAL_MAJOR_VERSIONt   GDAL_MINOR_VERSIONt   GDAL_SUBMINOR_VERSIONt   GDAL_VERSIONt   CPLErrorHandlerR"   R&   t   set_error_handler(    (    (    s8   ../Django//lib/python/django/contrib/gis/gdal/libgdal.pyt   <module>   sl   "
	 								