Ë
    zñ�jW&  ã                   óÐ   — d dl Z d dlmZmZmZmZmZmZmZ 	 ddl	m
Z
 ddlmZ dedefd	„Zdedefd
„Zdedefd„Zdedeeeef      fd„Z G d„ d«      Zy# e$ r	 d dlm
Z
 Y ŒFw xY w)é    N)ÚAnyÚDictÚListÚIterableÚOptionalÚTupleÚUnioné   )ÚLexiconé   )ÚArgumentÚnameÚreturnc                 ób   — | j                  d«      j                  d«      j                  dd«      S )NÚ_ú-)ÚlstripÚrstripÚreplace©r   s    úV/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/invoke/parser/context.pyÚtranslate_underscoresr      s)   € Ø�;‰;�sÓ×"Ñ" 3Ó'×/Ñ/°°SÓ9Ð9ó    c                 óH   — t        | «      } t        | «      dk(  rd| z   S d| z   S )Nr   r   z--)r   Úlenr   s    r   Úto_flagr      s+   € Ü  Ó&€DÜ
ˆ4ƒy�A‚~Ø�T‰zÐØ�$‰;Ðr   Úargc                 óæ   — | j                   }|D �ch c]"  }t        |j                  d«      «      dk(  sŒ!|’Œ$ }}|D �ch c]	  }||vsŒ|’Œ }}t        t	        |r|n|«      d   «      S c c}w c c}w )Nr   r   r   )Únamesr   ÚstripÚstrÚsorted)r   r   ÚxÚshortsÚlongss        r   Úsort_candidater&      sl   € Ø�I‰I€EàÖ9�A¤# a§g¡g¨c£lÓ"3°qÓ"8ŠaÐ9€FÐ9ØÖ1�1 ¨&¢ŠQÐ1€EÐ1ÜŒv¡‘f¨EÓ2°1Ñ5Ó6Ð6ùò :ùÚ1s   ‘"A)´A)¾	A.ÁA.c                 ó:  — g }t        | «      }|j                  t        |«      dk(  rdnd«       |j                  |j                  «       «       d}|D ]5  }||j	                  «       r|j                  «       n|j                  «       z  }Œ7 |j                  |«       |S )zZ
    Obtain useful key list-of-ints for sorting CLI flags.

    .. versionadded:: 1.0
    r   r   Ú )r&   Úappendr   ÚlowerÚisupperÚupper)r   Úretr#   ÚinversedÚchars        r   Úflag_keyr0      sŠ   € ð "$€CÜ�sÓ€Að ‡J�J”C˜“F˜a’K‰q QÔ'ð ‡J�Jˆq�w‰w‹yÔð €HØò EˆØ D§L¡L¤N�D—J‘J”L¸¿
¹
»ÑD‰ðEà‡J�JˆxÔØ€Jr   c            	       ó  — e Zd ZdZ	 	 	 ddee   dee   dee   ddfd„Zdefd„Z	de
d	e
ddfd
„Zedee   fd„«       Zedeee
f   fd„«       Zdedee   fd„Zdedeeef   fd„Zdeeeee   f      fd„Zdeedf   fd„Zy)ÚParserContextzò
    Parsing context with knowledge of flags & their format.

    Generally associated with the core program or a task.

    When run through a parser, will also hold runtime values filled in by the
    parser.

    .. versionadded:: 1.0
    Nr   ÚaliasesÚargsr   c                 ó¨   — t        «       | _        g | _        t        «       | _        i | _        || _        || _        |D ]  }| j                  |«       Œ y)a�  
        Create a new ``ParserContext`` named ``name``, with ``aliases``.

        ``name`` is optional, and should be a string if given. It's used to
        tell ParserContext objects apart, and for use in a Parser when
        determining what chunk of input might belong to a given ParserContext.

        ``aliases`` is also optional and should be an iterable containing
        strings. Parsing will honor any aliases when trying to "find" a given
        context in its input.

        May give one or more ``args``, which is a quick alternative to calling
        ``for arg in args: self.add_arg(arg)`` after initialization.
        N)r   r4   Úpositional_argsÚflagsÚinverse_flagsr   r3   Úadd_arg)Úselfr   r3   r4   r   s        r   Ú__init__zParserContext.__init__G   sO   € ô( “IˆŒ	Ø/1ˆÔÜ“YˆŒ
Ø-/ˆÔØˆŒ	ØˆŒØò 	ˆCØ�L‰L˜Õñ	r   c                 ó<  — d}| j                   r*dj                  dj                  | j                   «      «      }| j                  rdj                  | j                  |«      nd}| j                  rdj                  | j                  «      nd}dj                  ||«      S )Nr(   z ({})ú, z {!r}{}z: {!r}z<parser/Context{}{}>)r3   ÚformatÚjoinr   r4   )r:   r3   r   r4   s       r   Ú__repr__zParserContext.__repr__d   st   € ØˆØ�<Š<Ø—n‘n T§Y¡Y¨t¯|©|Ó%<Ó=ˆGØ9=¿º�	× Ñ  §¡¨GÔ4ÈˆØ/3¯yªy�—‘ §	¡	Ô*¸bˆØ%×,Ñ,¨T°4Ó8Ð8r   Úkwargsc                 ób  — t        |«      dk(  rt        |d   t        «      r|d   }nt        |i |¤Ž}|j                  D ],  }|| j                  v sŒd}t        |j                  |«      «      ‚ |j                  d   }|| j                  |<   |j                  r| j                  j                  |«       || j                  t        |«      <   |j                  D ]N  }| j                  j                  ||¬«       | j                  j                  t        |«      t        |«      ¬«       ŒP |j                  r'| j                  j                  |j                  |¬«       |j                  t         k(  rB|j"                  du r3t        dj                  |«      «      }t        |«      | j$                  |<   yyy)aÖ  
        Adds given ``Argument`` (or constructor args for one) to this context.

        The Argument in question is added to the following dict attributes:

        * ``args``: "normal" access, i.e. the given names are directly exposed
          as keys.
        * ``flags``: "flaglike" access, i.e. the given names are translated
          into CLI flags, e.g. ``"foo"`` is accessible via ``flags['--foo']``.
        * ``inverse_flags``: similar to ``flags`` but containing only the
          "inverse" versions of boolean flags which default to True. This
          allows the parser to track e.g. ``--no-myflag`` and turn it into a
          False value for the ``myflag`` Argument.

        .. versionadded:: 1.0
        r   r   z;Tried to add an argument named {!r} but one already exists!)ÚtoTzno-{}N)r   Ú
