Ë
    _§1hgŸ  ã                  óø  — d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZ d dlmZ er/d dlZd dlZd dlmZmZ d d	lmZmZmZ d d
lmZmZ  edeed¬«      Znd dl
mZ  eded¬«      Z eded¬«      Z  ede¬«      Z! ede¬«      Z" ede#¬«      Z$ ede#¬«      Z%ejL                  dk  rd dl'm(Z(m)Z) e G d„ dee   «      «       Z*ere*Z+n	 d dl,m+Z+ d,d„Z. ej^                  d«      j`                  Z1d-d„Z2d.d„Z3d/d„Z4	 	 	 	 	 	 d0d „Z5 G d!„ d"eee    «      Z6e G d#„ d$e6e   «      «       Z7e G d%„ d&e6e(e       «      «       Z8e G d'„ d(«      «       Z9 G d)„ d*«      Z:d1d2d+„Z;y# e-$ r e*Z+Y Œ–w xY w)3é    )ÚannotationsN)ÚABCÚabstractmethod)ÚPattern)Úindent)ÚTYPE_CHECKINGÚGenericÚLiteralÚcastÚoverload)Úfinal)ÚCallableÚSequence)ÚExceptionChainReprÚReprExceptionInfoÚ	Traceback)Ú	TypeGuardÚTypeVarÚMatchET)ÚboundÚdefaultÚ	covariant)r   )r   r   ÚBaseExcT_coÚ
BaseExcT_1)r   Ú
BaseExcT_2ÚExcT_1ÚExcT_2)é   é   )ÚBaseExceptionGroupÚExceptionGroupc                  óÔ   — e Zd ZU dZded<   	 	 	 	 dd„Z	 	 	 	 dd„Zedd„«       Ze	dd„«       Z
e	dd„«       Ze	dd	„«       Zddd
„Z	 	 	 	 dd„Z	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zy)Ú_ExceptionInfozÞMinimal re-implementation of pytest.ExceptionInfo, only used if pytest is not available. Supports a subset of its features necessary for functionality of :class:`trio.testing.RaisesGroup` and :class:`trio.testing.Matcher`.ú7tuple[type[MatchE], MatchE, types.TracebackType] | NoneÚ_excinfoc                ó   — || _         y ©N©r%   )ÚselfÚexcinfos     úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/testing/_raises_group.pyÚ__init__z_ExceptionInfo.__init__:   s   € ð  ˆ�ó    c                ó8   — | j                   �J d«       ‚|| _         y)z<Fill an unfilled ExceptionInfo created with ``for_later()``.Nz ExceptionInfo was already filledr(   )r)   Úexc_infos     r+   Úfill_unfilledz_ExceptionInfo.fill_unfilled@   s!   € ð
 �}‰}Ð$ÐHÐ&HÓHÐ$Ø ˆ�r-   c                ó   —  | d«      S )z!Return an unfilled ExceptionInfo.N© )Úclss    r+   Ú	for_laterz_ExceptionInfo.for_laterH   s   € ñ �4‹yÐr-   c                óF   — | j                   €J d«       ‚| j                   d   S )zThe exception class.z6.type can only be used after the context manager exitsr   r(   ©r)   s    r+   Útypez_ExceptionInfo.typeN   s/   € ð �M‰MÐ%ð	DàCó	DØ%à�}‰}˜QÑÐr-   c                óF   — | j                   €J d«       ‚| j                   d   S )zThe exception value.z7.value can only be used after the context manager exitsé   r(   r6   s    r+   Úvaluez_ExceptionInfo.valueV   s/   € ð �M‰MÐ%ð	EàDó	EØ%à�}‰}˜QÑÐr-   c                óF   — | j                   €J d«       ‚| j                   d   S )zThe exception raw traceback.z4.tb can only be used after the context manager exitsé   r(   r6   s    r+   Útbz_ExceptionInfo.tb^   s/   € ð �M‰MÐ%ð	BàAó	BØ%à�}‰}˜QÑÐr-   c                ó   — t        d«      ‚©Nz_This is a helper method only available if you use RaisesGroup with the pytest package installed©ÚNotImplementedError)r)   Útryshorts     r+   Úexconlyz_ExceptionInfo.exconlyf   s   € Ü!Ømó
ð 	
r-   c                ó   — t        d«      ‚r?   r@   )r)   Úexcs     r+   Úerrisinstancez_ExceptionInfo.errisinstancek   s   € ô "Ømó
ð 	
r-   c                ó   — t        d«      ‚r?   r@   )r)   Ú
showlocalsÚstyleÚabspathÚtbfilterÚfuncargsÚtruncate_localsÚchains           r+   Úgetreprz_ExceptionInfo.getreprs   s   € ô "Ømó
ð 	
r-   N)r*   r$   ÚreturnÚNone)r/   z0tuple[type[MatchE], MatchE, types.TracebackType]rP   rQ   )rP   z_ExceptionInfo[MatchE])rP   útype[MatchE])rP   r   )rP   ztypes.TracebackType)F)rB   ÚboolrP   Ústr)rE   zGbuiltins.type[BaseException] | tuple[builtins.type[BaseException], ...]rP   rS   )FÚlongFTFTT)rH   rS   rI   rT   rJ   rS   rK   z,bool | Callable[[_ExceptionInfo], Traceback]rL   rS   rM   rS   rN   rS   rP   z&ReprExceptionInfo | ExceptionChainRepr)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r,   r0   Úclassmethodr4   Úpropertyr7   r:   r=   rC   rF   rO   r2   r-   r+   r#   r#   4   s  … ñ iàEÓEð àHð ð 
ó ð!àBð!ð 
ó!ð òó ðð
 ò ó ð ð ò ó ð ð ò ó ð ô
ð

àTð
ð 
ó
ð !ØØØAEØØ $Øð
àð
ð ð
ð ð	
ð
 ?ð
ð ð
ð ð
ð ð
ð 
0ô
r-   r#   )ÚExceptionInfoc           	     óh   — dj                  t        | dt        | «      «      gt        | dg «      ¢«      S )Nú
ÚmessageÚ	__notes__)ÚjoinÚgetattrrT   )rE   s    r+   Ú_stringify_exceptionrd   ’   s9   € Ø�9‰9ä�C˜¤C¨£HÓ-ð	
ä�S˜+ rÓ*ð	
óð r-   Ú c                óD   — | j                   t        k(  r| j                  S | S )zJhelper function to remove redundant `re.compile` calls when printing regex)ÚflagsÚ_REGEX_NO_FLAGSÚpattern)Úmatchs    r+   Ú_match_patternrk   Ÿ   s   € à!ŸK™K¬?Ò:ˆ5�=‰=ÐEÀÐEr-   c                ó   — t        | «      S )zuGet the repr of a ``check`` parameter.

    Split out so it can be monkeypatched (e.g. by our hypothesis plugin)
    )Úrepr)Úfuns    r+   Úrepr_callablero   ¤   s   € ô
 �‹9Ðr-   c                ó,   — t        | j                  «      S r'   )rm   rV   ©Úes    r+   Ú_exception_type_namers   ¬   s   € Ü�—
