Ë
    ÂÓ^jäj  ã                   óæ  — d Z ddlZddlZddlZddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZ ddlZded	efd
„Z G d„ d«      Z G d„ de«      Z G d„ de«      Zdeded	ej2                  fd„Zdeej8                     d	eegef   fd„Zdeegef   dz  dedz  d	eee   dz  gee   dz  f   fd„Zdede dedz  ded	eegef   dz  f
d„Z!ded	e"ee f   fd„Z#ded	e"eedz  f   fd„Z$ded	e fd„Z%ded e d	efd!„Z&d"eegef   d#eegef   dz  d	eejN                  ejP                  egef   fd$„Z)dedededz  d%ed	e"ejP                  eegef   dz  f   f
d&„Z*d'ed(ef   d	e"eejP                     e+eeegef   f   edz  f   fd)„Z,d'ed(ef   d*e+eeegef   f   d+edz  d	ed(ef   fd,„Z-d-ed	e"eef   fd.„Z.d/ejP                  d0ejN                  d	efd1„Z/d/d2d0ejN                  d3e ded	ef
d4„Z0d5d6d	efd7„Z1d/d2d0ejN                  d8ed	efd9„Z2 G d:„ d;ej0                  «      Z3 G d<„ d=ej.                  «      Z4d>ejj                  d0ejN                  d?ejl                  d	dfd@„Z7 G dA„ dBejj                  «      Z8ddddddCdDdEdEdEddFœd'ed(ef   dedz  dGeejj                     dz  dHedz  dIedz  dJedz  dKedLe dMe dNe dOe dPe+eef   dz  d	ejj                  fdQ„Z9 G dR„ dSejt                  «      Z;y)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   — | j                  «       j                  dd«      S )zWNormalize a Python identifier to a CLI name (``force_download`` -> ``force-download``).Ú_ú-)ÚlowerÚreplace)r   s    úi/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/huggingface_hub/cli/_framework.pyÚget_command_namer   2   s   € à�:‰:‹<×Ñ  SÓ)Ð)ó    c                   óŠ   — e Zd ZdZddddddddœdededz  deez  d	ed
ededef   dz  dedz  de	j                  dz  ddfd„Zy)ÚParameterInfou,  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                ó†   — t        |«      | _        || _        || _        || _        || _        || _        || _        || _        y ©N)	Úlistr"   r   r   r   r   r   r    r!   )	Úselfr   r   r   r   r   r    r!   r"   s	            r   Ú__init__zParameterInfo.__init__F   sC   € ô   Ó,ˆÔØˆŒ	Ø(ˆÔØˆŒØ ˆŒØ ˆŒØˆŒØ$ˆ�r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚboolr   r	   ÚintÚclickÚ	ParamTyper'   © r   r   r   r   >   sž   „ ñð  Ø#'ØØØ.2ØØ-1ò%àð%ð �D‰jð%ð ˜S‘jð	%ð
 ð%ð ð%ð ˜3 ˜8Ñ$ tÑ+ð%ð �4‰Zð%ð —O‘O dÑ*ð%ð 
ô%r   r   c                   ó   — e Zd ZdZy)ÚOptionzKDeclare a CLI option, e.g. ``Annotated[str | None, Option("--revision")]``.N©r(   r)   r*   r+   r1   r   r   r3   r3   [   s   „ ÚUr   r3   c                   ó   — e Zd ZdZy)ÚArgumentzGDeclare a positional CLI argument, e.g. ``Annotated[str, Argument()]``.Nr4   r1   r   r   r6   r6   _   s   „ ÚQr   r6   Ú
annotationÚinfoc                 óâ  — |j                   �|j                   S | t        u rt        j                  S | t        u rt        j
                  S | t        u r<|j                  � t        j                  |j                  ¬«      S t        j                  S | t        u r<|j                  � t        j                  |j                  ¬«      S t        j                  S | t        u rt        j                  t        ¬«      S | t        u rt        j                  «       S t!        | t"        «      rst%        | t&        j(                  «      rY| D �cg c]  }|j*                  ‘Œ }}t-        d„ |D «       «      st/        d| j0                  ›d�«      ‚t        j2                  |«      S t5        | «      t6        u r5t        j2                  t9        | «      D �cg c]  }t        |«      ‘Œ c}«      S t/        d| ›d�«      ‚c c}w c c}w )z>Map a (already unwrapped) annotation to a Click ``ParamType``.)r    )Ú	path_typec              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr$   )Ú
