
    ,h                    Z   S r SSKJr  SSKrSSKJr  SSKJr  SSKJr  SSK	J
r
  SSKrSSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  \" S\\R                  \R                  \R                  4   S9r      SS jr      SS jrSS jrSS jrSS jrSS jrSS jrSS jrg) zdefines generic type conversion functions, as used in bind and result
processors.

They all share one common characteristic: None is passed through unchanged.

    )annotationsN)date)datetime)time)Decimal)Any)Callable)Optional)Type)TypeVar)Union_DT)boundc                b   ^^^ U R                   m[        U R                  5      mSUUU4S jjnU$ )Nc                  > U c  g  T" U 5      nUc  [        STR                  < SU < S35      eT(       az  UR                  S5      nT" S0 [	        [        [        [        UR                  5       5      [        [        [        [        UR                  5       5      5      5      5      5      5      D6$ T" [        [        [        UR                  S5      5      5      6 $ ! [          a$  n[        STR                  < SU < S35      UeS nAff = f)NzCouldn't parse z	 string 'z' - value is not a string.z
 string: ''r    )	TypeError
ValueError__name__	groupdictdictlistzipiterkeysmapintvaluesgroups)valuemerrr    has_named_groupsrmatchtype_s       X/var/www/auris/envauris/lib/python3.13/site-packages/sqlalchemy/engine/_py_processors.pyprocess2str_to_datetime_processor_factory.<locals>.process-   s    =5M y #nne5   Q 	 $V[[] 3 $Sd6==?.C%D E	 	 d3sAHHQK#89::1   27..%I s   C 
D
&DD
)r!   Optional[str]returnzOptional[_DT])matchbool
groupindex)regexpr&   r(   r$   r%   s    ` @@r'   !str_to_datetime_processor_factoryr0   %   s3     \\F F--.; ;@ N    c                &   ^ ^ SU-  mSUU 4S jjnU$ )Nz%%.%dfc                "   > U c  g T" TU -  5      $ Nr   )r!   fstringtarget_classs    r'   r(   -to_decimal_processor_factory.<locals>.processU   s    =%00r1   )r!   Optional[float]r+   zOptional[Decimal]r   )r6   scaler(   r5   s   `  @r'   to_decimal_processor_factoryr:   P   s      G1 1 Nr1   c                     U c  g [        U 5      $ r4   )floatr!   s    r'   to_floatr>   ^   s    }U|r1   c                     U c  g [        U 5      $ r4   )strr=   s    r'   to_strrA   e   s    }5zr1   c                     U c  g [        U 5      $ r4   )r-   r=   s    r'   int_to_booleanrC   l   s    }E{r1   c                @    U b  [         R                  " U 5      nU$ S nU$ r4   )datetime_clsfromisoformatr!   dt_values     r'   str_to_datetimerI   s   s+    --e4 O Or1   c                @    U b  [         R                  " U 5      nU$ S nU$ r4   )time_clsrF   rG   s     r'   str_to_timerL   {   +    ))%0 O Or1   c                @    U b  [         R                  " U 5      nU$ S nU$ r4   )date_clsrF   rG   s     r'   str_to_daterP      rM   r1   )r/   ztyping.Pattern[str]r&   zCallable[..., _DT]r+   z(Callable[[Optional[str]], Optional[_DT]])r6   zType[Decimal]r9   r   r+   z.Callable[[Optional[float]], Optional[Decimal]])r!   zOptional[Union[int, float]]r+   r8   )r!   zOptional[Any]r+   r*   )r!   zOptional[int]r+   zOptional[bool])r!   r*   r+   zOptional[datetime.datetime])r!   r*   r+   zOptional[datetime.time])r!   r*   r+   zOptional[datetime.date])__doc__
__future__r   r   r   rO   rE   r   rK   decimalr   typingr   r	   r
   r   r   r   r   r0   r:   r>   rA   rC   rI   rL   rP   r   r1   r'   <module>rU      s    #  % - %         	x(((--FG
(((:(-(V(+3r1   