+
    /O|jƒE  ã                  óz  € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RI	H
t
 ^ RI	Ht ^ RI	Ht ^ RI	Ht ^R	IHt ^ RIt^ R
IHt ^ RIHt Rt] ! R R4      4       tR R lt ! R R4      t ! R R4      t ! R R]P6                  4      t ! R R]P:                  4      t ! R R]P>                  4      t R# )é    )ÚannotationsN)ÚCallable)ÚSequence)ÚAny)Úfinal)ÚLiteral)ÚNoReturn)Ú
UsageError)ÚNOTSET)Úcheck_ispytestÚfile_or_dirc                  óê   € ] tR t^tRtRRRRR/R R lllt]R R	 l4       t]P                  R
 R l4       tR R lt	RR R llt
R R ltRR R lltRR R lltRR R lltR]3RR/R R llltRtR# ) ÚParserz»Parser for command line arguments and config-file values.

:ivar extra_info: Dict of generic param -> value to display in case
    there's an error processing the command line arguments.
NÚprogÚ	_ispytestFc          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
é   Úusageú
str | NoneÚ
processoptz!Callable[[Argument], None] | Noner   r   ÚboolÚreturnÚNone© )Úformats   "ÚRC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\_pytest/config/argparsing.pyÚ__annotate__ÚParser.__annotate__    s<   € ÷ /ñ /àð/ð 6ð/ð
 ð/ð ð/ð 
ñ/ó    c               	ót  € \        V4       ^ RIHp W n        / V n        \        WP                  VR7      V n        V P                  P                  R4      p\        VRV RR7      V n	        V P                  .V n
        / V n        V P                  P                  \        RR7      pWWn        / V n        / V n        R	# )
r   )Úfilescompleter)r   zCustom optionsÚ
_anonymousT©r   Ú*)ÚnargsN)r   Ú_pytest._argcompleter!   Ú_processoptÚ
extra_infoÚPytestArgumentParserÚ	optparserÚadd_argument_groupÚOptionGroupr"   Ú_groupsÚ	_opt2destÚadd_argumentÚFILE_OR_DIRÚ	completerÚ_inidictÚ_ini_aliases)Úselfr   r   r   r   r!   Úanonymous_arggroupÚfile_or_dir_args   &&&$$   r   Ú__init__ÚParser.__init__    sž   € ô 	�yÔ!å7à%ÔØ*,ˆŒÜ-¨e·_±_È4ÔPˆŒØ!Ÿ^™^×>Ñ>Ð?OÓPÐÜ%Ø ¨d¸dô
ˆŒð Ÿ™Ð(ˆŒà)+ˆŒØŸ.™.×5Ñ5´kÈÐ5ÓMˆØ$2Ô!à9;ˆŒà,.ˆÖr   c               ó   € V ^8„  d   QhRR/# ©r   r   Ústrr   )r   s   "r   r   r   >   s   € ÷ #ñ #�cñ #r   c                	ó.   € V P                   P                  # ©N©r*   r   ©r4   s   &r   r   ÚParser.prog=   s   € à�~‰~×"Ñ"Ð"r   c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer;   r   r   r   )r   s   "r   r   r   B   s   € ÷ $ñ $˜#ð $ $ñ $r   c                	ó&   € WP                   n        R # r=   r>   )r4   rB   s   &&r   r   r@   A   s   € à#�‰Ör   c               ó    € V ^8„  d   QhRRRR/# )r   ÚoptionÚArgumentr   r   r   )r   s   "r   r   r   E   s   € ÷ )ñ ) Hð )°ñ )r   c                	óx   € V P                   '       d(   VP                  '       d   V P                  V4       R # R # R # r=   )r'   Údest)r4   rE   s   &&r   ÚprocessoptionÚParser.processoptionE   s/   € Ø××ÐØ�{�{ˆ{Ø× Ñ  Ö(ñ ñ r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Únamer;   ÚdescriptionÚafterr   r   r,   r   )r   s   "r   r   r   J   s,   € ÷ ñ ØðØ&)ðØ7Aðà	ñr   c                ó  € V P                    F  pVP                  V8X  g   K  Vu # 	  V P                  P                  T;'       g    T4      p\	        WQV RR7      p^ p\        V P                   4       F  w  rgVP                  V8X  g   K   M	  V P                   P                  V^,           V4       V P                  P                  P                  V^,           V P                  P                  P                  4       4       V# )a»  Get (or create) a named option Group.

