+
    ÄD©i×O  ã                  óª  € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIH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t ! R R4      t]! 4       t] ! R R4      4       tR R lt ! R R]4      t ! R R4      t ! R R4      t ! R R]P:                  4      t ! R R]P>                  4      t  ! R R]PB                  4      t"R# )é    )ÚannotationsN)ÚCallable)ÚMapping)ÚSequence)ÚAny)Úfinal)ÚLiteral)ÚNoReturn)Ú
UsageError)Úcheck_ispytestÚfile_or_dirc                  ó"   € ] tR t^tR R ltRtR# )ÚNotSetc               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚstr© )Úformats   "Ú;/usr/lib/python3/dist-packages/_pytest/config/argparsing.pyÚ__annotate__ÚNotSet.__annotate__   s   € ÷ ñ ˜#ñ ó    c                	ó   € R # )z<notset>r   ©Úselfs   &r   Ú__repr__ÚNotSet.__repr__   s   € Ùr   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú__static_attributes__r   r   r   r   r      s   † ÷ñ r   r   c                  óæ   € ] tR t^tRt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Ú	_ispytestFc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   Úusageú
str | NoneÚ
processoptz!Callable[[Argument], None] | Noner'   Úboolr   ÚNoner   )r   s   "r   r   ÚParser.__annotate__'   s2   € ÷ /ñ /àð/ð 6ð/ð
 ð/ð 
ñ/r   c               	ód  € \        V4       ^ RIHp W n        / V n        \        WV P                  4      V n        V P                  P                  R4      p\        VRV RR7      V n	        V P                  .V n
        V P                  P                  \        RR7      pWFn        / V n        / V n        R# )	r   )ÚfilescompleterzCustom optionsÚ
_anonymousT©r'   Ú*)ÚnargsN)r   Ú_pytest._argcompleter0   Ú_processoptÚ
extra_infoÚPytestArgumentParserÚ	optparserÚadd_argument_groupÚOptionGroupr1   Ú_groupsÚadd_argumentÚFILE_OR_DIRÚ	completerÚ_inidictÚ_ini_aliases)r   r)   r+   r'   r0   Úanonymous_arggroupÚfile_or_dir_args   &&&$   r   Ú__init__ÚParser.__init__'   s—   € ô 	�yÔ!å7à%ÔØ*,ˆŒÜ-¨d¸4¿?¹?ÓKˆŒØ!Ÿ^™^×>Ñ>Ð?OÓPÐÜ%Ø ¨d¸dô
ˆŒð Ÿ™Ð(ˆŒØŸ.™.×5Ñ5´kÈÐ5ÓMˆØ$2Ô!à9;ˆŒà,.ˆÖr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r.   B   s   € ÷ #ñ #�cñ #r   c                	ó.   € V P                   P                  # ©N©r9   Úprogr   s   &r   rJ   ÚParser.progA   s   € à�~‰~×"Ñ"Ð"r   c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer   r   r-   r   )r   s   "r   r   r.   F   s   € ÷ $ñ $˜#ð $ $ñ $r   c                	ó&   € WP                   n        R # rH   rI   )r   rM   s   &&r   rJ   rK   E   s   € à#�‰Ör   c               ó    € V ^8„  d   QhRRRR/# )r   ÚoptionÚArgumentr   r-   r   )r   s   "r   r   r.   I   s   € ÷ )ñ ) Hð )°ñ )r   c                	óx   € V P                   '       d(   VP                  '       d   V P                  V4       R # R # R # rH   )r6   Údest)r   rP   s   &&r   ÚprocessoptionÚParser.processoptionI   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.   N   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``.
Tr2   )	r<   rW   r9   r:   r;   Ú	enumerateÚinsertÚ_action_groupsÚpop)r   rW   rX   rY   ÚgroupÚarggroupÚiÚgrps   &&&&    r   ÚgetgroupÚParser.getgroupN   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.   m   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)r1   Ú	addoption)r   rg   rh   s   &*,r   rj   ÚParser.addoptionm   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.   }   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©rp   )	r5   rt   r9   ÚosÚfspathÚargparseÚ	NamespaceÚ_raise_print_helpÚparse_intermixed_args)r   rn   rp   rt   ÚxÚstrargss   &&&   r   ÚparseÚParser.parse}   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/# rm   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.
ru   )Úparse_known_and_unknown_args)r   rn   rp   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   rn   ro   rp   rq   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‹   é   )rv   rw   ÚsysÚversion_infor9   rƒ   Úgetattrr>   Ú
startswithÚappendÚparse_known_intermixed_args)	r   rn   rp   r|   r}   Úunknownr   Úunknown_flagsÚargs	   &&&      r   r‚   Ú#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   rW   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Úpathlistrn   Úlinelistr,   ÚintÚfloat)ÚNOT_SETÚget_ini_default_for_typer@   Ú
ValueErrorrA   Úget)r   rW   r™   rš   r›   r—   ÚaliasÚalreadys   &&&&&$  r   ÚaddiniÚParser.addini¹   s¾   € ðn ð 

