
    (h                       S r SSKJr  SSKrSSKrSSKrSSK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KJr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JrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'  SSK(r(SSK)J*r*J+r+J,r,J-r-J.r.  SSK/J0r0  SSK1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK(J9r9J:r:  SSK;J<r<  SSK=J>r>  SSK?J@r@  SSKAJBrBJCrC  SSKJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrK  SSKAJLrLJMrMJNrNJOrOJPrPJQrQJRrR  SSKSJTrT  \(       a  SSKUJVrV   " S S\5      rW " S  S!\,5      rX " S" S#\,5      rY\$" S$5      rZ\\%\ZS4   \J4   r[\\Z\I4   r\\$" S%\]S&9r^\\^\H4   r_\\^\G4   r`\
ra\\Z\a4   rb\\c\d   \-" / S'9\K\E4   re " S( S)\T\!\Z   5      rfg)*z'Command-line interface settings source.    )annotationsN)SUPPRESSArgumentParserBooleanOptionalAction	NamespaceRawDescriptionHelpFormatter_SubParsersAction)defaultdict)MappingSequence)Enum)cached_property)dedent)SimpleNamespace)TYPE_CHECKING	AnnotatedAnyCallableGenericNoReturnOptionalTypeVarUnioncastoverload)AliasChoices	AliasPath	BaseModelFieldPrivateAttr)Representation)is_model_class)is_pydantic_dataclass)	FieldInfo)PydanticUndefined)get_args
get_origin)typing_objects)is_union_origin   SettingsError)_lenient_issubclass_WithArgsTypes   )ForceDecodeNoDecodePydanticModel_CliExplicitFlag_CliImplicitFlag_CliPositionalArg_CliSubCommand_CliUnknownArgs)_annotation_contains_types_annotation_enum_val_to_name_get_alias_names_get_model_fields_is_function_strip_annotatedparse_env_vars   )EnvSettingsSource)BaseSettingsc                  @   ^  \ rS rSrSSU 4S jjjrSU 4S jjrSrU =r$ )_CliInternalArgParserL   c                2   > [         TU ]  " S0 UD6  Xl        g )N )super__init___cli_exit_on_error)selfcli_exit_on_errorkwargs	__class__s      W/root/34ku/venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/cli.pyrH   _CliInternalArgParser.__init__M   s    "6""3    c                b   > U R                   (       d  [        SU 35      e[        TU ]  U5        g )Nzerror parsing CLI: )rI   r,   rG   error)rJ   messagerM   s     rN   rR   _CliInternalArgParser.errorQ   s+    &&"5gY ?@@grP   )rI   )T)rK   boolrL   r   returnNone)rS   strrV   r   )__name__
__module____qualname____firstlineno__rH   rR   __static_attributes____classcell__rM   s   @rN   rC   rC   L   s    4 4 rP   rC   c                      \ rS rSrSrg)CliMutuallyExclusiveGroupW   rF   N)rY   rZ   r[   r\   r]   rF   rP   rN   ra   ra   W   s    rP   ra   c                    ^  \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   S\S'   / rS\S'   0 rS\S'   \" S5      rS\S'   \" 0 5      r	S\S'   \" S5      r
S\S'   \" 5       rS\S'           S,U 4S jjr\S-S j5       rS.S jr\S/S j5       r\S0S  j5       r\S1S! j5       r\S1S" j5       r\S2S# j5       r\S3S$ j5       r\S4S% j5       r\S1S& j5       r\S5S' j5       r\S5S( j5       r\S5S) j5       r\S5S* j5       rS+rU =r$ )6_CliArg[   r   modelrX   
field_name
arg_prefixrU   case_sensitivehide_none_type
kebab_caseOptional[bool]enable_decodingintenv_prefix_len	list[str]argsdict[str, Any]rL   rF   tuple[str, ...]_alias_namesdict[str, Optional[int]]_alias_pathsF_is_alias_path_onlyr$   _field_infoc                6  > [         T
U ]  " S0 UD6  Xl        [        U R                  U R
                  U R                  U R                  S9u  U l        U l	        U R                  R                  5        VVs0 s H  u  pEU R                   U 3U_M     nnnU R                  (       af  U R                   HU  nU R                  U5      nU R                  / 0 S.S9X R                     U'   X R                     U   X R
                     U'   MW     OAU R                   U;  a1  XU R                      S '   X R                      S    X R
                     S '   UR                  5        H2  u  pU R                  / 0 S.S9X)   U'   X)   U   X R
                     U'   M4     g s  snnf )N)alias_path_argsri   )rq   rL   )updaterF   )rG   rH   rx   r:   rg   