:param name: Name of the option group.
:param description: Long description for --help output.
:param after: Name of another group, used for ordering --help output.
:returns: The option group.

The returned group object has an ``addoption`` method with the same
signature as :func:`parser.addoption <pytest.Parser.addoption>` but
will be shown in the respective group in the output of
``pytest --help``.
Tr#   )	r-   rL   r*   r+   r,   Ú	enumerateÚinsertÚ_action_groupsÚpop)r4   rL   rM   rN   ÚgroupÚarggroupÚiÚgrps   &&&&    r   ÚgetgroupÚParser.getgroupJ   sÊ   € ð —\”\ˆEØ�z‰z˜TÖ!Ø’ñ "ð —>‘>×4Ñ4°[×5HÐ5HÀDÓIˆÜ˜H¨D¸DÔAˆØˆÜ §¡Ö-‰FˆAØ�x‰x˜5Ö Ùñ .ð 	�‰×Ñ˜A �E 5Ô)ð 	�‰×%Ñ%×,Ñ,¨Q°­U°D·N±N×4QÑ4Q×4UÑ4UÓ4WÔXØˆr   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úoptsr;   Úattrsr   r   r   r   )r   s   "r   r   r   i   s!   € ÷ 2ñ 2˜sð 2¨Sð 2°Tñ 2r   c                ó>   € V P                   P                  ! V/ VB  R# )aÎ  Register a command line option.

:param opts:
    Option names, can be short or long options.