ô 

ð 
	
ð 

ð Š<ØˆDØ”gÓÜ.¨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   )r1   r<   rA   r@   r6   r7   r9   )NN)Ú NrH   r   )r    r!   r"   r#   Ú__doc__rD   ÚpropertyrJ   ÚsetterrT   rc   rj   r~   rƒ   r‚   r¤   rª   r$   r   r   r   r&   r&      s‡   † ññ/ð
  ÷/ð /ð4 ô#ó ð#ð 
‡[�[ô$ó ð$õ)÷
õ>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    rn   r¡   r   )rš   s   &r   r¥   r¥     s3   € ð Ð8Ô8Øˆ	Ø	�ŒÙØ	�ŒÙØ	�ŒÙár   c                  ó2   € ] tR tRtRtR R ltR R ltRtR# )	ÚArgumentErrori!  zQRaised if an Argument instance is created with invalid or
inconsistent arguments.c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úmsgr   rP   zArgument | strr   r-   r   )r   s   "r   r   ÚArgumentError.__annotate__%  s!   € ÷ %ñ %˜Cð %¨ð %¸Dñ %r   c                	ó2   € Wn         \        V4      V n        R # rH   )rµ   r   Ú	option_id)r   rµ   rP   s   &&&r   rD   ÚArgumentError.__init__%  s   € ØŒÜ˜V›ˆŽr   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r¶   )  s   € ÷ ñ ˜ñ r   c                	óv   € V P                   '       d   R V P                    RV P                   2# V P                  # )zoption ú: )r¸   rµ   r   s   &r   Ú__str__ÚArgumentError.__str__)  s0   € Ø�>�>ˆ>Ø˜TŸ^™^Ð,¨B¨t¯x©x¨jÐ9Ð9à—8‘8ˆOr   )rµ   r¸   N)r    r!   r"   r#   r­   rD   r½   r$   r   r   r   r³   r³   !  s   † ñõ%÷ñ r   r³   c                  óV   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltR R lt	Rt
R# )rQ   i0  zçClass that mimics the necessary behaviour of optparse.Option.

It's currently a least effort implementation and ignoring choices
and integer prefixes.