isinstancer,   )Ú.0Úvalues     r   ú	<genexpr>z"_get_click_type.<locals>.<genexpr>z   s   è ø€ Ò>¨e”:˜e¤S×)Ñ>ùs   ‚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,   r/   ÚSTRINGr-   ÚBOOLr.   r    ÚIntRangeÚINTÚfloatÚ
FloatRangeÚFLOATr   r   ÚDateTimer<   ÚtypeÚ
issubclassÚenumÚEnumr>   ÚallÚ	TypeErrorr(   ÚChoicer   r
   r   )r7   r8   ÚitemÚvaluesr>   s        r   Ú_get_click_typerQ   h   s}  € à‡�Ð"Ø�‰ÐØ”SÑÜ�|‰|ÐØ”TÑÜ�z‰zÐØ”SÑØ/3¯x©xÐ/CŒu�~‰~ $§(¡(Ô+ÐRÌÏÉÐRØ”UÑØ15·±Ð1EŒu×Ñ D§H¡HÔ-ÐVÌ5Ï;É;ÐVØ”TÑÜ�z‰z¤DÔ)Ð)Ø”XÑÜ�~‰~ÓÐÜ�*œdÔ#¬
°:¼t¿y¹yÔ(IØ)3Ö4 �$—*“*Ð4ˆÐ4ÜÑ>°vÔ>Ô>ô Ð/°
×0CÑ0CÐ/FÐFlÐmÓnÐnÜ�|‰|˜FÓ#Ð#Ü�*Ó¤Ñ(Ü�|‰|´X¸jÓ5IÖJ¨EœS �ZÒJÓKÐKÜ
Ð1°*°Ð?nÐoÓ
pÐpùò 5ùò Ks   Ä=G'Æ?G,Ú	enum_typec                 ó~   ‡— | D �ci c]  }t        |j                  «      |“Œ c}Šdt        dt        fˆfd„}|S c c}w )zGMap a parsed choice string back to its ``Enum`` member (mirrors Typer).r>   r   c                 ó>   •— | �‰j                  t        | «      «      S y r$   )Úgetr,   )r>   Ú	value_maps    €r   Ú	convertorz"_enum_convertor.<locals>.convertorˆ   s   ø€ ØÐØ—=‘=¤ U£Ó,Ð,Ør   )r,   r>   r	   )rR   ÚmemberrW   rV   s      @r   Ú_enum_convertorrY   „   sB   ø€ à9BÖC¨v”�V—\‘\Ó" FÑ*ÒC€Iðœð ¤õ ð
 Ðùò Ds   †:ÚinnerÚdefault_valuec                 óX   ‡ ‡— dt         t           dz  dt        t           dz  fˆˆ fd„}|S )zUTurn Click's tuple (from ``multiple=True``) into a list, applying ``inner`` per item.r>   Nr   c                 óh   •— | �‰€t        | «      dk(  ry | D �cg c]  }‰r ‰|«      n|‘Œ c}S c c}w )Nr   )Úlen)r>   rO   r[   rZ   s     €€r   rW   z"_list_convertor.<locals>.convertor•   s9   ø€ Øˆ=˜]Ð2´s¸5³zÀQ²ØØ;@ÖA°4™u‘�d”¨$Ñ.ÒAÐAùÒAs   ™/)r   r	   r%   )rZ   r[   rW   s   `` r   Ú_list_convertorr_   �   s3   ù€ ð