:param attrs:
    Same attributes as the argparse library's :meth:`add_argument()
    <argparse.ArgumentParser.add_argument>` function accepts.

After command line parsing, options are available on the pytest config
object via ``config.option.NAME`` where ``NAME`` is usually set
by passing a ``dest`` attribute, for example
``addoption("--long", dest="NAME", ...)``.
N)r"   Ú	addoption©r4   r\   r]   s   &*,r   r_   ÚParser.addoptioni   s   € ð 	�‰×!Ò! 4Ð1¨5Ô1r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úargsú Sequence[str | os.PathLike[str]]Ú	namespaceúargparse.Namespace | Noner   úargparse.Namespacer   )r   s   "r   r   r   y   s(   € ÷ ,ñ ,à.ð,ð -ð,ð 
ñ	,r   c                ó  € ^ RI Hp V! V P                  4       V Uu. uF  p\        P                  ! V4      NK  	  ppVf   \
        P                  ! 4       p RVn        V P                  P                  WRR7      V=# u upi   T=i ; i)z¥Parse the arguments.

Unlike ``parse_known_args`` and ``parse_known_and_unknown_args``,
raises PrintHelp on `--help` and UsageError on unknown flags

:meta private:
)Útry_argcompleteT©rf   )	r&   rj   r*   ÚosÚfspathÚargparseÚ	NamespaceÚ_raise_print_helpÚparse_intermixed_args)r4   rd   rf   rj   ÚxÚstrargss   &&&   r   ÚparseÚParser.parsey   sz   € õ 	9á˜Ÿ™Ô'Ù)-Ó.© A”2—9’9˜Q–<©ˆÐ.ØÒÜ ×*Ò*Ó,ˆIð	,Ø*.ˆIÔ'Ø—>‘>×7Ñ7¸Ð7ÓUàÑ+ùò /øð Ñ+ús   �A=Á"B ÂBc               ó$   € V ^8„  d   QhRRRRRR/# rc   r   )r   s   "r   r   r   ‘   s-   € ÷ 	Oñ 	Oà.ð	Oð -ð	Oð 
ñ		Or   c                ó4   € V P                  WR7      ^ ,          # )zRParse the known arguments at this point.

:returns: An argparse namespace object.
rk   )Úparse_known_and_unknown_args)r4   rd   rf   s   &&&r   Úparse_known_argsÚParser.parse_known_args‘   s   € ð ×0Ñ0°Ð0ÓKÈAÕNÐNr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rd   re   rf   rg   r   z$tuple[argparse.Namespace, list[str]]r   )r   s   "r   r   r   œ   s-   € ÷ Rñ Rà.ðRð -ðRð 
.ñ	Rr   c                óÌ  € V Uu. uF  p\         P                  ! V4      NK  	  pp\        P                  R8  g!   R\        P                  u;8:  d   R8  do   M MkV P                  P                  WB4      w  r%Vf   Q h\        V\        4      p. pV F-  pVP                  R4      '       d   TMTP                  V4       K/  	  W'3# V P                  P                  WB4      # u upi )záParse the known arguments at this point, and also return the
remaining unknown flag arguments.

:returns:
    A tuple containing an argparse namespace object for the known
    arguments, and a list of unknown flag arguments.
Ú-)é   é   é   )r~   é   )r~   r�   é   )rl   rm   ÚsysÚversion_infor*   ry   Úgetattrr0   Ú
startswithÚappendÚparse_known_intermixed_args)	r4   rd   rf   rr   rs   Úunknownr   Úunknown_flagsÚargs	   &&&      r   rx   Ú#Parser.parse_known_and_unknown_argsœ   s¿   € ñ *.Ó.© A”2—9’9˜Q–<©ˆÐ.Ü×Ñ˜jÔ(¨G´s×7GÑ7GÖ,TÈ*×,Tà!%§¡×!@Ñ!@ÀÓ!TÑˆIØÒ(Ð(Ð(Ü! )¬[Ó9ˆKØ')ˆMÛ�Ø"%§.¡.°×"5Ò"5‘¸;×NÑNÈsÖSñ àÐ+Ð+à—>‘>×=Ñ=¸gÓQÐQùò /s   …C!Úaliasesc               ó0   € V ^8„  d   QhRRRRRRRRRR	R
R/# )r   rL   r;   ÚhelpÚtypezYLiteral['string', 'paths', 'pathlist', 'args', 'linelist', 'bool', 'int', 'float'] | NoneÚdefaultr   r�   úSequence[str]r   r   r   )r   s   "r   r   r   µ   sN   € ÷ P,ñ P,àðP,ð ðP,ðð	P,ð ðP,ð ðP,ð 
ñP,r   c               ó@  € VR9   g   Q hVf   RpV\         J d   \        V4      pW#V3V P                  V&   V Fb  pW`P                  9   d   \        RV: R24      hV P                  P                  V4      ;pe   \        V: RV: 24      hWP                  V&   Kd  	  R# )a  Register a configuration file option.

:param name:
    Name of the configuration.
:param type:
    Type of the configuration. Can be:

        * ``string``: a string
        * ``bool``: a boolean
        * ``args``: a list of strings, separated as in a shell
        * ``linelist``: a list of strings, separated by line breaks
        * ``paths``: a list of :class:`pathlib.Path`, separated as in a shell
        * ``pathlist``: a list of ``py.path``, separated as in a shell
        * ``int``: an integer
        * ``float``: a floating-point number

        .. versionadded:: 8.4

            The ``float`` and ``int`` types.

    For ``paths`` and ``pathlist`` types, they are considered relative to the config-file.
    In case the execution is happening without a config-file defined,
    they will be considered relative to the current working directory (for example with ``--override-ini``).

    .. versionadded:: 7.0
        The ``paths`` variable type.

    .. versionadded:: 8.1
        Use the current working directory to resolve ``paths`` and ``pathlist`` in the absence of a config-file.

    Defaults to ``string`` if ``None`` or not passed.
:param default:
    Default value if no config-file option exists but is queried.
:param aliases:
    Additional names by which this option can be referenced.
    Aliases resolve to the canonical name.

    .. versionadded:: 9.0
        The ``aliases`` parameter.