field_inforv   ri   rt   rw   itemsrh   subcommand_dest
sub_modelssubcommand_alias
model_copydest)rJ   r|   
parser_mapvaluesnameindexalias_path_dests	sub_modelr   alias_path_destrM   s             rN   rH   _CliArg.__init__l   s    	"6"%6FOOT__d>O>O`d`s`s7
343 RVQbQbQhQhQjkQj+$t/v6=Qjk!__	#'#8#8#C EI__egsu\v_Ew
//01AB@JK_K_@`aq@r
??+,<= - YY..*.tyy!$'0:990Ed0KJ'-&6&<&<&>"O15QS_aHb1cJ'.1;1LU1SJ'. '? ls   6Fc                8    U(       a  UR                  SS5      $ U$ )N_-)replace)clsr   rk   s      rN   get_kebab_case_CliArg.get_kebab_case   s    )3t||C%==rP   c                    U R                  [        U R                  5      S:  a  UR                  U R
                  5      $ U R                  U R
                  5      $ )Nr?   )r   lenr   rY   preferred_aliasrk   )rJ   r   s     rN   r   _CliArg.subcommand_alias   sS    """%doo"6":IVZVeVe
 	
@D@T@TVZVeVe
 	
rP   c                    U R                   $ N)rx   rJ   s    rN   r|   _CliArg.field_info   s    rP   c                `    [         U R                  R                  ;   a  U R                   S3$ S $ )N:subcommand)r6   r|   metadatarh   r   s    rN   r~   _CliArg.subcommand_dest   s+    2@DOOD\D\2\$//"+.fbffrP   c                   U R                   (       d`  U R                  (       aO  U R                  R                  b8  U R                  (       d'  U R                   U R
                   3U R                  S  $ U R                   U R
                   3$ r   )r~   rh   r|   validation_aliasis_parser_submodelr   ro   r   s    rN   r   _CliArg.dest   ss     $$00<++ oo&t';';&<=d>Q>Q>STT//"4#7#7"899rP   c                    U R                   (       a  U R                  S   R                  SS5      $ U R                  S   $ )Nr   r   r   )rk   rq   r   r   s    rN   preferred_arg_name_CliArg.preferred_arg_name   s1    15tyy|##C-RdiiPQlRrP   c           	        [        U R                  R                  5      (       d  U R                  R                  4O[        U R                  R                  5      nU R                  (       a+  [	        U Vs/ s H  o"[        S 5      Ld  M  UPM     sn5      n/ nU H  n[        U[        4SS9(       a/  [        SU R                  R                   SU R                   35      e[        U[        4SS9(       a/  [        SU R                  R                   SU R                   35      e[        [        U5      5      (       d  [        [        U5      5      (       d  M  UR!                  [        U5      5        M     U$ s  snf )NF)is_include_originz.CliSubCommand is not outermost annotation for .z1CliPositionalArg is not outermost annotation for )r&   r|   
annotationrj   tupletyper8   r6   r,   rf   rY   rg   r5   r"   r=   r#   append)rJ   field_typestype_r   s       rN   r   _CliArg.sub_models   sM    DOO6677 __'')$//445 	
 K [K5PTUYPZCZK [\K,.
 E)%.1BV[\#DTZZEXEXDYYZ[_[j[jZkl  ,E4E3G[`a#G

H[H[G\\]^b^m^m]no  .u566:OP`afPg:h:h!!"25"9: !  !\s   5E:
E:c                    U R                   $ r   rt   r   s    rN   alias_names_CliArg.alias_names          rP   c                    U R                   $ r   )rv   r   s    rN   alias_paths_CliArg.alias_paths   r   rP   c                     U R                   S   $ )Nr   r   r   s    rN   r   _CliArg.preferred_alias   s      ##rP   c                    U R                   $ r   )rw   r   s    rN   is_alias_path_only_CliArg.is_alias_path_only   s    '''rP   c                    U R                   (       + =(       a8    [        U R                  R                  [        [
        [        [        [        4SS9$ )NTis_strip_annotated)	r~   r8   r|   r   listsetdictr   r   r   s    rN   is_append_action_CliArg.is_append_action   s=    ''' 
,FOO&&sD(G(Lae-
 	
rP   c                    U R                   (       + =(       a-    [        U R                  5      =(       a    U R                  (       + $ r   )r~   rU   r   r   r   s    rN   r   _CliArg.is_parser_submodel   s-    '''_D,A_$J_J_F__rP   c                    U R                   S L=(       aV    [        U R                   R                  ;   =(       d2    U R                  SL =(       a    [        U R                   R                  ;  $ NF)r|   r1   r   rm   r0   r   s    rN   is_no_decode_CliArg.is_no_decode   sR    d* 
000 _$$-]+T__E]E]2]	
rP   )rt   rx   rw   )r|   r$   r   z@defaultdict[str | FieldInfo, dict[Optional[int] | str, _CliArg]]r   r   rV   rW   )r   rX   rk   rl   rV   rX   )r   type[BaseModel]rV   rX   )rV   r$   )rV   zOptional[str])rV   rX   )rV   list[type[BaseModel]])rV   rs   )rV   ru   )rV   rU   )rY   rZ   r[   r\   __annotations__rq   rL   r    rt   rv   rw   rx   rH   classmethodr   r   r   r|   r~   r   r   r   r   r   r   r   r   r   r   r]   r^   r_   s   @rN   rd   rd   [   s   JOO##D)FN$/OL/3-8_L*< +E 22(]K*TT UT 	T
 
T2 > >

     g g 
: 
: S S  . ! ! ! ! $ $ ( ( 
 

 ` ` 
 
rP   rd   T_CliBoolFlag)bound)defaultc                  \  ^  \ rS rSrSrSSSSSSSSSSSSSSSSS\R                  \R                  \R                  \R                  \4                                               S,U 4S jjjr\S-S j5       r\S.S j5       r\S/S j5       rSSS	.     S0U 4S
 jjjr\S1S j5       r\S/S j5       rSS.   S2S jjr        S3S jr      S4S jrS5S jrS6S jrS7S jrS8S jrS9S jrS:S jrS;S jr\S<S j5       r          S=S jrS>S jr\R                  \R                  \R                  \R                  \4               S?S jjr S@                   SAS jjrSBS jrSCS jr           SDS jr!            SES  jr"                              SFS! jr#              SGS" jr$SHS# jr%SISJS$ jjr&SKS% jr'SKS& jr(          SLS' jr)SMS( jr*          SNS) jr+S@SOS* jjr,S+r-U =r.$ )PCliSettingsSource   aE  
Source class for loading settings values from CLI.

Note:
    A `CliSettingsSource` connects with a `root_parser` object by using the parser methods to add
    `settings_cls` fields as command line arguments. The `CliSettingsSource` internal parser representation
    is based upon the `argparse` parsing library, and therefore, requires the parser methods to support
    the same attributes as their `argparse` library counterparts.

Args:
    cli_prog_name: The CLI program name to display in help text. Defaults to `None` if cli_parse_args is `None`.
        Otherwise, defaults to sys.argv[0].
    cli_parse_args: The list of CLI arguments to parse. Defaults to None.
        If set to `True`, defaults to sys.argv[1:].
    cli_parse_none_str: The CLI string value that should be parsed (e.g. "null", "void", "None", etc.) into `None`
        type(None). Defaults to "null" if cli_avoid_json is `False`, and "None" if cli_avoid_json is `True`.
    cli_hide_none_type: Hide `None` values in CLI help text. Defaults to `False`.
    cli_avoid_json: Avoid complex JSON objects in CLI help text. Defaults to `False`.
    cli_enforce_required: Enforce required fields at the CLI. Defaults to `False`.
    cli_use_class_docs_for_groups: Use class docstrings in CLI group help text instead of field descriptions.
        Defaults to `False`.
    cli_exit_on_error: Determines whether or not the internal parser exits with error info when an error occurs.
        Defaults to `True`.
    cli_prefix: Prefix for command line arguments added under the root parser. Defaults to "".
    cli_flag_prefix_char: The flag prefix character to use for CLI optional arguments. Defaults to '-'.
    cli_implicit_flags: Whether `bool` fields should be implicitly converted into CLI boolean flags.
        (e.g. --flag, --no-flag). Defaults to `False`.
    cli_ignore_unknown_args: Whether to ignore unknown CLI args and parse only known ones. Defaults to `False`.
    cli_kebab_case: CLI args use kebab case. Defaults to `False`.
    cli_shortcuts: Mapping of target field name to alias names. Defaults to `None`.
    case_sensitive: Whether CLI "--arg" names should be read with case-sensitivity. Defaults to `True`.
        Note: Case-insensitive matching is only supported on the internal root parser and does not apply to CLI
        subcommands.
    root_parser: The root parser object.
    parse_args_method: The root parser parse args method. Defaults to `argparse.ArgumentParser.parse_args`.
    add_argument_method: The root parser add argument method. Defaults to `argparse.ArgumentParser.add_argument`.
    add_argument_group_method: The root parser add argument group method.
        Defaults to `argparse.ArgumentParser.add_argument_group`.
    add_parser_method: The root parser add new parser (sub-command) method.
        Defaults to `argparse._SubParsersAction.add_parser`.
    add_subparsers_method: The root parser add subparsers (sub-commands) method.
        Defaults to `argparse.ArgumentParser.add_subparsers`.
    formatter_class: A class for customizing the root parser help text. Defaults to `argparse.RawDescriptionHelpFormatter`.
NTc           
     t  > Ub  UO,UR                   R                  S[        R                  S   5      U l        Ub  UOUR                   R                  SS5      U l        Ub  UOUR                   R                  SS5      U l        U(       d  U R                  SL a  SOSnX@l        Ub  UOUR                   R                  S	S5      U l        Ub  UOUR                   R                  S
S5      U l	        U	b  U	OUR                   R                  SS5      U l
        U
b  U
OUR                   R                  SS5      U l        Ub  UOUR                   R                  SS5      U l        U R                  S-  U l        U R                  (       at  U
R                  S5      (       d;  U
R                  S5      (       d%  U
R!                  SS5      R#                  5       (       d  [%        SU
 35      eU =R                  S-  sl        Ub  UOUR                   R                  SS5      U l        Ub  UOUR                   R                  SS5      U l        Ub  UOUR                   R                  SS5      U l        Ub  UOUR                   R                  SS 5      U l        Ub  UOSnU(       d  Ub  [%        S5      e[.        TU ]a  USU R                  SU R                  US9  UcN  [3        U R                  U R                  UR4                  c  S O[7        UR4                  5      UU R                  SS9OUnU R9                  UUUUUUUS9  US;  au  USL a  [        R                  SS  nO2[;        U[<        [>        45      (       d  [%        S[A        U5       35      eU RC                  U RE                  U RF                  U5      S9  g g )Ncli_prog_namer   cli_hide_none_typeFcli_avoid_jsonTrW   nullcli_enforce_requiredcli_use_class_docs_for_groupsrK   
cli_prefix cli_flag_prefix_charr   r/   r   z'CLI settings source prefix is invalid: cli_implicit_flagscli_ignore_unknown_argscli_kebab_casecli_shortcutszGCase-insensitive matching is only supported on the internal root parser)env_nested_delimiterenv_parse_none_strenv_parse_enums
env_prefixri   )rK   progdescriptionformatter_classprefix_charsallow_abbrev)root_parserparse_args_methodadd_argument_methodadd_argument_group_methodadd_parser_methodadd_subparsers_methodr   r   r?   z<cli_parse_args must be a list or tuple of strings, received parsed_args)$model_configgetsysargvr   r   r   cli_parse_none_strr   r   rK   r   r   _cli_flag_prefix
startswithendswithr   isidentifierr,   r   r   r   r   rG   rH   rC   __doc__r   _connect_root_parser
isinstancer   r   r   _load_env_vars_parse_argsr   )rJ   settings_clsr   cli_parse_argsr   r   r   r   r   rK   r   r   r   r   r   r   ri   r   r   r   r   r   r   r   rM   s                           rN   rH   CliSettingsSource.__init__  s   6 +6ML<U<U<Y<YZiknkskstukv<w 	
 "- **../CUK 	 -8Nl>W>W>[>[\lns>t 	 "+/+>+>$+FF"4 $/ !**../EuM 	! -8 ***../NPUV 	* !, **../BDI 	
 )3(>*LD]D]DaDabnprDs $/ !**../EsK 	!
 !% 9 9A =??$$S))Z-@-@-E-EZM_M_`cegMhMuMuMwMw#&Mj\$Z[[OOs"O "- **../CUK 	 '2 $**../H%P 	$ -8Nl>W>W>[>[\lns>t 	 +6ML<U<U<Y<YZiko<p 	 ,:+E4+"9 ijj!$#66 ) 	 	
$ " ""&"8"8''$0$8$8$@Df\MaMaFb /!66"  	 	!!#/ 3&?/"7+ 	" 	
 .%!$!"u>>#RSWXfSgRhi  D,<,<T=M=M~,^_ /rP   c                    g r   rF   r   s    rN   __call__CliSettingsSource.__call__  s    *-rP   c                   g)a  
Parse and load the command line arguments list into the CLI settings source.

Args:
    args:
        The command line arguments to parse and load. Defaults to `None`, which means do not parse
        command line arguments. If set to `True`, defaults to sys.argv[1:]. If set to `False`, does
        not parse command line arguments.

Returns:
    CliSettingsSource: The object instance itself.
NrF   )rJ   rq   s     rN   r  r    s     	rP   c                   g)a@  
Loads parsed command line arguments into the CLI settings source.

Note:
    The parsed args must be in `argparse.Namespace`, `SimpleNamespace`, or vars dictionary
    (e.g., vars(argparse.Namespace)) format.

Args:
    parsed_args: The parsed args to load.

Returns:
    CliSettingsSource: The object instance itself.
NrF   rJ   r   s     rN   r  r         	rP   )rq   r   c                 > Ub  Ub  [        S5      eUbU  USL a  U R                  0 S9$ USL a  [        R                  SS  nU R                  U R	                  U R
                  U5      S9$ Ub  U R                  US9$ [        TU ]  5       $ )Nz/`args` and `parsed_args` are mutually exclusiveFr   Tr?   )r,   r   r   r   r  r   rG   r  )rJ   rq   r   rM   s      rN   r  r    s      7 QRRu}**r*::t|xx|&&43C3CDDTDTVZ3[&\\$&&;&??7#%%rP   c                    g r   rF   r   s    rN   r    CliSettingsSource._load_env_vars  s    :=rP   c                   g)aS  
Loads the parsed command line arguments into the CLI environment settings variables.

Note:
    The parsed args must be in `argparse.Namespace`, `SimpleNamespace`, or vars dictionary
    (e.g., vars(argparse.Namespace)) format.

Args:
    parsed_args: The parsed args to load.

Returns:
    CliSettingsSource: The object instance itself.
NrF   r
  s     rN   r   r    r  rP   r   c                 ^ Uc  0 $ [        U[        [        45      (       a  [        U5      n/ n[	        UR                  5       5       H  u  p4[        U[        5      (       a  U R                  XU5      (       a  M3  U R                  R                  U0 5      R                  S 5      nU(       a&  UR                  (       a  SR                  U5      X'   M  U R                  XC5      X'   M  UR                  S5      (       d  M  Uc  M  UR                  U R                  U   U   R                  5        M     U R                  R                  5        Hz  u  pg[        U[        5      (       d  M  UR                  S5      (       d  M4  UR!                  5        Vs/ s H  oR                  PM     sn H  n	X;  d  M
  U R"                  X'   M     M|     UR                  5        V
Vs0 s H*  u  pU
R                  S5      (       a  M  U[$        Ld  M(  X_M,     nn
nU(       a;  ['        U[(        S9m[+        U4S jUR-                  5        5       5      (       d  SUT'   UR/                  U R0                  5        [3        [5        [6        [        [        4   U5      U R8                  U R:                  U R"                  5      U l        U $ s  snf s  snn
f )N,r   )keyc              3  >   >#    U  H  nT S 3U;   d  M  Uv   M     g7f)r   NrF   ).0rg   last_selected_subcommands     rN   	<genexpr>3CliSettingsSource._load_env_vars.<locals>.<genexpr>  s'     w4FjMeLffgJhlvJvzz4Fs   	{})r   r   r   varsr   r}   %_is_nested_alias_path_only_workaround_parser_mapr   r   join_merge_parsed_listr   r   r   rX   r   r   r%   maxr   anykeysr{   _cli_unknown_argsr>   r   r   ri   env_ignore_emptyenv_vars)rJ   r   selected_subcommandsrg   valcli_argarg_destarg_mapargr~   r  r  s              @rN   r   r    sV    IkI#?@@{+K*,#K$5$5$78OJ#t$$==kWZ[[ **..z2>BB4Hw33.1hhsmK+*.*A*A#*R'$$]33$++D,<,<Z,H,M,R,RS  9  "&!1!1!7!7!9H(C((X->->}-M-M<CNN<L'M<LS<L'MO&B7;7N7N4 (N ": (--/
/<<. 36>O3O CH/ 	 

  '*+?S'I$wK4D4D4Fwww8<454112&c"K0!!##	
 / (N
s   J>K?K
Kc                   U R                   R                  U0 5      R                  5       nU(       d  g[        [	        U5      5      nUR
                  (       am  UR                  R                  S5      (       aM  X	 UR                  SS nSUR                   SU R                  X25       3nXa;  a  SU S3OX   SS  S	U S3X'   g
g)z
Workaround for nested alias path environment variables not being handled.
See https://github.com/pydantic/pydantic-settings/issues/670
Fr   N"z": {}, T)
r  r   r   nextiterr   rh   r   r   r  )rJ   r   rg   r%  	known_argr)  nested_dest
nested_vals           rN   r  7CliSettingsSource._is_nested_alias_path_only_workaround  s     $$((R8??A	4	?#!!cnn&=&=c&B&B'.."-KS001T5L5LS5]4^_J 1 ZL##0"56bBG $
 rP   c                L   U R                   R                  U[        5      nU[        L d9  [        [	        U5      5      (       a   [        S [        U5       5       5      (       d  UnX44$ U(       a.  [        U5      S:  d  US   R                  S5      (       a  [        O[        nX44$ )Nc              3  |   #    U  H2  nU[        S 5      Ld  M  [        U5      [        [        4;  d  M.  Uv   M4     g 7fr   )r   r'   r   r   )r  r   s     rN   r  ACliSettingsSource._get_merge_parsed_list_types.<locals>.<genexpr>7  s;      1ET
* /9%/@w/W 1s   <<	<r?   r   [)
_cli_dict_argsr   r   r)   r'   r  r&   r   r   rX   )rJ   parsed_listrg   
merge_typeinferred_types        rN   _get_merge_parsed_list_types.CliSettingsSource._get_merge_parsed_list_types0  s     ((,,Z>
$":j#9:: %j1   'M (( %0S5E5I[YZ^MfMfgjMkMkDruM((rP   c                   / nS nU R                   R                  U0 5      n[        U5       H  u  pgUR                  U5      nUS L =(       d    UR                  (       + n	Uc  U	nOXI:w  a  [	        S5      eU(       a  UR                  SS5      nO1UR                  S5      (       a  UR                  S5      (       a  USS nUR                  U5        M     SR                  U5      n
U(       a  SU
 S	3$ U
$ )
NzKMixing Decode and NoDecode across different AliasPath fields is not allowed\z\\r,  r?   r+  r  r9  ])
r  r   	enumerater   r,   r   r   r   r   r  )rJ   merged_listrg   decode_listis_use_decodecli_arg_mapr   itemr&  	is_decodemerged_list_strs              rN   _merged_list_to_str%CliSettingsSource._merged_list_to_strC  s    !#(,&&**:r:$[1KE!ooe,G4Cw/C/C+CI$ )+#$qrr||D&1%%$--*<*<Abzt$ 2 ((;/)6?#1%KOKrP   c                    / nSnU R                  X5      u  pVU GH%  n[        U[        5      (       d    GOUR                  5       nUR	                  S5      (       a)  UR                  S5      (       a  USS R                  5       nU(       a  UR                  5       nUR	                  S5      (       a  U R                  XsU5      nSnOSUR	                  S5      (       d  UR	                  S5      (       a  U R                  Xs5      nO U R                  XsU5      nSnU(       a  M  U(       a  GM  U R                  XsU5      nGM(     U[        L a  US	   $ U[        L a  U R                  X25      $ 0 n	U H(  n
U	R                  [        R                  " U
5      5        M*     [        R                  " U	5      $ ! [         a$  nXVL a  UeUnU R                  XsU5      n S nANS nAff = f! [          a  n[#        S
U SU 35      eS nAff = f)NFr9  rB  r?   r+  r  r-  Tr   zParsing error encountered for z: )r>  r   rX   stripr   r   _consume_comma_consume_object_or_array_consume_string_or_number
ValueErrorr   rK  r{   jsonloadsdumps	Exceptionr,   )rJ   r;  rg   rD  is_last_consumed_a_valuer<  r=  r%  emerged_dictrH  s              rN   r  $CliSettingsSource._merge_parsed_listV  s   *	T%'K',$(,(I(I+(b%J"!#s++ iik>>#&&3<<+<+<a)//+C))+C~~c**"11#D\]380>>#..#..2E2E"&"?"?"QCc&*&D&DSWa&b 480! c" 0/--c@XYC5 #8 S "1~%t#//HH.0'D&&tzz$'78 (zz+..# $. c#-#>*+G-:
&*&D&DSWa&b	c$  	T"@Bqc RSS	Ts[   DG$ F3	G$ $G$ .$G$ G$ -AG$ 3
G!=GG$ G!!G$ $
H.G??Hc                <    U(       d  UR                  S5        USS  $ )Nz""r?   )r   )rJ   rH  rD  rW  s       rN   rO   CliSettingsSource._consume_comma  s    't$ABxrP   c                z   SnUR                  S5      (       a  SOSnSn[        S[        U5      5       Hv  nX   S:X  a  XS-
     S:w  a	  U(       + nM  U(       a  M(  X   S;   a  US-  nM7  X   S	;   d  MA  US-  nX   U:X  d  MP  US
:X  d  MX  UR                  US US-    5        XS-   S  s  $    [	        SU S35      e)Nr?   r-  r.  rB  Fr,  rA  )r-  r9  )r.  rB  r   zMissing end delimiter ")r   ranger   r   r,   )rJ   rH  rD  countclose_delimin_strconsumeds          rN   rP  *CliSettingsSource._consume_object_or_array  s    !__S11csaT+H~$l);t)C#:-
:-
>[0UaZ&&tNhl';<1// , 5k]!DEErP   c                   U[         La  SO
[        U5      nSnU[        U5      :  aF  X   S:X  a  US:X  d  XS-
     S:w  a  U(       + nU(       d	  X   S:X  a  OUS-  nU[        U5      :  a  MF  U(       a  [        S5      eUS U R                  5       nU[        [         4;   a   [        U5        UR                  U5        OS
 UR                  SS5       5       u  pxUR                  S5      (       aP  UR                  S5      (       d:  UR                  S5      (       d$  UR                  S5      (       a  [        SU 35      eUR                  S5      UR                  S5      pUR                  [        R                  " Xx05      5        XS  $ ! [         a7    X`R                  :X  a  SnUS	;  a  UR                  S5      (       d  SU S3n GNf = f)Nr   Fr,  r?   rA  r  zMismatched quotesr   )truefalser   c              3  $   #    U  H  ov   M     g 7fr   rF   )r  kvs     rN   r  >CliSettingsSource._consume_string_or_number.<locals>.<genexpr>  s     >%=r%=s   =z1Dictionary key=val parameter is a quoted string: )rX   r   r,   rN  r   floatrR  r   r   r   splitr   rS  rU  )	rJ   rH  rD  r<  rb  is_find_end_quote
val_stringr  r%  s	            rN   rQ  +CliSettingsSource._consume_string_or_number  s   "#-13t9!T"~$(a-41;MQU;U(9$9!$3)>MH T"  344)8_**,
$$3j! z*>Z%5%5c1%=>HC~~c""3<<+<+<S^^TWEXEX]`]i]ijm]n]n #TU_T`!abbyy~syy~tzz3*56I  3!8!88!'J%>>zG\G\]`GaGa#$ZL!2J	3s   $F =GGc                    [         UR                  ;   a  SnO[        UR                  ;   a  SnOg UR                  [        La  [        U SUR                   SU S35      eg )NCliImplicitFlagCliExplicitFlagz
 argument r   z is not of type bool)r4   r   r3   r   rU   r,   rY   )rJ   rf   rg   r|   cli_flag_names        rN   _verify_cli_flag_annotations.CliSettingsSource._verify_cli_flag_annotations  sb    z222-M!4!44-M  ,=/ENN;K1ZLXl mnn -rP   c           	        / n/ / / pTn[        U5      R                  5        GH  u  pg[        UR                  ;   a  UR	                  5       (       d  [        SUR                   SU S35      e[        Xg5      tp[        U5      S:  a  [        SUR                   SU S35      e[        UR                  5       V
s/ s H  o[        S 5      Ld  M  U
PM     nn
U HA  n[        U5      (       a  M  [        U5      (       a  M'  [        SUR                   SU S35      e   UR                  Xg45        GM  [        UR                  ;   a  [        Xg5      tp[        U5      S:  a  [        SUR                   SU S35      e[!        UR                  ["        [$        [&        [(        [*        4SS	9nU(       d  UR                  Xg45        GM  UR                  Xg45        GM  U R-                  XU5        UR                  Xg45        GM     U(       a  [        U5      S:  a@  S
R/                  U VVs/ s H  u  pUPM	     snn5      n[        UR                   SU 35      eU(       aB  S
R/                  X$-    VVs/ s H  u  pUPM	     snn5      n[        UR                   SU 35      eX2-   U-   U-   $ s  sn
f s  snnf s  snnf )Nzsubcommand argument r   z has a default valuer?   z has multiple aliasesz$ has type not derived from BaseModelzpositional argument Tr   r/  z- has multiple variadic positional arguments: z= has variadic positional arguments and subcommand arguments: )r;   r}   r6   r   is_requiredr,   rY   r:   r   r&   r   r   r"   r#   r   r5   r8   r   r   r   r   r   rt  r  )rJ   rf   positional_variadic_argpositional_argssubcommand_argsoptional_argsrg   r|   r   r   r   r   
field_typer   r   infofield_namess                    rN   _sort_arg_fields"CliSettingsSource._sort_arg_fields  s   "$:<b"-&7&>&D&D&F"J!4!44!--//'*>u~~>NaPZ|[o(pqq&6z&NOK;'!++.B5>>BRRST^S__t,uvv6>z?T?T6U"q6UUfjkofpYp56UK"q&1
 .z : :>ST^>_>_"/"6u~~6Fa
|Sw x#  '2
  &&
'?@"j&9&99"2:"J{#a''*>u~~>NaPZ|[p(qrr#=))D#tXw+Odh$  (#**J+CD+22J3KL11%ZP$$j%=>9 'G< #*+a/"ii@W(X@W*$@W(XY#u~~&66cdocp$qrr "ii@W@i(j@i*$@i(jk#~~&&cdocpq  8?J]ZZA #r0 )Y )ks   :J/J/,J4
5J:
c                    U R                   $ )z#The connected root parser instance.)_root_parserr   s    rN   r   CliSettingsSource.root_parser  s        rP   c                   ^ ^^ TbJ  T R                   SL a;  TS:X  a5  [        T R                  [        5      (       a    S       SUU 4S jjjnU$ Tc
  SU4S jjnU$ T$ )NFr   c                v  > / nU(       a*  [         R                  " [         R                  " U5      5      O/  Hw  nSTR                   S3n[        R
                  " SU S3U5      nU(       a1  UR                  S5      R                  5       UR                  S5      -   nUR                  U5        My     T" XU5      $ )NrA  z{1,2}z^(z[^\s=]+)(.*)r?   r/   )	shlexrl  r  r   rematchgrouplowerr   )	r   rq   	namespaceinsensitive_argsr)  flag_prefixmatchedparser_methodrJ   s	          rN   parse_args_insensitive_methodOCliSettingsSource._connect_parser_method.<locals>.parse_args_insensitive_method  s    
 $& <@5;;uzz$'78bHC%&t'@'@&A"IK hh"[M'FLG%mmA.446q9II$++C0 I %[INNrP   c                 "   > [        ST S35      e)Nz0cannot connect CLI settings source root parser: z. is set to `None` but is needed for connectingr+   )rq   rL   method_names     rN   none_parser_methodDCliSettingsSource._connect_parser_method.<locals>.none_parser_method  s$    #F{m  TB  C rP   )NN)r   rC   rq   z"list[str] | tuple[str, ...] | Noner  zNamespace | NonerV   r   )rq   r   rL   r   rV   r   )ri   r   r  rC   )rJ   r  r  rq   rL   r  r  s   ```    rN   _connect_parser_method(CliSettingsSource._connect_parser_method  s     %##u,224,,.CDD
 <@.2O2O8O ,O 	O O 10"
 &% ! rP   c                <   ^ U R                  US5      mSU4S jjnU$ )Nr   c                F  > UR                  S5      (       d  UR                  S5        T" U 40 UD6$ S Vs0 s H  o"U;   d  M
  X!R                  U5      _M     nnUS==   S-  ss'   T" U 40 UD6n[        US5      (       d  [        S5      eUR                  " S0 UD6$ s  snf )	N _is_cli_mutually_exclusive_grouprequired)titler   r  z (mutually exclusive)add_mutually_exclusive_groupzcannot connect CLI settings source root parser: group object is missing add_mutually_exclusive_group but is needed for connectingrF   )pophasattrr,   r  )parserrL   r)  main_group_kwargsr  add_argument_groups        rN   add_group_methodACliSettingsSource._connect_group_method.<locals>.add_group_method  s    ::@AA

:&)&;F;;E]$oE]chnan%9S**S/%9E]!$o!'*.EE**6G5FGu&DEE'l  99CFCC %ps   	BB)r  r   rL   r   rV   r   )r  )rJ   r   r  r  s      @rN   _connect_group_method'CliSettingsSource._connect_group_method  s&    !889RTop	D  rP   c                *  ^  0 T l         SU 4S jjnUT l        Uc#  T R                  (       a  UO[        R                  nT R                  US5      T l        T R                  US5      T l        T R                  U5      T l	        T R                  US5      T l
        T R                  US5      T l        UT l        0 T l        [        [        5      T l        T R#                  T R$                  T R&                  / T R(                  T R(                  S / [*        S9  g )Nc                    > [         R                  " U 0 UD6u  pTR                   H  nUTR                  U'   M     [        [        U 5      $ r   )r   parse_known_argsr!  r   r   )rq   rL   unknown_argsr   rJ   s       rN   _parse_known_argsACliSettingsSource._connect_root_parser.<locals>._parse_known_args:  sH    !/!@!@$!Q&!QD../;&&t, /	4((rP   r   r   r   r   r  rf   
added_argsrh   subcommand_prefixr  alias_prefixesmodel_default)rq   r   rL   r   rV   r   )r!  r  r   r   
parse_argsr  r  _add_argumentr  
_add_group_add_parser_add_subparsers_formatter_classr:  r
   r   r  _add_parser_argsr   r  r   r%   )	rJ   r   r   r   r   r   r   r   r  s	   `        rN   r   &CliSettingsSource._connect_root_parser.  s    8:	) ($595Q5Q 1WeWpWp667HJ]^!889LNcd445NO667HJ]^#::;PRij /;=]him]n####"oo+ 	 		
rP   c
                   S n
0 n[        [        U5      5      (       d  [        [        U5      5      (       a  [        [        U5      U5      (       d  S OUnU R	                  U5       GHC  u  p[        UU R                  UUUU R                  U R                  U R                  U R                  R                  S5      U R                  S9
nUR                  UR                  5        UR                  (       Ga  UR                    GH  nUR#                  U5      nU R                  UR                     U   nU/Ul        SUR&                  S'   U R(                  UR&                  S'   UR*                  c  S O[-        UR*                  5      UR&                  S'   [/        UR                   5      S:  a  S OUR0                  UR&                  S'   U R2                  (       a1  UR*                  c  S O[-        UR*                  5      UR&                  S'   U
c:  U R5                  US	U S
3[/        UR                   5      S:  a  UR0                  OS S9OU
n
[7        U
S5      (       a1  U
R8                  (       a  U
R8                  S S  SU S3OSU S3U
l        U R;                  U R<                  " U
/UR$                  Q70 UR&                  D6U/ UR>                   S3U UR@                   S3S / [B        S9  GM     GM  U RD                  nUR>                  UR&                  S'   [F        UR&                  S'   U RI                  XX5      UR&                  S'   U RK                  URL                  5      UR&                  S'   U RN                  =(       a    URQ                  5       =(       a    U[B        L UR&                  S'   U RS                  XEX~RT                  U5      nU(       a  UR&                  S   U;   a  GM  U RW                  UR&                  XRX                  5        [Z        UR\                  ;   a*  U R_                  UR&                  XR@                  U5      u  nnU Ra                  UR&                  X5        URb                  (       aY  [e        URL                  SS5      (       d=  U Rg                  UUUR                   UUUUUUR&                  UUURT                  UU	S9  GMm  [h        UR\                  ;   a  / U Rj                  UR&                  S   '   GM  URl                  (       a  GM  [o        U[p        5      (       a  U Rr                  " U40 UD6nUc  UOUnU Vs/ s H  nUS [/        U5        U 3PM     snUl        U Rt                  " U/UR$                  Q70 UR&                  D6  U[w        U5      -  nGMF     U Ry                  XX4XV5        U$ s  snf )Nrm   )
r|   r   rf   rg   rh   ri   rj   rk   rm   ro   Fr   r   r   r?   helpsubcommandsr   )r  r   r   metavarr+  r  r.  r-  r   r  r   r   r  __pydantic_root_model__)r  is_model_suppressed)=r"   r   r#   
issubclassr  rd   r  ri   r   r   configr   ro   r{   r   r~   r   r   rq   rL   r  r   r   r   r   r   r  r  r  r  r  r   r   r%   r   CLI_SUPPRESS_help_format_metavar_formatr   r   rw  _get_arg_namesr   _convert_append_actionr   r5   r   _convert_positional_arg_convert_bool_flagr   getattr_add_parser_submodelsr7   r!  r   r   r   r  r  r   _add_parser_alias_paths)rJ   r  rf   r  rh   r  r  r  r  r  
subparsersrz   rg   r|   r)  r   r   subcommand_argr  	arg_namescontextr   s                         rN   r  "CliSettingsSource._add_parser_argsV  sc    
46
  ] 3448MdS`Na8b8b"4#6>> 
  	 '+&;&;E&B"J%++%%#22#66.. $0A B#22C ""3??3"""!$I'*';';I'F$%)%5%5c6I6I%JK[%\N+;*<N'<AN)).9?C?T?TN))*;< ) 1 1 9viFWFW?X #))-8 =@<ORS<SDYcYoYoN))&199@I@Q@Q@Y_efofwfw_x--f5 &- ,,""/$.<{!;BEcnnBUXYBY
(>(>_c	 -  (  z955  *11  *11#267q9I8J"M#%&6%7r!: #* ))#//
j^=P=PjTbTiTij'#%&)hhZq>->,?@S@S?TTU*V"')&7 * 	? "0T $(#8#8%(XX

6"(4

9%%)%6%6z}%r

6"(,(<(<Z=R=R(S

9%--q*2H2H2Jq}`qOq 

:& !//>??T^	 !SZZ%7:%E++CJJ
DXDXY$
(;(;;-1-I-I

J0C0C].*I{ ''

JN))'*:O:OQjlq2r2r.."")#!

""&3,? /   %
(;(;;ACD**3::f+=>///!%.. $ @% @(-f5GPYZPY;{T#;"<TF CPYZCH&&wHHSZZH$y/1JW 'CZ 	$$VjVgo  [s   Wc                    U(       aG  SUS'   [        UR                  [        [        4SS9(       a  UR                  U R                  US   '   g g g )Nr   actionTr   r   )r8   r   r   r   r:  )rJ   rL   r|   r   s       rN   r  (CliSettingsSource._convert_append_action  sK    'F8)**?*?$eij6@6K6K##F6N3 k rP   c                    US   S:X  aH  U R                   (       d  [        UR                  ;   a"  [        UR                  ;  a  US	 [        US'   g g g g )Nr  rU   r  )r   r4   r   r3   r   )rJ   rL   r|   r  s       rN   r  $CliSettingsSource._convert_bool_flag  sV    )&''+;z?R?R+R 
(;(;;9%#8x  < ,S 'rP   c                <   SnUS   /n[         US'   [        R                  UR                  5       U R                  5      US'   UR                  5       =(       a    U[         L nUR                  S5      S:X  a  US	 U(       a  SOSUS	'   OU(       d  S
US	'   US	 US	 Xe4$ )Nr   r   r   r  r  r   +*nargs?r  )r%   rd   r   upperr   rw  r   )rJ   rL   r|   r   r  r  r  rw  s           rN   r  )CliSettingsSource._convert_positional_arg  s     F^$	-y#22?3H3H3JDL_L_`y !,,.U=DU3U::h8+x %0ccF7O!F7O6N:%%rP   c           	       ^ / nU/U-    Ho  nU Hf  n[         R                  X R                  :X  a  U U 3OUR                  USS5       U 3U R                  5      n	U	T;  d  MU  UR                  U	5        Mh     Mq     U R                  (       a_  U R                  R                  5        HA  u  pX;   d  M  [        U[        5      (       a  U/OUnUR                  U4S jU 5       5        MC     U$ )Nr   r?   c              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr   rF   )r  aliasr  s     rN   r  3CliSettingsSource._get_arg_names.<locals>.<genexpr>  s     $^
uS]F]UU
s   		)rd   r   r   r   r   r   r   r}   r   rX   extend)rJ   rh   r  r  r   r  r  prefixr   arg_nametargetaliases
alias_lists        `       rN   r   CliSettingsSource._get_arg_names   s      "	!l^3F#"11(OO; htf%"NN+<b!DEdVL''	 :-$$X. $ 4 #'#5#5#;#;#=&.8#.F.F'GJ$$$^
$^^ $>
 rP   c                  ^ [        U[        5      (       a  [        S5      eS n0 nUS    S3US'   UR                  US'   U	S   US'   [	        S U 5       5      US'   US   (       a  [        U5      S	:  a  [        S
5      eU R                  (       a<  [        U5      S	:X  a-  US   R                  c  S O[        US   R                  5      US'   U[        La>  [        [        U5      5      (       d  [        [        U5      5      (       a  [        X5      nO9UR                  [        La  UR                  nOUR                  b  UR                  nUc2  SU R                    S3nUS   b  [        U SUS    35      US'   OUUS'   US   nU R#                  U5      =(       d    UnU(       a	  [$        US'   U R&                  (       do  UR)                  US   5        SU	S'   SU	S'   SU	S'   U(       a  [$        OSUS    S3U	S'   U R*                  " U40 UD6nU R,                  " U/U4S jU 5       Q70 U	D6  U HA  nU R/                  UUUU U S3UU(       a  UOUUS	S   Vs/ s H
  nU U S3PM     snUUS9	  MC     g s  snf )Nz8cannot have nested models in a CliMutuallyExclusiveGroupr   z optionsr  r   r  c              3  B   #    U  H  n[        U[        5      v   M     g 7fr   )r  ra   )r  rf   s     rN   r  :CliSettingsSource._add_parser_submodels.<locals>.<genexpr>9  s      E
FPUJu788js   r  r?   z/cannot use union with CliMutuallyExclusiveGroupz	default: z (undefined)
Fr  r  r  constzset z from JSON string (default: {})r  c              3  0   >#    U  H  nT U 3v   M     g 7fr   rF   )r  r   r  s     rN   r  r  ]  s     -[QZdV.DQZs   r   )	r  rf   r  rh   r  r  r  r  r  )r  ra   r,   r   r  r   r   r   r   r%   r"   r   r#   r  r   default_factoryr   _is_field_suppressedr  r   r   r  r  r  )rJ   r  rf   r   r  rh   r  r  r  rL   rg   r|   r   r  r  model_groupmodel_group_kwargsdesc_headerr   r   s          `            rN   r  'CliSettingsSource._add_parser_submodels  s   " e677
   Z[[-/)21h&?7#,6,B,B=))/
);:&AD E
FPE
 B