https://docs.python.org/3/library/optparse.html#optparse-standard-option-types
c               ó$   € V ^8„  d   QhRRRRRR/# )r   Únamesr   rh   r   r   r-   r   )r   s   "r   r   ÚArgument.__annotate__9  s&   € ÷ Pñ P˜sð P¨Sð P°Tñ Pr   c                ó&  € W n         . V n        . V n         VR,          V n         VR,          V n        V P                  V4       VP                  R4      pV'       d	   W0n        R
# V P                  '       d2   V P                  ^ ,          R,          P                  RR4      V n        R
#  V P                  ^ ,          R,          V n        R
#   \         d     L³i ; i  \         d     Lµi ; i  \         d   pRT n        \        R	T 4      ThR
p?ii ; i)z5Store params in private vars for use in add_argument.rš   r›   rS   ºr   NNr‡   Ú_:rŒ   NNz???zneed a long or short optionN)Ú_attrsÚ_short_optsÚ
_long_optsrš   ÚKeyErrorr›   Ú_set_opt_stringsr§   rS   ÚreplaceÚ
IndexErrorr³   )r   rÁ   rh   rS   Úes   &*,  r   rD   ÚArgument.__init__9  sö   € àŒØ&(ˆÔØ%'ˆŒð	Ø˜f�ˆDŒIð	à  Õ+ˆDŒLð 	×Ñ˜eÔ$Ø Ÿ9™9 VÓ,ˆßØŽIØ�_�_ˆ_ØŸ™¨Õ*¨2Õ.×6Ñ6°s¸CÓ@ˆDŽIðPØ ×,Ñ,¨QÕ/°Õ3�–	øô ô 	Ùð	ûô
 ô 	Ùð	ûô ô PØ!�”	Ü#Ð$AÀ4ÓHÈaÐOûðPús:   –C
 ¥C Â)C, Ã
