ó
    &ÝNj�  ã                   ó0   • S SK JrJrJrJr   " S S5      rg)é    )ÚAnyÚIterableÚOptionalÚTuplec                   ó^  • \ rS rSrSrSS\SSSSSS4	S\\   S\\   S\S	\\   S
\\   S\	S\	S\	S\\   SS4S jjr
S\4S jr\S\\   4S j5       r\S\\S4   4S j5       r\S\	4S j5       r\S\4S j5       r\R$                  S\SS4S j5       rSS\S\	SS4S jjr\S\	4S j5       rSrg)ÚArgumenté   aä  
A command-line argument/flag.

:param name:
    Syntactic sugar for ``names=[<name>]``. Giving both ``name`` and
    ``names`` is invalid.
:param names:
    List of valid identifiers for this argument. For example, a "help"
    argument may be defined with a name list of ``['-h', '--help']``.
:param kind:
    Type factory & parser hint. E.g. ``int`` will turn the default text
    value parsed, into a Python integer; and ``bool`` will tell the
    parser not to expect an actual value but to treat the argument as a
    toggle/flag.
:param default:
    Default value made available to the parser if no value is given on the
    command line.
:param help:
    Help text, intended for use with ``--help``.
:param positional:
    Whether or not this argument's value may be given positionally. When
    ``False`` (default) arguments must be explicitly named.
:param optional:
    Whether or not this (non-``bool``) argument requires a value.
:param incrementable:
    Whether or not this (``int``) argument is to be incremented instead of
    overwritten/assigned to.
:param attr_name:
    A Python identifier/attribute friendly name, typically filled in with
    the underscored version when ``name``/``names`` contain dashes.

.. versionadded:: 1.0
N© FÚnameÚnamesÚkindÚdefaultÚhelpÚ
positionalÚoptionalÚincrementableÚ	attr_nameÚreturnc
                 ó`  • U(       a  U(       a  [        S5      eU(       d  U(       d  [        S5      eU(       a  [        U5      U l        OU(       a  U(       d  U4U l        X0l        S n
U[        L a  / n
U(       a  Un
U
=U l        U l        X@l        XPl        X`l	        Xpl
        X€l        X�l        g )Nz8Cannot give both 'name' and 'names' arguments! Pick one.z(An Argument must have at least one name.)Ú	TypeErrorÚtupler   r   ÚlistÚ	raw_valueÚ_valuer   r   r   r   r   r   )Úselfr   r   r   r   r   r   r   r   r   Úinitial_values              ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/invoke/parser/argument.pyÚ__init__ÚArgument.__init__*   s“   € ö –EÜØJóð ö žÜÐFÓGÐGÞÜ˜u›ˆD�JÞž%Ø˜ˆDŒJØŒ	Ø'+ˆà”4Š<ØˆMæØ#ˆMØ'4Ð4ˆŒ˜œØŒØŒ	Ø$ŒØ ŒØ*ÔØ"�ó    c                 óú  • SnU R                   (       a*  SR                  SR                  U R                   5      5      nSnU R                  (       d  U R                  (       a  SnU R                  (       a  US-  nU R                  (       a  US-  nSnU R
                  [        :w  a%  SR                  U R
                  R                  5      nSR                  U R                  R                  U R                  XU5      $ )	NÚ z ({})z, Ú Ú*Ú?z [{}]z<{}: {}{}{}{}>)
Ú	nicknamesÚformatÚjoinr   r   r   ÚstrÚ__name__Ú	__class__r   )r   ÚnicksÚflagsr   s       r   Ú__repr__ÚArgument.__repr__P   sµ   € ØˆØ�>�>Ø—N‘N 4§9¡9¨T¯^©^Ó#<Ó=ˆEØˆØ�?�?˜dŸmŸmØˆEØ�?�?Ø�S‰LˆEØ�=�=Ø�S‰LˆEð ˆØ�9‰9œÓØ—>‘> $§)¡)×"4Ñ"4Ó5ˆDØ×&Ñ&Ø�N‰N×#Ñ# T§Y¡Y°¸Uó
ð 	
r    c                 óF   • U R                   =(       d    U R                  S   $ )z¬
The canonical attribute-friendly name for this argument.

