
    Ki              	          U d Z ddlZddl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
mZ ddlmZ ddlmZmZ  ej"                  d      Ze
ed	<   	 d(d
ededee   ddfdZdedefdZdedefdZde	defdZde	defdZdee   fdZ e e             Ze
ed<   dee   fdZ e e             Z e
ed<    ej"                  djC                   ejD                  djG                  e                  ejH                        Z%e
ed<    ej"                  d      Z&e
ed<   d
eddfdZ'd)d
ededefd Z(d)d
ededefd!Z)dee   defd"Z*d#ee	   defd$Z+d
ed%ed&e,defd'Z-y)*zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    N)PurePath)AnyFinalOptional   )Platform)PathTypePlatformTypez^[\s]+$_re_whitespacestextallow_whitespaces	error_msgreturnc                     ddl m}m} t        |       st	        | t
              ry |rt        j                  t        |             ry t        |       r ||j                        t        dt        |              )Nr   )ErrorReasonValidationError)reasonztext must be a string: actual=)errorr   r   _is_not_null_string
isinstancer   r   searchstris_null_string	NULL_NAME	TypeErrortype)r   r   r   r   r   s        `/home/jay/workspace/scripts/.codegraph-venv/lib/python3.12/site-packages/pathvalidate/_common.pyvalidate_pathtyper      sb     44 JtX$>_33CI>d[%:%:;;
4T$ZLA
BB    namec                 <    t        | t              rt        |       S | S )N)r   r   r   )r    s    r   to_strr"   %   s    $!4yKr   valuec                    t         j                  d d }|dk  r| j                  d      ry|dk\  rt        j                  |       S t        j
                  |       \  }}t        j                  |       xr t        |      dkD  S )N   )   
   z\\T)r&      r   )sysversion_info
startswithntpathisabs
splitdrivelen)r#   ver_infodrive_tails       r   is_nt_abspathr3   ,   st    #H7F#	W	||E""$$U+LE5<<13u:>1r   c                 `    | y	 t        | j                               dk(  S # t        $ r Y yw xY w)NTr   Fr/   stripAttributeErrorr#   s    r   r   r   9   s7    }5;;=!Q&& s   ! 	--c                 Z    	 t        | j                               dkD  S # t        $ r Y yw xY w)Nr   Fr5   r8   s    r   r   r   C   s/    5;;=!A%% s    	**c                      t        d      D  cg c])  } t        |       t        j                  vst        |       + c} S c c} w N   )rangechrstring	printable)cs    r   _get_unprintable_ascii_charsrB   J   s/    !#JIq#a&8H8H*HCFIIIs    ??unprintable_ascii_charsc                      g } t        d      D ]J  }t        |      }|t        v s#|t        j                  t        j
                  z   v r:| j                  |       L | S r;   )r=   r>   rC   r?   digitsascii_lettersappend)symbol_listirA   s      r   _get_ascii_symbolsrJ   Q   s[    K3Z F''1@T@T0T+T1 r   ascii_symbolsz[{}] __RE_UNPRINTABLE_CHARSzG(?:\x1B[@-Z\\-_]|[\x80-\x9A\x9C-\x9F]|(?:\x1B\[|\x9B)[0-?]*[ -/]*[@-~])__RE_ANSI_ESCAPEc                 f    ddl m} t        j                  t	        |             }|r |d|       y )Nr   )InvalidCharErrorzunprintable character found: )r   rP   rM   findallr"   )r   rP   
match_lists      r   validate_unprintable_charrS   i   s4    ''//t=J!>zlKLL r   replacement_textc                 l    	 t         j                  ||       S # t        t        f$ r t        d      w xY wNztext must be a string)rM   subr   r7   r   rT   s     r   replace_unprintable_charrY   q   s;    1%))*:DAA~& 1/001    3c                 l    	 t         j                  ||       S # t        t        f$ r t        d      w xY wrV   )rN   rW   r   r7   rX   s     r   replace_ansi_escaper\   x   s;    1##$4d;;~& 1/001rZ   c                    t        | t              r| S | st        j                  S | j                         j	                         }|dk(  rt        j
                  S |dk(  r"t        j                         j	                         }|dv rt        j                  S |r!|j                  d      rt        j                  S |dv rt        j                  S t        j                  S )Nposixauto)linuxwin)macmacosdarwin)r   r   	UNIVERSALr6   casefoldPOSIXplatformsystemLINUXr+   WINDOWSMACOS)r    platform_strs     r   normalize_platformrn      s    $!!!!::<((*Lw~~v(113y ~~//611~~r   matchc                 ^    | D ch c]  }t        |       }}dj                  |      S c c}w )Nz, )reprjoin)ro   r   	uniq_lists      r   findall_to_strrt      s-    (-.d.I.99Y /s   *encoding	max_bytesc                 R    | j                  |      }|d | }|j                  |d      S )Nignore)encodedecode)r   ru   rv   	str_bytess       r   truncate_strr|      s/    H%I*9%IHh//r   )FN)rL   ).__doc__r,   rh   rer?   r)   pathlibr   typingr   r   r   _constr   _typesr	   r
   compiler   __annotations__boolr   r   r"   r3   r   r   listrB   tuplerC   rJ   rK   formatescaperr   UNICODErM   rN   rS   rY   r\   rn   rt   intr|    r   r   <module>r      s     	  
  ' '  * $J/ / QUC
C'+C@HC	C" c 
2 
2 
2# $ s t Jd3i J "''C'E!F  FDI  /12u 2 *


MM)"))BGG$;<=>

!   %"**N % 
MC MD M13 1# 1s 11c 1S 1# 1Xl3  6 $s)    
0s 0c 0c 0c 0r   