o
    Ñ­jx
  ã                   @  s|   d dl mZ d dlZd dlZd dlZd dlZdgZddd„Zejdkr*d d	l	m
Z
 nG d
d„ deƒZ
ejG dd„ dƒƒZdS )é    )ÚannotationsNÚExceptionGroupÚreturnú	list[str]c                   C  s   t S ©N)Ú__all__© r   r   úM/var/www/html/CropPilot/venv/lib/python3.10/site-packages/packaging/errors.pyÚ__dir__   s   r
   )é   é   )r   c                   @  s6   e Zd ZU dZded< ded< ddd	„Zdd
d„ZdS )r   zËA minimal implementation of :external:exc:`ExceptionGroup` from Python 3.11.

        If :external:exc:`ExceptionGroup` is already defined by Python itself,
        that version is used instead.
        ÚstrÚmessageúlist[Exception]Ú
exceptionsr   ÚNonec                 C  s   || _ || _d S r   )r   r   )Úselfr   r   r   r   r	   Ú__init__   s   
zExceptionGroup.__init__c                 C  s   | j j› d| j›d| j›d�S )Nú(z, ú))Ú	__class__Ú__name__r   r   )r   r   r   r	   Ú__repr__!   s   zExceptionGroup.__repr__N)r   r   r   r   r   r   )r   r   )r   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   r   r   r   r   r	   r      s   
 
c                   @  s\   e Zd ZU dZejedd�Zded< dd
d„Z	e
jddd„ƒZe
jddd„ƒZddd„ZdS )Ú_ErrorCollectoraò  
    Collect errors into ExceptionGroups.

    Used like this:

        collector = _ErrorCollector()
        # Add a single exception
        collector.error(ValueError("one"))

        # Supports nesting, including combining ExceptionGroups
        with collector.collect():
            raise ValueError("two")
        collector.finalize("Found some errors")

    Since making a collector and then calling finalize later is a common pattern,
    a convenience method ``on_exit`` is provided.
    F)Údefault_factoryÚinitr   ÚerrorsÚmsgr   r   r   c                 C  s   | j r	t|| j ƒ‚dS )z0Raise a group exception if there are any errors.N)r    r   ©r   r!   r   r   r	   Úfinalize;   s   ÿz_ErrorCollector.finalizeú-typing.Generator[_ErrorCollector, None, None]c                 c  s   � | V  |   |¡ dS )zx
        Calls finalize if no uncollected errors were present.

        Uncollected errors are raised normally.
        N)r#   r"   r   r   r	   Úon_exit@   s   €z_ErrorCollector.on_exitÚerr_clsútype[Exception]ú"typing.Generator[None, None, None]c              
   g  s~   � |pt f}zdV  W dS  ty& } z| j |j¡ W Y d}~dS d}~w |y> } z| j |¡ W Y d}~dS d}~ww )z•
        Context manager to collect errors into the error list.

        Must be inside loops, as only one error can be collected at a time.
        N)Ú	Exceptionr   r    Úextendr   Úappend)r   r&   Úerror_classesÚerrorr   r   r	   ÚcollectJ   s   €
€€ÿz_ErrorCollector.collectr-   r)   c                 C  s   | j  |¡ dS )zAdd an error to the list.N)r    r+   )r   r-   r   r   r	   r-   Y   s   z_ErrorCollector.errorN)r!   r   r   r   )r!   r   r   r$   )r&   r'   r   r(   )r-   r)   r   r   )r   r   r   r   ÚdataclassesÚfieldÚlistr    r   r#   Ú
contextlibÚcontextmanagerr%   r.   r-   r   r   r   r	   r   %   s   
 
	r   )r   r   )Ú
__future__r   r2   r/   ÚsysÚtypingr   r
   Úversion_infoÚbuiltinsr   r)   Ú	dataclassr   r   r   r   r	   Ú<module>   s    