Bœ¤#™¨Ñ-ð B´$´s±)¸dÑ2Bö Bð
 Ðr   Úis_listc                 ó¨   — d}|j                   €5t        | t        «      r%t        | t        j
                  «      rt        | «      }|rt        ||«      S |S )zÐBuild 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!   r<   rH   rI   rJ   rK   rY   r_   )r7   r`   r[   r8   rZ   s        r   Ú_make_convertorrb   �   sK   € ð €EØ‡�Ð¤:¨j¼$Ô#?ÄJÈzÔ[_×[dÑ[dÔDeÜ 
Ó+ˆÙÜ˜u mÓ4Ð4Ø€Lr   c                 ó(  — t        | «      }|t        t        fv rSt        | «      D �cg c]  }|t	        d«      usŒ|‘Œ }}t        |«      dk7  rt        d| ›d�«      ‚|d   } t        | «      }|t        t        fv rt        | «      d   dfS | dfS c c}w )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   rH   r^   rM   r%   r   )r7   ÚoriginÚargÚnon_nones       r   Ú_unwrap_optional_and_listrh   ­   s¤   € ä˜
Ó#€FØ”%œÐ#Ñ#Ü#+¨JÓ#7ÖQ˜C¸3ÄdÈ4ÃjÒ;P’CÐQˆÐQÜˆx‹=˜AÒÜÐ;¸J¸>ÐIjÐkÓlÐlØ˜a‘[ˆ
Ü˜JÓ'ˆØ”$œÐ!Ñ!Ü˜
Ó# AÑ&¨Ð,Ð,Ø�uÐÐùò Rs
   §BºBc                 óÊ   — t        | «      t        u rOt        | «      }t        d„ |dd D «       d«      }|€%t        d„ |dd D «       d«      x}rt	        |d¬«      }|d   |fS | dfS )z[Split ``Annotated[T, Option(...)]`` into ``(T, marker)``; ``(annotation, None)`` otherwise.c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr$   )r<   r   ©r=   Úmetas     r   r?   z#_split_annotated.<locals>.<genexpr>¿   s   è ø€ ÒT ´J¸tÄ]Õ4S”tÑTùs   ‚˜rd   Nc              3   ó8   K  — | ]  }t        |«      sŒ|–— Œ y ­wr$   )Ú_is_typer_markerrk   s     r   r?   z#_split_annotated.<locals>.<genexpr>À   s   è ø€ Ò4i¸dÔRbÐcgÕRh´TÑ4iùs   ‚“T©Úfrom_annotatedr   )r   r   r   ÚnextÚ_from_typer_marker)r7   ÚargsÚmarkerÚtyper_markers       r   Ú_split_annotatedrv   »   sz   € ä�*Ó¤Ñ*Ü˜
Ó#ˆÜÑT¨¨Q¨R¨ÔTÐVZÓ[ˆØˆ>¬tÑ4iÀdÈ1È2ÀhÔ4iÐkoÓ/pÐp˜|ÐpÜ'¨ÀTÔJˆFØ�A‰w˜ˆÐØ�tÐÐr   Úobjc                 óˆ   — t        | «      j                  j                  d«      d   dk(  xr t        | «      j                  dv S )Nú.r   Útyper)Ú
OptionInfoÚArgumentInfo)rH   r)   Ú	partitionr(   )rw   s    r   rn   rn   Ò   s<   € Ü�‹9×Ñ×)Ñ)¨#Ó.¨qÑ1°WÑ<ÒuÄÀcÃ×ASÑASÐWuÐAuÐur   rl   rp   c                ó~  — t        t        | dd«      xs d«      }t        | «      j                  dk(  r+t        | dd«      }|rt	        |t
        «      r|g|¢}t        }nt        } ||t        | dd«      t        | dd	«      t        | d
d«      t        | dd«      t        | dd«      t        | dd«      t        | dd«      dœŽS )zKTranslate a ``typer.models.OptionInfo`` / ``ArgumentInfo`` into our marker.r"   Nr1   r{   Údefault.r   r   Tr   Fr   r   r    r!   r   )r%   ÚgetattrrH   r(   r<   r,   r3   r6   )rl   rp   r"   r   Úclss        r   rr   rr   Ö   sÃ   € ä”w˜t ]°DÓ9Ò?¸RÓ@€KÜˆDƒz×Ñ˜lÒ*ô ˜$ 	¨3Ó/ˆÙœj¨´#Ô6Ø"Ð1 [Ð1ˆKÜ#)‰äˆÙØ	Ü�T˜6 4Ó(Ü˜T >°4Ó8Ü�t˜X uÓ-Ü˜˜z¨5Ó1Ü˜˜z¨4Ó0Ü�D˜% Ó&Ü˜4 ¨tÓ4ò	ð 	r   Úuser_callbackrW   c                 óp   ‡ ‡— dt         j                  dt         j                  dt        dt        fˆˆ fd„}|S )zSAdapt a Typer-style value parser ``fn(value) -> parsed`` to a Click param callback.ÚctxÚparamr>   r   c                 ó0   •—  ‰‰r ‰|«      «      S |«      S r$   r1   )r„   r…   r>   rW   r‚   s      €€r   Úclick_callbackz,_wrap_param_callback.<locals>.click_callbackø   s   ø€ Ù±™Y uÓ-ÓFÐFÀÓFÐFr   )r/   ÚContextÚ	Parameterr	   )r‚   rW   r‡   s   `` r   Ú_wrap_param_callbackrŠ   ó   s:   ù€ ð
GœEŸM™Mð G´%·/±/ð GÌ#ð GÔRUö Gð Ðr   Úsignature_defaultc                 ód  — |t         j                  j                  u }|rdn|}t        |t        j
                  «      r|j                  }|€|r
t        «       n	t        «       }t        |«      \  }}t        ||||«      }|j                  �t        |j                  |«      }	d}
nd}	|}
t        |t        «      rPt        | gt        ||«      |||rdnd|j                  |	|j                   |j"                  |j$                  ¬«
      }||
fS |t&        u }| g}|j(                  r|j+                  |j(                  «       n)t-        | «      }|j/                  |rd|› d|› �nd|› �«       t1        ||rdnt        ||«      |||||j                  |	|j                   |j"                  |j$                  ¬«      }||
fS )zXBuild a Click ``Parameter`` (and its post-parse value convertor) for one function param.Néÿÿÿÿrd   )	rH   Úrequiredr   Únargsr   r   r   r   r   z--z/--no-)
rH   rŽ   r   Úis_flagÚmultipler   r   r   r   r   )Úinspectr‰   Úemptyr<   rJ   rK   r>   r6   r3   rh   rb   r   rŠ   Ú
HfArgumentrQ   r   r   r   r   r-   r"   Úextendr   ÚappendÚHfOption)r   r7   r8   r‹   rŽ   r[   Ú	base_typer`   rW   Úparam_callbackÚhandler_convertorÚargumentr�   ÚdeclsÚkebabÚoptions                   r   Ú_build_click_paramrŸ   þ   s¬  € ð !¤G×$5Ñ$5×$;Ñ$;Ð;€HÙ$‘DÐ*;€MÜ�-¤§¡Ô+Ø%×+Ñ+ˆØ€|á%ŒxŒz¬6«8ˆä2°:Ó>Ñ€IˆwÜ 	¨7°MÀ4ÓH€Ið ‡}�}Ð Ü4HÈÏÉÐXaÓ4bˆØ9=ÑàˆØ%Ðä�$œÔ!ÜØˆFÜ  ¨DÓ1ØØ!Ù‘" QØ—]‘]Ø#Ø—‘Ø×*Ñ*Ø—;‘;ô
ˆð Ð*Ð*Ð*ð œ4Ð€GØˆF€EØ×ÒØ�‰�T×%Ñ%Õ&ä  Ó&ˆØ�‰±'�r˜%˜  u gÑ.ÀÀEÀ7¸|ÔLÜØá‰T¤/°)¸TÓ"BØØØØØ—‘ØØ�Y‰YØ×&Ñ&Ø�{‰{ô€Fð Ð$Ð$Ð$r   Úfunc.c                 óð  — g }i }d}t        j                  | «      j                  j                  «       D �];  \  }}|j                  t         j
                  j                  ur|j                  nt        }t        |«      \  }}t        |t        «      rMt        |t        j                  «      s0|j                  j                  d«      d   dk(  r|j                   dk(  r|}Œª|j"                  }	t%        |	«      r<|€t'        |	d¬«      }t)        |	dd	«      }
|
d	u rt         j
                  j                  n|
}	t+        ||||	«      \  }}|�|j,                  �|||j,                  <   |j/                  |«       �Œ> |||fS )
zLIntrospect ``func`` and return ``(params, convertors, context_param_name)``.Nry   r   rz   rˆ   Fro   r   .)r’   Ú	signatureÚ
parametersÚitemsr7   r‰   r“   r,   rv   r<   rH   rI   r/   rˆ   r)   r}   r(   r   rn   rr   r€   rŸ   r   r–   )r    ÚparamsÚ
convertorsÚcontext_param_namer   Ú	sig_paramr7   r˜   r8   r‹   Úmarker_defaultÚclick_paramrW   s                r   Ú_build_paramsr«   ?  sl  € ð %'€FØ24€JØ%)ÐÜ"×,Ñ,¨TÓ2×=Ñ=×CÑCÓEó #‰ˆˆið .7×-AÑ-AÌ×IZÑIZ×I`ÑI`Ñ-`�Y×)Ò)Ôfiˆ
Ü*¨:Ó6‰ˆ	�4Ü�i¤Ô&Ü�y¤%§-¡-Ô0ð ×$Ñ$×.Ñ.¨sÓ3°AÑ6¸'ÒAÀi×FXÑFXÐ\eÒFeà!%ÐØØ%×-Ñ-ÐÜÐ-Ô.àˆ|Ü)Ð*;ÈEÔR�Ü$Ð%6¸	À3ÓGˆNØ;IÈSÑ;P¤× 1Ñ 1× 7Ò 7ÐVdÐÜ!3°D¸)ÀTÐK\Ó!]Ñˆ�YØÐ  [×%5Ñ%5Ð%AØ+4ˆJ�{×'Ñ'Ñ(Ø�‰�kÖ"ð1#ð2 �:Ð1Ð1Ð1r   r¦   r§   c                 ó`   ‡ ‡‡— dt         dt         fˆˆˆ fd„}t        j                  |‰ «       |S )zZWrap ``func`` so Click's kwargs map back to it, applying convertors and injecting the ctx.Úkwargsr   c                  ó¶   •— | j                  «       D ��ci c]  \  }}||‰v r ‰|   |«      n|“Œ }}}‰�t        j                  «       |‰<    ‰di |¤ŽS c c}}w )Nr1   )r¤   r/   Úget_current_context)r­   Úkeyr>   Úcall_kwargsr§   r¦   r    s       €€€r   Úhandlerz_make_handler.<locals>.handleri  sm   ø€ Øgm×gsÑgsÓgu×vÑYcÐY\Ð^c�s°s¸jÑ7H˜_˜Z¨™_¨UÔ3ÈeÑSÐvˆÑvØÐ)Ü.3×.GÑ.GÓ.IˆKÐ*Ñ+ÙÑ"�kÑ"Ð"ùó ws   •A)r	   Ú	functoolsÚupdate_wrapper)r    r¦   r§   r²   s   ``` r   Ú_make_handlerrµ   b  s-   ú€ ð#œ#ð #¤#÷ #ô ×Ñ˜W dÔ+Ø€Nr   Úoptc                 óf   — | dd }|j                  «       rd| fS | dd |k(  r
| dd | dd fS || dd fS )zPSplit an option string into ``(prefix, name)`` (Click's ``split_opt``, inlined).Nrd   Ú é   )Úisalnum)r¶   Úfirsts     r   Ú
_split_optr¼   z  sT   € à��ˆG€EØ‡}�}„Ø�3ˆwˆØ
ˆ1ˆQ€x�5ÒØ�2�Aˆw˜˜A˜B˜ÐÐØ�#�a�b�'ˆ>Ðr   r…   r„   c                 óv   — |j                   }d|_         	 | j                  |d¬«      ||_         S # ||_         w xY w)NTF)Úcall)Úresilient_parsingÚget_default)r…   r„   Ú	resilients      r   Ú_extract_default_help_strrÂ   „  s>   € à×%Ñ%€IØ €CÔð*Ø× Ñ  ¨5Ð Ó1à )ˆÕø 	ˆÕús   •/ ¯	8zHfArgument | HfOptionÚshow_default_is_strc                 ót  ‡ ‡‡— ‰rd‰ j                   › d�S t        |t        t        f«      rdj	                  ˆˆ ˆfd„|D «       «      S t        |t
        j                  «      rt        |j                  «      S t        j                  |«      ryt        ‰ t        «      rg‰ j                  r[‰ j                  rO|r2‰ j                  rt        ‰ j                  d   «      d   S t        |«      S t        ‰ j                  d   «      d   S t        ‰ t        «      r‰ j                  r‰ j                  s|syt        |«      S )	Nú(ú)z, c              3   ó:   •K  — | ]  }t        ‰‰‰|«      –— Œ y ­wr$   )Ú_default_string)r=   rO   r„   r…   rÃ   s     €€€r   r?   z"_default_string.<locals>.<genexpr>”  s   øè ø€ ÒjÐTXœ¨°Ð5HÈ$×OÑjùs   ƒz	(dynamic)r   rd   r¸   )r   r<   r%   ÚtupleÚjoinrJ   rK   r,   r>   r’   Ú