‘
ÓÐr-   c                ó¾   — | €y t        || «      sNt        t        |«      «      }t        | «      }t        |t        «      rt	        | t        «      sd|› d|› �S |› d|› �S y )NzUnexpected nested z, expected z is not of type )Ú
isinstancers   r7   r    Ú
issubclass)Úexpected_typeÚ	exceptionÚactual_type_strÚexpected_type_strs       r+   Ú_check_raw_typer{   °   s~   € ð ÐØäØØôô /¬t°I«Ó?ˆÜ0°Ó?ÐÜ�iÔ!3Ô4¼ZØÔ-ô>
ð (¨Ð'8¸ÐDUÐCVÐWÐWØ!Ð"Ð"2Ð3DÐ2EÐFÐFØr-   c                  óp   — e Zd ZdZ	 	 	 	 	 	 dd„Zed	d„«       Z	 	 	 	 	 	 d
d„Zdd„Ze		 	 	 	 	 	 dd„«       Z
y)ÚAbstractMatcherzDABC with common functionality shared between Matcher and RaisesGroupc                ó’   — t        |t        «      rt        j                  |«      | _        n|| _        || _        d | _        d| _        y )NF)ru   rT   ÚreÚcompilerj   ÚcheckÚ_fail_reasonÚ_nested©r)   rj   r�   s      r+   r,   zAbstractMatcher.__init__È   s=   € ô
 �eœSÔ!Ü.0¯j©j¸Ó.?ˆD�JàˆDŒJØˆŒ
Ø(,ˆÔð #ˆ�r-   c                ó   — | j                   S )zÊSet after a call to `matches` to give a human-readable
        reason for why the match failed.
        When used as a context manager the string will be given as the text of an
        `AssertionError`)r‚   r6   s    r+   Úfail_reasonzAbstractMatcher.fail_reason×   s   € ð × Ñ Ð r-   c                ó¤   — | j                   €y| j                  |«      ry| j                  rdndt        | j                   «      z   }d|› d�| _        y)NTre   ú r�   z did not return TrueF)r�   rƒ   ro   r‚   )r)   rx   Ú
check_reprs      r+   Ú_check_checkzAbstractMatcher._check_checkß   sP   € ð �:‰:ÐØà�:‰:�iÔ ØàŸ<š<‘R¨S´=ÀÇÁÓ3LÑ-Lˆ
Ø# J <Ð/CÐDˆÔØr-   c                ód  — | j                   �+t        j                  | j                   t        |«      x}«      ryt	        |t
        «      rdt        t        |«      «      › �nd}dt        | j                   «      ›d|›|› �| _	        t        | j                   «      |k(  r| xj                  dz  c_	        y)NTz of re   zRegex pattern z did not match z+
  Did you mean to `re.escape()` the regex?F)
rj   r   Úsearchrd   ru   r    rs   r7   rk   r‚   )r)   rr   Ústringified_exceptionÚmaybe_specify_types       r+   Ú_check_matchzAbstractMatcher._check_matchí   s¸   € Ø�:‰:Ð¤§¡Ø�J‰JÜ%9¸!Ó%<Ð<Ð!ô"
ð ô ˜!Ô/Ô0ð Ô'¬¨Q«Ó0Ð1Ñ2àð 	ð
 -¬^¸D¿J¹JÓ-GÐ,JÈ/ÐZoÐYrð  tFð  sGð  HˆÔÜ˜$Ÿ*™*Ó%Ð)>Ò>Ø×ÒÐ!OÑOÕØr-   c                 ó   — y)z’Check if an exception matches the requirements of this AbstractMatcher.
        If it fails, `AbstractMatcher.fail_reason` should be set.
        Nr2   ©r)   Úexc_vals     r+   ÚmatcheszAbstractMatcher.matches   s   � r-   N)rj   ústr | Pattern[str] | Noner�   z$Callable[[BaseExcT_co], bool] | NonerP   rQ   )rP   ú
str | None)r)   úAbstractMatcher[BaseExcT_1]rx   r   rP   rS   )rr   ÚBaseExceptionrP   rS   )r)   r–   r’   r—   rP   zTypeGuard[BaseExcT_1])rV   rW   rX   rY   r,   r\   r†   rŠ   r�   r   r“   r2   r-   r+   r}   r}   Å   sŠ   „ ÙNð#à(ð#ð 4ð#ð 
ó	#ð ò!ó ð!ðØ)ðàðð 
óóð& ðØ)ðØ4Aðà	òó ñr-   r}   c                  ó´   ‡ — e Zd ZdZe	 	 d	 	 	 	 	 	 	 dd„«       Zeddœ	 	 	 	 	 	 	 dd„«       Zedd„«       Z	 	 	 d	 	 	 	 	 dˆ fd„Z	 	 	 	 dd„Zdd	„Zdd
„Zˆ xZ	S )ÚMatcheraŒ  Helper class to be used together with RaisesGroups when you want to specify requirements on sub-exceptions. Only specifying the type is redundant, and it's also unnecessary when the type is a nested `RaisesGroup` since it supports the same arguments.
    The type is checked with `isinstance`, and does not need to be an exact match. If that is wanted you can use the ``check`` parameter.
    :meth:`Matcher.matches` can also be used standalone to check individual exceptions.

    Examples::

        with RaisesGroups(Matcher(ValueError, match="string")):
            ...
        with RaisesGroups(Matcher(check=lambda x: x.args == (3, "hello"))):
            ...
        with RaisesGroups(Matcher(check=lambda x: type(x) is ValueError)):
            ...

    Tip: if you install ``hypothesis`` and import it in ``conftest.py`` you will get
    readable ``repr``s of ``check`` callables in the output.
    .c                 ó   — y r'   r2   )r)   Úexception_typerj   r�   s       r+   r,   zMatcher.__init__  s   € ð r-   )r�   c                ó   — y r'   r2   r„   s      r+   r,   zMatcher.__init__%  ó   € ð r-   c                ó   — y r'   r2   )r)   r�   s     r+   r,   zMatcher.__init__.  s   € ØKNr-   c                ó˜   •— t         ‰| �  ||«       |€|€|€t        d«      ‚|�t        |t        «      st        d|› d�«      ‚|| _        y )Nz4You must specify at least one parameter to match on.zexception_type z$ must be a subclass of BaseException)Úsuperr,   Ú
