
    5pjj                        S r SSKrSSKrSSK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JrJrJrJrJr  SSKrS\S	\4S
 jr " S S5      r " S S\5      r " S S\5      rS\S\S	\R2                  4S jrS\\R8                     S	\\/\4   4S jrS\\/\4   S-  S\S-  S	\\\   S-  /\\   S-  4   4S jrS\S\ S\S-  S\S	\\/\4   S-  4
S jr!S\S	\"\\ 4   4S jr#S\S	\"\\S-  4   4S jr$S\S	\ 4S jr%S\S \ S	\4S! jr&S"\\/\4   S#\\/\4   S-  S	\\RN                  \RP                  \/\4   4S$ jr)S\S\S\S-  S%\S	\"\RP                  \\/\4   S-  4   4
S& jr*S'\S(\4   S	\"\\RP                     \+\\\/\4   4   \S-  4   4S) jr,S'\S(\4   S*\+\\\/\4   4   S+\S-  S	\S(\4   4S, jr-S-\S	\"\\4   4S. jr.S/\RP                  S0\RN                  S	\4S1 jr/S/S2S0\RN                  S3\ S\S	\4
S4 jr0S5S6S	\4S7 jr1S/S2S0\RN                  S8\S	\4S9 jr2 " S: S;\R0                  5      r3 " S< S=\R.                  5      r4S>\Rj                  S0\RN                  S?\Rl                  S	S4S@ jr7 " SA SB\Rj                  5      r8SSSSSSCSDSESESESSF.S'\S(\4   S\S-  SG\\Rj                     S-  SH\S-  SI\S-  SJ\S-  SK\SL\ SM\ SN\ SO\ SP\+\\4   S-  S	\Rj                  4SQ jjr9 " SR SS\Rt                  5      r;g)Ta  Minimal declaration layer over Click 8.x for the ``hf`` CLI.

This module vendors *only* the slice of Typer the CLI actually uses: turning
annotated function signatures (``Annotated[T, Option(...)]`` / ``Argument(...)``)
into Click parameters, and rendering argument/option help the way Typer did.
It exists so the CLI depends on Click's stable public API instead of Typer's
now-internal vendored Click (``typer._click``), which Typer reserves the right
to refactor at any release.

Deliberately *not* implemented (add a case here only when a command needs it):
rich rendering, shell-completion install commands, prompts/confirmation options,
env-var options, ``File``/``UUID`` params, ``count`` options, ``default_factory``.
Click's own machinery already handles exceptions, aborts, exits, and native
``_HF_COMPLETE`` shell completion, so none of Typer's ``main()`` overrides are
reproduced here.

The interesting logic mirrors four Typer functions, kept faithful so ``--help``
output stays byte-identical:
- :func:`_get_click_type`          <- ``typer.main.get_click_type``
- :func:`_build_click_param`       <- ``typer.main.get_click_param``
- :func:`_make_handler`            <- ``typer.main.get_callback``
- :class:`HfArgument` / :class:`HfOption` help records <- ``typer.core.Typer*``
    N)CallableSequence)datetime)Path)	UnionType)	AnnotatedAnyLiteralUnionget_args
get_originnamereturnc                 B    U R                  5       R                  SS5      $ )zWNormalize a Python identifier to a CLI name (``force_download`` -> ``force-download``)._-)lowerreplace)r   s    Z/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/huggingface_hub/cli/_framework.pyget_command_namer   2   s    ::<S))    c                       \ rS rSrSrSSSSSSSS.S\S\S-  S	\\-  S
\S\S\S\4   S-  S\	S-  S\
R                  S-  SS4S jjrSrg)ParameterInfo>   u  Base marker holding the (tiny) set of Click knobs the CLI actually sets.