isfunctionr—   Úis_bool_flagÚsecondary_optsÚoptsr¼   )r…   r„   rÃ   r[   s   ``` r   rÈ   rÈ   Ž  sý   ú€ ñ Ø�5×%Ñ%Ð& aÐ(Ð(Ü�-¤$¬ Ô/Ø�y‰yÕjÐ\iÔjÓjÐjÜ�-¤§¡Ô+Ü�=×&Ñ&Ó'Ð'Ü×Ñ˜-Ô(ØÜ�%œÔ" u×'9Ò'9¸e×>RÒ>RáØ38·:²:”:˜eŸj™j¨™mÓ,¨QÑ/ÐUÄ3À}ÓCUÐUÜ˜%×.Ñ.¨qÑ1Ó2°1Ñ5Ð5Ü�%œÔ" u×'9Ò'9À%×BVÒBVÑ_lØÜˆ}ÓÐr   Ú
param_typez!click.IntRange | click.FloatRangec                 ó,  — | j                   €d| j                  rdnd› | j                  › �S | j                  €d| j                  rdnd› | j                   › �S | j                  rdnd}| j                  rdnd}| j                   › |› d|› | j                  › �S )zîHuman-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›   € ð ‡~�~ÐØ˜*×-Ò-‘3°4Ð8¸¿¹Ð8HÐIÐIØ‡~�~ÐØ˜*×-Ò-‘3°4Ð8¸¿¹Ð8HÐIÐIØ×%Ò%‰3¨4€DØ×&Ò&‰C¨D€EØ�n‰nÐ˜d˜V 1 U G¨J¯N©NÐ+;Ð<Ð<r   Ú	base_helpc                 ó,  — g }t        | |«      }t        | j                  t        «      }|s|�<| j                  s|j                  r$t	        | |||«      }|r|j                  d|› �«       t        | t        «      r\t        | j                  t        j                  t        j                  f«      r(t        | j                  «      }|r|j                  |«       | j                  r|j                  d«       |r ddj                  |«      › d�}|r|› d|› �S |S |S )zWAppend the ``[default: ...; required]`` suffix to a help string (shared by arg/option).z	default: rŽ   ú[ú; ú]z  )rÂ   r<   r   r,   rÈ   r–   r—   rH   r/   rB   rE   rÙ   rŽ   rÊ   )	r…   r„   rÚ   Úextrar[   rÃ   Údefault_stringÚ	range_strÚsuffixs	            r   Ú_build_help_extrarã   ²  sö   € à€EÜ-¨e°SÓ9€MÜ$ U×%7Ñ%7¼Ó=ÐÙ˜}Ð8¸e×>PÒ>PÐTW×TdÒTdÜ(¨°Ð5HÈ-ÓXˆÙØ�L‰L˜9 ^Ð$4Ð5Ô6ä�%œÔ"¤z°%·*±*¼u¿~¹~Ìu×O_ÑO_Ð>`Ô'aÜ*¨5¯:©:Ó6ˆ	ÙØ�L‰L˜Ô#Ø‡~‚~Ø�‰�ZÔ ÙØ�T—Y‘Y˜uÓ%Ð& aÐ(ˆÙ+4�)�˜B˜v˜hÐ'Ð@¸&Ð@ØÐr   c                   ó°   ‡ — e Zd ZdZddddœdee   dedz  deez  d	ed
eddfˆ fd„Zde	j                  defd„Zde	j                  deeef   dz  fd„Zˆ xZS )r”   zPPositional argument that renders help text and a metavar (Click's does neither).NTF)r   r   r   r"   r   r   r   Úattrsr   c                óP   •— || _         || _        || _        t        ‰| �  |fi |¤Ž y r$   )r   r   r   Úsuperr'   )r&   r"   r   r   r   rå   Ú	__class__s         €r   r'   zHfArgument.__init__Ë  s-   ø€ ð ˆŒ	Ø(ˆÔØˆŒÜ‰Ñ˜Ñ.¨Ó.r   r„   c                 óV  — | j                   �1| j                   }| j                  s|j                  d«      sd|› d�}|S | j                  xs dj	                  «       }| j                  sd|› d�}| j
                  j                  | |¬«      }|r|d|› �z  }| j                  dk7  r|dz  }|S )NrÜ   rÞ   r¸   ©r„   ú:rd   z...)ÚmetavarrŽ   Ú
