
     h                         d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z
 dadadeez  ddfdZdeez  ddfd	Zdefd
Zy)z.
Module for managing the PROJ data directory.
    N)Path)_set_context_data_dirget_user_data_dir)DataDirErrorproj_data_dirreturnc                 2    t        |       adat                y)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    j/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/pyproj/datadir.pyset_data_dirr      s     -(O     c                 z    t        t        j                  j                  t	               t        |       g             y)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                  D   t         t         S t        t              j                         j                  dz  dz  dz  } t
        j                  j                  dt
        j                  j                  dd            }t        t        j                  dd      }t        t        j                  ddd      }d fd	} |t              rt        a n |       rt        |       a n ||      r|a n |      rt        |      a n |      rt        |      a nvt        j                  dt        j                  
      }|t        j                  d      }|8t        |      j                  j                  dz  dz  } |      rt        |      a t         t        d      t         S )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                 >    | t        | d      j                         ryy)Nzproj.dbTF)r   exists)potential_data_dirs    r   valid_data_dirz$get_data_dir.<locals>.valid_data_dirN   s"    *'3::<r   c                 h    | y| j                  t        j                        D ]  } |      s y y )NFT)splitr   r   )potential_data_dirsr   r"   s     r   valid_data_dirsz%get_data_dir.<locals>.valid_data_dirsV   s:    &066rzzB 	Mm,	 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   si   $ '##H~..077*DwNQWWJJNN;

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

Iw#O  '.	(	)"#34		',		'">2	4	5"#?@<<SZZ8||F+H"8n33::WDvMOo.'*?';$#2
 	
  r   )__doc__r   r/   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   