ValueErrorrv   r—   r›   )r)   r›   rj   r�   Ú	__class__s       €r+   r,   zMatcher.__init__1  sb   ø€ ô 	‰Ñ˜ Ô&ØÐ! e m¸¸ÜÐSÓTÐTØÐ%¬j¸ÌÔ.WÜØ! .Ð!1Ð1UÐVóð ð -ˆÕr-   c                ól   — | j                  |«      sy| j                  |«      sy| j                  |«      S )aÓ  Check if an exception matches the requirements of this Matcher.
        If it fails, `Matcher.fail_reason` will be set.

        Examples::

            assert Matcher(ValueError).matches(my_exception)
            # is equivalent to
            assert isinstance(my_exception, ValueError)

            # this can be useful when checking e.g. the ``__cause__`` of an exception.
            with pytest.raises(ValueError) as excinfo:
                ...
            assert Matcher(SyntaxError, match="foo").matches(excinfo.value.__cause__)
            # above line is equivalent to
            assert isinstance(excinfo.value.__cause__, SyntaxError)
            assert re.search("foo", str(excinfo.value.__cause__))

        F)Ú_check_typer�   rŠ   ©r)   rx   s     r+   r“   zMatcher.matches@  s7   € ð, ×Ñ 	Ô*Øà× Ñ  Ô+Øà× Ñ  Ó+Ð+r-   c                ó^  — g }| j                   �%|j                  | j                   j                  «       | j                  �'|j                  dt	        | j                  «      ›�«       | j
                  �'|j                  dt        | j
                  «      › �«       ddj                  |«      › d�S )Númatch=úcheck=zMatcher(ú, ú))r›   ÚappendrV   rj   rk   r�   ro   rb   )r)   Ú
parameterss     r+   Ú__repr__zMatcher.__repr__^  s�   € Øˆ
Ø×ÑÐ*Ø×Ñ˜d×1Ñ1×:Ñ:Ô;Ø�:‰:Ð!à×ÑØœ¨¯
©
Ó3Ð6Ð7ôð �:‰:Ð!Ø×Ñ ¤}°T·Z±ZÓ'@Ð&AÐBÔCØ˜$Ÿ)™) JÓ/Ð0°Ð2Ð2r-   c                óT   — t        | j                  |«      | _        | j                  d u S r'   )r{   r›   r‚   r¥   s     r+   r¤   zMatcher._check_typek  s(   € Ü+¨D×,?Ñ,?ÀÓKˆÔØ× Ñ  DÐ(Ð(r-   )..)r›   rR   rj   ústr | Pattern[str]r�   zCallable[[MatchE], bool]rP   rQ   )r)   zMatcher[BaseException]rj   r¯   r�   úCallable[[BaseException], bool]rP   rQ   )r�   r°   rP   rQ   )NNN)r›   ztype[MatchE] | Nonerj   r”   r�   zCallable[[MatchE], bool] | None)rx   r—   rP   zTypeGuard[MatchE]©rP   rT   )
rV   rW   rX   rY   r   r,   r“   r­   r¤   Ú__classcell__©r¢   s   @r+   r™   r™   	  sæ   ø„ ñð$ ð %(Ø*-ð	à$ðð "ðð (ð	ð
 
òó ðð ð 25ñØ$ðð "ðð
 /ðð 
òó ðð ÚNó ØNð /3Ø+/Ø15ð	-à+ð-ð )ð-ð /õ	-ð,à ð,ð 
ó,ó<3÷)r-   r™   c                  ó  ‡ — e Zd ZdZeddœ	 	 	 	 	 	 	 dd„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d d„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d!d„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d"d	„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d#d
„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d$d„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d%d„«       Zedddœ	 	 	 	 	 	 	 	 	 	 	 d&d„«       Zdddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 d'ˆ fd„Ze	 	 	 	 d(d„«       Ze	 	 	 	 d)d„«       Zd*d„Zd+d„Z	 	 	 	 d,d„Ze	 	 	 	 	 	 d-d„«       Z	e	 	 	 	 	 	 d.d„«       Z		 	 	 	 d/d„Z	e
	 	 	 	 	 	 d0d„«       Ze
d1d„«       Ze	 	 	 	 	 	 	 	 d2d„«       Ze	 	 	 	 	 	 	 	 d3d„«       Z	 	 	 	 	 	 d4d„Z	 	 	 	 	 	 	 	 d5d„Zd+d„Zˆ xZS )6ÚRaisesGroupa  Contextmanager for checking for an expected `ExceptionGroup`.
    This works similar to ``pytest.raises``, and a version of it will hopefully be added upstream, after which this can be deprecated and removed. See https://github.com/pytest-dev/pytest/issues/11538


    The catching behaviour differs from :ref:`except* <except_star>` in multiple different ways, being much stricter by default. By using ``allow_unwrapped=True`` and ``flatten_subgroups=True`` you can match ``except*`` fully when expecting a single exception.

    #. All specified exceptions must be present, *and no others*.

       * If you expect a variable number of exceptions you need to use ``pytest.raises(ExceptionGroup)`` and manually check the contained exceptions. Consider making use of :func:`Matcher.matches`.

    #. It will only catch exceptions wrapped in an exceptiongroup by default.

       * With ``allow_unwrapped=True`` you can specify a single expected exception or `Matcher` and it will match the exception even if it is not inside an `ExceptionGroup`. If you expect one of several different exception types you need to use a `Matcher` object.

    #. By default it cares about the full structure with nested `ExceptionGroup`'s. You can specify nested `ExceptionGroup`'s by passing `RaisesGroup` objects as expected exceptions.

       * With ``flatten_subgroups=True`` it will "flatten" the raised `ExceptionGroup`, extracting all exceptions inside any nested :class:`ExceptionGroup`, before matching.

    It does not care about the order of the exceptions, so ``RaisesGroups(ValueError, TypeError)`` is equivalent to ``RaisesGroups(TypeError, ValueError)``.

    Examples::

        with RaisesGroups(ValueError):
            raise ExceptionGroup("", (ValueError(),))
        with RaisesGroups(ValueError, ValueError, Matcher(TypeError, match="expected int")):
            ...
        with RaisesGroups(KeyboardInterrupt, match="hello", check=lambda x: type(x) is BaseExceptionGroup):
            ...
        with RaisesGroups(RaisesGroups(ValueError)):
            raise ExceptionGroup("", (ExceptionGroup("", (ValueError(),)),))

        # flatten_subgroups
        with RaisesGroups(ValueError, flatten_subgroups=True):
            raise ExceptionGroup("", (ExceptionGroup("", (ValueError(),)),))

        # allow_unwrapped
        with RaisesGroups(ValueError, allow_unwrapped=True):
            raise ValueError


    `RaisesGroup.matches` can also be used directly to check a standalone exception group.


    The matching algorithm is greedy, which means cases such as this may fail::

        with RaisesGroups(ValueError, Matcher(ValueError, match="hello")):
            raise ExceptionGroup("", (ValueError("hello"), ValueError("goodbye")))

    even though it generally does not care about the order of the exceptions in the group.
    To avoid the above you should specify the first ValueError with a Matcher as well.

    Tip: if you install ``hypothesis`` and import it in ``conftest.py`` you will get
    readable ``repr``s of ``check`` callables in the output.
    F)Úflatten_subgroupsc                ó   — y r'   r2   )r)   rx   Úallow_unwrappedr¶   s       r+   r,   zRaisesGroup.__init__«  r�   r-   N)rj   r�   c                ó   — y r'   r2   )r)   rx   r¶   rj   r�   Úother_exceptionss         r+   r,   zRaisesGroup.__init__µ  s   € ð r-   c                ó   — y r'   r2   ©r)   rx   rj   r�   rº   s        r+   r,   zRaisesGroup.__init__Ä  r�   r-   c                ó   — y r'   r2   r¼   s        r+   r,   zRaisesGroup.__init__Í  r�   r-   c                ó   — y r'   r2   r¼   s        r+   r,   zRaisesGroup.__init__Ö  ó   € ð r-   c                ó   — y r'   r2   r¼   s        r+   r,   zRaisesGroup.__init__â  r�   r-   c                ó   — y r'   r2   r¼   s        r+   r,   zRaisesGroup.__init__ë  r¿   r-   c                ó   — y r'   r2   r¼   s        r+   r,   zRaisesGroup.__init__ö  s   € ð r-   )r¸   r¶   rj   r�   c               ó   •— t        d|«      }t        ‰| �	  ||«       |g|¢­| _        || _        || _        d| _        |r|rt        d«      ‚|rt        |t        «      rt        d«      ‚|r|€|�t        d«      ‚| j                  D ]õ  }t        |t        «      r>| j
                  rt        d«      ‚| xj                  |j                  z  c_        d|_
        ŒQt        |t        «      rB|j                  �.| xj                  t        |j                  t        «       z  c_        d|_
        Œ£t        |t        «      r5t        |t         «      r%| xj                  t        |t        «       z  c_        Œèt        d|›d	�«      ‚ y )