startswithr   ÚupperrH   Úget_metavarr�   )r&   r„   ÚvarÚtype_vars       r   Úmake_metavarzHfArgument.make_metavarÙ  s¨   € Ø�<‰<Ð#Ø—,‘,ˆCØ—=’=¨¯©¸Ô)<Ø˜#˜˜a�j�ØˆJØ�y‰yŠ˜B×%Ñ%Ó'ˆØ�}Š}Ø�c�U˜!�*ˆCØ—9‘9×(Ñ(¨°3Ð(Ó7ˆÙØ�Q�x�j�>Ñ!ˆCØ�:‰:˜Š?Ø�5‰LˆCØˆ
r   c                 óv   — | j                   ry | j                  |¬«      t        | || j                  xs d«      fS )Nrê   r¸   )r   rò   rã   r   ©r&   r„   s     r   Úget_help_recordzHfArgument.get_help_recordé  s8   € Ø�;Š;ØØ× Ñ  SÐ Ó)Ô+<¸TÀ3ÈÏ	É	ÊÐUWÓ+XÐXÐXr   )r(   r)   r*   r+   r   r,   r-   r	   r'   r/   rˆ   rò   rÉ   rõ   Ú__classcell__)rè   s   @r   r”   r”   È  sš   ø„ ÙZð  Ø#'Øò/à˜c‘]ð/ð �D‰jð	/ð
 ˜S‘jð/ð ð/ð ð/ð 
