
    Oj"                       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	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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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,J-r-J.r.J/r/J0r0J1r1J2r2  SSK3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:  SSK;J<r<  SSK=J>r>  SSK?J@r@  SSKAJBrB  SSKCJDrDJErEJFrF  SSKJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrP  SSKCJQrQJRrRJSrSJTrTJUrUJVrVJWrW  SSKXJYrY  \!(       a  SSKZJ[r[   " S S\5      r\ " S  S!\/5      r]S,S" jr^S-S# jr_ " S$ S%\/5      r`\'" S&5      ra\"\aS-  \N4   rb\"\a\M4   rc\'" S'\dS(9re\"\e\L4   rf\"\e\K4   rg\"\e\O4   rh\"\e\J4   ri\rj\"\a\j4   rk\"\l\m   \0" / S)9\P\H4   rn " S* S+\Y\$\a   5      rog).z'Command-line interface settings source.    )annotationsN)SUPPRESSArgumentParserBooleanOptionalAction	NamespaceRawDescriptionHelpFormatter_SubParsersAction)defaultdict)CallableMappingSequence)Enum)cached_property)chain)dedent)SimpleNamespace)TYPE_CHECKING	AnnotatedAnyGenericLiteralNoReturnTypeVarcastget_args
get_originoverload)AliasChoices	AliasPath	BaseModelFieldPrivateAttrTypeAdapter)Representation)is_model_class)is_pydantic_dataclass)	FieldInfo)PydanticUndefined)typing_objects)is_union_origin   SettingsError)_lenient_issubclass_typing_base_WithArgsTypes   )
ForceDecodeNoDecodePydanticModel_CliDualFlag_CliExplicitFlag_CliImplicitFlag_CliPositionalArg_CliSubCommand_CliToggleFlag_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$ )_CliInternalArgParserN   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      i/var/www/html/leaf-doctor-v1/venv/lib/python3.13/site-packages/pydantic_settings/sources/providers/cli.pyrL   _CliInternalArgParser.__init__O   s    "6""3    c                b   > U R                   (       d  [        SU 35      e[        TU ]  U5        g )Nzerror parsing CLI: )rM   r-   rK   error)rN   messagerQ   s     rR   rV   _CliInternalArgParser.errorS   s+    &&"5gY ?@@grT   )rM   )T)rO   boolrP   r   returnNone)rW   strrZ   r   )__name__
__module____qualname____firstlineno__rL   rV   __static_attributes____classcell__rQ   s   @rR   rG   rG   N   s    4 4 rT   rG   c                      \ rS rSrSrg)CliMutuallyExclusiveGroupY   rJ   N)r]   r^   r_   r`   ra   rJ   rT   rR   re   re   Y   s    rT   re   c                \   0 n[        U 5      (       a  U R                  nO[        U 5      (       a  [        U S0 5      nUR	                  S5      n[        U[        5      (       a  UR	                  S5      nUb  U$ O[        U5      (       aq   Sn[        U 5      (       a   U R                  5       R	                  S5      nO8[        U 5      (       a(  [        U 5      R                  5       R	                  S5      nUb  U$  U R                  b  [        U R                  5      $ g! [         a     N/f = f)a  Get model description from json_schema_extra or __doc__ fallback.

``json_schema_extra.description`` takes precedence over ``__doc__`` to
match pydantic's own behaviour.  When neither is available (e.g. under
``python -OO`` where docstrings are stripped), returns ``None``.
__pydantic_config__json_schema_extradescriptionN)r%   model_configr&   getattrget
isinstancedictcallablemodel_json_schemar#   json_schema	Exception__doc__r   )	model_clsconfigri   descs       rR   _get_model_descriptionrx   ]   s     Fi  ''	y	)	)$92>

#67#T** $$]3K 	#	$	$		Di(( 22488G&y11"9-99;??N   $i''((	  		s   A.D 
D+*D+c                    [        U 5      n[        U5      (       d  [        U5      (       a  UR                  U5        g[	        [        U5      5      (       a  [        U5       H  n[        X15        M     gg)zJRecursively collect BaseModel subclasses from possibly nested union types.N)rA   r%   r&   appendr*   r   r   _collect_sub_models)type_
sub_modelsstrippedargs       rR   r{   r{   ~   s\    &Hh#8#B#B(#	H-	.	.H%C0 & 
/rT   c                  R  ^  \ rS rSr% S\S'   S\S'   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'           S0U 4S jjr\S1S  j5       r\      S2S! j5       rS3S" jr\S4S# j5       r\S5S$ j5       r\S6S% j5       r\S6S& j5       r\S7S' j5       r\S8S( j5       r\S9S) j5       r\S6S* j5       r\S:S+ j5       r\S:S, j5       r\S:S- j5       r\S:S. j5       rS/rU =r$ );_CliArg   r   modelparserr\   
field_name
arg_prefixrY   case_sensitivepopulate_by_namehide_none_type(bool | Literal['all', 'no_enums'] | None
kebab_casebool | Noneenable_decodingintenv_prefix_len	list[str]argsdict[str, Any]rP   rJ   tuple[str, ...]_alias_namesdict[str, int | None]_alias_pathsF_is_alias_path_onlyr'   _field_infoc                  > [         T
U ]  " S0 UD6  Xl        [        U R                  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                  (       a  U R                   Hu  nU R                  U5      nU R!                  / 0 S.S9X R                     U'   X R                     U   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_argsr   r   )r   rP   )updaterJ   )rK   rL   r   r>   r   
field_infor   r   r   r   r   itemsr   subcommand_destr}   subcommand_alias
model_copydest)rN   r   
parser_mapvaluesnameindexalias_path_dests	sub_modelr   alias_path_destrQ   s             rR   rL   _CliArg.__init__   s    	"6"%6FOOOO --..!227
343 RVQbQbQhQhQjkQj+$t/v6=Qjk!__	#'#8#8#C EI__egsu\v_Ew
//01AB>HI]I]>^_o>p
//0;@JK_K_@`aq@r
??+,<=	 -
 YY..*.tyy!$'0:990Ed0KJ'-&6&<&<&>"O15QS_aHb1cJ'.1;1LU1SJ'. '? ls   G c                6    US;  a  UR                  SS5      $ U$ )NNF_-)replace)clsr   r   s      rR   get_kebab_case_CliArg.get_kebab_case   s    )3=)Ht||C%RdRrT   c                  ^ ^ Sn[        U5      n[        U5       H  nUT R                  UT5      -  nM     U(       aF  [        U[        5      (       a1  U[        U U4S jUR                  R                  5        5       5      -  nU$ )NrJ   c              3  N   >#    U  H  nTR                  UTS :H  5      v   M     g7f)allN)r   ).0r   r   r   s     rR   	<genexpr>)_CliArg.get_enum_names.<locals>.<genexpr>   s)     xZwRV 2 24u9L M MZws   "%)rA   r   get_enum_namesr.   r   tuple__members__keys)r   