isinstancer   r   r4   Ú
ValueErrorr>   Ú
positionalr6   r)   r7   r   Ú	nicknamesÚaliasÚ	attr_nameÚkindÚboolÚdefaultr8   )r:   r4   rA   r   r   ÚmsgÚmainÚinverse_names           r   r9   zParserContext.add_argl   sd  € ô$ ˆt‹9˜Š>œj¨¨a©´(Ô;Ø�q‘'‰Cä˜DÐ+ FÑ+ˆCà—I‘Iò 	3ˆDØ�t—y‘yÒ ØS�Ü  §¡¨DÓ!1Ó2Ð2ð	3ð
 �y‰y˜‰|ˆØˆ�	‰	�$‰à�>Š>Ø× Ñ ×'Ñ'¨Ô,à$'ˆ�
‰
”7˜4“=Ñ!Ø—M‘Mò 	>ˆDØ�I‰I�O‰O˜D TˆOÔ*Ø�J‰J×ÑœW T›]¬w°t«}ÐÕ=ð	>ð �=Š=Ø�I‰I�O‰O˜CŸM™M¨dˆOÔ3à�8‰8”tÒ §¡¨tÑ 3ô # 7§>¡>°$Ó#7Ó8ˆLÜ/6°t«}ˆD×Ñ˜|Ò,ð !4Ðr   c                 óZ   — | j                   D �cg c]  }|j                  �Œ|‘Œ c}S c c}w ©N)r6   Úvalue)r:   r#   s     r   Úmissing_positional_argsz%ParserContext.missing_positional_args�   s$   € à×/Ñ/ÖC�a°1·7±7±?’ÒCÐCùÒCs   �(¡(c                 óz   — i }| j                   j                  «       D ]  }|j                  ||j                  <   Œ |S )a  
        This context's arguments' values keyed by their ``.name`` attribute.

        Results in a dict suitable for use in Python contexts, where e.g. an
        arg named ``foo-bar`` becomes accessible as ``foo_bar``.

        .. versionadded:: 1.0
        )r4   ÚvaluesrR   r   )r:   r-   r   s      r   Ú	as_kwargszParserContext.as_kwargs¡   s;   € ð ˆØ—9‘9×#Ñ#Ó%ò 	&ˆCØŸI™IˆC�—‘ŠMð	&àˆ
r   Úflagc                 ód   — t        t        |g| j                  j                  |«      z   «      «      S rQ   )ÚlistÚsetr7   Ú
aliases_of)r:   rW   s     r   Ú	names_forzParserContext.names_for°   s(   € ä”C˜˜ §¡×!6Ñ!6°tÓ!<Ñ<Ó=Ó>Ð>r   c                 ó  — || j                   vr5d}t        |j                  || j                   j                  «       «      «      ‚| j                   |   }t        dt
        dij                  |j                  «      }g }| j                  |«      D ]Ç  }|r}t        |j                  d«      «      dk(  r1|j                  rdj                  |«      n|}dj                  |«      }nadj                  |«      }|j                  rDdj                  |«      }n2|| j                  j                  «       v rd	j                  |d
d «      }d}|j                  ||z   «       ŒÉ dj                  t!        |t        ¬«      «      }	|j"                  xs d}
|	|
fS )zs
        Return 2-tuple of ``(flag-spec, help-string)`` for given ``flag``.

        .. versionadded:: 1.0
        z@{!r} is not a valid flag for this context! Valid flags are: {!r}ÚSTRINGÚINTr   r   z[{}]z {}z={}z	--[no-]{}r
   Nr(   r=   ©Úkey)r7   rE   r>   Úkeysr!   ÚintÚgetrJ   r\   r   r    Úoptionalr8   rU   r)   r?   r"   Úhelp)r:   rW   Úerrr   rR   Ú
