
    \i                         S r SSKrSSKrSSKrSSKJr  SSKJrJr  SSK	J
r
  SqSqS\\-  SS4S jrS\\-  SS4S	 jrS\4S
 jrg)z.
Module for managing the PROJ data directory.
    N)Path)_set_context_data_dirget_user_data_dir)DataDirErrorproj_data_dirreturnc                 2    [        U 5      qSq[        5         g)z
Set the data directory for PROJ to use.

Parameters
----------
proj_data_dir: str | Path
    The path to the PROJ data directory.
N)str_USER_PROJ_DATA_VALIDATED_PROJ_DATAr   r   s    Q/var/www/html/kml_chatgpt/mouzaenv/lib/python3.13/site-packages/pyproj/datadir.pyset_data_dirr      s     -(O     c                 z    [        [        R                  R                  [	        5       [        U 5      /5      5        g)z
Add an additional data directory for PROJ to use.

Parameters
----------
proj_data_dir: str | Path
    The path to the PROJ data directory.
N)r   ospathsepjoinget_data_dirr
   r   s    r   append_data_dirr   )   s%     ,.#m2D!EFGr   c                    ^ [         b  [         $ [        [        5      R                  5       R                  S-  S-  S-  n [
        R                  R                  S[
        R                  R                  SS5      5      n[        [        R                  SS5      n[        [        R                  SSS5      nS mU4S	 jnU" [        5      (       a  [        q OT" U 5      (       a  [        U 5      q OU" U5      (       a  Uq OT" U5      (       a  [        U5      q OT" U5      (       a  [        U5      q O|[        R                  " S[        R                  S
9nUc  [        R                  " S5      nUb=  [        U5      R                  R                  S-  S-  nT" U5      (       a  [        U5      q [         c  [        S5      e[         $ )a  
The order of preference for the data directory is:

1. The one set by pyproj.datadir.set_data_dir (if exists & valid)
2. The internal proj directory (if exists & valid)
3. The directory in PROJ_DATA (PROJ 9.1+) | PROJ_LIB (PROJ<9.1) (if exists & valid)
4. The directory on sys.prefix (if exists & valid)
5. The directory on the PATH (if exists & valid)

Returns
-------
str:
    The valid data directory.

proj_dirshareproj	PROJ_DATAPROJ_LIB Libraryc                 J    U b   [        U S5      R                  5       (       a  gg)Nzproj.dbTF)r   exists)potential_data_dirs    r   valid_data_dir$get_data_dir.<locals>.valid_data_dirN   s%    *'3::<<r   c                 x   > U c  gU R                  [        R                  5       H  nT" U5      (       d  M    g   g )NFT)splitr   r   )potential_data_dirsr   r"   s     r   valid_data_dirs%get_data_dir.<locals>.valid_data_dirsV   s9    &066rzzBMm,, C r   )pathzValid PROJ data directory not found. Either set the path using the environmental variable PROJ_DATA (PROJ 9.1+) | PROJ_LIB (PROJ<9.1) or with `pyproj.datadir.set_data_dir`.)r   r   __file__absoluteparentr   environgetsysprefixr   r
   shutilwhichr   )internal_datadirproj_lib_dirsprefix_datadirconda_windows_prefix_datadirr'   proj_exesystem_proj_dirr"   s          @r   r   r   5   s{   $ '##H~..077*DwNQWWJJNN;

z20NOM#**gv6N#'

Iw#O  ''.	(	)	)"#34		'	',		'	'">2	4	5	5"#?@<<SZZ8||F+H"8n33::WDvMOo..'*?';$#2
 	
  r   )__doc__r   r1   r/   pathlibr   pyproj._contextr   r   pyproj.exceptionsr   r   r   r
   r   r   r    r   r   <module>r>      sl   
 
  
  + d
 t (	H3: 	H$ 	HC c C r   