The value of configuration keys can be retrieved via a call to
:py:func:`config.getini(name) <pytest.Config.getini>`.
NÚstringzalias z- conflicts with existing configuration optionz is already an alias of )	Nr”   ÚpathsÚpathlistrd   Úlinelistr   ÚintÚfloat)r   Úget_ini_default_for_typer2   Ú
ValueErrorr3   Úget)r4   rL   r�   r�   r‘   r�   ÚaliasÚalreadys   &&&&&$  r   ÚaddiniÚParser.addiniµ   s¾   € ðn ð 

ô 

ð 
	
ð 

ð Š<ØˆDØ”fÓÜ.¨tÓ4ˆGà#¨7Ð3ˆ�‰�dÑãˆEØŸ™Ô%Ü Ø˜U™IÐ%RÐSóð ð  ×,Ñ,×0Ñ0°Ó7Ð7�ÒDÜ  E¡9Ð,DÀWÁKÐ!PÓQÐQØ'+×Ñ˜eÓ$ó r   )r"   r-   r3   r2   r.   r'   r(   r*   )NN)Ú Nr=   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r7   Úpropertyr   ÚsetterrI   rX   r_   rt   ry   rx   r   rŸ   Ú__static_attributes__r   r   r   r   r      s‘   † ññ/ð
  ð/ð  ÷/ð /ð: ô#ó ð#ð 
‡[�[ô$ó ð$õ)÷
õ>2÷ ,÷0	O÷Rð@ ØñP,ð "$÷P,ô P,r   r   c               ó    € V ^8„  d   QhRRRR/# )r   r�   zRLiteral['string', 'paths', 'pathlist', 'args', 'linelist', 'bool', 'int', 'float']r   r   r   )r   s   "r   r   r     s    € ÷ ñ ððð 	ñ	r   c                óN   € V R9   d   . # V R8X  d   R# V R8X  d   ^ # V R8X  d   R# R# )zg
Used by addini to get the default value for a given config option type, when
default is not supplied.
r   Fr˜   r™   g        r¡   )r•   r–   rd   r—   r   )r�   s   &r   rš   rš     s3   € ð Ð8Ô8Øˆ	Ø	�ŒÙØ	�ŒÙØ	�ŒÙár   c                  óŒ   € ] tR tRtRtR R ltR R ltR R lt]R	 R
 l4       t	]R R l4       t
]R R l4       tR R ltRtR# )rF   i  z$An option defined in an OptionGroup.c               ó    € V ^8„  d   QhRRRR/# )r   Úactionúargparse.Actionr   r   r   )r   s   "r   r   ÚArgument.__annotate__   s   € ÷ ñ ˜ð °4ñ r   c                	ó   € Wn         R # r=   ©Ú_action)r4   r®   s   &&r   r7   ÚArgument.__init__   s   € ØŽr   c               ó   € V ^8„  d   QhRR/# )r   r   údict[str, Any]r   )r   s   "r   r   r°   #  s   € ÷ %ñ %�~ñ %r   c                	ó.   € V P                   P                  # r=   )r³   Ú__dict__r?   s   &r   r]   ÚArgument.attrs#  s   € Ø�|‰|×$Ñ$Ð$r   c               ó   € V ^8„  d   QhRR/# )r   r   r’   r   )r   s   "r   r   r°   &  s   € ÷ +ñ +�}ñ +r   c                	ó.   € V P                   P                  # r=   )r³   Úoption_stringsr?   s   &r   ÚnamesÚArgument.names&  s   € Ø�|‰|×*Ñ*Ð*r   c               ó   € V ^8„  d   QhRR/# r:   r   )r   s   "r   r   r°   *  s   € ÷ !ñ !�cñ !r   c                	ó.   € V P                   P                  # r=   )r³   rH   r?   s   &r   rH   ÚArgument.dest)  ó   € à�|‰|× Ñ Ð r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r°   .  s   € ÷ $ñ $˜ñ $r   c                	ó.   € V P                   P                  # r=   )r³   r‘   r?   s   &r   r‘   ÚArgument.default-  s   € à�|‰|×#Ñ#Ð#r   c               ó   € V ^8„  d   QhRR/# )r   r   z
Any | Noner   )r   s   "r   r   r°   2  s   € ÷ !ñ !�jñ !r   c                	ó.   € V P                   P                  # r=   )r³   r�   r?   s   &r   r�   ÚArgument.type1  rÂ   r   c               ó   € V ^8„  d   QhRR/# r:   r   )r   s   "r   r   r°   5  s   € ÷ 
6ñ 
6˜#ñ 
6r   c                	ó¸  € \        V R R4      pVf   R# . pVR\        V P                  4       4      ,           .,          pVR\        V P                  4      ,           .,          pVP                  '       d%   VR\        V P                  4      ,           .,          pVR\        V P
                  4      ,           .,          pRP                  RP                  V4      4      # )	r³   NzArgument(<uninitialized>)zopts: zdest: ztype: z	default: zArgument({})ú, )r…   Úreprr½   rH   r�   r‘   r   Újoin)r4   r®   rd   s   &  r   Ú__repr__ÚArgument.__repr__5  s«   € Ü˜˜y¨$Ó/ˆØŠ>Ù.ØˆØ�œD §¡£Ó.Õ.Ð/Õ/ˆØ�œD §¡›OÕ+Ð,Õ,ˆØ�;�;ˆ;Ø�X¤ T§Y¡Y£Õ/Ð0Õ0ˆDØ�œt D§L¡LÓ1Õ1Ð2Õ2ˆØ×$Ñ$ T§Y¡Y¨t£_Ó5Ð5r   r²   N)r¢   r£   r¤   r¥   r¦   r7   r]   r½   r§   rH   r‘   r�   rÎ   r©   r   r   r   rF   rF     sZ   † Ù.õõ%õ+ð ô!ó ð!ð ô$ó ð$ð ô!ó ð!÷
