
    *i                        S SK Jr  S SKrS SKJrJrJrJrJrJ	r	  S SK
Jr  SS jrSS jrSS jrSS jr\	" S	\\   S
9rSS jrg)    )annotationsN)ListLiteralUnionAnyTypeTypeVar)	BaseModelc                   [        U SS 5      [        L aD  [        U S5      (       a  [        U R                  5      S:  d   e[        U R                  S   5      $ [        U SS 5      [        L ao  [        U S5      (       a  [        U R                  5      S:  d   eU R                   Vs/ s H  o[        S 5      Ld  M  UPM     nnU(       a  [        US   5      $  U $ [        U SS 5      [        L d  [        U SS 5      [        L aD  [        U S5      (       a  [        U R                  5      S:  d   e[        U R                  S   5      $ U $ s  snf )N
__origin____args__   r   )
getattrr   hasattrlenr   typer   _get_base_typelistr   )
annotationargnon_optional_argss      R/var/www/html/ai-backend/venv/lib/python3.13/site-packages/llama_cpp/server/cli.pyr   r   
   s=   z<.'9z:..3z7J7J3Kq3PPPJ''*++	\4	0E	9z:..3z7J7J3Kq3PPP%...
.CT$Z2GC. 	 .
 !"3A"677   	
L$/47:|T2d:z:..3z7J7J3Kq3PPPj11!455.
s   'E
<E
c                    [        U SS 5      nU[        L d	  U[        L a  gU[        [        4;   a  [        S U R                   5       5      $ g)Nr   Tc              3  8   #    U  H  n[        U5      v   M     g 7f)N)_contains_list_type).0r   s     r   	<genexpr>&_contains_list_type.<locals>.<genexpr>$   s     K7J&s++7Js   F)r   r   r   r   r   anyr   )r   origins     r   r   r      sG    Zt4F~4	GU#	#Kz7J7JKKK    c                    [        U [        5      (       a  U R                  S5      n 1 Skn1 Skn[        U 5      R	                  5       R                  5       nX1;   a  gX2;   a  g[        SU  35      e)Nzutf-8>   1tyonyestrue>   0fnnoofffalseTFzInvalid boolean argument: )
isinstancebytesdecodestrlowerstrip
ValueError)r   true_valuesfalse_valuesarg_strs       r   _parse_bool_argr9   )   se    #ujj!6K8L#hnn$$&G		 5cU;<<r!   c           	        UR                   R                  5        H  u  p#UR                  nUR                  (       a/  U(       a(  UR	                  5       (       d  USUR                   S3-  nUR
                  b  [        UR
                  5      O[        n[        UR
                  5      nU[        La  U R                  SU 3UU(       a  SOSUUS9  U[        L d  M  U R                  SU 3U[        U S9  M     g)z:Add arguments from a pydantic model to an argparse parser.z (default: )Nz--*)destnargsr   help)r=   r   r?   )model_fieldsitemsdescriptiondefaultis_requiredr   r   r2   r   booladd_argumentr9   )parsermodelnamefieldrB   	base_type	list_types          r   add_args_from_modelrM   :   s     ))//1''==[1B1B1D1D[q99K050@0@0LN5++,RU 	 ((8(89	D TF&cD     TF$#}	   # 2r!   T)boundc           
         U " S0 [        U5      R                  5        VVs0 s H  u  p#Uc  M
  X R                  ;   d  M  X#_M     snnD6$ s  snnf )z2Parse a pydantic model from an argparse namespace. )varsrA   r@   )rH   argskvs       r   parse_model_from_argsrV   Y   s]      T
((*
* !"&8&8!8 AD*
 
s   	AAA)r   	Type[Any]returnrW   )r   zType[Any] | NonerX   rE   )r   zstr | bytes | boolrX   rE   )rG   zargparse.ArgumentParserrH   zType[BaseModel])rH   rN   rS   zargparse.NamespacerX   rN   )
__future__r   argparsetypingr   r   r   r   r   r	   pydanticr
   r   r   r9   rM   rN   rV   rQ   r!   r   <module>r]      s?    "  ; ; (="8 CtI'r!   