NzVCallable[[BaseExceptionGroup[ExcT_1|BaseExcT_1|BaseExceptionGroup[BaseExcT_2]]], bool]FzÍYou cannot specify multiple exceptions with `allow_unwrapped=True.` If you want to match one of multiple possible exceptions you should use a `Matcher`. E.g. `Matcher(check=lambda e: isinstance(e, (...)))`z¸`allow_unwrapped=True` has no effect when expecting a `RaisesGroup`. You might want it in the expected `RaisesGroup`, or `flatten_subgroups=True` if you don't care about the structure.av  `allow_unwrapped=True` bypasses the `match` and `check` parameters if the exception is unwrapped. If you intended to match/check the exception you should use a `Matcher` object. If you want to match/check the exceptiongroup when the exception *is* wrapped you need to do e.g. `if isinstance(exc.value, ExceptionGroup): assert RaisesGroup(...).matches(exc.value)` afterwards.zØYou cannot specify a nested structure inside a RaisesGroup with `flatten_subgroups=True`. The parameter will flatten subgroups in the raised exceptiongroup before matching, which would never match a nested structure.TzInvalid argument "z2" must be exception type, Matcher, or RaisesGroup.)r   r    r,   Úexpected_exceptionsr¸   r¶   Úis_baseexceptiongroupr¡   ru   rµ   rƒ   r™   r›   rv   Ú	Exceptionr7   r—   )	r)   rx   r¸   r¶   rj   r�   rº   rE   r¢   s	           €r+   r,   zRaisesGroup.__init__  sª  ø€ ô$ ðð ó	
ˆô 	‰Ñ˜ Ô&ð ð
àñ
ð 	Ô ð  /ˆÔØ'8ˆÔØ+0ˆÔ"áÑ/ÜðHóð ñ œz¨)´[ÔAÜðSóð ñ
  Ð 1°UÐ5FÜðKóð ð ×+Ñ+ò 	ˆCÜ˜#œ{Ô+Ø×)Ò)Ü$ð5óð ð ×*Ò*¨c×.GÑ.GÑGÕ*Ø"�•Ü˜C¤Ô)Ø×%Ñ%Ð1à×.Ò.´jØ×*Ñ*Ü!ó7ð 3ñ Õ.ð #�•Ü˜C¤Ô&¬:°c¼=Ô+IØ×*Ò*´*¸SÄ)Ó2LÐ.LÑLÖ*ä Ø(¨¨ð 0$ð $óð ñ-	r-   c                 ó   — y r'   r2   r6   s    r+   Ú	__enter__zRaisesGroup.__enter__]  s   € ð 14r-   c                 ó   — y r'   r2   r6   s    r+   rÈ   zRaisesGroup.__enter__a  s   € ð 9<r-   c                óL   — t        j                  «       | _        | j                  S r'   )r]   r4   r*   r6   s    r+   rÈ   zRaisesGroup.__enter__f  s!   € ä×#Ñ#Ó%ð 	Œð �|‰|Ðr-   c                ó&  — | j                   D �cg c])  }t        |t        «      r|j                  n
t	        |«      ‘Œ+ }}| j
                  r|j                  d| j
                  › �«       | j                  r|j                  d| j                  › �«       | j                  �'|j                  dt        | j                  «      ›�«       | j                  �'|j                  dt        | j                  «      › �«       ddj                  |«      › d�S c c}w )Nzallow_unwrapped=zflatten_subgroups=r§   r¨   zRaisesGroup(r©   rª   )rÄ   ru   r7   rV   rm   r¸   r«   r¶   rj   rk   r�   ro   rb   )r)   rr   r¬   s      r+   r­   zRaisesGroup.__repr__l  sû   € ð ×-Ñ-ö
àô % Q¬Ô-ˆA�JŠJ´4¸³7Ñ:ð
ˆ
ð 
ð ×ÒØ×ÑÐ 0°×1EÑ1EÐ0FÐGÔHØ×!Ò!Ø×ÑÐ 2°4×3IÑ3IÐ2JÐKÔLØ�:‰:Ð!à×Ñ ¤~°d·j±jÓ'AÐ&DÐEÔFØ�:‰:Ð!Ø×Ñ ¤}°T·Z±ZÓ'@Ð&AÐBÔCØ˜dŸi™i¨
Ó3Ð4°AÐ6Ð6ùò
s   �.Dc                ó°   — g }|D ]N  }t        |t        «      r+|j                  | j                  |j                  «      «       Œ>|j                  |«       ŒP |S )z!Used if `flatten_subgroups=True`.)ru   r    ÚextendÚ_unroll_exceptionsÚ
exceptionsr«   )r)   rÏ   ÚresrE   s       r+   rÎ   zRaisesGroup._unroll_exceptions|  sR   € ð
 $&ˆØò 	 ˆCÜ˜#Ô1Ô2Ø—