õ/ð §¡ð °#ó ð Y 5§=¡=ð Y°U¸3À¸8±_ÀtÑ5K÷ Yr   r”   c                   óV   — e Zd ZU dZeez  ed<   dej                  de	eef   dz  fd„Z
y)r—   zJOption whose help record ports Typer's default/metavar rendering verbatim.r   r„   r   Nc                 ó@  ‡ ‡‡— ‰ j                   ry dŠdt        t           dt        fˆˆˆ fd„} |‰ j                  «      g}‰ j                  r!|j                   |‰ j                  «      «       t        ‰ ‰‰ j                  xs d«      }‰rdndj                  |«      |fS )NFrÎ   r   c                 ó´   •— t         j                  j                  | «      \  }}|rdŠ‰j                  s$‰j                  s|d‰j                  ‰¬«      › �z  }|S )NTú rê   )r/   Ú
formattingÚjoin_optionsr�   Úcountrò   )rÎ   ÚrvÚany_slashesÚany_prefix_is_slashr„   r&   s      €€€r   Ú_write_optsz-HfOption.get_help_record.<locals>._write_optsú  sX   ø€ ä#×.Ñ.×;Ñ;¸DÓA‰OˆB�ÙØ&*Ð#Ø—<’<¨¯
ª
Ø˜˜$×+Ñ+°Ð+Ó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õ   zHfOption.get_help_recordô  s�   ú€ Ø�;Š;Øà#Ðð	œh¤s™mð 	´÷ 	ñ ˜$Ÿ)™)Ó$Ð%ˆØ×ÒØ�I‰I‘k $×"5Ñ"5Ó6Ô7ä% d¨C°·±²¸bÓAˆ	Ù+‘°×<Ñ<¸RÓ@À)ÐKÐKr   )r(   r)   r*   r+   r-   r,   Ú__annotations__r/   rˆ   rÉ   rõ   r1   r   r   r—   r—   ï  s6   … ÙTà˜‘*ÓðL 5§=¡=ð L°U¸3À¸8±_ÀtÑ5Kô Lr   r—   ÚcommandÚ	formatterc                 óÊ  — g }g }| j                  |«      D ]X  }|j                  |«      }|€Œ|j                  dk(  r|j                  |«       Œ8|j                  dk(  sŒH|j                  |«       ŒZ |r+|j	                  d«      5  |j                  |«       ddd«       |r,|j	                  d«      5  |j                  |«       ddd«       yy# 1 sw Y   Œ8xY w# 1 sw Y   yxY w)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  rs   rÎ   r…   Úrecords          r   Ú_format_paramsr    sæ   € à"$€DØ"$€DØ×#Ñ# CÓ(ò  ˆØ×&Ñ& sÓ+ˆØˆ>ØØ× Ñ  JÒ.Ø�K‰K˜ÕØ×"Ñ" hÓ.Ø�K‰K˜Õð ñ Ø×Ñ˜{Ó+ñ 	%Ø×Ñ˜tÔ$÷	%áØ×Ñ˜yÓ)ñ 	%Ø×Ñ˜tÔ$÷	%ð 	%ð ÷	%ð 	%ú÷	%ð 	%ús   ÂCÂ1CÃCÃC"c                   óL   — e Zd ZdZdej
                  dej                  ddfd„Zy)Ú	HfCommandzJLeaf command that renders arguments and options in separate help sections.r„   r  r   Nc                 ó   — t        | ||«       y r$   )r  ©r&   r„   r  s      r   Úformat_optionszHfCommand.format_options'  s   € Ü�t˜S )Õ,r   )r(   r)   r*   r+   r/   rˆ   ÚHelpFormatterr  r1   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                ó   — t        | «      \  }}}t        | ||«      }|rt        j                  |«      nt        j                  | «      } |xs t
        |�|nt        | j                  «      |||||||||	|