6ñ 
6r   rF   c                  óN   € ] tR tRtRtRR R lltR R ltR R ltR	 R
 ltRt	R# )r,   iB  z,A group of options shown in its own section.c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   rU   zargparse._ArgumentGrouprL   r;   ÚparserzParser | Noner   r   r   r   r   )r   s   "r   r   ÚOptionGroup.__annotate__E  s<   € ÷ ñ à)ðð ðð ð	ð
 ðð 
ñr   c                	óN   € \        V4       Wn        W n        . V n        W0n        R # r=   )r   Ú	_arggrouprL   ÚoptionsrÒ   )r4   rU   rL   rÒ   r   s   &&&&&r   r7   ÚOptionGroup.__init__E  s"   € ô 	�yÔ!Ø!ŒØŒ	Ø')ˆŒØŽr   c               ó$   € V ^8„  d   QhRRRRRR/# r[   r   )r   s   "r   r   rÓ   R  s&   € ÷ Añ A˜sð A¨Sð A°Tñ Ar   c                ó°   € \        V4      P                  R V P                   4       4      pV'       d   \        RV R24      hV P	                  WRR7       R# )a;  Add an option to this group.

If a shortened version of a long option is specified, it will
be suppressed in the help. ``addoption('--twowords', '--two-words')``
results in help showing ``--two-words`` only, but ``--twowords`` gets
accepted **and** the automatic destination is in ``args.twowords``.

:param opts:
    Option names, can be short or long options.
    Note that lower-case short options (e.g. `-x`) are reserved.