full_namesr   Úvalue_ÚvaluestrÚnamestrÚhelpstrs              r   Úhelp_forzParserContext.help_for´   sT  € ð �t—z‘zÑ!ØTˆCÜ˜SŸZ™Z¨¨d¯j©j¯o©oÓ.?Ó@ÓAÐAØ�j‰j˜Ñˆä�h¤ UÐ+×/Ñ/°·±Ó9ˆàˆ
Ø—N‘N 4Ó(ò 	/ˆDÙô �t—z‘z #“Ó'¨1Ò,Ø7:·|²|˜fŸm™m¨EÔ2È�FØ$Ÿ|™|¨FÓ3‘Hà$Ÿ|™|¨EÓ2�HØ—|’|Ø#)§=¡=°Ó#:™ð ˜4×-Ñ-×4Ñ4Ó6Ñ6Ø&×-Ñ-¨d°1°2¨hÓ7�Dà�à×Ñ˜d X™oÕ.ð'	/ð( —)‘)œF :´3Ô7Ó8ˆØ—(‘(’.˜bˆØ˜ÐÐr   c           	      ó‚   ‡ — t        t        ˆ fd„t        ‰ j                  j	                  «       t
        ¬«      «      «      S )a‹  
        Return sorted iterable of help tuples for all member Arguments.

        Sorts like so:

        * General sort is alphanumerically
        * Short flags win over long flags
        * Arguments with *only* long flags and *no* short flags will come
          first.
        * When an Argument has multiple long or short flags, it will sort using
          the most favorable (lowest alphabetically) candidate.

        This will result in a help list like so::

            --alpha, --zeta # 'alpha' wins
            --beta
            -a, --query # short flag wins
            -b, --argh
            -c

        .. versionadded:: 1.0
        c                 óL   •— ‰j                  t        | j                  «      «      S rQ   )rm   r   r   )r#   r:   s    €r   ú<lambda>z+ParserContext.help_tuples.<locals>.<lambda>ø   s   ø€ ˜$Ÿ-™-¬°·±«Ó8€ r   r`   )rY   Úmapr"   r7   rU   r0   )r:   s   `r   Úhelp_tupleszParserContext.help_tuplesÛ   s4   ø€ ô6 ÜÛ8Ü�t—z‘z×(Ñ(Ó*´Ô9óó
ð 	
r   .c                 ót  — t        | j                  j                  «       t        ¬«      }|D �cg c]&  }| j	                  t        |j                  «      «      ‘Œ( }}|j                  t        | j                  j                  «       «      «       t        t        j                  j                  |«      «      S c c}w )zµ
        Similar to `help_tuples` but returns flag names only, no helpstrs.

        Specifically, all flag names, flattened, in rough order.

        .. versionadded:: 1.0
        r`   )r"   r7   rU   r0   r\   r   r   r)   rY   r8   rb   ÚtupleÚ	itertoolsÚchainÚfrom_iterable)r:   r7   r#   r   s       r   Ú
flag_nameszParserContext.flag_namesý   s�   € ô �t—z‘z×(Ñ(Ó*´Ô9ˆØ:?Ö@°Q�—‘¤¨¯©£Õ0Ð@ˆÐ@à�‰”T˜$×,Ñ,×1Ñ1Ó3Ó4Ô5Ü”Y—_‘_×2Ñ2°5Ó9Ó:Ð:ùò As   ®+B5)N© ry   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r!   r   r   r;   r@   r   r9   Úpropertyr   rS   r   rV   r\   r   rm   rr   rx   ry   r   r   r2   r2   ;   s  „ ñ	ð #Ø!#Ø#%ñ	à�s‰mðð ˜#‘ðð �xÑ ð	ð
 
óð:9˜#ó 9ð/=˜Sð /=¨Cð /=°Dó /=ðb ðD¨¨h©ò Dó ðDð ð˜4  S ™>ò ó ðð?˜cð ? d¨3¡ió ?ð% ˜Sð %  U¨3°¨8¡_ó % ðN 
˜T %¨¨X°c©]Ð(:Ñ";Ñ<ó  
ðD;˜E # s (™Oô ;r   r2   )ru   Útypingr   r   r   r   r   r   r	   Úvendor.lexiconr   ÚImportErrorÚlexiconÚargumentr   r!   r   r   r&   rc   r0   r2   ry   r   r   ú<module>r„      s˜   ðÛ ß D× DÑ Dð Ý(õ ð: ð :¨ó :ð�#ð ˜#ó ð7˜ð 7 Só 7ð�(ð ˜t E¨#¨s¨(¡OÑ4ó ÷8O;ò O;øðk ò  ßð ús   ˜A ÁA%Á$A%