|xs i ¬«      S )z}Build 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_commandr   +  s�   € ô& .;¸4Ó-@Ñ*€FˆJÐ*Ü˜D *Ð.@ÓA€GÙ-1”7×#Ñ# DÔ)´w·~±~ÀdÓ7K€LØˆCÒ”9ØÐ%‰TÔ+;¸D¿M¹MÓ+JØØØØØØ'Ø'Ø'ØØØ)Ò/¨Rôð r   c                   óp  — e Zd ZU dZeZeej                     e	d<   dej                  dej                  ddfd„Zdej                  dee   fd„Z	 ddd	œd
edz  deej                     dz  dedeedef   gedef   f   fd„Zddœdej&                  d
ededdfd„Zddœdedeedef   gedef   f   fd„Zy)ÚHfGroupa  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                 óB   — t        | ||«       | j                  ||«       y r$   )r  Úformat_commandsr  s      r   r  zHfGroup.format_options[  s   € Ü�t˜S )Ô,Ø×Ñ˜S )Õ,r   c                 ó,   — t        | j                  «      S r$   )r%   Úcommandsrô   s     r   Úlist_commandszHfGroup.list_commands_  s   € ä�D—M‘MÓ"Ð"r   )r�   r   r�   r­   .c                ó\   ‡ ‡‡‡— dt         dt        f   dt         dt        f   fˆˆˆˆ fd„}|S )Nr    .r   c                 óz   •— t        | f‰‰xs ‰j                  dœ‰¤Ž}‰j                  ||j                  «       | S )N)r   r�   )r   r#  Úadd_commandr   )r    r  r�   r­   r   r&   s     €€€€r   Ú	decoratorz"HfGroup.command.<locals>.decoratorf  s>   ø€ Ü# DÐ]¨t¸Ò9RÀ×@RÑ@RÑ]ÐV\Ñ]ˆGØ×Ñ˜W g§l¡lÔ3ØˆKr   ©r   r	   )r&   r   r�   r­   r,  s   ```` r   r  zHfGroup.commandc  s5   û€ ð	œH S¬# XÑ.ð 	´8¸CÄ¸HÑ3E÷ 	ð 	ð
 Ðr   F)r   Úgroupr   c                óD   — ||_         ||_        | j                  ||«       y)z[Register a subgroup under ``name`` (which may carry pipe aliases, e.g. ``"repos | repo"``).N)r   r   r+  )r&   r.  r   r   s       r   Ú	add_groupzHfGroup.add_groupm  s    € àˆŒ