‘
˜4×2Ñ2°3·>±>ÓBÕCð —
‘
˜3•ð	 ð ˆ
r-   c                 ó   — y r'   r2   r‘   s     r+   r“   zRaisesGroup.matchesŠ  s   € ð -0r-   c                 ó   — y r'   r2   r‘   s     r+   r“   zRaisesGroup.matches�  s   € ð 58r-   c           
     óT  — d| _         |€d| _         yt        |t        «      s�t        |«      j                  ›d�}t        | j                  «      dkD  r|| _         y| j                  | j                  d   |«      }|€| j                  ry|€|› d�| _         y| j                  r|| _         y|| _         y|j                  }| j                  r| j                  |«      }| j                  |«      sô| j                   }t        |«      t        | j                  «      cxk(  rdk(  r¹n n¶t        | j                  d   x}t        «      r—t        |d   x}|«      r†| j                  |«      ru| j                  €J d	«       ‚| j                   |cxu r€J ‚ J ‚| xj                   d
| j                  |«      › d|j                  › dt        | j                  «      ›d�z  c_         y|| _         y| j!                  ||«      s¨| j                   €J ‚| j                   }| j                  szt#        d„ | j                  D «       «      s^t#        d„ |D «       «      rL| j!                  || j                  |j                  «      «      r!d| j                   vrdnd}|d|› d�z   | _         y|| _         y| j%                  |«      S )a1  Check if an exception matches the requirements of this RaisesGroup.
        If it fails, `RaisesGroup.fail_reason` will be set.

        Example::

            with pytest.raises(TypeError) as excinfo:
                ...
            assert RaisesGroups(ValueError).matches(excinfo.value.__cause__)
            # the above line is equivalent to
            myexc = excinfo.value.__cause
            assert isinstance(myexc, BaseExceptionGroup)
            assert len(myexc.exceptions) == 1
            assert isinstance(myexc.exceptions[0], ValueError)
        Nzexception is NoneFz is not an exception groupr9   r   Tz-, but would match with `allow_unwrapped=True`z$can't be None if _check_match failedz, but matched the expected z%. You might want RaisesGroup(Matcher(z, match=z))c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr'   )ru   rµ   ©Ú.0rr   s     r+   ú	<genexpr>z&RaisesGroup.matches.<locals>.<genexpr>à  s   è ø€ ò Ø34”J˜q¤+×.ñùó   ‚c              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wr'   )ru   r    rÕ   s     r+   r×   z&RaisesGroup.matches.<locals>.<genexpr>ã  s   è ø€ ÒU¸aœ
 1Ô&8×9ÑUùrØ   r_   ú  re   z-Did you mean to use `flatten_subgroups=True`?)r‚   ru   r    r7   rV   ÚlenrÄ   Ú_check_expectedr¸   rÏ   r¶   rÎ   r�   rj   Ú_repr_expectedrk   Ú_check_exceptionsÚanyrŠ   )	r)   r’   Únot_group_msgrÐ   Úactual_exceptionsÚ