CÃCÃC)Ã(C)Ã,DÃ7DÄDc               ó   € V ^8„  d   QhRR/# )r   r   z	list[str]r   )r   s   "r   r   rÂ   T  s   € ÷ 2ñ 2�yñ 2r   c                	ó<   € V P                   V P                  ,           # rH   )rÇ   rÈ   r   s   &r   rÁ   ÚArgument.namesT  s   € Ø×Ñ $§/¡/Õ1Ð1r   c               ó   € V ^8„  d   QhRR/# )r   r   zMapping[str, Any]r   )r   s   "r   r   rÂ   W  s   € ÷ ñ Ð(ñ r   c                	óž   € R RRV P                   3 F  p \        W4      V P                  V&   K  	  V P                  #   \         d     K:  i ; i)r›   rS   r™   )rS   r�   rÆ   ÚAttributeError)r   Úattrs   & r   rh   ÚArgument.attrsW  sQ   € à ¨°·	±	Ó:ˆDðÜ$+¨DÓ$7�—‘˜DÓ!ñ ;ð
 �{‰{Ðøô "ô Úðús   •=½AÁAc               ó    € V ^8„  d   QhRRRR/# )r   rg   rœ   r   r-   r   )r   s   "r   r   rÂ   `  s   € ÷ ,ñ , ]ð ,°tñ ,r   c                óž  € V FÆ  p\        V4      ^8  d   \        RV: R2V 4      h\        V4      ^8X  dK   V^ ,          R8X  d   V^,          R8w  g   \        RV: R2V 4      hV P                  P                  V4       K~  VR,          R8X  d   V^,          R8w  g   \        RV: R	2V 4      hV P                  P                  V4       KÈ  	  R
# )zXDirectly from optparse.

Might not be necessary as this is passed to argparse later on.
zinvalid option string z&: must be at least two characters longr‡   zinvalid short option string z/: must be of the form -x, (x any non-dash char):r   r   Nú--zinvalid long option string z*: must start with --, followed by non-dashN)Úlenr³   rÇ   r‘   rÈ   )r   rg   Úopts   && r   rÊ   ÚArgument._set_opt_strings`  sâ   € ó
 ˆCÜ�3‹x˜!Œ|Ü#Ø,¨S©Gð 4;ð ;àóð ô
 �S“˜Q”Ø˜A� #œ¨#¨a­&°C¬-Ü'Ø6°s±gð >Hð Hàóð ð
 × Ñ ×'Ñ'¨Ö,à˜C� DÔ(¨S°­V°s¬]Ü'Ø5°c±Wð =Cð Càóð ð
 —‘×&Ñ& sÖ+ó- r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rÂ   }  s   € ÷ 6ñ 6˜#ñ 6r   c                	ó>  € . pV P                   '       d%   VR \        V P                   4      ,           .,          pV P                  '       d%   VR\        V P                  4      ,           .,          pVR\        V P                  4      ,           .,          p\	        V R4      '       d%   VR\        V P
                  4      ,           .,          p\	        V R4      '       d%   VR\        V P                  4      ,           .,          pRP                  RP                  V4      4      # )	z_short_opts: z_long_opts: zdest: rš   ztype: r›   z	default: zArgument({})ú, )	rÇ   ÚreprrÈ   rS   Úhasattrrš   r›   r   Újoin)r   rn   s   & r   r   ÚArgument.__repr__}  sÖ   € ØˆØ××ÐØ�_¤t¨D×,<Ñ,<Ó'=Õ=Ð>Õ>ˆDØ�?�?ˆ?Ø�^¤d¨4¯?©?Ó&;Õ;Ð<Õ<ˆDØ�œD §¡›OÕ+Ð,Õ,ˆÜ�4˜× Ò Ø�X¤ T§Y¡Y£Õ/Ð0Õ0ˆDÜ�4˜×#Ò#Ø�[¤4¨¯©Ó#5Õ5Ð6Õ6ˆDØ×$Ñ$ T§Y¡Y¨t£_Ó5Ð5r   )rÆ   rÈ   rÇ   r›   rS   rš   N)r    r!   r"   r#   r­   rD   rÁ   rh   rÊ   r   r$   r   r   r   rQ   rQ   0  s&   † ñõPõ62õõ,÷:6ñ 6r   rQ   c                  óR   € ] tR tRtRtRR R lltR R ltR R ltRR	 R
 lltRt	R# )r;   i‹  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   r`   zargparse._ArgumentGrouprW   r   ÚparserzParser | Noner'   r,   r   r-   r   )r   s   "r   r   ÚOptionGroup.__annotate__Ž  s<   € ÷ ñ à)ðð ðð ð	ð
 ðð 
ñr   c                	óN   € \        V4       Wn        W n        . V n        W0n        R # rH   )r   Ú	_arggrouprW   Úoptionsræ   )r   r`   rW   ræ   r'   s   &&&&&r   rD   ÚOptionGroup.__init__Ž  s"   € ô 	�yÔ!Ø!ŒØŒ	Ø')ˆŒØŽr   c               ó$   € V ^8„  d   QhRRRRRR/# rf   r   )r   s   "r   r   rç   ›  s!   € ÷ ;ñ ;˜sð ;¨Sð ;°Tñ ;r   c                óÆ   € \        V4      P                  R V P                   4       4      pV'       d   \        RV R24      h\	        V/ VB pV P                  V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.
: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rH   )rÁ   )Ú.0rÛ   rW   s   &  r   Ú	<genexpr>Ú(OptionGroup.addoption.<locals>.<genexpr>©  s   é € ð *
Ù(�S·Y±Y¶[¨TŒD±[‰D›Lùs   ‚$&zoption names z already addedF©Ú
shortupperN)ÚsetÚintersectionrê   r¦   rQ   Ú_addoption_instance)r   rg   rh   ÚconflictrP   s   &*,  r   rj   ÚOptionGroup.addoption›  sd   € ô �t“9×)Ñ)ñ *
Ø ŸLšLó*
ó 
ˆ÷ Ü˜}¨X¨J°nÐEÓFÐFÜ˜4Ð) 5Ñ)ˆØ× Ñ  °EÐ Ö:r   c               ó$   € V ^8„  d   QhRRRRRR/# rf   r   )r   s   "r   r   rç   ±  s!   € ÷ :ñ : ð :¨cð :°dñ :r   c                	óB   € \        V/ VB pV P                  VR R7       R# )Trò   N)rQ   rö   )r   rg   rh   rP   s   &*, r   Ú
_addoptionÚOptionGroup._addoption±  s$   € Ü˜4Ð) 5Ñ)ˆØ× Ñ  °DÐ Ö9r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rP   rQ   ró   r,   r   r-   r   )r   s   "r   r   rç   µ  s"   € ÷ 
$ñ 
$¨(ð 
$Àð 
$ÐQUñ 
$r   c                	ó¬  € V'       gL   VP                    F;  pV^ ,          R8X  g   K  V^,          P                  4       '       g   K2  \        R4      h	  V P                  '       d   V P                  P	                  V4       V P
                  P                  ! VP                  4       / VP                  4       B  V P                  P                  V4       R# )r   r‡   zlowercase shortoptions reservedN)rÇ   Úislowerr¦   ræ   rT   ré   r=   rÁ   rh   rê   r‘   )r   rP   ró   rÛ   s   &&& r   rö   ÚOptionGroup._addoption_instanceµ  sŽ   € ßØ×)Ô)�Ø�q•6˜S–= S¨¥V§^¡^×%5Ô%5Ü$Ð%FÓGÐGñ *ð �;�;ˆ;Ø�K‰K×%Ñ% fÔ-à�‰×#Ò# V§\¡\£^ÐF°v·|±|³~ÒFØ�‰×Ñ˜FÖ#r   )ré   rW   rê   ræ   N)F)
r    r!   r"   r#   r­   rD   rj   rû   rö   r$   r   r   r   r;   r;   ‹  s   † Ù6÷õ;õ,:÷
$ó 
$r   r;   c                  ó:   a € ] tR tRtR V 3R lltR R ltRtV ;t# )r8   iÂ  c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ræ   r&   r)   r*   r7   zdict[str, str]r   r-   r   )r   s   "r   r   Ú!PytestArgumentParser.__annotate__Ã  s2   € ÷ %ñ %àð%ð ð%ð #ð	%ð
 