ØˆŒØ×Ñ˜ Õ%r   )Úinvoke_without_commandr1  c                óT   ‡ ‡— dt         dt        f   dt         dt        f   fˆˆ fd„}|S )z¢Register 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                 ó  •— t        | «      \  }}}t        | ||«      ‰_        g ‰j                  ¢|¢‰_        ‰‰_        ‰rd‰_        ‰j                  €0| j                  r$t        j                  | j                  «      ‰_        | S )Nz[COMMAND] [ARGS]...)
r«   rµ   r   r¥   r1  Úsubcommand_metavarr   r+   r’   r  )r    r¥   r¦   r§   r1  r&   s       €€r   r,  z)HfGroup.group_callback.<locals>.decoratory  sy   ø€ Ü5BÀ4Ó5HÑ2ˆF�JÐ 2Ü)¨$°
Ð<NÓOˆDŒMØ1˜DŸK™KÐ1¨&Ð1ˆDŒKØ*@ˆDÔ'Ù%à*?�Ô'Ø�y‰yÐ  T§\¢\Ü#×,Ñ,¨T¯\©\Ó:�”	ØˆKr   r-  )r&   r1  r,  s   `` r   Úgroup_callbackzHfGroup.group_callbacks  s0   ù€ ð
	œH S¬# XÑ.ð 
	´8¸CÄ¸HÑ3Eö 
	ð Ðr   r$   )r(   r)   r*   r+   r  r#  rH   r/   ÚCommandr  rˆ   r  r  r%   r,   r(  r	   r   r  ÚGroupr-   r0  r5  r1   r   r   r"  r"  Q  s%  … ñð *3€M�4˜Ÿ™Ñ&Ó2ð- %§-¡-ð -¸E×<OÑ<Oð -ÐTXó -ð# §¡ð #°4¸±9ó #ð
 "&ðØLPòØ˜$‘JðØ/3°E·M±MÑ/BÀTÑ/IðØ\_ðà	�8˜C ˜HÑ%Ð&¨°°c°Ñ(:Ð:Ñ	;óð JOò &˜uŸ{™{ð &°Sð &À$ð &ÐSWó &ð 16òØ)-ðà	�8˜C ˜HÑ%Ð&¨°°c°Ñ(:Ð:Ñ	;ôr   r"  )<r+   rJ   r³   r’   Úcollections.abcr   r   r   Úpathlibr   Útypesr   Útypingr   r	   r
   r   r   r   r/   r,   r   r   r3   r6   r0   rQ   rH   rK   rY   r%   r_   r-   rb   rÉ   rh   rv   rn   rr   rˆ   r‰   rŠ   rŸ   Údictr«   rµ   r¼   rÂ   rÈ   rÙ   rã   r”   r—   r6  r  r  r  r   r7  r"  r1   r   r   ú<module>r=     sî  ðñó0 Û Û ß .Ý Ý Ý ß G× Gã ð*˜3ð * 3ó *÷%ñ %ô:Vˆ]ô VôRˆ}ô Rðq ð q¨=ð q¸U¿_¹_ó qð8	˜t D§I¡I™ð 	°8¸S¸EÀ3¸JÑ3Gó 	ð
Ø�S�E˜3�JÑ $Ñ&ð
Ø7:¸T±zð
àˆx˜‰}˜tÑ#Ð$ d¨3¡i°$Ñ&6Ð6Ñ7ó
ðØðØ"ðØ36¸±:ðØERðàˆsˆe�SˆjÑ˜DÑ óð ¨#ð °%¸¸T¸	Ñ2Bó ð ð ¨¨s°MÀDÑ4HÐ/HÑ)Ió ð.v˜#ð v $ó vð˜Sð °Tð ¸mó ð:Ø˜S˜E 3˜JÑ'ðØ4<¸c¸UÀC¸ZÑ4HÈ4Ñ4Oðàˆu�}‰}˜eŸo™o¨sÐ3°SÐ8Ñ9óð>%Ø
ð>%Øð>%Ø&3°dÑ&:ð>%ØORð>%à
ˆ5�?‰?˜H c U¨C ZÑ0°4Ñ7Ð7Ñ8ó>%ðB 2Ø
�3˜�8Ñ
ð 2à
ˆ4�—‘Ñ  $ s¨H°c°U¸C°ZÑ,@Ð'@Ñ"AÀ3ÈÁ:ÐMÑNó 2ðFØ
�3˜�8Ñ
ðà�S˜( C 5¨# :Ñ.Ð.Ñ/ðð ˜d™
ðð ˆc�3ˆhÑó	ð0�Cð ˜E # s (™Oó ð* U§_¡_ð *¸5¿=¹=ð *ÈSó *ðØ"ðØ).¯©ðØMQðØbeðàóð*=Ð'Jð =Èsó =ðÐ4ð ¸5¿=¹=ð ÐUXð Ð]`ó ô,$Y�—‘ô $YôNLˆu�|‰|ô LðB%˜EŸM™Mð %°·±ð %È%×J]ÑJ]ð %Ðbfó %ô(-�—‘ô -ð Ø&*ØØØ!Ø&Ø Ø!ØØØ.2ò#Ø
�3˜�8Ñ
ð#ð �‰*ð#ð 
ˆe�m‰mÑ	˜tÑ	#ð	#ð
 �‰*ð#ð �$‰Jð#ð �d‘
ð#ð ð#ð ð#ð ð#ð ð#ð ð#ð ˜3 ˜8‘n tÑ+ð#ð ‡]�]ó#ôL4ˆe�k‰kõ 4r   