:param attrs:
    Same attributes as the argparse library's :meth:`add_argument()
    <argparse.ArgumentParser.add_argument>` function accepts.
c              3  óP   "  € T F  qP                  4        F  q"x € K  	  K  	  R # 5ir=   )r½   )Ú.0ÚoptrL   s   &  r   Ú	<genexpr>Ú(OptionGroup.addoption.<locals>.<genexpr>a  s   é € ð *
Ù(�S·Y±Y¶[¨TŒD±[‰D›Lùs   ‚$&zoption names z already addedF©Úallow_reservedN)ÚsetÚintersectionrÖ   r›   Ú_addoption_inner)r4   r\   r]   Úconflicts   &*, r   r_   ÚOptionGroup.addoptionR  sU   € ô �t“9×)Ñ)ñ *
Ø ŸLšLó*
ó 
ˆ÷ Ü˜}¨X¨J°nÐEÓFÐFØ×Ñ˜d¸%ÐÖ@r   c               ó$   € V ^8„  d   QhRRRRRR/# r[   r   )r   s   "r   r   rÓ   h  s&   € ÷ @ñ @ ð @¨cð @°dñ @r   c                ó,   € V P                  WRR7       R# )zuLike addoption(), but also allows registering short lower case options (e.g. -x),
which are reserved for pytest core.Trß   N)rã   r`   s   &*,r   Ú
_addoptionÚOptionGroup._addoptionh  s   € ð 	×Ñ˜d¸$ÐÖ?r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r\   ztuple[str, ...]r]   r¶   rà   r   r   r   r   )r   s   "r   r   rÓ   m  s,   € ÷ .ñ .Ø#ð.Ø,:ð.ØLPð.à	ñ.r   c                	ó  € V'       gT   V FM  p\        V4      ^8¼  g   K  V^ ,          R8X  g   K%  V^,          P                  4       '       g   KD  \        R4      h	  V P                  P                  ! V/ VB p\        V4      pV P                  P                  V4       V P                  '       dX   VP                  4        F&  pVP                  V P                  P                  V&   K(  	  V P                  P                  V4       R# R# )r   r}   z$lowercase short options are reservedN)ÚlenÚislowerr›   rÕ   r/   rF   rÖ   r‡   rÒ   r½   rH   r.   rI   )r4   r\   r]   rà   rÜ   r®   rE   rL   s   &&&&    r   rã   ÚOptionGroup._addoption_innerm  sÁ   € ÷ Û�Ü�s“8˜q–= S¨¥V¨s¦]°s¸1µv·~±~×7GÔ7GÜ$Ð%KÓLÐLñ ð —‘×,Ò,¨dÐ<°eÑ<ˆÜ˜&Ó!ˆØ�‰×Ñ˜FÔ#Ø�;�;ˆ;ØŸ™ž�Ø.4¯k©k�—‘×%Ñ% dÓ+ñ 'à�K‰K×%Ñ% fÖ-ñ r   )rÕ   rL   rÖ   rÒ   N)F)
r¢   r£   r¤   r¥   r¦   r7   r_   rè   rã   r©   r   r   r   r,   r,   B  s    † Ù6÷õAõ,@÷
.ñ .r   r,   c                  óB   a € ] tR tRtRR/R V 3R llltR R ltRtV ;t# )	r)   i~  r   Nc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   r(   zdict[str, str]r   r   r   r   )r   s   "r   r   Ú!PytestArgumentParser.__annotate__  s2   € ÷ %ñ %àð%ð #ð%ð
 ð%ð 
