
    K]ne<                    h   d Z ddlmZ ddlmZmZ ddlZddlmZ ddl	m
Z
 erddlmZ e G d d	e             Ze G d
 de             Ze G d de             Ze G d de             Zej                   G d de             Ze G d de             Ze G d de             Ze G d de             Zy)z
Errors, oh no!
    )annotations)TYPE_CHECKINGAnyN)frozen)URI)Resourcec                  ,    e Zd ZU dZded<   ddZddZy)	NoSuchResourcez
    The given URI is not present in a registry.

    Unlike most exceptions, this class *is* intended to be publicly
    instantiable and *is* part of the public API of the package.
    r   refc                    | j                   |j                   urt        S t        j                  |       t        j                  |      k(  S N	__class__NotImplementedattrsastupleselfothers     6lib/python3.12/site-packages/referencing/exceptions.py__eq__zNoSuchResource.__eq__   5    >>0!!}}T"emmE&:::    c                >    t        t        j                  |             S r   hashr   r   r   s    r   __hash__zNoSuchResource.__hash__!       EMM$'((r   Nr   r   returnboolr!   int__name__
__module____qualname____doc____annotations__r   r    r   r   r
   r
      s     
H;
)r   r
   c                  ,    e Zd ZU dZded<   ddZddZy)	NoInternalIDa  
    A resource has no internal ID, but one is needed.

    E.g. in modern JSON Schema drafts, this is the :kw:`$id` keyword.

    One might be needed if a resource was to-be added to a registry but no
    other URI is available, and the resource doesn't declare its canonical URI.
    Resource[Any]resourcec                    | j                   |j                   urt        S t        j                  |       t        j                  |      k(  S r   r   r   s     r   r   zNoInternalID.__eq__2   r   r   c                >    t        t        j                  |             S r   r   r   s    r   r   zNoInternalID.__hash__7   r   r   Nr    r#   r%   r+   r   r   r-   r-   %   s     ;
)r   r-   c                  ,    e Zd ZU dZded<   ddZddZy)	UnretrievablezO
    The given URI is not present in a registry, and retrieving it failed.
    r   r   c                    | j                   |j                   urt        S t        j                  |       t        j                  |      k(  S r   r   r   s     r   r   zUnretrievable.__eq__C   r   r   c                >    t        t        j                  |             S r   r   r   s    r   r   zUnretrievable.__hash__H   r   r   Nr    r#   r%   r+   r   r   r3   r3   ;        
H;
)r   r3   c                  ,    e Zd ZU dZded<   ddZddZy)	CannotDetermineSpecificationz
    Attempting to detect the appropriate `Specification` failed.

    This happens if no discernible information is found in the contents of the
    new resource which would help identify it.
    r   contentsc                    | j                   |j                   urt        S t        j                  |       t        j                  |      k(  S r   r   r   s     r   r   z#CannotDetermineSpecification.__eq__W   r   r   c                >    t        t        j                  |             S r   r   r   s    r   r   z%CannotDetermineSpecification.__hash__\   r   r   Nr    r#   r%   r+   r   r   r8   r8   L   s     M;
)r   r8   c                  ,    e Zd ZU dZded<   ddZddZy)	Unresolvablez'
    A reference was unresolvable.
    r   r   c                    | j                   |j                   urt        S t        j                  |       t        j                  |      k(  S r   r   r   s     r   r   zUnresolvable.__eq__h   r   r   c                >    t        t        j                  |             S r   r   r   s    r   r   zUnresolvable.__hash__m   r   r   Nr    r#   r%   r+   r   r   r=   r=   `   r6   r   r=   c                  $    e Zd ZU dZded<   ddZy)PointerToNowherezK
    A JSON Pointer leads to a part of a document that does not exist.
    r.   r/   c                x    | j                   d| j                  j                  }| j                   dk(  r|dz  }|S )N does not exist within /z. The pointer '/' is a valid JSON Pointer but it points to an empty string property ''. If you intended to point to the entire resource, you should use '#'.)r   r/   r9   )r   msgs     r   __str__zPointerToNowhere.__str__y   sC    3DMM4J4J3MN88s?>C
 
r   Nr!   strr&   r'   r(   r)   r*   rF   r+   r   r   rA   rA   q   s     r   rA   c                  .    e Zd ZU dZded<   ded<   ddZy)	NoSuchAnchorz@
    An anchor does not exist within a particular resource.
    r.   r/   rH   anchorc                L    | j                   d| j                  j                  S )NrC   )rL   r/   r9   r   s    r   rF   zNoSuchAnchor.__str__   s%    {{o4T]]5K5K4NO	
r   NrG   rI   r+   r   r   rK   rK      s     K
r   rK   c                  .    e Zd ZU dZded<   ded<   ddZy)	InvalidAnchorzu
    An anchor which could never exist in a resource was dereferenced.

    It is somehow syntactically invalid.
    r.   r/   rH   rL   c                <    d| j                    d| j                    dS )Nz'#zo' is not a valid anchor, neither as a plain name anchor nor as a JSON Pointer. You may have intended to use '#/zD', as the slash is required *before each segment* of a JSON pointer.)rL   r   s    r   rF   zInvalidAnchor.__str__   s*      &**	
r   NrG   rI   r+   r   r   rO   rO      s     K
r   rO   )r)   
__future__r   typingr   r   r   referencing._attrsr   referencing.typingr   referencingr   KeyErrorr
   	Exceptionr-   r3   r8   r=   rA   rK   rO   r+   r   r   <module>rX      s    # %  % "$ )X ) )& )9 ) )* )H ) )  )9 ) )& )9 ) )  |  $ 
< 
 
 
L 
 
r   