o
    ɝi 	                     @  s   U d dl mZ d dlZd dlZd dlmZmZmZmZ edZ	G dd dee	 Z
G dd de
e ZG d	d
 d
e
e ZG dd de
e ZG dd de
e ZG dd de
ej Ze e e e e dZded< dddZdS )    )annotationsN)AnyClassVarGenericTypeVarTc                   @  s.   e Zd ZU dZded< ddd	Zdd
dZdS )	Convertor zClassVar[str]regexvaluestrreturnr   c                 C     t  NNotImplementedErrorselfr    r   P/var/www/html/ocr-read/venv/lib/python3.10/site-packages/starlette/convertors.pyconvert      zConvertor.convertc                 C  r   r   r   r   r   r   r   	to_string   r   zConvertor.to_stringN)r   r   r   r   )r   r   r   r   )__name__
__module____qualname__r
   __annotations__r   r   r   r   r   r   r   
   s   
 
r   c                   @  $   e Zd ZdZd
ddZd
ddZd	S )StringConvertorz[^/]+r   r   r   c                 C  s   |S r   r   r   r   r   r   r      s   zStringConvertor.convertc                 C  s(   t |}d|vsJ d|sJ d|S )N/zMay not contain path separatorszMust not be emptyr   r   r   r   r   r      s   zStringConvertor.to_stringNr   r   r   r   r   r   r   r
   r   r   r   r   r   r   r          
r   c                   @  r   )PathConvertorz.*r   r   r   c                 C     t |S r   r    r   r   r   r   r   $      zPathConvertor.convertc                 C  r%   r   r    r   r   r   r   r   '   r&   zPathConvertor.to_stringNr!   r"   r   r   r   r   r$   !   r#   r$   c                   @  $   e Zd ZdZdddZddd	Zd
S )IntegerConvertorz[0-9]+r   r   r   intc                 C  r%   r   )r)   r   r   r   r   r   .   r&   zIntegerConvertor.convertc                 C  s    t |}|dksJ dt|S )Nr   z#Negative integers are not supported)r)   r   r   r   r   r   r   1   s   zIntegerConvertor.to_stringN)r   r   r   r)   )r   r)   r   r   r"   r   r   r   r   r(   +   r#   r(   c                   @  r'   )FloatConvertorz[0-9]+(\.[0-9]+)?r   r   r   floatc                 C  r%   r   )r+   r   r   r   r   r   :   r&   zFloatConvertor.convertc                 C  sP   t |}|dksJ dt|rJ dt|rJ dd| ddS )Ng        z!Negative floats are not supportedzNaN values are not supportedz!Infinite values are not supportedz%0.20f0.)r+   mathisnanisinfrstripr   r   r   r   r   =   s
   zFloatConvertor.to_stringN)r   r   r   r+   )r   r+   r   r   r"   r   r   r   r   r*   7   r#   r*   c                   @  r'   )UUIDConvertorzO[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}r   r   r   	uuid.UUIDc                 C  s
   t |S r   )uuidUUIDr   r   r   r   r   H   s   
zUUIDConvertor.convertc                 C  r%   r   r    r   r   r   r   r   K   r&   zUUIDConvertor.to_stringN)r   r   r   r3   )r   r3   r   r   r"   r   r   r   r   r2   E   r#   r2   )r   pathr)   r+   r4   zdict[str, Convertor[Any]]CONVERTOR_TYPESkeyr   	convertorConvertor[Any]r   Nonec                 C  s   |t | < d S r   )r7   )r8   r9   r   r   r   register_url_convertorX   s   r<   )r8   r   r9   r:   r   r;   )
__future__r   r.   r4   typingr   r   r   r   r   r   r   r   r$   r)   r(   r+   r*   r5   r2   r7   r   r<   r   r   r   r   <module>   s$    

	