ñ%r   c          	     	óF   <€ \         SV `  VVR \        R RR7       W n        R# )FÚ@)r   r   Úadd_helpÚformatter_classÚallow_abbrevÚfromfile_prefix_charsN)Úsuperr7   ÚDropShorterLongHelpFormatterr(   )r4   r   r(   r   Ú	__class__s   &&&$€r   r7   ÚPytestArgumentParser.__init__  s0   ø€ ô 	‰ÑØØØÜ8ØØ"%ð 	ô 	
ð %Žr   c               ó    € V ^8„  d   QhRRRR/# )r   Úmessager;   r   r	   r   )r   s   "r   r   rñ   ’  s   € ÷ 	4ñ 	4˜Sð 	4 Xñ 	4r   c           	     ó  € V P                    RV 2pV P                  '       dH   VRRP                  R \        V P                  P	                  4       4       4       4      ,           ,          p\        V P                  4       V,           4      h)z1Transform argparse error message into UsageError.z	: error: Ú
c              3  ó6   "  € T F  w  rR V RV 2x € K  	  R# 5i)z  z: Nr   )rÛ   ÚkÚvs   &  r   rÝ   Ú-PytestArgumentParser.error.<locals>.<genexpr>˜  s"   é € ð $Ù*I¡$ !�"�Q�C�r˜!˜•Ó*Iùs   ‚)r   r(   rÍ   ÚsortedÚitemsr
   Úformat_usage)r4   rý   Úmsgs   && r   ÚerrorÚPytestArgumentParser.error’  sw   € ð —‘�˜9 W IÐ.ˆØ�?�?ˆ?Ø�4˜$Ÿ)™)ñ $Ü*0°·±×1FÑ1FÓ1HÔ*Ió$ó õ õ ˆCô ˜×*Ñ*Ó,¨sÕ2Ó3Ð3r   )r(   )r¢   r£   r¤   r¥   r7   r  r©   Ú__classcell__©rú   s   @r   r)   r)   ~  s!   ø† ð%ð
  ÷%ò %÷&	4ó 	4r   r)   c                  óP   a € ] tR tRtRtR V 3R lltR V 3R lltR R ltR	tV ;t	# )
rù   iž  zÓShorten help for long options that differ only in extra hyphens.

- Collapse **long** options that are the same except for extra hyphens.
- Shortcut if there are only two options and one of them is a short one.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   rd   r   Úkwargsr   r   r   )r   s   "r   r   Ú)DropShorterLongHelpFormatter.__annotate__¥  s!   € ÷ *ñ *˜cð *¨Sð *°Tñ *r   c                	óx   <€ R V9  d"   \         P                  P                  4       VR &   \        SV `  ! V/ VB  R# )ÚwidthN)Ú_pytestÚ_ioÚget_terminal_widthrø   r7   )r4   rd   r  rú   s   &*,€r   r7   Ú%DropShorterLongHelpFormatter.__init__¥  s3   ø€ à˜&Ô Ü%Ÿk™k×<Ñ<Ó>ˆF�7‰OÜ‰Ò˜$Ð) &Ô)r   c               ó    € V ^8„  d   QhRRRR/# )r   r®   r¯   r   r;   r   )r   s   "r   r   r  «  s   € ÷ &ñ &°ð &ÀCñ &r   c                	óR  <€ \         S	V `  V4      pV'       d   V^ ,          R8w  d   V# VP                  R4      p\        V4      ^8X  d1   \        V^ ,          4      ^8X  g   \        V^,          4      ^8X  d   V# . p/ pV F‹  p\        V4      ^8X  g   V^,          R8X  d   K#  VP	                  R4      '       g   Q RV R24       hVR,          pVP                  RR4      pW…9  g"   \        WX,          4      \        V4      8  g   K‡  WuV&   K�  	  V Fƒ  p\        V4      ^8X  g   V^,          R8X  d   VP                  V4       VR,          VP                  VP                  RR4      4      8X  g   Ka  VP                  VP                  RR	^4      4       K…  	  RP                  V4      # )
r   r}   rË   Ú z--z&long optional argument without "--": [Ú]:r   NNr¡   Ú=)	rø   Ú_format_action_invocationÚsplitrì   r†   Úreplacer‡   rœ   rÍ   )
r4   r®   ÚorgstrrÖ   Úreturn_listÚ
short_longrE   ÚxxoptionÚ	shortenedrú   s
   &&       €r   r  Ú6DropShorterLongHelpFormatter._format_action_invocation«  s~  ø€ Ü‘Ñ2°6Ó:ˆß�f˜Q•i 3Ô&ØˆMØ—,‘,˜tÓ$ˆÜˆw‹<˜1Ô¤# g¨a¥j£/°QÔ"6¼#¸gÀa½j»/ÈQÔ:NàˆMØˆØ%'ˆ
ÛˆFÜ�6‹{˜aÔ 6¨!¥9°Ô#3ÙØ×$Ñ$ T×*Ò*ð Ø8¸¸ÀÐBóÐ*ð ˜b•zˆHØ ×(Ñ(¨¨bÓ1ˆIØÔ*¬c°*Õ2GÓ.HÌ3ØóLö /ð )1˜9Ó%ñ ó ˆFÜ�6‹{˜aÔ 6¨!¥9°Ô#3Ø×"Ñ" 6Ô*Ø�b�z˜ZŸ^™^¨F¯N©N¸3ÀÓ,CÓDÖDØ×"Ñ" 6§>¡>°#°s¸AÓ#>Ö?ñ	 ð
 �y‰y˜Ó%Ð%r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útextr;   r  r˜   r   z	list[str]r   )r   s   "r   r   r  Ê  s!   € ÷ ñ  ð ¨Sð °Yñ r   c                ó    € . pVP                  4        F7  pVP                  \        P                  ! VP	                  4       V4      4       K9  	  V# )zmWrap lines after splitting on original newlines.