old_reasonÚexpectedÚactualr   s	            r+   r“   zRaisesGroup.matches•  s  € ð$ !ˆÔØˆ?Ø 3ˆDÔØÜ˜'Ô#5Ô6ô  $ G›}×5Ñ5Ð8Ð8RÐSˆMÜ�4×+Ñ+Ó,¨qÒ0Ø$1�Ô!Øð ×&Ñ& t×'?Ñ'?ÀÑ'BÀGÓLˆCØˆ{˜t×3Ò3Øàˆ{à$�oÐ%RÐSð Ô!ð ð	 ×%Ò%Ø$'�Ô!ð ð %2�Ô!Øà5<×5GÑ5GÐØ×!Ò!Ø $× 7Ñ 7Ð8IÓ JÐà× Ñ  Ô)Ø×*Ñ*ˆJäÐ%Ó&¬#¨d×.FÑ.FÓ*GÔLÈ1ÕLÜ¨4×+CÑ+CÀAÑ+FÐF˜xÌÔMÜÐ):¸1Ñ)=Ð=˜v¸xÔHØ×%Ñ% fÔ-à—z‘zÐ-ÐUÐ/UÓUÐ-Ø×(Ñ(¨JÔBÐBÑBÐBÐBØ×!Ò!Ð'BÀ4×CVÑCVÐW_ÓC`ÐBað  bGð  HP÷  HYñ  HYð  GZð  Zbô  cqð  rv÷  r|ñ  r|ó  c}ð  b@ð  @Bð  &Cñ  CÕ!ð ð %/�Ô!Øð ×%Ñ%ØØô
ð ×$Ñ$Ð0Ð0Ð0Ø×*Ñ*ˆJð ×*Ò*Üñ Ø8<×8PÑ8Pôô ô ÑUÐCTÔUÔUØ×*Ñ*ØØ×+Ñ+¨G×,>Ñ,>Ó?ôð "&¨T×->Ñ->Ñ!>™ÀB�àØ˜6˜(Ð"OÐPñQð Ô!ð ð %/�Ô!Øð × Ñ  Ó)Ð)r-   c                ó  — t        | t        «      rt        | |«      S | j                  |«      }|ry| j                  €J ‚| j                  j                  d«      rd| ›dt        | j                  d«      › �S | ›d| j                  › �S )zŒHelper method for `RaisesGroup.matches` and `RaisesGroup._check_exceptions`
        to check one of potentially several expected exceptions.Nr_   z: rÚ   )ru   r7   r{   r“   r†   Ú
startswithr   )rw   rx   rÐ   s      r+   rÜ   zRaisesGroup._check_expectedø  s’   € ô �m¤TÔ*Ü" =°)Ó<Ð<Ø×#Ñ# IÓ.ˆÙØØ×(Ñ(Ð4Ð4Ð4Ø×$Ñ$×/Ñ/°Ô5Ø˜Ð(¨¬6°-×2KÑ2KÈTÓ+RÐ*SÐTÐTØÐ" " ]×%>Ñ%>Ð$?Ð@Ð@r-   c                óN   — t        | t        «      rt        | «      S t        | «      S )zfGet the repr of an expected type/Matcher/RaisesGroup, but we only want
        the name if it's a type)ru   r7   rs   rm   rq   s    r+   rÝ   zRaisesGroup._repr_expected  s"   € ô �aœÔÜ'¨Ó*Ð*Ü�A‹wˆr-   c                 ó   — y r'   r2   ©r)   Ú_exc_valrá   s      r+   rÞ   zRaisesGroup._check_exceptions  s   € ð
 -0r-   c                 ó   — y r'   r2   ré   s      r+   rÞ   zRaisesGroup._check_exceptions  s   € ð
 58r-   c                óÌ  ‡ — t        ‰ j                  |«      }t        t        t	        |«      «      «      }g }i }t        ‰ j                  «      D ]_  \  }}|D ]D  }	‰ j                  |||	   «      }
|j                  ||	|
«       |
�Œ.|j                  |	«       |	||<    ŒN |j                  |«       Œa |s|sydt	        |«      cxk(  rt	        ‰ j                  «      k(  rn n|rJ ‚
‰ _
        yt        ‰ j                  «      D ]N  \  }}t        |«      D ];  \  }}|j                  ||«      rŒ|j                  ||‰ j                  ||«      «       Œ= ŒP |r!t	        |«      › dt	        |«      dkD  rdnd› d�nd}|s/|j                  |«      r|› d|D �cg c]  }||   ‘Œ	 c}›�‰ _
        y|s7|j                  |«      r&|› d	d
j                  ˆ fd„|D «       «      › d�‰ _
        ydt	        |«      cxk(  rt	        |«      k(  rGn nD|j                  |«      r3|j                  |«      r"|› |j                  |d   |d   «      › �‰ _
        yd}|r|d|› �z  }d}d}|s|dz  }n|s|dz  }|r(|dz  }|j!                  «       D ��ci c]  \  }}||“Œ
 }}}|D ]{  }|d|› ‰ j#                  ‰ j                  |   «      › �z  }t        |«      D ]E  \  }}|j                  |«      �Œ|d|› d|›d‰ j#                  ‰ j                  |      «      › �z  }ŒG Œ} |r|dz  }|D ]‰  }|d|› ||   ›d�z  }t        ‰ j                  «      D ]a  \  }}|j                  ||«      }
||v r |
€J ‚|
d   dk7  r|dz  }|t%        |
|«      z  }|
�Œ?|d|› d‰ j#                  |«      › d|||      ›�z  }Œc Œ‹ t	        ‰ j                  «      t	        |«      k(  rt'        |«      r|dz  }|‰ _
        yc c}w c c}}w )z]helper method for RaisesGroup.matches that attempts to pair up expected and actual exceptionsTr9   Fz matched exceptionÚsre   z. zUnexpected exception(s): z0Too few exceptions raised, found no match for: [r©   c              3  óZ   •K  — | ]"  }‰j                  ‰j                  |   «      –— Œ$ y ­wr'   )rÝ   rÄ   )rÖ   Úir)   s     €r+   r×   z0RaisesGroup._check_exceptions.<locals>.<genexpr>\  sW   øè ø€ ò  mxð  cdÐmq÷  nAñ  nAð  BF÷  BZñ  BZð  [\ñ  B]÷  n^ñ  mxùs   ƒ(+ú]r   r_   rÚ   z    z
Too few exceptions raised!z
Unexpected exception(s)!z8
The following expected exceptions did not find a match:zIt matches z which was paired with z5
The following raised exceptions did not find a matchú:zØ
There exist a possible match when attempting an exhaustive check, but RaisesGroup uses a greedy algorithm. Please make your expected exceptions more stringent with `Matcher` etc so the greedy algorithm can function.)ÚResultHolderrÄ   ÚlistÚrangerÛ   Ú	enumeraterÜ   Ú
set_resultÚremover«   r‚   Ú
has_resultÚno_match_for_actualÚno_match_for_expectedrb   Ú
get_resultÚitemsrÝ   r   Úpossible_match)r)   rê   rá   ÚresultsÚremaining_actualÚfailed_expectedr“   Úi_exprã   Úi_remrÐ   Úi_actualrä   Úsuccessful_strrï   rí   Úindent_1Úindent_2ÚkÚvÚrev_matchesÚi_faileds   `                     r+   rÞ   zRaisesGroup._check_exceptions   s:  ø€ ô ˜t×7Ñ7Ð9JÓKˆô  ¤¤cÐ*;Ó&<Ó =Ó>Ðà%'ˆà"$ˆô  )¨×)AÑ)AÓBò 		.‰OˆE�8Ø)ò .�Ø×*Ñ*¨8Ð5FÀuÑ5MÓN�Ø×"Ñ" 5¨%°Ô5Ø‘;Ø$×+Ñ+¨EÔ2Ø%*�G˜E‘NÙð.ð  ×&Ñ& uÕ-ð		.ñ  ©Øð ”Ð%Ó&ÔG¬#¨d×.FÑ.FÓ*GÕGÙÐ�;Ø #ˆDÔØô  )¨×)AÑ)AÓBò 	‰OˆE�8Ü$-Ð.?Ó$@ò Ñ �˜&Ø×%Ñ% e¨XÔ6ØØ×"Ñ"Ø˜8 T×%9Ñ%9¸(ÀFÓ%Kõñð	ñ ô �7‹|ˆnÐ.´c¸'³lÀQÒ6F©sÈBÐ.OÈrÑRàð 	ñ  7×#>Ñ#>Ð?OÔ#PØ#1Ð"2Ð2KÐk{ÖL|ÐfgÐM^Ð_`ÓMaÒL|ÐKð  !AˆDÔØá G×$AÑ$AÀ/Ô$RØ#1Ð"2Ð2bÐcg×clÑcló  mxð  hwô  mxó  dxð  cyð  yzð  !{ˆDÔØð
 ”Ð%Ó&Ô>¬#¨oÓ*>Õ>Ø×+Ñ+Ð,<Ô=Ø×-Ñ-¨oÔ>à#1Ð"2°7×3EÑ3EÀoÐVWÑFXÐZjÐklÑZmÓ3nÐ2oÐ pˆDÔØð ˆÙØ�2�nÐ%Ð&Ñ&ˆAØˆØˆáØÐ/Ñ/‰AÙ ØÐ-Ñ-ˆAáØÐLÑLˆAØ,3¯M©M«O×<¡D A q˜1˜a™4Ð<ˆKÑ<Ø'ò 	[ˆHØØ�X�J˜t×2Ñ2°4×3KÑ3KÈHÑ3UÓVÐWÐXñˆAô %.Ð.?Ó$@ò [Ñ �˜&Ø×%Ñ% e¨XÓ6Ñ>à˜2˜h˜Z {°6°*Ð<SÐTX×TgÑTgÐhl÷  iAñ  iAð  BMð  NVñ  BWñ  iXó  UYð  TZð  [ñ  [‘Añ[ð		[ñ ØÐIÑIˆAØ(ò 	OˆHØ�2�h�ZÐ 1°(Ñ ;Ð>¸aÐ@Ñ@ˆAÜ#,¨T×-EÑ-EÓ#Fò 	O‘��xØ×(Ñ(¨°Ó9�Ø˜OÑ+Ø˜?Ð*˜?Ø˜1‘v ’~Ø˜T™	˜Øœ  XÓ.Ñ.�AØ‘;à˜2˜h˜Z {°4×3FÑ3FÀxÓ3PÐ2QÐQhÐizð  |Cð  DIñ  |Jñ  jKð  iNð  Oñ  O‘Añ	Oð	Oô ˆt×'Ñ'Ó(¬CÐ0AÓ,BÒBÄ~ØôH
ð ð  mñ  mˆAØˆÔØùò{ M}ùó> =s   ÆOÉ=O c                óF  — d}|€J d| j                  «       › �«       ‚| j                  €J d«       ‚| j                  rt        |t        «      sdnd}| j                  |«      sJ d|› d| j                  › �«       ‚t        d|||f«      }| j                  j                  |«       y)	NTz&DID NOT RAISE any exception, expected z:Internal error - should have been constructed in __enter__z(group)ÚgroupzRaised exception z did not match: zbtuple[type[BaseExceptionGroup[BaseExcT_co]], BaseExceptionGroup[BaseExcT_co], types.TracebackType])	rw   r*   r¸   rv   r    r“   r‚   r   r0   )r)   Úexc_typer’   Úexc_tbÚ__tracebackhide__Ú	group_strr/   s          r+   Ú__exit__zRaisesGroup.__exit__—  sÝ   € ð !ÐàÐ ð	Kà3°D×4FÑ4FÓ4HÐ3IÐJó	KØ ð �L‰LÐ$ð	HàGó	HØ$ð
 ×#Ò#¬J°xÔASÔ,Tñ àð 	ð �|‰|Øô
