
    \i`                         S r SSKJr  SSKJrJr  SSKJr  \" SS9 " S S5      5       r " S	 S
\5      r	\ " S S5      5       r
g)zC
This module contains the structures related to areas of interest.
    )	dataclass)
NamedTupleUnion)is_nullT)frozenc                   H    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   S rSrg	)
AreaOfInterest   zh
.. versionadded:: 2.3.0

This is the area of interest for:

- Transformations
- Querying for CRS data.
west_lon_degreesouth_lat_degreeeast_lon_degreenorth_lat_degreec                     [        U R                  5      (       dN  [        U R                  5      (       d4  [        U R                  5      (       d  [        U R                  5      (       a  [        S5      eg Nz#NaN or None values are not allowed.)r   r   r   r   r   
ValueErrorselfs    M/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/pyproj/aoi.py__post_init__AreaOfInterest.__post_init__   sW    D(())t,,--t++,,t,,--BCC .     N)	__name__
__module____qualname____firstlineno____doc__float__annotations__r   __static_attributes__r   r   r   r	   r	      s'     Dr   r	   c                       \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   Sr\S-  \S'   \	S	\
\\\\4   4S
 j5       rS	\4S jrSrg)	AreaOfUse)   zV
.. versionadded:: 2.0.0

Area of Use for CRS, CoordinateOperation, or a Transformer.
westsoutheastnorthNnamereturnc                 ^    U R                   U R                  U R                  U R                  4$ )z|
The bounds of the area of use.

Returns
-------
tuple[float, float, float, float]
    west, south, east, and north bounds.
)r$   r%   r&   r'   r   s    r   boundsAreaOfUse.bounds;   s#     yy$**dii;;r   c                 :    SU R                    SU R                   3$ )Nz- name: z
- bounds: )r(   r+   r   s    r   __str__AreaOfUse.__str__G   s    $))L>>r   r   )r   r   r   r   r   r   r   r(   strpropertytupler+   r.   r    r   r   r   r"   r"   )   s^     KL
KLD#*	<eUE589 	< 	<? ?r   r"   c                       \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   S rS\S \	4   S	\
4S
 jrS\S \	4   S	\
4S jrSrg)BBoxK   zc
Bounding box to check if data intersects/contains other
bounding boxes.

.. versionadded:: 3.0.0

r$   r%   r&   r'   c                     [        U R                  5      (       dN  [        U R                  5      (       d4  [        U R                  5      (       d  [        U R                  5      (       a  [        S5      eg r   )r   r$   r%   r&   r'   r   r   s    r   r   BBox.__post_init__^   sO    DIItzz""tyy!!tzz""BCC #r   otherr)   c                     U R                   UR                  :  =(       aY    UR                   U R                  :  =(       a9    U R                  UR                  :  =(       a    UR                  U R                  :  $ )z
Parameters
----------
other: BBox
    The other BBox to use to check.

Returns
-------
bool:
    True if this BBox intersects the other bbox.
r$   r&   r%   r'   r   r8   s     r   
intersectsBBox.intersectsg   sZ     II

" )

TYY&)

U[[() djj(		
r   c                     UR                   U R                   :  =(       aY    UR                  U R                  :*  =(       a9    UR                  U R                  :  =(       a    UR                  U R                  :*  $ )z
Parameters
----------
other: Union["BBox", AreaOfUse]
    The other BBox to use to check.

Returns
-------
bool:
    True if this BBox contains the other bbox.
r:   r;   s     r   containsBBox.containsz   sZ     JJ$))# *

dii'*tzz)* tzz)		
r   r   N)r   r   r   r   r   r   r   r   r   r"   boolr<   r?   r    r   r   r   r4   r4   K   s]     KL
KLD
fi&7 8 
T 
&
eFI$56 
4 
r   r4   N)r   dataclassesr   typingr   r   pyproj.utilsr   r	   r"   r4   r   r   r   <module>rE      s\    " $   $D D D:?
 ?D ?
 ?
 ?
r   