``callback`` is a Typer-style value parser ``fn(value) -> parsed`` — it does NOT
receive Click's ``(ctx, param, value)``. It consumes the enum/list convertors, so
``value`` is already converted when it runs.
NTFhelpshow_defaulthiddenis_eagercallbackmin
click_typeparam_declsr   r   r   r   r    .r!   r"   r   c                x    [        U5      U l        Xl        X l        X0l        X@l        XPl        X`l        Xpl        g N)	listr#   r   r   r   r   r    r!   r"   )	selfr   r   r   r   r    r!   r"   r#   s	            r   __init__ParameterInfo.__init__F   s5      ,	(  $r   )r    r"   r   r   r   r!   r#   r   )__name__
__module____qualname____firstlineno____doc__strboolr   r	   intclick	ParamTyper(   __static_attributes__ r   r   r   r   >   s      #'.2-1%% Dj% Sj	%
 % % 38$t+% 4Z% OOd*% 
% %r   r   c                       \ rS rSrSrSrg)Option[   zKDeclare a CLI option, e.g. ``Annotated[str | None, Option("--revision")]``.r5   Nr*   r+   r,   r-   r.   r4   r5   r   r   r7   r7   [   s    Ur   r7   c                       \ rS rSrSrSrg)Argument_   zGDeclare a positional CLI argument, e.g. ``Annotated[str, Argument()]``.r5   Nr9   r5   r   r   r;   r;   _   s    Qr   r;   
annotationinfoc                    UR                   b  UR                   $ U [        L a  [        R                  $ U [        L a  [        R
                  $ U [        L a;  UR                  b  [        R                  " UR                  S9$ [        R                  $ U [        L a;  UR                  b  [        R                  " UR                  S9$ [        R                  $ U [        L a  [        R                  " [        S9$ U [        L a  [        R                  " 5       $ [!        U ["        5      (       a  [%        U [&        R(                  5      (       ab  U  Vs/ s H  o"R*                  PM     nn[-        S U 5       5      (       d  [/        SU R0                  < S35      e[        R2                  " U5      $ [5        U 5      [6        L a9  [        R2                  " [9        U 5       Vs/ s H  n[        U5      PM     sn5      $ [/        SU < S35      es  snf s  snf )z>Map a (already unwrapped) annotation to a Click ``ParamType``.)r!   )	path_typec              3   B   #    U  H  n[        U[        5      v   M     g 7fr%   )
isinstancer/   ).0values     r   	<genexpr>"_get_click_type.<locals>.<genexpr>z   s     >ve:eS))vs   zUnsupported enum z&: only str-valued enums are supported.zUnsupported CLI annotation z/. Add a case in `_framework._get_click_type()`.)r"   r/   r2   STRINGr0   BOOLr1   r!   IntRangeINTfloat
FloatRangeFLOATr   r   DateTimerB   type
issubclassenumEnumrD   all	TypeErrorr*   Choicer   r
   r   )r=   r>   itemvaluesrD   s        r   _get_click_typerX   h   s   "S||TzzS/3xx/Cu~~$((+RRU151EuDHH-V5;;VTzzD))X~~*d##
:tyy(I(I)34**4>v>>> /
0C0C/FFlmnn||F##*(||Xj5IJ5IESZ5IJKK
1*?no
pp 5 Ks   HH		enum_typec                    ^ U  Vs0 s H  n[        UR                  5      U_M     snmS[        S[        4U4S jjnU$ s  snf )zGMap a parsed choice string back to its ``Enum`` member (mirrors Typer).rD   r   c                 @   > U b  TR                  [        U 5      5      $ g r%   )getr/   )rD   	value_maps    r   	convertor"_enum_convertor.<locals>.convertor   s    ==U,,r   )r/   rD   r	   )rY   memberr^   r]   s      @r   _enum_convertorra      sF    9BCvV\\"F*CI  
  Ds    ?innerdefault_valuec                 \   ^ ^ S[         [           S-  S[        [           S-  4UU 4S jjnU$ )zUTurn Click's tuple (from ``multiple=True``) into a list, applying ``inner`` per item.rD   Nr   c                 ~   > U b  Tc  [        U 5      S:X  a  g U  Vs/ s H  nT(       a  T" U5      OUPM     sn$ s  snf )Nr   )len)rD   rV   rc   rb   s     r   r^   "_list_convertor.<locals>.convertor   s=    =]2s5zQ;@A54ud$.5AAAs   :)r   r	   r&   )rb   rc   r^   s   `` r   _list_convertorrh      s9    
B#- B$s)d2B B B
 r   is_listc                     SnUR                   c?  [        U [        5      (       a*  [        U [        R
                  5      (       a  [        U 5      nU(       a  [        XB5      $ U$ )zBuild the value convertor for a param (``None`` when no coercion is needed).

An explicit ``click_type`` (e.g. ``SoftChoice``) owns its own conversion, so no
enum convertor is added on top of it.
N)r"   rB   rO   rP   rQ   rR   ra   rh   )r=   ri   rc   r>   rb   s        r   _make_convertorrk      sO     E:j$#?#?Jz[_[d[dDeDe
+u44Lr   c                 <   [        U 5      nU[        [        4;   aY  [        U 5       Vs/ s H  o"[	        S5      Ld  M  UPM     nn[        U5      S:w  a  [        SU < S35      eUS   n [        U 5      nU[        [        4;   a  [        U 5      S   S4$ U S4$ s  snf )zVStrip ``T | None`` / ``Optional[T]`` and ``list[T]``; return ``(base_type, is_list)``.N   zUnsupported union annotation z!; only ``T | None`` is supported.r   TF)	r   r   r   r   rO   rf   rT   r&   r   )r=   originargnon_nones       r   _unwrap_optional_and_listrq      s    
#F%###+J#7Q#7Cd4j;PC#7Qx=A;J>Ijklla[
J'$!!
#A&,,u Rs
   BBc                     [        U 5      [        L aR  [        U 5      n[        S USS  5       S5      nUc'  [        S USS  5       S5      =n(       a
  [	        USS9nUS   U4$ U S4$ )z[Split ``Annotated[T, Option(...)]`` into ``(T, marker)``; ``(annotation, None)`` otherwise.c              3   T   #    U  H  n[        U[        5      (       d  M  Uv   M      g 7fr%   )rB   r   rC   metas     r   rE   #_split_annotated.<locals>.<genexpr>   s     TJt]4Stts   (	(rm   Nc              3   J   #    U  H  n[        U5      (       d  M  Uv   M     g 7fr%   )_is_typer_markerrt   s     r   rE   rv      s     4ihdRbcgRhTThs   #	#Tfrom_annotatedr   )r   r   r   next_from_typer_marker)r=   argsmarkertyper_markers       r   _split_annotatedr      sz    **
#TQRTVZ[>t4id12h4iko/pp|p'TJFAwtr   objc                     [        U 5      R                  R                  S5      S   S:H  =(       a    [        U 5      R                  S;   $ )N.r   typer)
OptionInfoArgumentInfo)rO   r+   	partitionr*   )r   s    r   rx   rx      s<    9))#.q1W<ucASASWuAuur   ru   rz   c                   [        [        U SS5      =(       d    S5      n[        U 5      R                  S:X  a5  [        U SS5      nU(       a  [	        U[
        5      (       a  U/UQn[        nO[        nU" U[        U SS5      [        U SS	5      [        U S
S5      [        U SS5      [        U SS5      [        U SS5      [        U SS5      S.6$ )zKTranslate a ``typer.models.OptionInfo`` / ``ArgumentInfo`` into our marker.r#   Nr5   r   default.r   r   Tr   Fr   r    r!   r"   r   )r&   getattrrO   r*   rB   r/   r7   r;   )ru   rz   r#   r   clss        r   r|   r|      s    wt]D9?R@KDzl* $	3/j#66"1[1K#)	T64(T>48tXu-z51z40D%&4t4	 	r   user_callbackr^   c                 t   ^ ^ S[         R                  S[         R                  S[        S[        4UU 4S jjnU$ )zSAdapt a Typer-style value parser ``fn(value) -> parsed`` to a Click param callback.ctxparamrD   r   c                 :   > T" T(       a  T" U5      5      $ U5      $ r%   r5   )r   r   rD   r^   r   s      r   click_callback,_wrap_param_callback.<locals>.click_callback   s    Yu-FFFFr   )r2   Context	Parameterr	   )r   r^   r   s   `` r   _wrap_param_callbackr      s@    
GEMM G%// G# GRU G G r   signature_defaultc                    U[         R                  R                  L nU(       a  SOUn[        U[        R
                  5      (       a  UR                  nUc  U(       a
  [        5       O	[        5       n[        U5      u  pg[        XgXR5      nUR                  b  [        UR                  U5      n	Sn
OSn	Un
[        U[        5      (       aP  [        U /[        Xb5      UUU(       a  SOSUR                  U	UR                   UR"                  UR$                  S9
nX4$ U[&        L nU /nUR(                  (       a  UR+                  UR(                  5        O.[-        U 5      nUR/                  U(       a  SU SU 3OSU 35        [1        UU(       a  SO
[        Xb5      UUUUUR                  U	UR                   UR"                  UR$                  S9nX4$ )zXBuild a Click ``Parameter`` (and its post-parse value convertor) for one function param.Nrm   )	rO   requiredr   nargsr   r    r   r   r   z--z/--no-)
rO   r   r   is_flagmultipler   r    r   r   r   )inspectr   emptyrB   rQ   rR   rD   r;   r7   rq   rk   r    r   
HfArgumentrX   r   r   r   r   r0   r#   extendr   appendHfOption)r   r=   r>   r   r   rc   	base_typeri   r^   param_callbackhandler_convertorargumentr   declskebaboptions                   r   _build_click_paramr      s    !G$5$5$;$;;H$D*;M-++%++|%xz682:>I	MHI }} 4HXa4b9=%$!!F 1!"Q]]#**;;
 ** 4GFET%%& &'r%ug.E7|LT/)"BYY&&{{F $$r   func.c                    / n0 nSn[         R                  " U 5      R                  R                  5        GHJ  u  pEUR                  [         R
                  R                  La  UR                  O[        n[        U5      u  px[        U[        5      (       aU  [        U[        R                  5      (       d2  UR                  R                  S5      S   S:X  a  UR                   S:X  a  UnM  UR"                  n	[%        U	5      (       a;  Uc
  ['        U	SS9n[)        U	SS	5      n
U
S	L a  [         R
                  R                  OU
n	[+        XGX5      u  pUb  UR,                  b  XUR,                  '   UR/                  U5        GMM     XU4$ )
zLIntrospect ``func`` and return ``(params, convertors, context_param_name)``.Nr   r   r   r   Fry   r   .)r   	signature
parametersitemsr=   r   r   r/   r   rB   rO   rP   r2   r   r+   r   r*   r   rx   r|   r   r   r   r   )r   params
convertorscontext_param_namer   	sig_paramr=   r   r>   r   marker_defaultclick_paramr^   s                r   _build_paramsr   ?  sb    %'F24J%)",,T2==CCE .7-A-AIZIZI`I`-`Y))fi
*:6	i&&y%--00 $$..s3A6'AiFXFX\eFe!%%---..|)*;ER$%6	3GN;IS;P 1 1 7 7Vd!3DT!] [%5%5%A+4{''(k"1 F2 111r   r   r   c                 f   ^ ^^ S[         S[         4UUU 4S jjn[        R                  " UT 5        U$ )zZWrap ``func`` so Click's kwargs map back to it, applying convertors and injecting the ctx.kwargsr   c                     > U R                  5        VVs0 s H  u  pXT;   a  TU   " U5      OU_M     nnnTb  [        R                  " 5       UT'   T" S0 UD6$ s  snnf )Nr5   )r   r2   get_current_context)r   keyrD   call_kwargsr   r   r   s       r   handler_make_handler.<locals>.handleri  si    gmgsgsguvguYcY\sj7HZ_U3eSguv).3.G.G.IK*+"k"" ws   A)r	   	functoolsupdate_wrapper)r   r   r   r   s   ``` r   _make_handlerr   b  s2    ## ## # # Wd+Nr   optc                 p    U SS nUR                  5       (       a  SU 4$ U SS U:X  a
  U SS U SS 4$ XSS 4$ )zPSplit an option string into ``(prefix, name)`` (Click's ``split_opt``, inlined).Nrm       )isalnum)r   firsts     r   
_split_optr   z  sT    GE}}3w
1Qx52AwABab'>r   r   r   c                 l    UR                   nSUl          U R                  USS9X!l         $ ! X!l         f = f)NTF)call)resilient_parsingget_default)r   r   	resilients      r   _extract_default_help_strr     s:    %%I C*  5 1 )	s   + 3zHfArgument | HfOptionshow_default_is_strc                   ^ ^^ T(       a  ST R                    S3$ [        U[        [        45      (       a  SR	                  UU U4S jU 5       5      $ [        U[
        R                  5      (       a  [        UR                  5      $ [        R                  " U5      (       a  g[        T [        5      (       a{  T R                  (       aj  T R                  (       aY  U(       a7  T R                  (       a  [        T R                  S   5      S   $ [        U5      $ [        T R                  S   5      S   $ [        T [        5      (       a*  T R                  (       a  T R                  (       d  U(       d  g[        U5      $ )	N()z, c              3   @   >#    U  H  n[        TTTU5      v   M     g 7fr%   )_default_string)rC   rV   r   r   r   s     r   rE   "_default_string.<locals>.<genexpr>  s#     j\iTX5H$OO\is   z	(dynamic)r   rm   r   )r   rB   r&   tuplejoinrQ   rR   r/   rD   r   
isfunctionr   is_bool_flagsecondary_optsoptsr   )r   r   r   rc   s   ``` r   r   r     s    5%%&a((-$//yyj\ijjj-++=&&''-((%""u'9'9e>R>R38:::ejjm,Q/U3}CUU%..q12155%""u'9'9%BVBV_l}r   
param_typez!click.IntRange | click.FloatRangec                 X   U R                   c$  SU R                  (       a  SOS U R                   3$ U R                  c$  SU R                  (       a  SOS U R                    3$ U R                  (       a  SOSnU R                  (       a  SOSnU R                    U SU U R                   3$ )zHuman-readable range hint like ``x>=1`` or ``1<=x<10``.

Reproduces click's private ``_NumberRangeBase._describe_range()`` using the public
``IntRange``/``FloatRange`` attributes, so the framework stays on Click's public API.
x<z<=>z>=)r!   max_openmaxmin_open)r   leftrights      r   _describe_number_ranger     s     ~~*--3488HII~~*--3488HII%%34D&&CDEnndV1UGJNN+;<<r   	base_helpc                    / n[        X5      n[        U R                  [        5      nU(       d%  UbI  U R                  (       d  UR                  (       a'  [	        XXT5      nU(       a  UR                  SU 35        [        U [        5      (       af  [        U R                  [        R                  [        R                  45      (       a-  [        U R                  5      nU(       a  UR                  U5        U R                  (       a  UR                  S5        U(       a%  SSR                  U5       S3nU(       a  U SU 3$ U$ U$ )zWAppend the ``[default: ...; required]`` suffix to a help string (shared by arg/option).z	default: r   [; ]z  )r   rB   r   r/   r   r   r   rO   r2   rI   rL   r   r   r   )	r   r   r   extrarc   r   default_string	range_strsuffixs	            r   _build_help_extrar     s    E-e9M$U%7%7=}8e>P>PTWTdTd(5HXLL9^$456%""z%**u~~uO_O_>`'a'a*5::6	LL#~~Z TYYu%&a(+4)Bvh'@&@r   c                      ^  \ rS rSrSrSSSS.S\\   S\S-  S	\\-  S
\S\SS4U 4S jjjr	S\
R                  S\4S jrS\
R                  S\\\4   S-  4S jrSrU =r$ )r   i  zPPositional argument that renders help text and a metavar (Click's does neither).NTF)r   r   r   r#   r   r   r   attrsr   c                L   > X l         X0l        X@l        [        TU ]  " U40 UD6  g r%   )r   r   r   superr(   )r'   r#   r   r   r   r   	__class__s         r   r(   HfArgument.__init__  s'     	(..r   r   c                    U R                   b;  U R                   nU R                  (       d  UR                  S5      (       d  SU S3nU$ U R                  =(       d    SR	                  5       nU R                  (       d  SU S3nU R
                  R                  XS9nU(       a  USU 3-  nU R                  S:w  a  US-  nU$ )Nr   r   r   r   :rm   z...)metavarr   
startswithr   upperrO   get_metavarr   )r'   r   vartype_vars       r   make_metavarHfArgument.make_metavar  s    <<#,,C==)<)<#ajJyyB%%'}}cU!*C99(((7Qxj>!C::?5LC
r   c                     U R                   (       a  g U R                  US9[        XU R                  =(       d    S5      4$ )Nr   r   )r   r   r   r   r'   r   s     r   get_help_recordHfArgument.get_help_record  s6    ;;  S )+<T		UW+XXXr   )r   r   r   )r*   r+   r,   r-   r.   r   r/   r0   r	   r(   r2   r   r   r   r  r4   __classcell__)r   s   @r   r   r     s    Z  #'/c]/ Dj	/
 Sj/ / / 
/ / #  Y5== YU38_t5K Y Yr   r   c                   `    \ rS rSr% Sr\\-  \S'   S\R                  S\
\\4   S-  4S jrSrg)	r   i  zJOption whose help record ports Typer's default/metavar rendering verbatim.r   r   r   Nc                 l  ^ ^^ T R                   (       a  g SmS[        [           S[        4UUU 4S jjnU" T R                  5      /nT R                  (       a!  UR                  U" T R                  5      5        [        T TT R                  =(       d    S5      nT(       a  SOSR                  U5      U4$ )NFr   r   c                    > [         R                  R                  U 5      u  pU(       a  SmTR                  (       d&  TR                  (       d  USTR                  TS9 3-  nU$ )NT r   )r2   
formattingjoin_optionsr   countr   )r   rvany_slashesany_prefix_is_slashr   r'   s      r   _write_opts-HfOption.get_help_record.<locals>._write_opts  sV    #..;;DAOB&*#<<

$+++4566Ir   r   r   z / )	r   r   r/   r   r   r   r   r   r   )r'   r   r  r  	help_textr  s   ``   @r   r  HfOption.get_help_record  s    ;;#	hsm 	 	 	 $))$%IIk$"5"567%dCbA	+<<R@)KKr   r5   )r*   r+   r,   r-   r.   r0   r/   __annotations__r2   r   r   r  r4   r5   r   r   r   r     s6    T*L5== LU38_t5K Lr   r   command	formatterc                    / n/ nU R                  U5       H_  nUR                  U5      nUc  M  UR                  S:X  a  UR                  U5        M<  UR                  S:X  d  MN  UR                  U5        Ma     U(       a+  UR	                  S5         UR                  U5        SSS5        U(       a,  UR	                  S5         UR                  U5        SSS5        gg! , (       d  f       NB= f! , (       d  f       g= f)zLRender params split into "Arguments" and "Options" sections (mirrors Typer).Nr   r   	ArgumentsOptions)
get_paramsr  param_type_namer   sectionwrite_dl)r  r   r  r}   r   r   records          r   _format_paramsr     s    "$D"$D##C(&&s+>  J.KK""h.KK ) {+t$ ,y)t$ *)  ,+ *)s   CC0
C-0
C>c                   V    \ rS rSrSrS\R                  S\R                  SS4S jrSr	g)		HfCommandi$  zJLeaf command that renders arguments and options in separate help sections.r   r  r   Nc                     [        XU5        g r%   )r   r'   r   r  s      r   format_optionsHfCommand.format_options'  s    t),r   r5   )
r*   r+   r,   r-   r.   r2   r   HelpFormatterr%  r4   r5   r   r   r"  r"  $  s*    T-%-- -E<O<O -TX -r   r"  z	[OPTIONS]TF)r   r   r   epilog
short_helpoptions_metavaradd_help_optionno_args_is_helpr   
deprecatedcontext_settingsr   r   r(  r)  r*  r+  r,  r   r-  r.  c                   [        U 5      u  pn[        XU5      nU(       a  [        R                  " U5      O[        R                  " U 5      nU=(       d    [
        " Ub  UO[        U R                  5      UUUUUUUUU	U
U=(       d    0 S9$ )zuBuild a Click ``Command`` from a function with ``Annotated`` params.

Replaces ``typer.main.get_command_from_info``.
)r   r    r   r   r(  r)  r*  r+  r,  r   r-  r.  )r   r   r   cleandocgetdocr"  r   r*   )r   r   r   r   r(  r)  r*  r+  r,  r   r-  r.  r   r   r   r   command_helps                    r   build_commandr3  +  s    & .;4-@*F*D.@AG-17##D)w~~d7KL9%T+;DMM+J''')/R r   c                      \ rS rSr% Sr\r\\R                     \
S'   S\R                  S\R                  SS4S jrS\R                  S\\   4S	 jr SSS
.S\S-  S\\R                     S-  S\S\\S\4   /\S\4   4   4S jjjrSS.S\R(                  S\S\SS4S jjrSS.S\S\\S\4   /\S\4   4   4S jjrSrg)HfGroupiQ  a  Command group with the decorator API the CLI relies on (``command``/``callback``/``add_group``).

Subclasses (see ``HFCliTyperGroup``) layer on styling, aliases, topics and error
enrichment; this base only wires functions to Click via :func:`build_command`.
command_classr   r  r   Nc                 >    [        XU5        U R                  X5        g r%   )r   format_commandsr$  s      r   r%  HfGroup.format_options[  s    t),S,r   c                 ,    [        U R                  5      $ r%   )r&   commandsr  s     r   list_commandsHfGroup.list_commands_  s    DMM""r   )r   r   r   r   .c                `   ^ ^^^ S[         S[        4   S[         S[        4   4UUUU 4S jjnU$ )Nr   .r   c                    > [        U 4TT=(       d    TR                  S.TD6nTR                  XR                  5        U $ )N)r   r   )r3  r6  add_commandr   )r   r  r   r   r   r'   s     r   	decorator"HfGroup.command.<locals>.decoratorf  s<    #D]t9R@R@R]V\]GWll3Kr   r   r	   )r'   r   r   r   rA  s   ```` r   r  HfGroup.commandc  s5    	HS#X. 	8CH3E 	 	
 r   F)r   groupr   c                >    X!l         X1l        U R                  X5        g)z[Register a subgroup under ``name`` (which may carry pipe aliases, e.g. ``"repos | repo"``).N)r   r   r@  )r'   rE  r   r   s       r   	add_groupHfGroup.add_groupm  s    
%r   )invoke_without_commandrI  c                X   ^ ^ S[         S[        4   S[         S[        4   4UU 4S jjnU$ )zRegister the function invoked for this group (named ``group_callback`` because Click
already uses the ``callback`` attribute for the group's own handler).r   .r   c                    > [        U 5      u  pn[        XU5      Tl        / TR                  QUQTl        TTl        T(       a  STl        TR                  c6  U R                  (       a%  [        R                  " U R                  5      Tl        U $ )Nz[COMMAND] [ARGS]...)
r   r   r    r   rI  subcommand_metavarr   r.   r   r0  )r   r   r   r   rI  r'   s       r   rA  )HfGroup.group_callback.<locals>.decoratory  su    5B45H2F 2)$<NODM1DKK1&1DK*@D'%*?'yy T\\#,,T\\:	Kr   rC  )r'   rI  rA  s   `` r   group_callbackHfGroup.group_callbacks  s5    
	HS#X. 
	8CH3E 
	 
	 r   )r    r   rI  r   rL  r%   )r*   r+   r,   r-   r.   r"  r6  rO   r2   Commandr  r   r'  r%  r&   r/   r<  r	   r   r  Groupr0   rG  rN  r4   r5   r   r   r5  r5  Q  s*    *3M4&2-%-- -E<O<O -TX -# #49 #
 "&LP$J/3EMM/BT/I\_	8CH%&c(::	; JO &u{{ &S &$ &SW & 16)-	8CH%&c(::	; r   r5  )<r.   rQ   r   r   collections.abcr   r   r   pathlibr   typesr   typingr   r	   r
   r   r   r   r2   r/   r   r   r7   r;   r3   rX   rO   rR   ra   r&   rh   r0   rk   r   rq   r   rx   r|   r   r   r   r   dictr   r   r   r   r   r   r   r   r   rP  r'  r   r"  r3  rQ  r5  r5   r   r   <module>rW     s  0    .    G G *3 *3 *% %:V] VR} Rq q= qU__ q8	tDII 	8SE3J3G 	
SE3J$&
7:Tz
x}t#$d3i$&667
"36:ERseSjD  # %T	2B  sMD4H/H)I .v# v$ vS T m :SE3J'4<cUCZ4H44Ou}}eoos3S89>%
>%>%&3d&:>%OR>%
5??HcUCZ04778>%B 2
38
 2
4 $sHcUCZ,@'@"A3:MN 2F
38
S(C5#:../ d
 c3h	0C E#s(O *U__ *5== *S *").MQbe*='J =s =4 5== UX ]` ,$Y $YNLu|| LB%EMM % %%J]J] %bf %(- - &*!& !.2#
38
# *# 
emm	t	#	#
 *# $J# d
# # # # # # 38nt+# ]]#L4ekk 4r   