Will be ``attr_name`` (if given to constructor) or the first name in
``names`` otherwise.

.. versionadded:: 1.0
r   )r   r   ©r   s    r   r   ÚArgument.named   s   € ð �~‰~×. §¡¨A¡Ð.r    .c                 ó    • U R                   SS  $ ©Né   )r   r1   s    r   r&   ÚArgument.nicknamesp   s   € à�z‰z˜!˜"ˆ~Ðr    c                 óP   • U R                   [        L a  gU R                  (       a  gg)NFT)r   Úboolr   r1   s    r   Útakes_valueÚArgument.takes_valuet   s    € à�9‰9œÒØØ××ØØr    c                 óL   • U R                   b  U R                   $ U R                  $ ©N)r   r   r1   s    r   ÚvalueÚArgument.value|   s    € ð #Ÿk™kÑ5ˆt�{‰{ÐG¸4¿<¹<ÐGr    Úargc                 ó$   • U R                  USS9  g )NT)Úcast)Ú	set_value)r   r?   s     r   r=   r>   �   s   € à�‰�s ˆÒ&r    r=   rA   c                 óº   ^ • UT l         S nU(       a  T R                  nT R                  [        L a  U 4S jnT R                  (       a  U 4S jnU" U5      T l        g)aÑ  
Actual explicit value-setting API call.

Sets ``self.raw_value`` to ``value`` directly.

Sets ``self.value`` to ``self.kind(value)``, unless:

- ``cast=False``, in which case the raw value is also used.
- ``self.kind==list``, in which case the value is appended to
  ``self.value`` instead of cast & overwritten.
- ``self.incrementable==True``, in which case the value is ignored and
  the current (assumed int) value is simply incremented.

.. versionadded:: 1.0
c                 ó   • U $ r<   r
   )Úxs    r   Ú<lambda>Ú$Argument.set_value.<locals>.<lambda>—   s   € ™r    c                 ó$   >• TR                   U /-   $ r<   ©r=   ©rE   r   s    €r   rF   rG   �   s   ø€ ˜TŸZ™Z¨1¨#Ò-r    c                 ó"   >• TR                   S-   $ r4   rI   rJ   s    €r   rF   rG   ¢   s   ø€ ˜TŸZ™Z¨!š^r    N)r   r   r   r   r   )r   r=   rA   Úfuncs   `   r   rB   ÚArgument.set_value…   sI   ø€ ð  ˆŒáˆæØ—9‘9ˆDà�9‰9œÒÜ-ˆDà××ô ,ˆDÙ˜5“kˆ�r    c                 ón   • U R                   [        L a  [        U R                  5      $ U R                  SL$ )zÿ
Returns whether the argument was ever given a (non-default) value.

For most argument kinds, this simply checks whether the internally
stored value is non-``None``; for others, such as ``list`` kinds,
different checks may be used.

.. versionadded:: 1.3
N)r   r   r8   r   r1   s    r   Ú	got_valueÚArgument.got_value¥   s.   € ð �9‰9œÒÜ˜Ÿ™Ó$Ð$Ø�{‰{ $Ð&Ð&r    )
r   r   r   r   r   r   r   r   r   r   )T)r*   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   r   r   r   r8   r   r.   Úpropertyr   r   r&   r9   r=   ÚsetterrB   rO   Ú__static_attributes__r
   r    r   r   r      s„  † ñ ðH #Ø!ØØ!%Ø"Ø ØØ#Ø#'ñ$#à�s‰mð$#ð ˜‰}ð$#ð ð	$#ð
 ˜#‘ð$#ð �s‰mð$#ð ð$#ð ð$#ð ð$#ð ˜C‘=ð$#ð 
õ$#ðL
˜#ô 
ð( ð	/�h˜s‘mó 	/ó ð	/ð ð˜5  c ™?ó ó ðð ð˜Tó ó ðð ðH�só Hó ðHð ‡\�\ð'˜ð ' ó 'ó ð'ñ"˜sð "¨$ð "¸$õ "ð@ ð'˜4ó 'ó ó'r    r   N)Útypingr   r   r   r   r   r
   r    r   Ú<module>rY      s   ðß 1Ó 1÷k'ò k'r    