ñ%r   c                	óP   <€ Wn         \        SV `	  VR \        R RR7       W0n        R# )FÚ@)r)   Úadd_helpÚformatter_classÚallow_abbrevÚfromfile_prefix_charsN)Ú_parserÚsuperrD   ÚDropShorterLongHelpFormatterr7   )r   ræ   r)   r7   Ú	__class__s   &&&&€r   rD   ÚPytestArgumentParser.__init__Ã  s2   ø€ ð ŒÜ‰ÑØØÜ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  r¼   Nr   )rï   ÚkÚvs   &  r   rð   Ú-PytestArgumentParser.error.<locals>.<genexpr>Ù  s"   é € ð $Ù*I¡$ !�"�Q�C�r˜!˜•Ó*Iùs   ‚)rJ   r7   râ   ÚsortedÚitemsr   Úformat_usage)r   r  rµ   s   && r   ÚerrorÚPytestArgumentParser.errorÕ  su   € à—‘�˜9 W IÐ.ˆØ�?�?ˆ?Ø�4˜$Ÿ)™)ñ $Ü*0°·±×1FÑ1FÓ1HÔ*Ió$ó õ õ ˆCô ˜×*Ñ*Ó,¨sÕ2Ó3Ð3r   )r
  r7   )r    r!   r"   r#   rD   r  r$   Ú__classcell__©r  s   @r   r8   r8   Â  s   ø† ÷%ð %÷$4ó 4r   r8   c                  óJ   a € ] tR tRtRtR V 3R lltR V 3R lltR tRtV ;t	# )	r  iß  a  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.
- Cache result on the action object as this is called at least 2 times.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   rn   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  rD   )r   rn   r   r  s   &*,€r   rD   Ú%DropShorterLongHelpFormatter.__init__ç  s3   ø€ à˜&Ô Ü%Ÿk™k×<Ñ<Ó>ˆF�7‰OÜ‰Ò˜$Ð) &Ô)r   c               ó    € V ^8„  d   QhRRRR/# )r   Úactionzargparse.Actionr   r   r   )r   s   "r   r   r!  í  s   € ÷ $+ñ $+°ð $+ÀCñ $+r   c                	ó¦  <€ \         SV `  V4      pV'       d   V^ ,          R8w  d   V# \        VRR4      pV'       d   V# VP                  R4      p\	        V4      ^8X  d7   \	        V^ ,          4      ^8X  g   \	        V^,          4      ^8X  d	   W!n        V# . p/ pV F�  p\	        V4      ^8X  g   V^,          R8X  d   K#  VP                  R4      '       g   \        RV R2V4      hVR	,          pVP                  RR
4      p	W–9  g"   \	        Wi,          4      \	        V4      8  g   KŒ  W†V	&   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      p
W¡n        V
# )r   r‡   Ú_formatted_action_invocationNrß   Ú rÙ   z&long optional argument without "--": [Ú]rÄ   r¬   Ú=)r  Ú_format_action_invocationr�   ÚsplitrÚ   r+  r�   r³   rË   r‘   r§   râ   )r   r)  ÚorgstrÚresrê   Úreturn_listÚ
short_longrP   ÚxxoptionÚ	shortenedÚformatted_action_invocationr  s   &&         €r   r/  Ú6DropShorterLongHelpFormatter._format_action_invocationí  s©  ø€ Ü‘Ñ2°6Ó:ˆß�f˜Q•i 3Ô&ØˆMÜ! &Ð*HÈ$ÓOˆßØˆJØ—,‘,˜tÓ$ˆÜˆw‹<˜1Ô¤# g¨a¥j£/°QÔ"6¼#¸gÀa½j»/ÈQÔ:Nà28Ô/ØˆMØˆØ%'ˆ
ÛˆFÜ�6‹{˜aÔ 6¨!¥9°Ô#3ÙØ×$Ñ$ T×*Ò*Ü#Ø<¸V¸HÀAÐFÈóð ð ˜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Ó#>Ö?ñ	 ð
 '+§i¡i°Ó&<Ð#Ø.IÔ+Ø*Ð*r   c                óž   € ^ RI p. pVP                  4        F2  pVP                  VP                  VP	                  4       V4      4       K4  	  V# )zmWrap lines after splitting on original newlines.

This allows to have explicit line breaks in the help text.
N)ÚtextwrapÚ
splitlinesÚextendÚwrapÚstrip)r   Útextr#  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­   rD   r/  rB  r$   r  r  s   @r   r  r  ß  s'   ø† ñ÷*ð *÷$+ð $+÷L
ð 
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   Úoption_stringsrœ   rS   r   r4   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  rD   rH  rI  )	r   rG  rS   r4   rH  rI  rn   r   r  s	   &&&&$$*,€r   rD   Ú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.ArgumentParserrp   rr   r   r-   r   )r   s   "r   r   rJ  6  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.  )ÚsetattrrS   r�   r‘   rH  rI  )r   ræ   rp   rn   r   Úcurrent_overridess   &&&*, r   Ú__call__ÚOverrideIniAction.__call__6  s]   € ô 	�	Ÿ9™9 dÔ+Ü# I¨~¸tÓDÐØÒ$Ø "ÐØ× Ñ  D§O¡OÐ#4°A°d·n±nÐ5EÐ!FÔGÜ�	˜>Ð+<Ö=r   )rH  rI  rH   )	r    r!   r"   r#   r­   rD   rR  r$   r  r  s   @r   rE  rE     s   ø† ñ÷#ò #÷>ó >r   rE  )#Ú
__future__r   rx   Úcollections.abcr   r   r   rv   r�   Útypingr   r   r	   r
   Ú
exceptionsr   Ú_pytest._ior$  Ú_pytest.deprecatedr   r>   r   r¤   r&   r¥   Ú	Exceptionr³   rQ   r;   ÚArgumentParserr8   ÚHelpFormatterr  ÚActionrE  r   r   r   Ú<module>r^     sÄ   ðå "ã Ý $Ý #Ý $Û 	Û 
Ý Ý Ý Ý å "Û Ý -ð €÷ñ ñ
 ‹(€ð ÷i,ð i,ó ði,õXô*�Iô ÷X6ñ X6÷v4$ñ 4$ôn4˜8×2Ñ2ô 4ô:> 8×#9Ñ#9ô >ôB">˜Ÿ™ö ">r   