
    njD                        S SK rS SKJr  S SKJrJr  S SKJr  S SK	J
r
JrJrJrJrJr  \" S5      r\\\\   4   r\\\R&                  4   r\\
\4   r\\\4   r\\\\4      rS\\\4   S\4S	 jrS\4S
 jrS\S\4S jrS\S\4S jrS\S\4S jrS\4S jrS\\\4   S\4S jr S\\\\4      S\\   4S jr!    SS\S\S\\   4S jjr"g)    N)Enum)NumberReal)Path)ListOptionalSequenceTupleTypeVarUnionTenum_or_strreturnc                 Z    [        U [        5      (       a  U R                  $ [        U 5      $ N)
isinstancer   namestr)r   s    V/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/osgeo_utils/auxiliary/base.pyenum_to_strr   /   s$    )+t<<;R#kBRR    c                 6    [        U [        R                  5      $ r   )r   PathLikeOrStr__args__ss    r   is_path_liker   3   s    a//00r   filenamec                 ,    [        U 5      R                  $ r   )r   suffix)r   s    r   
get_suffixr!   7   s    >   r   c                     [         R                  " U 5      R                  5       nUR                  S5      (       a  gUR                  S5      (       a  g[	        U 5      nUR                  S5      (       a  USS nU$ )zS
returns the suffix without the leading dot.
special case for shp.zip and gpkg.zip
z.shp.zipzshp.zipz	.gpkg.zipzgpkg.zip.   N)osfspathlowerendswithr!   
startswith)r   lower_filenameexts      r   get_extensionr,   ;   sl    
 YYx(..0Nz**{++
X
C
~~c!"gJr   numberic                 $    U SUS-  -  -  US-  -	  $ )z%returns the i-th byte from an integer       )r-   r.   s     r   get_byter3   K   s    dq1uo&AE22r   c                  J    [         R                  R                  " S U  5       6 $ )Nc              3   8   #    U  H  n[        U5      v   M     g 7fr   )r   ).0args     r   	<genexpr>path_join.<locals>.<genexpr>Q   s     3ds#c((ds   )r%   pathjoin)argss    r   	path_joinr=   P   s    77<<3d344r   r   c                 ~    [        U [        5      (       a  U $  [        U 5      $ ! [         a    [	        U 5      s $ f = fr   )r   r   int
ValueErrorfloatr   s    r   numrB   T   s:    !V	q6M 	8O	s   
$ <<c                 :     [        U 5      $ ! [         a     g f = fr   )rB   	Exceptionr   s    r   num_or_nonerE   ^   s"    1v s   
 
baccept_nonec                     [        U [        5      (       a  U $ U (       d  U(       a  g[        U [        5      (       a#  U(       a  U R                  5       n X;   a  gX;   a  g[	        U  S35      e)z
Returns a boolean value that is represented by a string or a bool
correlated to the c++ implementation:
https://github.com/OSGeo/gdal/blob/362541e961cf8cab046dfbae1bde8ce559b4cb40/gdal/gcore/gdaldriver.cpp#L1973
NFTz. is not accepted as a valid boolean-like value)r   boolr   upperrD   )rF   rG   case_insensitive	false_strtrue_strs        r   is_truerN   e   s\     !T!S	A>=
qcGH
IIr   )FT)NOFALSEOFF)YESTRUEON)#os.pathr%   enumr   numbersr   r   pathlibr   typingr   r   r	   r
   r   r   r   MaybeSequencer   PathLiker   SequenceNotStringReal2DrI   OptionalBoolStrr   r   r!   r,   r?   r3   r=   rB   rE   rN   r2   r   r   <module>r_      s_  B      B BCLa!n%c2;;&'$+& 	tTz	5d+,SU49- S# S1t 1! !3 !M c  3S 3S 3
5 55 & 8E&#+./ HV4D  $"JJJ d^Jr   