ð 	Nà˜y˜kÐ)9¸$×:KÑ:KÐ9LÐMó	Nð 
ô
 ØpØ�w Ð'ó
ˆð 	�‰×"Ñ" 8Ô,Ør-   c                ó˜  — g }| j                   D ]“  }t        |t        «      r|j                  t	        |«      «       Œ.t        |t
        «      r |j                  |j                  «       «       Œ^t        |t        «      r|j                  |j                  «       ŒŠt        d«      ‚ | j                  rdnd}|› ddj                  |«      › d�S )Nzunknown typeÚBasere   zExceptionGroup(r©   rª   )rÄ   ru   r™   r«   rT   rµ   rw   r7   rV   ÚAssertionErrorrÅ   rb   )r)   Úsubexcsrr   Ú
group_types       r+   rw   zRaisesGroup.expected_type·  s¦   € ØˆØ×)Ñ)ò 	5ˆAÜ˜!œWÔ%Ø—‘œs 1›vÕ&Ü˜Aœ{Ô+Ø—‘˜qŸ™Ó0Õ1Ü˜AœtÔ$Ø—‘˜qŸz™zÕ*ä$ ^Ó4Ð4ð	5ð  $×9Ò9‘V¸rˆ
Ø�˜_¨T¯Y©Y°wÓ-?Ð,@ÀÐBÐBr-   )rx   ú(type[BaseExcT_co] | Matcher[BaseExcT_co]r¸   úLiteral[True]r¶   rS   rP   rQ   )rx   r  rº   r  r¶   r  rj   r”   r�   z8Callable[[BaseExceptionGroup[BaseExcT_co]], bool] | NonerP   rQ   )r)   úRaisesGroup[ExcT_1]rx   útype[ExcT_1] | Matcher[ExcT_1]rº   r  rj   r”   r�   z/Callable[[ExceptionGroup[ExcT_1]], bool] | NonerP   rQ   )r)   z#RaisesGroup[ExceptionGroup[ExcT_2]]rx   úRaisesGroup[ExcT_2]rº   r  rj   r”   r�   z?Callable[[ExceptionGroup[ExceptionGroup[ExcT_2]]], bool] | NonerP   rQ   )r)   z,RaisesGroup[ExcT_1 | ExceptionGroup[ExcT_2]]rx   ú4type[ExcT_1] | Matcher[ExcT_1] | RaisesGroup[ExcT_2]rº   r  rj   r”   r�   zHCallable[[ExceptionGroup[ExcT_1 | ExceptionGroup[ExcT_2]]], bool] | NonerP   rQ   )r)   úRaisesGroup[BaseExcT_1]rx   ú&type[BaseExcT_1] | Matcher[BaseExcT_1]rº   r  rj   r”   r�   z7Callable[[BaseExceptionGroup[BaseExcT_1]], bool] | NonerP   rQ   )r)   z+RaisesGroup[BaseExceptionGroup[BaseExcT_2]]rx   úRaisesGroup[BaseExcT_2]rº   r  rj   r”   r�   zKCallable[[BaseExceptionGroup[BaseExceptionGroup[BaseExcT_2]]], bool] | NonerP   rQ   )r)   z8RaisesGroup[BaseExcT_1 | BaseExceptionGroup[BaseExcT_2]]rx   ú@type[BaseExcT_1] | Matcher[BaseExcT_1] | RaisesGroup[BaseExcT_2]rº   r   rj   r”   r�   zXCallable[[BaseExceptionGroup[BaseExcT_1 | BaseExceptionGroup[BaseExcT_2]]], bool] | NonerP   rQ   )r)   zARaisesGroup[ExcT_1 | BaseExcT_1 | BaseExceptionGroup[BaseExcT_2]]rx   r   rº   r   r¸   rS   r¶   rS   rj   r”   r�   zbCallable[[BaseExceptionGroup[BaseExcT_1]], bool] | Callable[[ExceptionGroup[ExcT_1]], bool] | None)r)   r  rP   z%ExceptionInfo[ExceptionGroup[ExcT_1]])r)   r  rP   z-ExceptionInfo[BaseExceptionGroup[BaseExcT_1]])rP   z0ExceptionInfo[BaseExceptionGroup[BaseException]]r±   )rÏ   úSequence[BaseException]rP   r!  )r)   r  r’   úBaseException | NonerP   ú!TypeGuard[ExceptionGroup[ExcT_1]])r)   r  r’   r"  rP   ú)TypeGuard[BaseExceptionGroup[BaseExcT_1]])r’   r"  rP   ú*TypeGuard[BaseExceptionGroup[BaseExcT_co]])rw   zItype[BaseException] | Matcher[BaseException] | RaisesGroup[BaseException]rx   r—   rP   r•   )rr   z4type[BaseException] | AbstractMatcher[BaseException]rP   rT   )r)   r  rê   rÆ   rá   zSequence[Exception]rP   r#  )r)   r  rê   r—   rá   r!  rP   r$  )rê   r—   rá   r!  rP   r%  )r  útype[BaseException] | Noner’   r"  r  ztypes.TracebackType | NonerP   rS   )rV   rW   rX   rY   r   r,   rÈ   r­   rÎ   r“   ÚstaticmethodrÜ   rÝ   rÞ   r  rw   r²   r³   s   @r+   rµ   rµ   p  sõ  ø„ ñ5ðr ð #(ñà;ðð 'ð	ð
  ðð 
òó ðð ð ,0ØJNñà;ðð Dðð )ð	ð
 )ðð Hðð 
òó ðð ð
 ,0ØAEñØ!ðà1ðð :ðð )ð	ð
 ?ðð 
òó ðð ð
 ,0ØQUñØ1ðà&ðð /ðð )ð	ð
 Oðð 
