§ |<ˆjéRãóì—ddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z dd lmZdd lmZdd lmZddlmZddlZddlmZddlmZddlmZddlmZddlmZddlmZerddlmZdZeGd„d¦«¦«Z Gd„de!¦«Z"Gd„d¦«Z#Gd„d¦«Z$Gd„d ej%¦«Z&Gd!„d"ej'¦«Z(dS)#éN)Úgettext)ÚAny)ÚCallable)Úcast)ÚDict)ÚList)ÚMapping)ÚNoReturn)ÚOptional)ÚSequence)ÚTuple)Ú TYPE_CHECKING)ÚUnion)Úfinal)Ú UsageError)ÚARGUMENT_PERCENT_DEFAULT)ÚARGUMENT_TYPE_STR)ÚARGUMENT_TYPE_STR_CHOICE)Úcheck_ispytest)ÚLiteralÚ file_or_dirc ór—eZdZUdZdZeeed< d%ddœdeedeedgdfd e d dfd „Z d&d „Z d'dededeed dfd„Z dede d dfd„Z d(deeedfdeejd ejfd„Zd)d„Z d(deeedfd ejdeejd eefd„Z d(deeedfdeejd ejfd„Z d(deeedfdeejd eejeeffd„Z d%ded ed!ed"d#e d df d$„ZdS)*ÚParserzÄParser for command line arguments and ini-file values. :ivar extra_info: Dict of generic param -> value to display in case there's an error processing the command line arguments. NÚprogF©Ú _ispytestÚusageÚ processoptÚArgumentrÚreturncó¦—t|¦«td|d¬¦«|_g|_||_||_i|_g|_i|_dS)NzCustom optionsT©Úparserr) rÚ OptionGroupÚ _anonymousÚ_groupsÚ _processoptÚ_usageÚ_inidictÚ _ininamesÚ extra_info)Úselfrrrs úk/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/_pytest/config/argparsing.pyÚ__init__zParser.__init__+sX€õ �yÑ!Ô!Ð!Ý%Ð&6¸tÈtÐTÑTÔTˆŒØ*,ˆŒ Ø%ˆÔ؈Œ ØCEˆŒ Ø$&ˆŒØ*,ˆŒˆˆóÚoptioncóT—|jr|jr| |¦«dSdSdS©N)r'Údest)r,r0s r-Ú processoptionzParser.processoption;sE€Ø Ô ð )ØŒ{ð )Ø× Ò  Ñ(Ô(Ð(Ð(Ð(ð )ð )ð )ð )r/ÚÚnameÚ descriptionÚafterr$cóì—|jD]}|j|kr|cSŒt|||d¬¦«}d}t|j¦«D]\}}|j|krnŒ|j |dz|¦«|S)aGet (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 ` but will be shown in the respective group in the output of ``pytest --help``. Tr"ré)r&r6r$Ú enumerateÚinsert)r,r6r7r8ÚgroupÚiÚgrps r-ÚgetgroupzParser.getgroup@s €ð”\ð ð ˆEØŒz˜TÒ!Ð!Ø� � � ð"å˜D +°dÀdÐKÑKÔKˆØ ˆÝ ¤ Ñ-Ô-ð ð ‰FˆAˆsØŒx˜5Ò Ð Ø�ð!à Œ ×Ò˜A ™E 5Ñ)Ô)Ð)؈ r/ÚoptsÚattrscó*—|jj|i|¤ŽdS)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 :py:func:`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)r,rArBs r-rDzParser.addoptionZs$€ð "ˆŒÔ! 4Ð1¨5Ð1Ð1Ð1Ð1Ð1r/Úargszos.PathLike[str]Ú namespacecó°—ddlm}| ¦«|_||j¦«d„|D¦«}|j ||¬¦«S)Nr)Útry_argcompletecó6—g|]}tj|¦«‘ŒS©©ÚosÚfspath©Ú.0Úxs r-ú z Parser.parse..só €Ð.Ð.Ð. A•2”9˜Q‘<”<Ð.Ð.Ð.r/©rF)Ú_pytest._argcompleterHÚ _getparserÚ optparserÚ parse_args)r,rErFrHÚstrargss r-Úparsez Parser.parsejsg€ð 9Ð8Ð8Ð8Ð8Ð8àŸšÑ*Ô*ˆŒØˆ˜œÑ'Ô'Ð'Ø.Ð.¨Ð.Ñ.Ô.ˆØŒ~×(Ò(¨¸IÐ(ÑFÔFÐFr/ÚMyOptionParsercóŒ—ddlm}t||j|j¬¦«}|j|jgz}|D]k}|jrb|jp|j }|  |¦«}|jD]7}|  ¦«}|  ¦«} |j |i| ¤ŽŒ8Œl|  td¬¦«} || _|S)Nr)Úfilescompleter)rÚ*)Únargs)rTr\rZr+rr&r%Úoptionsr7r6Úadd_argument_groupÚnamesrBÚ add_argumentÚ FILE_OR_DIRÚ completer) r,r\rVÚgroupsr=ÚdescÚarggroupr0ÚnÚaÚfile_or_dir_args r-rUzParser._getparservsç€Ø7Ð7Ð7Ð7Ð7Ð7å" 4¨¬¸t¼yÐIÑIÔIˆ Ø” ¤Ð 1Ñ1ˆØð 3ð 3ˆEØŒ}ð 3ØÔ(Ð6¨E¬J�Ø$×7Ò7¸Ñ=Ô=�Ø#œmð3ð3�FØŸ š ™œ�AØŸ š ™œ�AØ)�HÔ)¨1Ð2°Ð2Ð2Ð2Ð2øØ#×0Ò0µÀCÐ0ÑHÔHˆð%3ˆÔ!ØÐr/cóö—| ||¬¦«}|j ¦«D]\}}t|||¦«Œt t t t|t¦«¦«S)NrS) rYÚ__dict__ÚitemsÚsetattrrrÚstrÚgetattrrc)r,rEr0rFÚ parsedoptionr6Úvalues r-Úparse_setoptionzParser.parse_setoption‰sn€ð —z’z $°)�zÑ<Ô<ˆ Ø'Ô0×6Ò6Ñ8Ô8ð )ð )‰KˆD�%Ý �F˜D %Ñ (Ô (Ð (Ð (Ý•D�”I�w |µ[ÑAÔAÑBÔBÐBr/có<—| ||¬¦«dS)zbParse the known arguments at this point. :returns: An argparse namespace object. rSr)Úparse_known_and_unknown_args)r,rErFs r-Úparse_known_argszParser.parse_known_args”s"€ð×0Ò0°ÀÐ0ÑKÔKÈAÔNÐNr/cóp—| ¦«}d„|D¦«}| ||¬¦«S)aParse the known arguments at this point, and also return the remaining unknown arguments. :returns: A tuple containing an argparse namespace object for the known arguments, and a list of the unknown arguments. có6—g|]}tj|¦«‘ŒSrJrKrNs r-rQz7Parser.parse_known_and_unknown_args..¬rRr/rS)rUrv)r,rErFrVrXs r-ruz#Parser.parse_known_and_unknown_argsŸs?€ð—O’OÑ%Ô%ˆ Ø.Ð.¨Ð.Ñ.Ô.ˆØ×)Ò)¨'¸YÐ)ÑGÔGÐGr/ÚhelpÚtypezBLiteral['string', 'paths', 'pathlist', 'args', 'linelist', 'bool']Údefaultcó`—|dvsJ‚|||f|j|<|j |¦«dS)a–Register an ini-file option. :param name: Name of the ini-variable. :param type: Type of the variable. 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 .. versionadded:: 7.0 The ``paths`` variable type. Defaults to ``string`` if ``None`` or not passed. :param default: Default value if no ini-file option exists but is queried. The value of ini-variables can be retrieved via a call to :py:func:`config.getini(name) `. )NÚstringÚpathsÚpathlistrEÚlinelistÚboolN)r)r*Úappend)r,r6ryrzr{s r-Úaddiniz Parser.addini¯sF€ðBÐXÐXÐXÐXÐXØ# T¨7Ð3ˆŒ �dÑØ Œ×Ò˜dÑ#Ô#Ð#Ð#Ð#r/©NN)r0rr N©r5Nr2)r rZ)Ú__name__Ú __module__Ú __qualname__Ú__doc__rr roÚ__annotations__rr�r.r4r@rrDr rÚargparseÚ NamespacerYrUrrsrvr rurƒrJr/r-rr!s €€€€€€ððð €Dˆ(�3Œ-ÐÐÑð $Ø=Að-ð  ð -ð-ð-à˜Œ}ð-ð˜X z l°DÐ&8Ô9Ô:ð-ð ð -ð ð -ð-ð-ð-ð )ð)ð)ð)ð HLððØðØ&)ðØ7?À´}ðà ððððð42˜sð2¨Sð2°Tð2ð2ð2ð2ð&37ð Gð Gà�u˜SÐ"4Ð4Ô5Ô6ð Gð˜HÔ.Ô/ð Gð Ô ð Gð Gð Gð Gððððð.37ð Cð Cà�u˜SÐ"4Ð4Ô5Ô6ð CðÔ"ð Cð˜HÔ.Ô/ð Cð ˆcŒð Cð Cð Cð Cð37ð Oð Oà�u˜SÐ"4Ð4Ô5Ô6ð Oð˜HÔ.Ô/ð Oð Ô ð Oð Oð Oð Oð37ðHðHà�u˜SÐ"4Ð4Ô5Ô6ðHð˜HÔ.Ô/ðHð ˆxÔ! 4¨¤9Ð,Ô -ð HðHðHðHð, Øð#$ð#$àð#$ðð#$ðØ Pô ð #$ðð#$ð ð#$ð#$ð#$ð#$ð#$ð#$r/rcóB—eZdZdZdededefddfd„Zdefd„ZdS) Ú ArgumentErrorzURaised if an Argument instance is created with invalid or inconsistent arguments.Úmsgr0rr Ncó<—||_t|¦«|_dSr2)r�roÚ option_id)r,r�r0s r-r.zArgumentError.__init__Ùs€ØˆŒÝ˜V™œˆŒˆˆr/cóB—|jrd|j›d|j›�S|jS)Nzoption ú: )r‘r�©r,s r-Ú__str__zArgumentError.__str__Ýs-€Ø Œ>ð Ø9˜Tœ^Ð9Ð9¨t¬xÐ9Ð9Ð 9à”8ˆOr/)r†r‡rˆr‰rorr.r•rJr/r-rŽrŽÕsk€€€€€ððð%˜Cð%¨¨z¸3¨Ô)?ð%ÀDð%ð%ð%ð%ð˜ððððððr/rŽcó�—eZdZdZeeeedœZdede ddfd„Z de efd„Z de ee ffd „Zd eeddfd „Zdefd „ZdS) rz÷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 )Úintr}ÚfloatÚcomplexrarBr NcóÜ—||_g|_g|_d| d¦«pdvrt jt d¬¦« |d}t|t¦«rœ|dkrIt jtj ||¬¦«d ¬¦«t|d d ¦«|d<n?t jtj ||¬¦«d ¬¦«tj||d<|d|_ n||_ n#t$rYnwxYw |d |_n#t$rYnwxYw| |¦«| d ¦«}|r ||_dS|jr0|jd dd… dd¦«|_dS |jd dd…|_dS#t($r}d|_t+d|¦«|‚d}~wwxYw)z5Store params in private vars for use in add_argument.ú%defaultryr5é)Ú stacklevelrzÚchoice)ÚtypraéÚchoicesrr{r3éNú-Ú_r:z???zneed a long or short option)Ú_attrsÚ _short_optsÚ _long_optsÚgetÚwarningsÚwarnrÚ isinstancerorÚformatrzrrÚ_typ_mapÚKeyErrorr{Ú_set_opt_stringsr3ÚreplaceÚ IndexErrorrŽ)r,rarBrŸr3Úes r-r.zArgument.__init__ïs>€àˆŒ Ø&(ˆÔØ%'ˆŒØ ˜%Ÿ)š) FÑ+Ô+Ð1¨rÐ 2Ð 2Ý ŒMÕ2¸qÐ AÑ AÔ AÐ Að Ø˜”-ˆCõ ˜#�sÑ#Ô#ð Ø˜(’?�?Ý”MÝ0Ô7¸CÀuÐMÑMÔMØ#$ðñôðõ %)¨¨yÔ)9¸!Ô)<Ñ$=Ô$=�E˜&‘M�Må”MÝ)Ô0°SÀÐFÑFÔFÐSTðñôðõ%-Ô$5°cÔ$:�E˜&‘Mà! &œM�” � à�” � øõ+ð ð ð Ø ˆDð øøøð, à  Ô+ˆDŒLˆLøÝð ð ð Ø ˆDð øøøà ×Ò˜eÑ$Ô$Ð$Ø#Ÿiši¨Ñ/Ô/ˆØ ð P؈DŒIˆIˆIØ Œ_ð PØœ¨Ô*¨1¨2¨2Ô.×6Ò6°s¸CÑ@Ô@ˆDŒIˆIˆIð PØ Ô,¨QÔ/°°°Ô3�” � � øÝð Pð Pð PØ!�” Ý#Ð$AÀ4ÑHÔHÈaÐOøøøøð Pøøøs<Á D Ä DÄDÄ D+Ä+ D8Ä7D8Æ(GÇ G+ÇG&Ç&G+có —|j|jzSr2)r¦r§r”s r-razArgument.names s€ØÔ $¤/Ñ1Ð1r/cóV—d ¦«}| |j¦«|D]+} t||¦«|j|<Œ#t $rYŒ(wxYw|j d¦«r-|jd}| dd¦«}||jd<|jS)Nzdefault dest helpryr›z %(default)s)Úsplitr‚r3rpr¥ÚAttributeErrorr¨r°)r,rBÚattrris r-rBzArgument.attrs#s½€à#×)Ò)Ñ+Ô+ˆØ � Š �T”YÑÔÐØð ð ˆDð Ý$+¨D°$Ñ$7Ô$7�” ˜DÑ!Ð!øÝ!ð ð ð Ø�ð øøøà Œ;�?Š?˜6Ñ "Ô "ð $Ø” ˜FÔ#ˆAØ— ’ ˜* mÑ4Ô4ˆAà"#ˆDŒK˜Ñ ØŒ{Ðs´A Á AÁArAcóœ—|D]È}t|¦«dkrtd|z|¦«‚t|¦«dkrF|ddkr |ddkstd|z|¦«‚|j |¦«Œ�|dd…dkr |ddkstd|z|¦«‚|j |¦«ŒÉd S) zhDirectly from optparse. Might not be necessary as this is passed to argparse later on. r¢z>invalid option string %r: must be at least two characters longrr£r:zMinvalid short option string %r: must be of the form -x, (x any non-dash char)ú--zGinvalid long option string %r: must start with --, followed by non-dashN)ÚlenrŽr¦r‚r§)r,rAÚopts r-r¯zArgument._set_opt_strings3s€ð ð ,ð ,ˆCÝ�3‰xŒx˜!Š|ˆ|Ý#ð;Ø=@ñAàñôðõ �S‘”˜Q’�ؘAœ #š ˜ ¨#¨a¬&°Cª-¨-Ý'ðHØJMñNàñôðð Ô ×'Ò'¨Ñ,Ô,Ð,Ð,à˜A˜a˜Cœ DÒ(Ð(¨S°¬V°sª]¨]Ý'ðCØEHñIàñôðð ”×&Ò& sÑ+Ô+Ð+Ð+ð- ,ð ,r/cóÀ—g}|jr|dt|j¦«zgz }|jr|dt|j¦«zgz }|dt|j¦«zgz }t |d¦«r|dt|j¦«zgz }t |d¦«r|dt|j¦«zgz }d d  |¦«¦«S) Nz _short_opts: z _long_opts: zdest: rzztype: r{z default: z Argument({})ú, ) r¦Úreprr§r3Úhasattrrzr{r¬Újoin)r,rEs r-Ú__repr__zArgument.__repr__Psç€ØˆØ Ô ð ?Ø �_¥t¨DÔ,<Ñ'=Ô'=Ñ=Ð>Ñ >ˆDØ Œ?ð =Ø �^¥d¨4¬?Ñ&;Ô&;Ñ;Ð<Ñ <ˆDØ ��D ¤™OœOÑ+Ð,Ñ,ˆÝ �4˜Ñ Ô ð 1Ø �X¥ T¤Y¡¤Ñ/Ð0Ñ 0ˆDÝ �4˜Ñ #Ô #ð 7Ø �[¥4¨¬ Ñ#5Ô#5Ñ5Ð6Ñ 6ˆDØ×$Ò$ T§Y¢Y¨t¡_¤_Ñ5Ô5Ð5r/)r†r‡rˆr‰r—ror˜r™r­rr.rrar rBr r¯rÁrJr/r-rräs怀€€€ððð c°EÀgÐNÐN€Hð/P˜sð/P¨Sð/P°Tð/Pð/Pð/Pð/Pðb2�t˜C”yð2ð2ð2ð2ð�w˜s C˜xÔ(ððððð , X¨c¤]ð,°tð,ð,ð,ð,ð: 6˜#ð 6ð 6ð 6ð 6ð 6ð 6r/rc ó„—eZdZdZ dddœdededeed ed df d „Zd ed e d dfd„Z d ed e d dfd„Z dddded dfd„Z dS)r$z,A group of options shown in its own section.r5NFrr6r7r#rr có\—t|¦«||_||_g|_||_dSr2)rr6r7r_r#)r,r6r7r#rs r-r.zOptionGroup.__init__as3€õ �yÑ!Ô!Ð!؈Œ Ø&ˆÔØ')ˆŒ ؈Œ ˆ ˆ r/rArBcóÖ—t|¦« d„|jD¦«¦«}|rtd|z¦«‚t |i|¤Ž}| |d¬¦«dS)aMAdd 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 :py:func:`add_argument() ` function accepts. c3óHK—|]}| ¦«D]}|V—ŒŒdSr2)ra)rOr»r6s r-ú z(OptionGroup.addoption..}sOèè€ð* ð* ذS·Y²Y±[´[ð* ð* Ø-1ˆDð* ð* ð* ð* ð* ð* ð* r/zoption names %s already addedF©Ú shortupperN)ÚsetÚ intersectionr_Ú ValueErrorrÚ_addoption_instance)r,rArBÚconflictr0s r-rDzOptionGroup.addoptionos�€õ�t‘9”9×)Ò)ð* ð* Ø œLð* ñ* ô* ñ ô ˆð ð IÝÐ<¸xÑGÑHÔHÐ Hݘ4Ð) 5Ð)Ð)ˆØ × Ò  °EÐ Ñ:Ô:Ð:Ð:Ð:r/cóL—t|i|¤Ž}| |d¬¦«dS)NTrÇ)rrÌ)r,rArBr0s r-Ú _addoptionzOptionGroup._addoption…s3€Ý˜4Ð) 5Ð)Ð)ˆØ × Ò  °DÐ Ñ9Ô9Ð9Ð9Ð9r/r0rrÈcóþ—|s?|jD]7}|ddkr)|d ¦«rtd¦«‚Œ8|jr|j |¦«|j |¦«dS)Nrr£r:zlowercase shortoptions reserved)r¦ÚislowerrËr#r4r_r‚)r,r0rÈr»s r-rÌzOptionGroup._addoption_instance‰sŠ€Øð HØÔ)ð Hð H�Ø�q”6˜S’=�= S¨¤V§^¢^Ñ%5Ô%5�=Ý$Ð%FÑGÔGÐGøØ Œ;ð .Ø ŒK× %Ò % fÑ -Ô -Ð -Ø Œ ×Ò˜FÑ#Ô#Ð#Ð#Ð#r/r…)F) r†r‡rˆr‰ror rr�r.rrDrÏrÌrJr/r-r$r$^s€€€€€Ø6Ð6ð Ø#'ð ð  ð ð ð àð ðð ð˜Ô ð ð ð ð ð ð ð ð ð;˜sð;¨Sð;°Tð;ð;ð;ð;ð,: ð:¨cð:°dð:ð:ð:ð:ð$ð$¨*ð$À$ð$ÐSWð$ð$ð$ð$ð$ð$r/r$c ó>‡—eZdZ ddedeeeefdeeddfˆfd„ Zdede fd„Z dd ee ed ee j de j fd „Zejdd …d kr,dedeeee jeeeffd„ZˆxZSˆxZS)rZNr#r+rr c󌕗||_t¦« ||jdtd¬¦«|r|ni|_dS)NF)rrÚadd_helpÚformatter_classÚ allow_abbrev)Ú_parserÚsuperr.r(ÚDropShorterLongHelpFormatterr+)r,r#r+rÚ __class__s €r-r.zMyOptionParser.__init__”sTø€ð ˆŒ Ý ‰Œ×ÒØØ”-ØÝ8Øð ñ ô ð ð)3Ð:˜*˜*¸ˆŒˆˆr/Úmessagecó°—|j›d|›�}t|jd¦«r|›d|jj›d�}t | ¦«|z¦«‚)z1Transform argparse error message into UsageError.z : error: Ú_config_source_hintz (ú))rr¿r×rÝrÚ format_usage)r,rÛr�s r-ÚerrorzMyOptionParser.error¦sg€à”Ð.Ð. WÐ.Ð.ˆå �4”<Ð!6Ñ 7Ô 7ð @àÐ?Ð?˜DœLÔ<Ð?Ð?Ð?ˆCå˜×*Ò*Ñ,Ô,¨sÑ2Ñ3Ô3Ð3r/rErFcó—| ||¦«\}}|rÃ|D]˜}|r”|ddkrˆdd |¦«zg}t|j ¦«¦«D] \}}| d|›d|›�¦«Œ!| d |¦«¦«Œ™t|t¦«  |¦«|S)z(Allow splitting of positional arguments.rr£zunrecognized arguments: %sú z r“ú ) rvrÀÚsortedr+rmr‚ràrprcÚextend) r,rErFÚparsedÚ unrecognizedÚargÚlinesÚkÚvs r-rWzMyOptionParser.parse_args±sî€ð $×4Ò4°T¸9ÑEÔEш� Ø ð >Ø#ð 1ð 1�Øð1˜3˜qœ6 Sš=˜=Ø9¸S¿XºXÀlÑ=SÔ=SÑTÐU�EÝ & t¤×'<Ò'<Ñ'>Ô'>Ñ ?Ô ?ð4ð4™˜˜1ØŸ š  ]¨! ] ]¨q ] ]Ñ3Ô3Ð3Ð3Ø—J’J˜tŸyšy¨Ñ/Ô/Ñ0Ô0Ð0øÝ �F�KÑ (Ô (× /Ò /° Ñ =Ô =Ð =؈ r/r¢)rœé Ú arg_stringcó¦—|sdS|d|jvrdS||jvr|j|}||dfSt|¦«dkrdSd|vr4| dd¦«\}}||jvr|j|}|||fS|js| d¦«s‹| |¦«}t|¦«dkrJtd¦«}d d„|D¦«¦«}|  |||dœz¦«nt|¦«dkr|\}|S|j   |¦«r |j sdSd |vrdSd|dfS) Nrr:ú=r¹z4ambiguous option: %(option)s could match %(matches)sr½c3ó"K—|] \}}}|V—Œ dSr2rJ)rOr¤r0s r-rÆz1MyOptionParser._parse_optional..Üs(èè€Ð'QÐ'Q±<°1°f¸a¨Ð'QÐ'QÐ'QÐ'QÐ'QÐ'Qr/)r0Úmatchesrâ) Ú prefix_charsÚ_option_string_actionsrºrµrÖÚ startswithÚ_get_option_tuplesrrÀràÚ_negative_number_matcherÚmatchÚ_has_negative_number_optionals) r,ríÚactionÚ option_stringÚ explicit_argÚ option_tuplesr�r_Ú option_tuples r-Ú_parse_optionalzMyOptionParser._parse_optionalÅsµ€ðð Ø�tؘa”= DÔ$5Ð5Ð5Ø�tؘTÔ8Ð8Ð8ØÔ4°ZÔ@�ؘz¨4Ð/Ð/Ý�:‰Œ !Ò#Ð#Ø�tØ�jÐ Ð Ø.8×.>Ò.>¸sÀAÑ.FÔ.FÑ+� ˜|Ø  DÔ$?Ð?Ð?Ø!Ô8¸ÔG�FØ! =°,Ð>Ð>ØÔ ð (¨ ×(=Ò(=¸dÑ(CÔ(Cð (Ø $× 7Ò 7¸ Ñ CÔ C� Ý�}Ñ%Ô%¨Ò)Ð)Ý!ØNñô�Cð#ŸišiÐ'QÐ'QÀ=Ð'QÑ'QÔ'QÑQÔQ�GØ—J’J˜s° ÀwÐ%OÐ%OÑOÑPÔPÐPÐPݘÑ'Ô'¨1Ò,Ð,Ø&3‘O�\Ø'Ð'ØÔ,×2Ò2°:Ñ>Ô>ð ØÔ:ð Ø˜4Ø�jÐ Ð Ø�tؘ TÐ)Ð )r/r„)r†r‡rˆrr rrorr.r ràr r‹rŒrWÚsysÚ version_infor ÚActionrþÚ __classcell__©rÚs@r-rZrZ“s[ø€€€€€ð04Ø"ð ;ð;àð;ð˜T # s (œ^Ô,ð;ð�sŒmð ;ð ð ;ð;ð;ð;ð;ð;ð$4˜Sð4 Xð4ð4ð4ð4ð)-Ø26ððà�x ”}Ô%ðð˜HÔ.Ô/ðð Ô ð ðððð" Ô˜˜˜Ô˜fÒ$Ð$ð! *Ø!ð! *à �e˜H X¤_Ô5°s¸HÀS¼MÐIÔJÔ Kð! *ð! *ð! *ð! *ð! *ð! *ð! *ð! *ð%Ð$Ð$Ð$r/rZcóT‡—eZdZdZdededdfˆfd„ Zdejdefˆfd„ Z d „Z ˆxZ S) rÙ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. rEÚkwargsr Ncó„•—d|vr!tj ¦«|d<t¦«j|i|¤ŽdS)NÚwidth)Ú_pytestÚ_ioÚget_terminal_widthrØr.)r,rErrÚs €r-r.z%DropShorterLongHelpFormatter.__init__ñsGø€à ˜&Ð Ð Ý%œk×<Ò<Ñ>Ô>ˆF�7‰OØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r/rùcó•—t¦« |¦«}|r|ddkr|St|dd¦«}|r|S| d¦«}t |¦«dkr;t |d¦«dkst |d¦«dkr ||_|Sg}i}|D]™}t |¦«dks |ddkrŒ"| d¦«std |z|¦«‚|dd…}| dd ¦«} | |vs&t || ¦«t |¦«kr||| <Œš|D]•}t |¦«dks |ddkr|  |¦«|dd…|  | dd ¦«¦«kr*|  | dd d¦«¦«Œ–d  |¦«} | |_| S) Nrr£Ú_formatted_action_invocationr½r¢r:râr¹z)long optional argument without "--": [%s]r5rï) rØÚ_format_action_invocationrprµrºr rôrŽr°r‚r¨rÀ) r,rùÚorgstrÚresr_Ú return_listÚ short_longr0ÚxxoptionÚ shortenedÚformatted_action_invocationrÚs €r-r z6DropShorterLongHelpFormatter._format_action_invocation÷s6ø€Ý‘”×2Ò2°6Ñ:Ô:ˆØ ð �f˜Q”i 3Ò&Ð&؈MÝ$ VÐ-KÈTÑRÔRˆØ ð ØˆJØ—,’,˜tÑ$Ô$ˆÝ ˆw‰<Œ<˜1Ò Ð ¥# g¨a¤j¡/¤/°QÒ"6Ð"6½#¸gÀa¼j¹/¼/ÈQÒ:NÐ:Nà28ˆFÔ /؈M؈ Ø%'ˆ Øð 1ð 1ˆFÝ�6‰{Œ{˜aÒР6¨!¤9°Ò#3Ð#3ØØ×$Ò$ TÑ*Ô*ð Ý#Ø?À6ÑJÈFñôðð˜a˜b˜b”zˆHØ ×(Ò(¨¨bÑ1Ô1ˆIØ  Ð*Ð*­c°*¸YÔ2GÑ.HÔ.HÍ3ØñLôLò/ð/ð)1� ˜9Ñ%øðð @ð @ˆFÝ�6‰{Œ{˜aÒР6¨!¤9°Ò#3Ð#3Ø×"Ò" 6Ñ*Ô*Ð*Ø�a�b�bŒz˜ZŸ^š^¨F¯NªN¸3ÀÑ,CÔ,CÑDÔDÒDÐDØ×"Ò" 6§>¢>°#°s¸AÑ#>Ô#>Ñ?Ô?Ð?øØ&*§i¢i° Ñ&<Ô&<Ð#Ø.IˆÔ+Ø*Ð*r/có¶—ddl}g}| ¦«D]=}| | | ¦«|¦«¦«Œ>|S)z}Wrap lines after splitting on original newlines. This allows to have explicit line breaks in the help text. rN)ÚtextwrapÚ splitlinesråÚwrapÚstrip)r,ÚtextrrréÚlines r-Ú _split_linesz)DropShorterLongHelpFormatter._split_liness[€ð ˆˆˆàˆØ—O’OÑ%Ô%ð =ð =ˆDØ �LŠL˜Ÿš t§z¢z¡|¤|°UÑ;Ô;Ñ <Ô <Ð <Ð <؈ r/) r†r‡rˆr‰rr.r‹rror rrrs@r-rÙrÙésšø€€€€€ððð*˜cð*¨Sð*°Tð*ð*ð*ð*ð*ð*ð $+°´ð$+ÀCð$+ð$+ð$+ð$+ð$+ð$+ðL ð ð ð ð ð ð r/rÙ))r‹rLrÿr©rÚtypingrrrrrr r r r r rrÚ _pytest._iorÚ_pytest.compatrÚ_pytest.config.exceptionsrÚ_pytest.deprecatedrrrrÚtyping_extensionsrrcrÚ ExceptionrŽrr$ÚArgumentParserrZÚ HelpFormatterrÙrJr/r-úr&sØðØ€€€Ø € € € Ø € € € Ø€€€ØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ Ð Ð Ð Ð Ð ØÐÐÐÐÐàÐÐÐØ Ð Ð Ð Ð Ð Ø0Ð0Ð0Ð0Ð0Ð0Ø7Ð7Ð7Ð7Ð7Ð7Ø0Ð0Ð0Ð0Ð0Ð0Ø7Ð7Ð7Ð7Ð7Ð7Ø-Ð-Ð-Ð-Ð-Ð-àð*Ø)Ð)Ð)Ð)Ð)Ð)à€ ððp$ðp$ðp$ðp$ðp$ñp$ôp$ñ„ðp$ðf ð ð ð ð �Iñ ô ð ðw6ðw6ðw6ðw6ðw6ñw6ôw6ðw6ðt2$ð2$ð2$ð2$ð2$ñ2$ô2$ð2$ðjS*ðS*ðS*ðS*ðS*�XÔ,ñS*ôS*ðS*ðl>ð>ð>ð>ð> 8Ô#9ñ>ô>ð>ð>ð>r/