
    h|                        S r SSKrSSKrSSKJrJrJrJrJr  SSK	J
r
  SSKJr  SSKJrJr  SSKJr  \R$                  " S5      rS	 r\" S\\5      rS
 r\" \5      r\" S\\5      rS r\" \5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\" \5      r\" \5      r\" \5      r\" \5      r \" \5      r! " S S5      r"S r#S r$g)z
This module houses the ctypes initialization procedures, as well
as the notice and error handler function callbacks (get called
when an error occurs in GEOS).

This module also houses GEOS Pointer utilities, including
get_pointer_arr(), and GEOM_PTR.
    N)CDLL	CFUNCTYPEPOINTER	Structurec_char_p)find_library)ImproperlyConfigured)SimpleLazyObjectcached_property)get_version_tuplezdjango.contrib.gisc                  8    SSK Jn   U R                  nU(       a  S nON[        R                  S:X  a  SS/nO5[        R                  S:X  a  SS/nO[	        S[        R                  -  5      eU(       a  U H  n[        U5      nUc  M    O   Uc  [	        S	S
R                  U5      -  5      e[        U5      n[        UR                  l        [        /UR                  l        ["        UR$                  l        U$ ! [        [        [
        [        4 a    S n GNf = f)Nr   )settingsntgeos_czlibgeos_c-1posixGEOSzUnsupported OS "%s"z]Could not find the GEOS library (tried "%s"). Try setting GEOS_LIBRARY_PATH in your settings.z", ")django.confr   GEOS_LIBRARY_PATHAttributeErrorImportErrorr	   OSErrorosnamer   joinr   CONTEXT_PTR
initGEOS_rrestypefinishGEOS_rargtypesr   GEOSversion)r   lib_path	lib_nameslib_name_lgeoss        Q/var/www/html/env/lib/python3.13/site-packages/django/contrib/gis/geos/libgeos.py	load_geosr&      s   (--
 		D}-		G	v&	/"''9::
 !H#H-H# " >@FI@VW
 	
 (^F
 !,F$/=F !)FMW K)=wG s   C9 9DDc                     U R                  5       UR                  5       p X-  n[        R                  SU5        g ! [         a    U n N%f = f)NzGEOS_NOTICE: %s
)decode	TypeErrorloggerwarning)fmtlstwarn_msgs      r%   notice_hr/   P   sH    zz|SZZ\9 NN&1     < A
Ac                     U R                  5       UR                  5       p X-  n[        R                  SU5        g ! [         a    U n N%f = f)NzGEOS_ERROR: %s
)r(   r)   r*   error)r,   r-   err_msgs      r%   error_hr4   ^   sH    zz|SZZ\) LL#W-  r0   c                       \ rS rSrSrg)
GEOSGeom_tm    N__name__
__module____qualname____firstlineno____static_attributes__r8       r%   r6   r6   m       r?   r6   c                       \ rS rSrSrg)GEOSPrepGeom_tq   r8   Nr9   r8   r?   r%   rB   rB   q   r@   r?   rB   c                       \ rS rSrSrg)GEOSCoordSeq_tu   r8   Nr9   r8   r?   r%   rE   rE   u   r@   r?   rE   c                       \ rS rSrSrg)GEOSContextHandle_ty   r8   Nr9   r8   r?   r%   rH   rH   y   r@   r?   rH   c                   L    \ rS rSrSrSrSrSrSSSS.S jrS r	\
S 5       rSrg)	GEOSFuncFactory   z!
Lazy loading of GEOS functions.
N)r   errcheckr   c                H    Xl         Ub  X l        Ub  X0l        Ub  X@l        g g N)	func_namer   rM   r   )selfrP   r   rM   r   s        r%   __init__GEOSFuncFactory.__init__   s-    ""L$M$M  r?   c                      U R                   " U6 $ rO   )func)rQ   argss     r%   __call__GEOSFuncFactory.__call__   s    yy$r?   c                     SSK Jn  U" U R                  5      nU R                  =(       d    / Ul        U R                  Ul        U R
                  (       a  U R
                  Ul        U$ )Nr   )GEOSFunc)-django.contrib.gis.geos.prototypes.threadsaferZ   rP   r   r   rM   )rQ   rZ   rU   s      r%   rU   GEOSFuncFactory.func   sE    J'+||== MMDMr?   )r   rM   rP   r   )r:   r;   r<   r=   __doc__r   r   rM   rR   rW   r   rU   r>   r8   r?   r%   rK   rK      s=     HGH-1D4 %   r?   rK   c                  *    [         R                  5       $ )z.Return the string version of the GEOS library.)lgeosr    r8   r?   r%   geos_versionr`      s    r?   c                  D    [        [        5       R                  5       5      $ )z<Return the GEOS version as a tuple (major, minor, subminor).)r   r`   r(   r8   r?   r%   geos_version_tuplerb      s    \^22455r?   )%r]   loggingr   ctypesr   r   r   r   r   ctypes.utilr   django.core.exceptionsr	   django.utils.functionalr
   r   django.utils.versionr   	getLoggerr*   r&   
NOTICEFUNCr/   	ERRORFUNCr4   r6   rB   rE   rH   GEOM_PTRPREPGEOM_PTRCS_PTRr   r_   rK   r`   rb   r8   r?   r%   <module>ro      s     	 @ @ $ 7 E 2			/	01n tXx0
2 hdHh/	. G
	 		Y 		Y 		) 	
 :~&		 )* 	# B
6r?   