o
    i                  	   @   s  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dZe
ed	< 	d6dededee ddfddZdedefddZdedefddZde	defddZde	defddZdee fddZee Ze
ed< dee fddZee Z e
ed < ed!!e"d"#eej$Z%e
ed#< ed$Z&e
ed%< deddfd&d'Z'd7ded(edefd)d*Z(d7ded(edefd+d,Z)dee defd-d.Z*d/ee	 defd0d1Z+ded2ed3e,defd4d5Z-dS )8zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    N)PurePath)AnyFinalOptional   )Platform)PathTypePlatformTypez^[\s]+$_re_whitespacesFtextallow_whitespaces	error_msgreturnc                 C   sb   ddl m}m} t| st| trd S |rtt| rd S t	| r(||j
d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    r   Z/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pathvalidate/_common.pyvalidate_pathtype   s   r   namec                 C   s   t | tr	t| S | S )N)r   r   r   )r   r   r   r   to_str%   s   
r   valuec                 C   s\   t jd d }|dkr| drdS n	|dkrt| S t| \}}t| o-t|dkS )N   )   
   z\\T)r"      r   )sysversion_info
startswithntpathisabs
splitdrivelen)r    ver_infodrive_tailr   r   r   is_nt_abspath,   s   

r/   c                 C   s4   | d u rdS z	t |  dkW S  ty   Y dS w )NTr   Fr+   stripAttributeErrorr    r   r   r   r   9   s   r   c                 C   s(   z	t |  dkW S  ty   Y dS w )Nr   Fr0   r3   r   r   r   r   C   s
   r   c                   C   s   dd t dD S )Nc                 S   s"   g | ]}t |tjvrt |qS r   )chrstring	printable).0cr   r   r   
<listcomp>K   s   " z0_get_unprintable_ascii_chars.<locals>.<listcomp>   )ranger   r   r   r   _get_unprintable_ascii_charsJ   s   r<   unprintable_ascii_charsc                  C   sB   g } t dD ]}t|}|tv s|tjtj v rq| | q| S )Nr:   )r;   r4   r=   r5   digitsascii_lettersappend)symbol_listir8   r   r   r   _get_ascii_symbolsQ   s   rC   ascii_symbolsz[{}] __RE_UNPRINTABLE_CHARSzG(?:\x1B[@-Z\\-_]|[\x80-\x9A\x9C-\x9F]|(?:\x1B\[|\x9B)[0-?]*[ -/]*[@-~])__RE_ANSI_ESCAPEc                 C   s0   ddl m} tt| }|r|d| d S )Nr   )InvalidCharErrorzunprintable character found: )r   rH   rF   findallr   )r   rH   
match_listr   r   r   validate_unprintable_chari   s
   rK   replacement_textc              	   C   *   zt || W S  ttfy   tdw Nztext must be a string)rF   subr   r2   r   rL   r   r   r   replace_unprintable_charq   
   rQ   c              	   C   rM   rN   )rG   rO   r   r2   rP   r   r   r   replace_ansi_escapex   rR   rS   c                 C   s|   t | tr| S | stjS |   }|dkrtjS |dkr#t  }|dv r*tjS |r4|	dr4tj
S |dv r;tjS tjS )Nposixauto)linuxwin)macmacosdarwin)r   r   	UNIVERSALr1   casefoldPOSIXplatformsystemLINUXr'   WINDOWSMACOS)r   platform_strr   r   r   normalize_platform   s    
rd   matchc                 C   s   dd | D }d |S )Nc                 S   s   h | ]}t |qS r   )repr)r7   r   r   r   r   	<setcomp>   s    z!findall_to_str.<locals>.<setcomp>z, )join)re   	uniq_listr   r   r   findall_to_str   s   
rj   encoding	max_bytesc                 C   s"   |  |}|d | }||dS )Nignore)encodedecode)r   rk   rl   	str_bytesr   r   r   truncate_str   s   
rq   )FN)rE   ).__doc__r(   r^   rer5   r%   pathlibr   typingr   r   r   _constr   _typesr   r	   compiler
   __annotations__boolr   r   r   r/   r   r   listr<   tupler=   rC   rD   formatescaperh   UNICODErF   rG   rK   rQ   rS   rd   rj   intrq   r   r   r   r   <module>   sR    