òó ðð ð
 ,0ð ñØ:ðàGðð Pðð )ð	ð Uðð 
òó ðð ð
 ,0ØIMñØ%ðà9ðð Bðð )ð	ð
 Gðð 
òó ðð ð
 ,0ð ñØ9ðà*ðð 3ðð )ð	ð Xðð 
òó ðð ð ,0ð ñØFðàSðð"ðð )ðððð 
òó ðð, !&Ø"'Ø+/ð
 ñTØOðTàSðTð"ðTð ðTð  ðTð )ðTðõTðl ð4Ø!ð4à	.ò4ó ð4ð ð<Ø%ð<à	6ò<ó ð<óó7ð à+ðð 
!óð ð0Ø!ð0à%ð0ð 
+ò0ó ð0ð ð8Ø%ð8à%ð8ð 
3ò8ó ð8ð
a*à%ða*ð 
4óa*ðF ðAàUðAð !ð	Að
 
òAó ðAð$ òó ðð ð0Ø!ð0àð0ð /ð0ð 
+ò	0ó ð0ð
 ð8Ø%ð8àð8ð 3ð8ð 
3ò	8ó ð8ðuàðuð 3ðuð 
4ó	uðnà,ðð &ðð +ð	ð
 
ó÷@Cr-   rµ   c                  ó   — e Zd Zy)Ú
NotCheckedN)rV   rW   rX   r2   r-   r+   r)  r)  Æ  s   „ Ør-   r)  c                  óH   — e Zd Z	 	 	 	 	 	 dd„Zd	d„Zd
d„Zdd„Zdd„Zdd„Zy)rò   c                óf   — |D �cg c]  }|D �cg c]  }t         ‘Œ
 c}‘Œ c}| _        y c c}w c c}w r'   )r)  rþ   )r)   rÄ   rá   Ú_s       r+   r,   zResultHolder.__init__Ë  s4   € ð @QöC
Ø:;Ð!4Ö5˜AŽZÔ5òC
ˆ�ùÚ5ùòC
s   …	.Ž)
›.©.c                ó(   — || j                   |   |<   y r'   )rþ   )r)   rã   rä   Úresults       r+   rö   zResultHolder.set_resultÖ  s   € Ø)/ˆ�‰�VÑ˜XÒ&r-   c                óN   — | j                   |   |   }t        |t        «      rJ ‚|S r'   )rþ   ru   r7   )r)   rã   rä   rÐ   s       r+   rû   zResultHolder.get_resultÙ  s*   € Ø�l‰l˜6Ñ" 8Ñ,ˆä˜c¤4Ô(Ð(Ð(Øˆ
r-   c                ó2   — | j                   |   |   t        uS r'   ©rþ   r)  )r)   rã   rä   s      r+   rø   zResultHolder.has_resultß  s   € Ø�|‰|˜FÑ# HÑ-´ZÐ?Ð?r-   c                ó^   — |D ](  }| j                   D ]  }||   t        usJ ‚||   �Œ  y Œ* y©NFTr1  )r)   rã   rï   Úactual_resultss       r+   rú   z"ResultHolder.no_match_for_expectedâ  sJ   € Øò 	!ˆAØ"&§,¡,ò !�Ø% aÑ(´
Ñ:Ð:Ð:Ø! !Ñ$Ñ,Ú ñ!ð	!ð
 r-   c                óX   — |D ]%  }| j                   |   D ]  }|t        usJ ‚|�Œ  y Œ' yr3  r1  )r)   rä   rï   rÐ   s       r+   rù   z ResultHolder.no_match_for_actualê  sC   € Øò 	!ˆAØ—|‘| A‘ò !�Ø¤*Ñ,Ð,Ð,Ø‘;Ú ñ!ð	!ð
 r-   N)rÄ   z@tuple[type[BaseException] | AbstractMatcher[BaseException], ...]rá   r!  rP   rQ   )rã   Úinträ   r6  r.  r•   rP   rQ   )rã   r6  rä   r6  rP   r•   )rã   r6  rä   r6  rP   rS   )rã   ú	list[int]rP   rS   )rä   r7  rP   rS   )	rV   rW   rX   r,   rö   rû   rø   rú   rù   r2   r-   r+   rò   rò   Ê  s?   „ ð	
ð
ð	
ð
 3ð	
ð 
ó	
ó0óó@óôr-   rò   c                óØ   — |€
t        «       }t        |«      }|t        | j                  «      k(  ryt        | j                  |   «      D ]  \  }}|�Œ	||vsŒt	        | ||hz  «      sŒ y y)NTF)ÚsetrÛ   rþ   rõ   rý   )rþ   ÚusedÚcurr_rowrï   Úvals        r+   rý   rý   ó  sn   € Ø€|Ü‹uˆÜ�4‹y€HØ”3�w—‘Ó'Ò'Øä˜GŸO™O¨HÑ5Ó6ò ‰ˆˆ3Ø‰;˜1 Dš=¬^¸GÀTÈQÈCÁZÕ-PÙðð r-   )rE   r—   rP   rT   )rj   zPattern[str]rP   r¯   )rn   zCallable[[BaseExcT_1], bool]rP   rT   )rr   ztype[BaseException]rP   rT   )rw   r&  rx   r—   rP   r•   r'   )rþ   rò   r:  zset[int] | NonerP   rS   )<Ú
__future__r   r   ÚsysÚabcr   r   r   Útextwrapr   Útypingr   r	   r
   r   r   Ú
trio._utilr   ÚbuiltinsÚtypesÚcollections.abcr   r   Ú_pytest._code.coder   r   r   Útyping_extensionsr   r   r—   r   r   r   r   rÆ   r   r   Úversion_infoÚexceptiongroupr    r!   r#   r]   ÚpytestÚImportErrorrd   r€   rg   rh   rk   ro   rs   r{   r}   r™   rµ   r)  rò   rý   r2   r-   r+   ú<module>rL     sÚ  ðÝ "ã 	Û 
ß #Ý Ý ÷õ õ áÛó ß2çSÑSß4ñ ØØØØô	�Fõ á�X ]¸dÔC€Fñ �m¨=ÀDÔI€Ù�\¨Ô7€
Ù�\¨Ô7€
Ù	� Ô	+€Ù	� Ô	+€à×Ñ�gÒßAð ôJ
�W˜V‘_ó J
ó ðJ
ñd Ø"�Mð'Ý(óð �"—*‘*˜S“/×'Ñ'€óFó
óðØ-ðàðð óô*A�c˜7 ;Ñ/ô AðH ôc)ˆo˜fÑ%ó c)ó ðc)ðL ôR	C�/Ð"4°[Ñ"AÑBó R	Có ðR	Cðj ß Ð ó Ø ÷&ñ &õR
øðM ò 'Ø&Šð'ús   ÃE/ Å/E9Å8E9