=> @Ac*oXYFY QRR--#j/Q2F8B18M8M8U[ablmnbobwbw[x}- 11d=1226KDQ^L_6`6` ' B!!):: * 2 2++7 * : : %d&=&=%>lKK!-0<4:k]"M_`mMnLo;p4q"=14?"=1%a."77
CZGZ0<}-""il+!&F:!F7O"F7O 34	!~Mn9o 6N //&G4FGK{f-[QZ-[f_efE!!%(\/):!<"3%0k6HCNqr?S?4:,tfA 6?S+$7 " 
    Ts   I:c                @   U(       Ga  UnUb*  [        U[        5      (       a  U R                  " U40 UD6OUnUR                  5        H  u  pXPR                  :X  a  U U 3OUR                  USS5       U 3n
0 n[        US'   SUS'   SUS'   SUS	'   U	c  S
US	'   [        U R                  U
'   U R                   U
 3/nU R                  U
   R                  5        H  u  pXsUl
        Ul        M     U R                  " U/UQ70 UD6  UR                  U
5        M     g g )Nr   r?   r   zpydantic alias pathr  r   r  r   r  r   )r   r   r  r}   r   r   r  r:  r   r  rq   rL   r  r   )rJ   r  rz   r  rh   r  r  r  r   r   r  rL   rq   r  r)  s                  rN   r  )CliSettingsSource._add_parser_alias_pathsk  sE    G >HPT>U>U$//&:E:[`.446 )OO; "l4&)&../@"aHI$P 
 *,$0y!!6v#+x $*y!=(.F9%48D''1001(<= $ 0 0 : @ @ BHC+/(CHcj !C""7<T<V<!!(+%  7	 rP   c           	         U R                   (       d  [        U5      $ [        [        U5       Vs/ s H  o"[        S 5      Ld  M  UPM     sn5      $ s  snf r   )r   r&   r   r   )rJ   objr   s      rN   _get_modified_args$CliSettingsSource._get_modified_args  s@    &&C= Xc]V]E4PT:>U%]VWWVs   AAc                   SU;   aF  US UR                  S5      S-    XR                  S5      S-   S   Vs/ s H  o3S:w  d  M
  UPM     sn-   nSR                  U5      nU(       a  U SU S3$ [        U5      S:X  a  U$ SU S3$ s  snf )NJSONr?   r  r9  rB  r-  r.  )r   r  r   )rJ   rq   obj_qualnamer)  r  s        rN   _metavar_format_choices)CliSettingsSource._metavar_format_choices  s    T>0$**V,q01DTZI[^_I_IaDb4tDbSmsfsSDb4ttD((4."^1WIQ//!$i1n7BBwir2BB 5us   	BBc           
        [        U5      n[        U5      (       a(  SUR                  ;   a  UR                  $ UR                  $ USL a  g[	        U[
        5      (       a  [        U5      $ [        R                  " U5      (       a  [        U5      $ [        U5      nUc@  [	        U[        [        R                  [        R                  45      (       d  UR                  n[!        U5      (       a=  U R#                  [%        ['        U R(                  U R+                  U5      5      5      5      $ [        R,                  " U5      (       a7  U R#                  [%        ['        [        U R+                  U5      5      5      5      $ [/        U[0        5      (       a+  U R#                  U Vs/ s H  o3R2                  PM     sn5      $ [	        U[4        5      (       ad  U R#                  [%        ['        U R(                  U R+                  U5      5      5      [7        US5      (       a  UR                  S9$ [        U5      S9$ U[        S5      L a  U R8                  $ [;        U5      (       d  [=        U5      (       a;  [?        USS5      (       a'  U R)                  [A        U5      S	   RB                  5      $ S
$ [	        U[        5      (       a  UR                  $ [        U5      RE                  SS5      RE                  SS5      $ s  snf )z\Pretty metavar representation of a type. Adapts logic from `pydantic._repr.display_as_type`.z<locals>.z...Nr[   )r  r  Frootr  ztyping.r   ztyping_extensions.)#r=   r<   r[   rY   r   r!   reprr(   is_typealiastyperX   r'   r   typing
ForwardReftyping_extensionsrM   r)   r  r   map_metavar_format_recurser  
is_literalr-   r   r   r.   r  r   r"   r#   r  r;   r   r   )rJ   r  originr%  s       rN   r  )CliSettingsSource._metavar_format_recurse  sz   s##-1A1A#A3<<WsGWGWWCZ^,,9,,S11s8OC>*S49J9JL]LhLh2i"j"j--C6""//S9U9UW[WnWnorWs5t0uvv&&v..//Sd>U>UVY>Z5[0\]] d++//S0IScS0IJJ^,,//S55t7N7Ns7STU18n1M1MS-- 0  SVWZS[ 0   DJ***C  $9#$>$> 3 95AA ,,->s-CF-K-V-VW 
 T""###9$$Y3;;<PRTUU# 1Js   !K7c                D    U R                  U5      R                  SS5      $ )Nr/  r  )r  r   )rJ   r  s     rN   r  !CliSettingsSource._metavar_format  s     ++C088sCCrP   c                   UR                   (       a  UR                   OSnU(       d  U R                  U5      (       a  [        $ UR                  5       (       a>  U[        S 4;   a2  [
        UR                  ;  a  Uc  SOSnXU(       a  SU S3OSU S3-  nGOSU R                   S3n[        [        U5      5      (       d  [        [        U5      5      (       a  S[        X15       S3nOU[        S 4;  a&  [        U5      (       a  SU R                  U5       S3nOxUR                  [        S 4;  a6  [        UR                   UR                  5      nSUc  UR                  OU S3nO,UR"                  b  SU R                  UR"                  5       S3nXU(       a  S	U 3OU-  n[%        [        U R&                  5      [(        5      (       a  UR+                  S
S5      $ U$ )Nr   zifdef: z (z	required)(z
(default: )z(default factory:  %z%%)r   r  r  rw  r%   r5   r   r   r"   r   r#   r  r<   r  r   r9   r   r  r  r  r   r   )	rJ   rg   r|   r  r  _helpifdefr   	enum_names	            rN   r  CliSettingsSource._help_format  s    +5*@*@
&&b$";";J"G"G!!##:KT9R(R 
(;(;;%2%:	%2eWI.qy=QQ"4#:#:";1=Gd=1226KDQ^L_6`6`&w}'I&J!L'8$&??LQ^D_D_.t/C/CM/R.SSTU##,=t+DD89N9NPZPbPbc	&Y=Nz'9'9T]&^^_`++7.t/C/CJD^D^/_.``abeq	]8E+5d4;L;L6M~+^+^u}}S$'idiirP   c                    UR                   (       a  UR                   OSnU[        :H  =(       d    [        UR                  ;   $ )Nr   )r   r  r   )rJ   r|   r  s      rN   r  &CliSettingsSource._is_field_suppressed  s2    *4*@*@
&&b$K
8K8K(KKrP   c           	        UR                   UR                  4 Vs/ s HT  n[        U[        [        45      (       d  M   [        U[        5      (       a  UO[        [        UR                  S   5      PMV     snS   nUR                  SS nU(       d  UR                  U/ 5        XA   nOTUR                  U0 5        XA   n	US S  H  n
U	R                  U
0 5        X   n	M     U	R                  US   / 5        XS      n[        [        UR                  S   5      nUR                  S/[        US-   [        U5      -
  S5      -  5        X(U'   XA   $ s  snf )Nr   r?   r+  r   )r  r   r   r   r   r   choicespath
setdefaultrn   r  r  r   )rJ   r  valuer|   alias_path_only_defaultsr  
alias_pathalias_nested_pathsalias_defaultcurrent_pathnested_pathalias_path_indexs               rN   _update_alias_path_only_default1CliSettingsSource._update_alias_path_only_default  s^   
 %**J,G,GH!
H%)\!:; YZy11EtIu}}UVGW7XXH!
 	!
 )3"(=!$//"=4>M$//"=3=L1#26''R8+8  7 ##$6r$:B?(B)?@MZ__R%89bTC(81(<s=?Q(QST$UUV*/&''11/!
s
   E8Ec                   0 n/ n/ n/ n[        U(       a  [        U5      OU R                  5      R                  5        GH  u  px[	        X5      n	UR
                  U	:X  a  M#  [        UR                  ;   a  U	c  M<  [        [        U R                  U   R                  5       5      5      n
U
R                  (       a=  UR                  U
R                  [        U	5      5      5        X`R                  U	SS9-  nM  [!        [        U	5      5      (       d  [#        [        U	5      5      (       a  XPR                  U	SS9-  nM  [$        R&                  " SU
R(                  5      nU(       a  UR+                  5       OSu  p[-        U	[.        [0        [2        45      (       a  [4        R6                  " U	5      O
[9        U	5      nU
R:                  (       a  U R=                  XX5      n[>        UR                  ;   av  [-        U	[0        5      (       a  U	OU	/ HU  n[-        U[.        [0        [2        45      (       a  [4        R6                  " U5      O
[9        U5      nUR                  U5        MW     GM)  U
R@                  RC                  S5      [D        :X  a  U	SL a  US:X  a  US-  nUR                  U U 35        U
R@                  RC                  S5      [D        :w  d  GM  UR                  U5        GM     / nX Vs/ s H0  n[-        U[8        5      (       d  [4        R6                  " U5      OUPM2     sn-  nX Vs/ s H0  n[-        U[8        5      (       d  [4        R6                  " U5      OUPM2     sn-  nX-   $ s  snf s  snf )	NT)_is_submodelz(-*)(.+))r   r   r  Fz--zno-)#r;   r   r  r}   r  r   r6   r   r0  r1  r  r   r~   r   r   _serialized_argsr"   r#   r  r  r   groupsr   r   r   r   rS  rU  rX   r   r$  r5   rL   r   r   )rJ   rf   r'  r  r{  ry  rz  rg   r|   r  r)  r  
flag_charsr  r  serialized_argss                   rN   r(  "CliSettingsSource._serialized_args   s   35 @BBD%'&7|UY]YjYj&k&q&q&s"J#E6M!!]2!4!449NtD,,Z8??ABCC""&&s';';D<O'PQ#8#8UY#8#ZZd=1226KDQ^L_6`6`#8#8UY#8#ZZhh{C,B,BCG7>7>>#3H J-7dTWGX-Y-Y

=)_bcp_q  %% <<Xjs J$7$77.8.M.M]TaSbbE1;ED$PSCT1U1UDJJu-[^_d[eE#**51 c  zz~~h'+@@]V[E[`jnr`re#
  J<z!:; zz~~h'+@@$$U+S 'tV &(dqrdq[`Zs5K5KDJJu-QVVdqrrdstds[`Zs5K5KDJJu-QVVdstt00 sts   17M117M6)r  r  r  r  r:  r   r!  r  r  r  r  r   r   rK   r   r   r   r   r   r   r   r   r   r   r#  )0r  ztype[BaseSettings]r   
str | Noner  z)bool | list[str] | tuple[str, ...] | Noner   r-  r   bool | Noner   r.  r   r.  r   r.  rK   r.  r   r-  r   r-  r   r.  r   r.  r   r.  r   z$Mapping[str, str | list[str]] | Noneri   r.  r   r   r   Callable[..., Any] | Noner   r/  r   r/  r   r/  r   r/  r   r   rV   rW   )rV   rr   )rq   z"list[str] | tuple[str, ...] | boolrV   CliSettingsSource[T])r   z,Namespace | SimpleNamespace | dict[str, Any]rV   r0  )rq   z)list[str] | tuple[str, ...] | bool | Noner   ?Namespace | SimpleNamespace | dict[str, list[str] | str] | NonerV   z%dict[str, Any] | CliSettingsSource[T])rV   zMapping[str, str | None])r   r1  rV   z/Mapping[str, str | None] | CliSettingsSource[T])r   zdict[str, list[str] | str]rg   rX   r%  rp   rV   rU   )r;  rp   rg   rX   rV   z%tuple[Optional[type], Optional[type]])rD  rp   rg   rX   rV   rX   )r;  rp   rg   rX   rV   rX   )rH  rX   rD  rp   rW  rU   rV   rX   )rH  rX   rD  rp   rV   rX   )rH  rX   rD  rp   r<  ztype[Any] | NonerV   rX   )rf   r   rg   rX   r|   r$   rV   rW   )rf   r   rV   zlist[tuple[str, FieldInfo]])rV   r   )
r  r/  r  rX   rq   r   rL   r   rV   Callable[..., Any])r   r/  rV   r2  )r   r   r   r/  r   r/  r   r/  r   r/  r   r/  r   r   rV   rW   )F)r  r   rf   r   r  rp   rh   rX   r  rX   r  r   r  rp   r  r   r  rU   rV   r   )rL   rr   r|   r$   r   rU   rV   rW   )rL   rr   r|   r$   r  r   rV   rW   )
rL   rr   r|   r$   r   rX   r  r   rV   ztuple[list[str], str])rh   rX   r  rX   r  rp   r   rs   r  rp   rV   rp   )r  r   rf   r   r   r   r  rp   rh   rX   r  rX   r  rX   r  rp   rL   rr   rg   rX   r|   r$   r   rs   r  r   r  rU   rV   rW   )r  r   rz   ru   r  rp   rh   rX   r  rX   r  r   rV   rW   )r  r   rV   rs   r   )rq   rp   r  r-  rV   rX   )r  r   rV   rX   )
rg   rX   r|   r$   r  r   r  rU   rV   rX   )r|   r$   rV   rU   )
r  rX   r  r   r|   r$   r  rr   rV   zlist[Any] | dict[str, Any])rf   r2   r'  rU   rV   rp   )/rY   rZ   r[   r\   r   r   add_argumentr  r	   
add_parseradd_subparsersr   rH   r   r  r   r  r>  rK  r  rO  rP  rQ  rt  r  propertyr   r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r(  r]   r^   r_   s   @rN   r   r      s   +` %)DH)-*.&*,059)-!%+/*./3&*>B&*7;9G9T9T?M?`?`7H7S7S;I;X;X:1}`(}` "}` B	}`
 '}` (}` $}` *}` (3}` '}` }` )}` (}` "-}` $}`  <!}`" $#}`$ %}`& 5'}`( 7)}`* $=+}`, 5-}`.  9/}`0 1}`2 
3}` }`~ - -   & ;?W[	& 8& U	&
 
/& && = = " ae3]3	83j5CFMV	.)$)25)	.)&L&+TZ
F$:	o+[Z ! !$!6$!EH$!QT$!`c$!	$!L 0 :H9T9T?M?`?`7H7S7S;I;X;X:&
&
 5&
 7	&

 $=&
 5&
  9&
 &
 
&
d %*EE E 	E
 E E E "E E "E 
ENL9&$&2;&NQ&be&	&*  "	
 %  
8MM M *	M
 M M M M M M M M %M M "M  
!M^,, 2, 	,
 , , , 
,BXC'VRDjj+4jEHj_cj	j2L22$'25>2Zh2	#2831 31rP   r   )gr   
__future__r   _annotationsrS  r  r  r   r  argparser   r   r   r   r   r	   collectionsr
   collections.abcr   r   enumr   	functoolsr   textwrapr   typesr   r   r   r   r   r   r   r   r   r   r   r   r  pydanticr   r   r   r   r    pydantic._internal._reprr!   pydantic._internal._utilsr"   pydantic.dataclassesr#   pydantic.fieldsr$   pydantic_corer%   r&   r'   typing_inspectionr(   typing_inspection.introspectionr)   
exceptionsr,   utilsr-   r.   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   envr@   pydantic_settings.mainrA   rC   ra   rd   r   CliSubCommandCliPositionalArgrU   r   rq  rr  r  CliSuppressr   rX   CliUnknownArgsr   rF   rP   rN   <module>rP     sh   - 2  	  
   $ -  %  !     K K 3 4 6 % + 2 , ; ' 8	 	 	   #3N 		 	C
i C
L CL%4..89Q 112 ~T2L*::;L*::;<(49eB&7(RSG1)71: G1rP   