annotationr   
enum_namesr|   s   ` `  rR   r   _CliArg.get_enum_names   su     ')
%j1
j)E#,,UJ??J *-j$??%xZdZpZpZuZuZwxxxJrT   c                    U R                  [        U R                  5      S:  a  UR                  U R
                  5      $ U R                  U R
                  5      $ )NrC   )r   lenr}   r]   preferred_aliasr   )rN   r   s     rR   r   _CliArg.subcommand_alias   sS    """%doo"6":IVZVeVe
 	
@D@T@TVZVeVe
 	
rT   c                    U R                   $ N)r   rN   s    rR   r   _CliArg.field_info   s    rT   c                `    [         U R                  R                  ;   a  U R                   S3$ S $ )N:subcommand)r9   r   metadatar   r   s    rR   r   _CliArg.subcommand_dest   s+    2@DOOD\D\2\$//"+.fbffrT   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   r   r   validation_aliasis_parser_submodelr   r   r   s    rR   r   _CliArg.dest   ss     $$00<++ oo&t';';&<=d>Q>Q>STT//"4#7#7"899rT   c                    U R                   (       a  U R                  S   R                  SS5      $ U R                  S   $ )Nr   r   r   )r   r   r   r   s    rR   preferred_arg_name_CliArg.preferred_arg_name   s1    15tyy|##C-RdiiPQlRrT   c           	     x   [        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[        X#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   r   r   r   typer<   r9   r-   r   r]   r   r8   r{   )rN   field_typesr|   r}   s       rR   r}   _CliArg.sub_models   s    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   2 !  !\s   5D7
D7c                    U R                   $ r   r   r   s    rR   alias_names_CliArg.alias_names          rT   c                    U R                   $ r   )r   r   s    rR   alias_paths_CliArg.alias_paths  r   rT   c                     U R                   S   $ )Nr   r   r   s    rR   r   _CliArg.preferred_alias  s      ##rT   c                    U R                   $ r   )r   r   s    rR   is_alias_path_only_CliArg.is_alias_path_only
  s    '''rT   c                    U R                   (       + =(       a8    [        U R                  R                  [        [
        [        [        [        4SS9$ )NTis_strip_annotated)	r   r<   r   r   listsetro   r   r   r   s    rR   is_append_action_CliArg.is_append_action  s=    ''' 
,FOO&&sD(G(Lae-
 	
rT   c                    U R                   (       + =(       a-    [        U R                  5      =(       a    U R                  (       + $ r   )r   rY   r}   r   r   s    rR   r   _CliArg.is_parser_submodel  s-    '''_D,A_$J_J_F__rT   c                    U R                   S L=(       aV    [        U R                   R                  ;   =(       d2    U R                  SL =(       a    [        U R                   R                  ;  $ r   )r   r3   r   r   r2   r   s    rR   is_no_decode_CliArg.is_no_decode  sR    d* 
000 _$$-]+T__E]E]2]	
rT   )r   r   r   )r   r'   r   zOdefaultdict[str | FieldInfo, dict[int | None | str | type[BaseModel], _CliArg]]r   r   rZ   r[   )r   r\   r   r   rZ   r\   )r   	type[Any]r   r   rZ   r   )r   type[BaseModel]rZ   r\   )rZ   r'   )rZ   
str | None)rZ   r\   )rZ   list[type[BaseModel]])rZ   r   )rZ   r   )rZ   rY   ) r]   r^   r_   r`   __annotations__r   rP   r"   r   r   r   r   rL   classmethodr   r   r   r   r   r   r   r   r}   r   r   r   r   r   r   r   ra   rb   rc   s   @rR   r   r      s   JKOO88  D)FN$/OL/3*5b/L'9 +E 22(]K*TT dT 	T
 
T< S S 	"	0X			 	

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

 ` ` 
 
rT   r   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                  \R                  \4                                                 S1U 4S jjjr\S2S j5       r\S3S j5       r\S4S j5       rSSS	.     S5U 4S
 jjjr\S6S j5       r\S4S j5       rSS.   S7S jjrS8S jr        S9S 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SAS jr\SBS j5       r          SCS jrSDS jr\R                  \R                  \R                  \R                  \R                  \4                 SES jjrSFS jr S0 SS4                         SGS jjr!SHS  jr"SIS! jr#          SJS" jr$              SKS# jr% SL                               SMS$ jjr&              SNS% jr'SOS& jr(SLSPS' jjr)SQS( jr*SQS) jr+          SRS* jr,SSS+ jr-          STS, jr.  SU         SVS- jjr/\0      SWS. j5       r1    SX           SYS/ jjr2S0r3U =r4$ )ZCliSettingsSourcei-  a0  
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: Controls how `bool` fields are exposed as CLI flags.

        - False (default): no implicit flags are generated; booleans must be set explicitly (e.g. --flag=true).
        - True / 'dual': optional boolean fields generate both positive and negative forms (--flag and --no-flag).
        - 'toggle': required boolean fields remain in 'dual' mode, while optional boolean fields generate a single
          flag aligned with the default value (if default=False, expose --flag; if default=True, expose --no-flag).
    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`.
    format_help_method: The root parser format help method. Defaults to `argparse.ArgumentParser.format_help`.
    formatter_class: A class for customizing the root parser help text. Defaults to `argparse.RawDescriptionHelpFormatter`.
NTc                H  > 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S9  Uc6  [3        U R                  U R                  [5        U5      UU R                  SSS9OUnU R7                  UUUUUUUUS9  US;  au  USL a  [        R                  SS  nO2[9        U[:        [<        45      (       d  [%        S[?        U5       35      eU RA                  U RC                  U RD                  U5      S9  g g )Ncli_prog_namer   cli_hide_none_typeFcli_avoid_jsonTr[   nullcli_enforce_requiredcli_use_class_docs_for_groupsrO   
cli_prefix cli_flag_prefix_charr   r1   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_prefixr   env_nested_max_split)rO   progrj   formatter_classprefix_charsallow_abbrevadd_help)root_parserparse_args_methodadd_argument_methodadd_argument_group_methodadd_parser_methodadd_subparsers_methodformat_help_methodr  r   rC   z<cli_parse_args must be a list or tuple of strings, received parsed_args)#rk   rm   sysargvr   r   r   cli_parse_none_strr  r  rO   r  r  _cli_flag_prefix
startswithendswithr   isidentifierr-   r  r  r	  r
  rK   rL   rG   rx   _connect_root_parserrn   r   r   r   _load_env_vars_parse_argsr  )rN   settings_clsr   cli_parse_argsr   r   r   r  r  rO   r  r  r  r  r	  r
  r   r  r  r  r  r  r  r  r  rQ   s                            rR   rL   CliSettingsSource.__init__`  s   8 +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''2<@ /!66"  	 	!!#/ 3&?/"71+ 	" 		
 .%!$!"u>>#RSWXfSgRhi  D,<,<T=M=M~,^_ /rT   c                    g r   rJ   r   s    rR   __call__CliSettingsSource.__call__  s    *-rT   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.
NrJ   )rN   r   s     rR   r,  r-    s     	rT   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.
NrJ   rN   r  s     rR   r,  r-         	rT   )r   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                  [        R                  " U5      S9$ [        TU ]!  5       $ )Nz/`args` and `parsed_args` are mutually exclusiveFr  TrC   )	r-   r&  r  r  r'  r  copyrK   r,  )rN   r   r  rQ   s      rR   r,  r-    s      7 QRRu}**r*::t|xx|&&43C3CDDTDTVZ3[&\\$&&499[3I&JJ7#%%rT   c                    g r   rJ   r   s    rR   r&   CliSettingsSource._load_env_vars  s    :=rT   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.
NrJ   r0  s     rR   r&  r5    r1  rT   r  c                 ^ Uc  0 $ [        U[        [        45      (       a  [        U5      nU R	                  U5      nU R
                  R                  5        Hz  u  p4[        U[        5      (       d  M  UR                  S5      (       d  M4  UR                  5        Vs/ s H  oUR                  PM     sn H  nXb;  d  M
  U R                  X'   M     M|     UR                  5        VVs0 s H*  u  pxUR                  S5      (       a  M  U[        Ld  M(  Xx_M,     nnnU(       a<  [        U[        S9m[        U4S jUR!                  5        5       5      (       d  SUT'   OSmU R"                  (       d  U R$                  (       a  [        S U R$                  R                  5        5       5      n	U	(       a  [        U4S jU R$                   5       5      n
U
(       d  ['        S U R$                  R                  5        5       5      n[        U R(                  [*        5      (       a-  U R(                  R-                  S	S
R/                  U5       35        [1        S5      eUR3                  U R$                  5        [5        [7        [8        [        [        4   U5      U R:                  U R<                  U R                  5      U l        U $ s  snf s  snnf )Nr   )keyc              3  >   >#    U  H  nT S 3U;   d  M  Uv   M     g7f)r   NrJ   )r   r   last_selected_subcommands     rR   r   3CliSettingsSource._load_env_vars.<locals>.<genexpr>E  s'     w4FjMeLffgJhlvJvzz4Fs   	{}r  c              3  $   #    U  H  ov   M     g 7fr   rJ   r   r   s     rR   r   r;  M  s     O/Ntd/N   c              3  R   >#    U  H  oR                  S S5      S   T;   v   M     g7f)r   rC   r   N)rsplit)r   r   r:  s     rR   r   r;  O  s)      /Si4KKQ'*.FFSis   $'c              3  6   #    U  H  o(       d  M  Uv   M     g 7fr   rJ   r>  s     rR   r   r;  S  s     "\4SDW[444Ss   
	zunrecognized arguments:  r1   ) rn   r   r   vars_resolve_parsed_args_parser_mapr   r\   r#  r   r   r   r(   maxr   anyr   r  _cli_unknown_argsnextr  r   rV   join
SystemExitr   rB   r   r   r   env_ignore_emptyenv_vars)rN   r  selected_subcommandsarg_destarg_mapr   r   r8  valhas_unknownselected_accepts_unknownunknownr:  s               @rR   r&  r5  .  sU    IkI#?@@{+K#88E!%!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')$ ++0F0FOt/E/E/L/L/NOOK+. /SWSiSi/ ,( 0""\D4J4J4Q4Q4S"\\G!$"2"2NCC((..1I#((SZJ[I\/]^$Q-'4112&c"K0!!##	
 O (N
s   K)K
	K
K
c                   / n[        UR                  5       5       GH  u  p4[        U[         5      (       a  U R                  XU5      (       a  M4  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      (       a0  Ub-  UR                  U R                  U   U   R                  5        M  U R                  S:X  d  M  [        U[        5      (       d  GM  UR                  SS5      nU R                  R                  U0 5      R                  S 5      nU(       d  GMX  UR                  R                   (       d  GMv  XeR#                  UR                  R                   S5      ;   d  GM  SU;   a"  [%        SUR                  SS5       SU S	35      eXaU'   GM     U$ )
N,r   r   r   r   FzInput should be kebab-case "z", not "")r   r   rn   %_is_nested_alias_path_only_workaroundrF  rm   r   rK  _merge_parsed_listr#  rz   r   r	  r\   r   r   r   r   
ValueError)rN   r  rO  r   rR  cli_arg	snake_vals          rR   rE  &CliSettingsSource._resolve_parsed_argsc  s   *,#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$$-*S#2F2FKKS1	**..z2>BB4HG**555"&<&<W=O=O=Z=Z\a&bbcz(+GTWY\H]G^^fgjfkkl)mnn.7
+3  96 $#rT   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   NrX  z": {}, T)
rF  rm   r   rJ  iterr   r   r#  r   rZ  )rN   r  r   rR  	known_argr   nested_dest
nested_vals           rR   rY  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 $
 rT   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   ro   r   )r   r|   s     rR   r   ACliSettingsSource._get_merge_parsed_list_types.<locals>.<genexpr>  s;      1ET
* /9%/@w/W 1s   <<	<rC   r   [)
_cli_dict_argsrm   r   r*   r   rH  r   r   r"  r\   )rN   parsed_listr   
merge_typeinferred_types        rR   _get_merge_parsed_list_types.CliSettingsSource._get_merge_parsed_list_types  s    ((,,Z>
$":j#9:: %j1   'M (( %0S5E5I[YZ^MfMfgjMkMkDruM((rT   c           	        / nS nU R                   R                  U0 5      n [        [        [	        UR                  5       5      5      R                  R                  5      n[        [        [	        UR                  S/5      5      5      5      [        L n[        U5       H  u  pUR                  U5      n
U
S L =(       d    U
R                  (       + nUc  UnOXK:w  a  [        S5      eU(       aa  U	R                  SS5      n	 U	R!                  S5      (       a  U	R#                  S5      (       a  U	SS OU	n[%        U5        U(       a  SU S3OU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$ ! [         a    S n GN0f = f! [&         a     NTf = f)N1zKMixing Decode and NoDecode across different AliasPath fields is not allowed\z\\rX  rC   r`  rW  rl  ])rF  rm   r#   rJ  rd  r   r   r   r   validate_pythonr\   rs   	enumerater   r-   r   r"  r#  floatr[  rz   rK  )rN   merged_listr   decode_listis_use_decodecli_arg_maplist_adapteris_num_type_strr   itemr\  	is_decodeunquoted_itemmerged_list_strs                 rR   _merged_list_to_str%CliSettingsSource._merged_list_to_str  s   !#%)&&**:r:	# +Dk6H6H6J1K,L,W,W,b,b cL"4\-I-I3%-P(Q#RSWZZO %[1KE!ooe,G4Cw/C/C+CI$ )+#$qrr||D&126//#2F2F4==Y\K]K]D2JcgM-(3BQ}oQ/D %%$--*<*<Abzt$# 2$ ((;/)6?#1%KOK+  	#"O	# " s%   A2F5 AG5GG
GG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)NFrl  rv  rC   r`  rW  ra  Tr   zParsing error encountered for z: )rq  rn   r\   stripr"  r#  _consume_comma_consume_object_or_array_consume_string_or_numberr[  r   r  r   jsonloadsdumpsrs   r-   )rN   rn  r   rz  is_last_consumed_a_valuero  rp  rR  emerged_dictr  s              rR   rZ  $CliSettingsSource._merge_parsed_list  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""rC   )rz   )rN   r  rz  r  s       rR   r   CliSettingsSource._consume_comma  s    't$ABxrT   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)NrC   ra  rb  rv  FrX  ru  )ra  rl  )rb  rv  r   zMissing end delimiter ")r"  ranger   rz   r-   )rN   r  rz  countclose_delimin_strconsumeds          rR   r  *CliSettingsSource._consume_object_or_array  s    !__S11csaT+H~$l);t)C#:-
:-
>[0UaZ&&tNhl';<1// , 5k]!DEErT   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   FrX  rC   ru  rW  zMismatched quotesr  )truefalser  c              3  $   #    U  H  ov   M     g 7fr   rJ   )r   kvs     rR   r   >CliSettingsSource._consume_string_or_number.<locals>.<genexpr>"  s     >%=r%=r?  =z1Dictionary key=val parameter is a quoted string: )r\   r   r-   r  r   ry  r[  r   r"  rz   splitr#  r  r  )	rN   r  rz  ro  r  is_find_end_quote
val_stringr8  rR  s	            rR   r  +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Ol[        UR                  ;   a@  Sn[	        UR
                  [        5      (       d  [        U SUR                   SU S35      e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CliExplicitFlagCliToggleFlagz
 argument r   z must have a default bool valueCliDualFlagz is not of type bool)r7   r   r6   r:   rn   r   rY   r-   r]   r5   r   )rN   r   r   r   cli_flag_names        rR   _verify_cli_flag_annotations.CliSettingsSource._verify_cli_flag_annotations)  s    z222-M!4!44-Mz222+Mj00$77#$oZ/?qLkl  8 Z000)M  ,=/ENN;K1ZLXl mnn -rT   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 valuerC   z has multiple aliasesz$ has type not derived from BaseModelzpositional argument Tr   rc  z- has multiple variadic positional arguments: z= has variadic positional arguments and subcommand arguments: )r?   r   r9   r   is_requiredr-   r]   r>   r   r   r   r   r%   r&   rz   r8   r<   r   r   ro   r   r   r  rK  )rN   r   positional_variadic_argpositional_argssubcommand_argsoptional_argsr   r   r   r   r|   r   
field_typer   r   infofield_namess                    rR   _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    rR   r  CliSettingsSource.root_parseri  s        rT   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      $ )Nru  z{1,2}z^(z[^\s=]+)(.*)rC   r1   )	shlexr  rK  r  rematchgrouplowerrz   )	r  r   	namespaceinsensitive_argsr   flag_prefixmatchedparser_methodrN   s	          rR   parse_args_insensitive_methodOCliSettingsSource._connect_parser_method.<locals>.parse_args_insensitive_methodx  s    
 $& <@5;;uzz$'78bHC%&t'@'@&A"IK hh"[M'FLG%mmA.446q9II$++C0 I %[INNrT   c                 "   > [        ST S35      e)Nz0cannot connect CLI settings source root parser: z. is set to `None` but is needed for connectingr,   )r   rP   method_names     rR   none_parser_methodDCliSettingsSource._connect_parser_method.<locals>.none_parser_method  s$    #F{m  TB  C rT   )NN)r  rG   r   z"list[str] | tuple[str, ...] | Noner  zNamespace | NonerZ   r   )r   r   rP   r   rZ   r   )r   rn   r  rG   )rN   r  r  r   rP   r  r  s   ```    rR   _connect_parser_method(CliSettingsSource._connect_parser_methodn  s     %##u,224,,.CDD
 <@.2O2O8O ,O 	O O 10"
 &% ! rT   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)titlerj   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 connectingrJ   )pophasattrr-   r  )r   rP   r   main_group_kwargsr  add_argument_groups        rR   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   rP   r   rZ   r   )r  )rN   r  r  r  s      @rR   _connect_group_method'CliSettingsSource._connect_group_method  s&    !889RTop	D  rT   c	                  ^  0 T l         SU 4S jjn	UT l        US L n
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        T R                  US5      T l        UT l        0 T l        [        [         5      T l        T R%                  5         T R'                  T R(                  T R*                  / T R,                  T R,                  S / [.        [1        5       S9	  T R                   (       a2  T R                  (       d   U
(       a  T R                  U	S5      T l        g g g 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_argsrI  r   r   )r   rP   unknown_argsr   rN   s       rR   _parse_known_argsACliSettingsSource._connect_root_parser.<locals>._parse_known_args  sH    !/!@!@$!Q&!QD../;&&t, /	4((rT   r  r  r  r  r  	r   r   
added_argsr   subcommand_prefixr  alias_prefixesmodel_default
model_path)r   r   rP   r   rZ   r   )rI  r  r  r   
parse_argsr  r'  _add_argumentr  
_add_group_add_parser_add_subparsers_format_help_formatter_classrm  r
   ro   rF  _add_default_help_add_parser_argsr  r(  r  r(   r   )rN   r  r  r  r  r  r  r  r  r  _is_default_parse_argss   `          rR   r%  &CliSettingsSource._connect_root_parser  sx    8:	) (!2d!:$595Q5Q 1WeWpWp667HJ]^!889LNcd445NO667HJ]^#::;PRij 778JL`a /;=lwm
 	 ####"oo+u 	 
	
 !!$*F*FKa#::;LNabD Lb*F!rT   c           	     |   [        U R                  [        5      (       a  U R                  (       dI  [	        U R
                  5      R                  5        H"  u  p[        XU R                  S9tp4SU;   d  M"    g    U R                  U R                  U R                  S S  S3U R                  S S  S3S[        SS9  g g )N)r   helprC   hr1   zshow this help message and exit)actionr   r  )rn   r  rG   r  r?   r(  r   r>   r   r  r  r!  r   )rN   r   r   r   r   s        rR   r  #CliSettingsSource._add_default_help  s    d'')>????.?@Q@Q.R.X.X.Z*J&6z^b^q^q&rOK, /[
   ((!,-Q/((!,-T2 6   @rT   Fc                   Uc
  [        5       nX1-  n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H  u  nn[        UUU R                  UUUU R                  U R                  R                  SS5      =(       d    U R                  R                  SS5      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5      UR(                  S'   [/        UR"                  5      S	:  a  S OUR0                  UR(                  S
'   U R2                  (       a  [-        U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/UR&                  Q70 UR(                  D6Ul        U R?                  UR<                  U/ UR@                   S3U URB                   S3S / [D        US9	  GM     GM  U RF                  nUR@                  UR(                  S'   [H        UR(                  S'   U RK                  UUX5      UR(                  S
'   U RM                  URN                  5      UR(                  S'   U RP                  =(       a    URS                  5       =(       a    U[D        L UR(                  S'   U RU                  UUUUU
U5      nU(       a  UR(                  S   U;   a  GM  U RW                  UR(                  UURX                  5        [Z        UR\                  ;   a+  U R_                  UR(                  UURB                  U5      u  nnU Ra                  UR(                  UU5        UR"                   Vs/ s H  nUU;  d  M  UPM     nnURb                  (       aW  [e        URN                  SS5      (       d;  U(       a4  U Rg                  UUUUUUUUUR(                  UUURh                  UU	US9  GM  [j        UR\                  ;   a  / U Rl                  UR(                  S   '   GM  URn                  (       a  GM  [q        U[r        5      (       a  U Rt                  " U40 UD6nUc  UOUnUR(                  R                  S5      S:X  a  US-  nU Vs/ s H  nUS [/        U5      S	:X  a  S	OS   U 3PM     snUl        U Rv                  " U/UR&                  Q70 UR(                  D6  U[y        U5      -  nGM     U R{                  XX4XV5        U$ s  snf s  snf )Nr   Fvalidate_by_namer   )r   r   r   r   r   r   r   r   r   r   r   r   r  r  rj   rC   r  subcommandsr   )r  r   rj   metavarr`  rW  rb  ra  r   r  r   r   r  __pydantic_root_model__)r  is_model_suppressedr  r  store_falseno-)>r   r%   r   r&   
issubclassr  r   rF  r   rv   rm   r   r	  r   r   r   r   r}   r   r   rP   r  rx   r   rj   r  r  r  r  r  r   r  r   r   r(   r!  CLI_SUPPRESS_help_format_metavar_formatr   r  r  _get_arg_names_convert_append_actionr   r8   r   _convert_positional_arg_convert_bool_flagr   rl   _add_parser_submodelsr   r;   rI  r   rn   ro   r  r  r   _add_parser_alias_paths)rN   r   r   r  r   r  r  r  r  r  discriminator_valsis_last_discriminatorr  
subparsersr   r   r   r   r   r   subcommand_argr  	arg_namesmnon_recursive_sub_modelscontextr   s                              rR   r  "CliSettingsSource._add_parser_args  s    J')

13
  ] 3448MdS`Na8b8b"4#6>> 
  	 '+&;&;E&B"J
%++%%#22!%1CU!K ">;;??#5u=#66.. $0A B#22C ""3??3"""!$I'*';';I'F$%)%5%5c6I6I%JK[%\N+;*<N'<AN)).9?C?T?TN))*;<;QR[;\N))-8<?<ORS<SDYcYoYoN))&1998Ny8Y--f5 &- ,,""/$.<{!;BEcnnBUXYBY
(>(>_c	 -  (  z955  *11  *11#267q9I8J"M#%&6%7r!: #* -1,<,<Z,w.J]J],waoavav,wN)))-44'#%&)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 

:& !//%"&)	 !SZZ%7:%E++CJJ
CDXDXY$
(;(;;-1-I-I

J0C0C].*I{ ''

JN7:~~+]~!R\I\A~(+]**#J$9$9;TV[\\0..0"")#!

""&3,?#- / " %
(;(;;ACD**3::f+=>///!%.. $ @% @(-f5Gzz~~h/=@#u,dmndm\`;/Nc$i1n$#O"PQUPV WdmnCH&&wHHSZZH$y/1Jw 'Cz 	$$VjVgoI ,^>  os   &
Y 4Y $Yc                    U(       aG  SUS'   [        UR                  [        [        4SS9(       a  UR                  U R                  US   '   g g g )Nrz   r  Tr   r   )r<   r   ro   r   rm  )rN   rP   r   r   s       rR   r  (CliSettingsSource._convert_append_action  sK    'F8)**?*?$eij6@6K6K##F6N3 k rT   c                2   US   S:X  Ga  UR                    Vs/ s H:  n[        U[        5      (       d  M  [        U[        [
        -  5      (       d  M8  UPM<     nnU(       d  U R                  (       a  [        /nU(       a  UR                  5       nU[        L a;  U R                  S:X  a%  [        UR                  [        5      (       a  [        O[        nU[        L a  US	 [        US'   g U[        L a  US	 UR                  (       a  SOSUS'   g g g g s  snf )Nr  rY   toggler  r   
store_true)r   rn   r   r  r7   r6   r  r  r   rY   r:   r5   r   )rN   rP   r   r  metameta_bool_flags	bool_flags          rR   r	  $CliSettingsSource._convert_bool_flag  s   )& '///DdD) .8?ORb?b.c /  
 #t'>'>#3"4+//1	 00  22h>:jN`N`bfCgCg ') 
 ,y)'<F8$.0y)8B8J8J}P\F8$ 1  's   DDD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  rz   +*nargs?r  )r(   r   r   upperr	  r  rm   )rN   rP   r   r   r  r  r  r  s           rR   r  )CliSettingsSource._convert_positional_arg  s     F^$	-y#22?3H3H3JDL_L_`y !,,.U=DU3U::h8+x %0ccF7O!F7O6N:%%rT   c           	     x  ^ / nUR                   /U-    Hy  nUR                   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     M{     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     [        5       nUR                  UR                  5      nUb  [!        UR"                  R$                  [&        4SUS9  UR)                  [*        R,                  " S U 5       5      5        U(       d  / $ U R/                  [&        [1        [3        U5      5         5      UR4                  S'   U$ )Nr  rC   c              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7fr   rJ   )r   aliasr  s     rR   r   3CliSettingsSource._get_arg_names.<locals>.<genexpr>  s     $^
uS]F]UU
s   		T)r   collectc              3  8   #    U  H  n[        U5      v   M     g 7fr   )r   )r   tags     rR   r   r(    s     5Tthsmmts   r  )r   r   r   r   r  r   r	  rz   r
  r   rn   r\   extendr   rm   r   r<   r   r   r   r   r   from_iterabler  r   sortedrP   )rN   r   r  r  r  r  r  r  prefixr   arg_nametargetaliases
alias_listtagsdiscriminatorss       `           rR   r   CliSettingsSource._get_arg_names  s     "	~~&7F"11(OO; htf%"NN+<b!DEdVL''	 :-$$X. ( 8 #'#5#5#;#;#=&.8#.F.F'GJ$$$^
$^^ $>
 +//9%&))
"&	 !!%"5"55Tt5T"TU(	$($8$8vnG]A^9_$`CJJy!rT   c                  ^ [        U[        5      (       a  [        S5      e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   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'                  US   5        SU	S'   SU	S'   SU	S'   U(       d  U R(                  (       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R.                  (       a  U U SUR.                   3[1        5       0O0 nU H?  nU R3                  UUUU U S3UUUS	S   Vs/ s H
  nU U S3PM     snUUUX#S   L US9  MA     g s  snf )Nz8cannot have nested models in a CliMutuallyExclusiveGroupr   z optionsr  rj   r  c              3  B   #    U  H  n[        U[        5      v   M     g 7fr   )r  re   )r   r   s     rR   r   :CliSettingsSource._add_parser_submodels.<locals>.<genexpr>  s      E
FPUJu788js   r  rC   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   rJ   )r   r   r  s     rR   r   r9  +  s     )WYT[M$*@Ys   r   r`  )r   r   r  r   r  r  r  r  r  r  r  r  )r  re   r-   rj   rH  r   r  rx   r(   r%   r   r&   rl   r   default_factoryr   r   _is_field_suppressedr  rz   r   r  r  discriminatorr   r  )rN   r   r   r}   r  r   r  r  r  rP   r   r   r   r  r  r  model_group_kwargsdesc_headerr   model_groupr  r   s          `              rR   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/Q2F0FzRS}0U}- 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<}-)A,'"zww #d&9&9 	!~%FG 	v
 oofC0BC;b)WY)Wb[abT^TlTl
|O,Aj.F.F-GH#%Prt 	  E!!%(\/):!<"3!CNqr?S?4:,tfA 6?S+$7#5&+"~&=% "     Ts   &J
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  rC   r   zpydantic alias pathr  rz   r  r   r  ro   )rn   ro   r  r   r  r   r  rm  r!  rF  r   rP   r  rz   )rN   r   r   r  r   r  r  r  r   r   r0  rP   r   r8  r   s                  rR   r  )CliSettingsSource._add_parser_alias_paths?  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	 rT   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   )rN   objr|   s      rR   _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JSONrC   rW  rl  rv  ra  rb  )r   rK  r   )rN   r   obj_qualnamer   r  s        rR   _metavar_format_choices)CliSettingsSource._metavar_format_choicesf  s    T>0$**V,q01DTZI[^_I_IaDb4tDbSmsfsSDb4ttD((4."^1WIQ//!$i1n7BBwir2BB 5us   	BBc           
     f   [        U5      n[        U5      (       a(  SUR                  ;   a  UR                  $ UR                  $ USL a  g[	        U[
        5      (       a  [        U5      $ [	        U[        R                  5      (       d  [        R                  " U5      (       a  [        U5      $ [	        U[        [        [        45      (       d  UR                  n[!        U5      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      $ [1        U[2        5      (       aZ  U R%                  UR4                  R7                  5        Vs/ s H%  n[8        R;                  X0R<                  S:H  5      PM'     sn5      $ [	        U[        5      (       ad  U R%                  ['        [)        U R*                  U R-                  U5      5      5      [?        US5      (       a  UR                  S9$ [        U5      S9$ U[        S5      L a  U R@                  $ [C        U5      (       d  [E        U5      (       a;  [G        USS	5      (       a'  U R+                  [I        U5      S
   RJ                  5      $ S$ [	        U[        5      (       a  UR                  $ [        U5      RM                  SS5      RM                  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...r   r_   )rL  Nr  FrootrK  ztyping.r  ztyping_extensions.)'rA   r@   r_   r]   rn   r$   reprtyping
ForwardRefr)   is_typealiastyper\   r/   r0   r   rQ   r   r*   rM  r   map_metavar_format_recurserH  
is_literalr.   r   r   r   r   r   r	  r  r   r%   r&   rl   r?   r   r   )rN   rG  originr   s       rR   rV  )CliSettingsSource._metavar_format_recurseo  s   s##-1A1A#A3<<WsGWGWWCZ^,,9V..//>3R3RSV3W3Ws8O#ndCDD--CC6""//S9U9UW[WnWnorWs5t0uvv&&v..//Sd>U>UVY>Z5[0\]] d++//X[XgXgXlXlXnoXnPT''.A.AU.JKXno  ^,,//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% ps   ,L.c                D    U R                  U5      R                  SS5      $ )Nrc  rW  )rV  r   )rN   rG  s     rR   r  !CliSettingsSource._metavar_format  s     ++C088sCCrT   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[$        UR                  ;  a  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: rC  %z%%)rj   r>  r  r  r(   r8   r   r   r%   r   r&   rl   r@   r  r   r=   r   r=  r:   r  r  r   r   )	rN   r   r   r  r  _helpifdefr   	enum_names	            rR   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Z%8%88%1WIW<+5d4;L;L6M~+^+^u}}S$'idiirT   c                    UR                   (       a  UR                   OSnU[        :H  =(       d    [        UR                  ;   $ )Nr  )rj   r  r   )rN   r   r`  s      rR   r>  &CliSettingsSource._is_field_suppressed  s2    *4*@*@
&&b$K
8K8K(KKrT   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   rC   r`  r  )r'  r   rn   r   r   r   choicespath
setdefaultr   r,  rG  r   )rN   r0  valuer   alias_path_only_defaultsr'  
alias_pathalias_nested_pathsalias_defaultcurrent_pathnested_pathalias_path_indexs               rR   _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                   U/n[        U[        5      (       a  [        U[        5      (       ac  US:X  a/  SR                  S [        R
                  " U5       5       5      /nU$ US:X  a&  [        R
                  " U5       Vs/ s H  of PM     nnU$ [        U[        5      (       aC  US:X  a=  [        R
                  " U5      R                  5        VVs/ s H  u  pvU SU 3PM     nnnU$ s  snf s  snnf )NlazyrW  c              3  &   #    U  H  o v   M	     g 7fr   rJ   )r   vs     rR   r   9CliSettingsSource._coerce_value_styles.<locals>.<genexpr>  s     &I7H!v7Hs   argparseenvr  )rn   r\   r   rK  r  r  ro   r   )rN   r  rj  
list_style
dict_styler   rw  ks           rR   _coerce_value_styles&CliSettingsSource._coerce_value_styles  s     eS!!-..'!hh&Itzz%7H&IIJF   :-.2jj.?@.?f.?F@  M400&59ZZ5F5L5L5NO5NTQ1QCj5NFO	 A Ps   C+C0c                H    U(       d  U S   U S   -   O
U S   U S   -   U S   -   $ )Noptional
positional
subcommandrJ   )serialized_argspositionals_firsts     rR   _flatten_serialized_args*CliSettingsSource._flatten_serialized_args  s?     % J'/,*GG .1LLL)	* 	*rT   c           	     t   0 n/ n/ n/ n	[        U(       a  [        U5      OU R                  5      R                  5        GH  u  p[	        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                  (       aQ  U	R                  UR                  [        U5      5      5        U R                  UUUUSS9nXR!                  X5      -  n	M  [#        [        U5      5      (       d  [%        [        U5      5      (       a+  U R                  UUUUSS9nX~S   -  nXS   -  nXS   -  n	GM*  [&        R(                  " SUR*                  5      nU(       a  UR-                  5       OSu  nn[/        U[0        [2        [4        45      (       a  [6        R8                  " U5      O
[;        U5      nUR<                  (       a  U R?                  UUX5      n[@        UR                  ;   av  [/        U[2        5      (       a  UOU/ HU  n[/        U[0        [2        [4        45      (       a  [6        R8                  " U5      O
[;        U5      nUR                  U5        MW     GMV  URB                  RE                  S5      [F        :X  a  US	L a  US
:X  a  US-  nU RI                  UUX#S9 HQ  nUR                  U U 35        URB                  RE                  S5      [F        SS4;  d  M@  UR                  U5        MS     GM     U Vs/ s H0  n[/        U[:        5      (       d  [6        R8                  " U5      OUPM2     snU Vs/ s H0  n[/        U[:        5      (       d  [6        R8                  " U5      OUPM2     snU	S.$ s  snf s  snf )NT)r{  r|  r  _is_submodelr  r  r  z(-*)(.+))r  r  r  Fz--r  )r{  r|  r  r   )r  r  r  )%r?   r   r(  r   rl   r   r9   r   rJ  rd  rF  r   r   rz   r   _serialized_argsr  r%   r&   r  r  r   groupsrn   ro   r   r   r  r  r\   r   rr  r8   rP   rm   r   r~  )rN   r   r{  r|  r  r  rk  r  r  r  r   r   r  r   sub_argsr  
flag_charsr0  rj  s                      rR   r  "CliSettingsSource._serialized_args  s`    46 @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00!))&7!% 1   #@#@#]]d=1226KDQ^L_6`6`00!))&7!% 1  *!55L#99L#99hh{C,B,BCG7>7>>#3H J-7dTWGX-Y-Y

=)_bcp_q  %% <<Xujs J$7$77.8.M.M]TaSbbE1;ED$PSCT1U1UDJJu-[^_d[eE#**51 c  zz~~h'+@@]V[E[`jnr`re#
22=%T^2v$$
|H:%>? ::>>(+4I<Yf3gg!((/ wk 'tz booanX]*UC2H2HE*eSanocrscrZ_Juc4J4J4::e,PUUcrs)
 	
oss   67N037N5)r  r  r  r  rm  r!  rI  r  r  r'  rF  r  r   r  rO   r  r   r  r  r	  r   r  r   r
  r  rN  )2r(  ztype[BaseSettings]r   r   r)  z)bool | list[str] | tuple[str, ...] | Noner   r   r   r   r   r   r  r   r  r   rO   r   r  r   r  r   r  z'bool | Literal['dual', 'toggle'] | Noner  r   r	  r   r
  z$Mapping[str, str | list[str]] | Noner   r   r  r   r  Callable[..., Any] | Noner  r  r  r  r  r  r  r  r  r  r  r   rZ   r[   )rZ   r   )r   z"list[str] | tuple[str, ...] | boolrZ   CliSettingsSource[T])r  z,Namespace | SimpleNamespace | dict[str, Any]rZ   r  )r   z)list[str] | tuple[str, ...] | bool | Noner  ?Namespace | SimpleNamespace | dict[str, list[str] | str] | NonerZ   z%dict[str, Any] | CliSettingsSource[T])rZ   zMapping[str, str | None])r  r  rZ   z/Mapping[str, str | None] | CliSettingsSource[T])r  dict[str, list[str] | str]rZ   r   )r  r  r   r\   rR  r   rZ   rY   )rn  r   r   r\   rZ   ztuple[type | None, type | None])rz  r   r   r\   rZ   r\   )rn  r   r   r\   rZ   r\   )r  r\   rz  r   r  rY   rZ   r\   )r  r\   rz  r   rZ   r\   )r  r\   rz  r   ro  ztype[Any] | NonerZ   r\   )r   r   r   r\   r   r'   rZ   r[   )r   r   rZ   zlist[tuple[str, FieldInfo]])rZ   r   )
r  r  r  r\   r   r   rP   r   rZ   Callable[..., Any])r  r  rZ   r  )r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r   rZ   r[   )rZ   r[   )r   r   r   r   r  r   r   r\   r  r\   r  r   r  r   r  r   r  rY   r  dict[str, set[Any]]r  rY   r  set[type[BaseModel]] | NonerZ   r   )rP   r   r   r'   r   rY   rZ   r[   )rP   r   r   r'   r  r   rZ   r[   )
rP   r   r   r'   r   r\   r  r   rZ   ztuple[list[str], str])r   r   r  r\   r  r   r  r   r  r  r  rY   rZ   r   r   ) r   r   r   r   r}   r   r  r   r   r\   r  r\   r  r\   r  r   rP   r   r   r\   r   r'   r   r   r  r   r  rY   r  r  rZ   r[   )r   r   r   r   r  r   r   r\   r  r\   r  r   rZ   r[   )rG  r   rZ   r   )r   r   rL  r   rZ   r\   )rG  r   rZ   r\   )
r   r\   r   r'   r  r   r  rY   rZ   r\   )r   r'   rZ   rY   )
r0  r\   rj  r   r   r'   rk  r   rZ   zlist[Any] | dict[str, Any])r  r  )
r  r   rj  z str | list[Any] | dict[str, Any]r{  #Literal['json', 'argparse', 'lazy']r|  Literal['json', 'env']rZ   z&list[str | list[Any] | dict[str, Any]])r  dict[str, list[str]]r  rY   rZ   r   )r  r  FF)r   r4   r{  r  r|  r  r  rY   r  rY   rZ   r  )5r]   r^   r_   r`   rt   r   add_argumentr  r	   
add_parseradd_subparsersformat_helpr   rL   r   r,  r&  rE  rY  rq  r  rZ  r  r  r  r  r  propertyr  r  r  r%  r  r  r  r	  r  r  r
  r  rH  rM  rV  r  r  r>  rr  r~  staticmethodr  r  ra   rb   rc   s   @rR   r   r   -  s    0j %)DH)-*.&*,059)-!%+/FJ/3CG>B&*7;9G9T9T?M?`?`7H7S7S;I;X;X8F8R8R:3A`(A` "A` B	A`
 'A` (A` $A` *A` (3A` 'A` A` )A` DA` "-A` AA`  <!A`" $#A`$ %A`& 5'A`( 7)A`* $=+A`, 5-A`.  9/A`0 61A`2 3A`4 
5A` A`F - -   & ;?W[	& 8& U	&
 
/& && = = " ae3]3	83j$>5CFMV	.)"L<+TZ
F$:o&+[Z ! !$!6$!EH$!QT$!`c$!	$!L 0 :H9T9T?M?`?`7H7S7S;I;X;X8F8R8R:3c3c 53c 7	3c
 $=3c 53c  93c 63c 3c 
3cj6 %*24&*26[[ [ 	[
 [ [ [ "[ [ "[ 0[  $[ 0[ 
[zL]0&$&2;&NQ&be&	&*)) ) "	)
 ) 0)  $) 
)v 37!TT T *	T
 T T T T T T T T %T T "T  0!T" 
#Tl,, /, 	,
 , , , 
,BXC)VVDjj+4jEHj_cj	j6L22$'25>2Zh2	#2@ ;A-3 0 8	
 + 
0& *-** 
* * ;A-3"'"L
L
 8L
 +	L

  L
 L
 
L
 L
rT   r   )ru   r   rZ   r   )r|   r   r}   r   rZ   r[   )prt   
__future__r   _annotationsr3  r  r  r  r  rR  ry  r   r   r   r   r   r	   collectionsr
   collections.abcr   r   r   enumr   	functoolsr   	itertoolsr   textwrapr   typesr   r   r   r   r   r   r   r   r   r   r   r   pydanticr   r   r    r!   r"   r#   pydantic._internal._reprr$   pydantic._internal._utilsr%   pydantic.dataclassesr&   pydantic.fieldsr'   pydantic_corer(   typing_inspectionr)   typing_inspection.introspectionr*   
exceptionsr-   utilsr.   r/   r0   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rz  rD   pydantic_settings.mainrE   rG   re   rx   r{   r   r   CliSubCommandCliPositionalArgrY   r   r  r  r  r  r  CliSuppressr   r\   CliUnknownArgsr   rJ   rT   rR   <module>r     s   - 2   	  
   $ 7 7  %   !    Y X 3 4 6 % + , ; ' F F     #3N 		 	B1U
i U
p CL!d(N23Q 112 ~T2L*::;L*::;,67l23<(49eB&7(RSU
)71: U
rT   