This allows to have explicit line breaks in the help text.
)Ú
splitlinesÚextendÚtextwrapÚwrapÚstrip)r4   r%  r  ÚlinesÚlines   &&&  r   Ú_split_linesÚ)DropShorterLongHelpFormatter._split_linesÊ  s<   € ð
 ˆØ—O‘OÖ%ˆDØ�L‰LœŸš t§z¡z£|°UÓ;Ö<ñ &àˆr   r   )
r¢   r£   r¤   r¥   r¦   r7   r  r.  r©   r
  r  s   @r   rù   rù   ž  s&   ø† ñ÷*ð *÷&ð &÷>ó r   rù   c                  óB   a € ] tR tRtRtRR V 3R llltR R ltRtV ;t# )	ÚOverrideIniActioniÕ  zèCustom argparse action that makes a CLI flag equivalent to overriding an
option, in addition to behaving like `store_true`.

This can simplify things since code only needs to inspect the config option
and not consider the CLI flag.
c               ó0   € V ^8„  d   QhRRRRRRRRRRR	R
/# )r   r¼   r’   rH   r;   r%   zint | str | NoneÚ
ini_optionÚ	ini_valuer   r   r   )r   s   "r   r   ÚOverrideIniAction.__annotate__Ý  sF   € ÷ #ñ #à%ð#ð ð#ð  ð	#ð ð#ð ð#ð 
ñ#r   c               	óJ   <€ \         SV `  ! W^ .VO5/ VB  W@n        WPn        R# )r   N)rø   r7   r3  r4  )	r4   r¼   rH   r%   r3  r4  rd   r  rú   s	   &&&&$$*,€r   r7   ÚOverrideIniAction.__init__Ý  s(   ø€ ô 	‰Ò˜¨qÐB°4ÒB¸6ÒBØ$ŒØ"Žr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÒ   zargparse.ArgumentParserrf   rh   r   r   r   )r   s   "r   r   r5  ë  s(   € ÷ >ñ >à'ð>ð &ð>ð 
ñ>r   c                	óÆ   € \        W P                  R 4       \        VRR4      pVf   . pVP                  V P                   RV P
                   24       \        VRV4       R# )TÚoverride_iniNr  )ÚsetattrrH   r…   r‡   r3  r4  )r4   rÒ   rf   rd   r  Úcurrent_overridess   &&&*, r   Ú__call__ÚOverrideIniAction.__call__ë  s]   € ô 	�	Ÿ9™9 dÔ+Ü# I¨~¸tÓDÐØÒ$Ø "ÐØ× Ñ  D§O¡OÐ#4°A°d·n±nÐ5EÐ!FÔGÜ�	˜>Ð+<Ö=r   )r3  r4  r=   )	r¢   r£   r¤   r¥   r¦   r7   r=  r©   r
  r  s   @r   r1  r1  Õ  s   ø† ñ÷#ò #÷>ó >r   r1  )!Ú
__future__r   rn   Úcollections.abcr   r   rl   rƒ   r)  Útypingr   r   r   r	   Ú
exceptionsr
   Ú_pytest._ior  Ú_pytest.compatr   Ú_pytest.deprecatedr   r0   r   rš   rF   r,   ÚArgumentParserr)   ÚHelpFormatterrù   ÚActionr1  r   r   r   Ú<module>rI     s§   ðå "ã Ý $Ý $Û 	Û 
Û Ý Ý Ý Ý å "Û Ý !Ý -ð €ð ÷l,ð l,ó ðl,õ^÷*"6ñ "6÷J9.ñ 9.ôx4˜8×2Ñ2ô 4ô@4 8×#9Ñ#9ô 4ôn">˜Ÿ™ö ">r   