+
     h)  c                   s    ^ RI HtHtHt ^ RIHt ^ RIt^ RIt ! R R]4      t ! R R4      t	R t
R	 tR
 tR tR tR tR t]! 4       ]! 4       3R ltR tR tR tR# )i    )MappingMutableMappingSequence)urlsplitNc                   sT   a  ] tR t^t o RtR tR tR tR tR t	R t
R tR	 tR
tV tR# )URIDictz0
Dictionary which uses normalized URIs as keys.
c                s4    \        V4      P                  4       # N)r   Zgeturlselfuri   &&6/usr/lib/python3.14/site-packages/jsonschema/_utils.py	normalizeZURIDict.normalize   s    }##%%    c                s\    \        4       V n        V P                  P                  ! V/ VB  R # r   )ZdictstoreZupdate)r   ZargsZkwargss   &*,r
   __init__ZURIDict.__init__   s"    V


4*6*r   c                sF    V P                   V P                  V4      ,          # r   r   r   r   r	   r
   __getitem__ZURIDict.__getitem__   s    zz$..-..r   c                s@    W P                   V P                  V4      &   R # r   r   )r   r   value   &&&r
   __setitem__ZURIDict.__setitem__   s    */

4>>#&'r   c                s>    V P                   V P                  V4       R # r   r   r   r	   r
   __delitem__ZURIDict.__delitem__   s    JJt~~c*+r   c                ,    \        V P                  4      # r   )Ziterr   r      &r
   __iter__ZURIDict.__iter__       DJJr   c                r   r   )lenr   r   r   r
   __len__ZURIDict.__len__   s    4::r   c                r   r   )reprr   r   r   r
   __repr__ZURIDict.__repr__"   r   r   )r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   r   r   __static_attributes____classdictcell__Z__classdict__   @r
   r   r      s7     &+/0,    r   r   c                   s*   a  ] tR t^&t o RtR tRtV tR# )Unsetz?
An as-of-yet unset attribute or unprovided default parameter.
c                s    R # )z<unset> r   r   r
   r   ZUnset.__repr__+   s    r   r(   N)r   r   r    r!   r"   r   r#   r$   r%   r&   r
   r'   r'   &   s      r   r'   c                sR    V'       g   V # V  RRP                  R V 4       4       R2# )a"  
Construct a single string containing indexing operations for the indices.

For example for a container ``bar``, [1, 2, "foo"] -> bar[1][2]["foo"]

Arguments:

    container (str):

        A word to use for the thing being indexed

    indices (sequence):

        The indices to format.

Z[z][c              3   8   "   T F  p\        V4      x  K  	  R # 5ir   r   ).0Zindex   & r
   	<genexpr>Z"format_as_index.<locals>.<genexpr>B   s     #EWEDKKW   Z])join)	containerZindicesr	   r
   format_as_indexr1   /   s0    " [$))#EW#EEFaHHr   c              #  s   "   VP                  R/ 4      pRP                  VP                  R/ 4      4      pV  F5  pWB9  g   K  V'       d   \        P                  ! W44      '       d   K1  Vx  K7  	  R# 5i)z
Return the set of additional properties for the given ``instance``.

Weeds out properties that should have been validated by ``properties`` and
/ or ``patternProperties``.

Assumes ``instance`` is dict-like already.

propertiesZ|patternPropertiesN)getr/   research)instanceschemar2   Zpatternspropertys   &&   r
   find_additional_propertiesr:   E   sZ      L"-Jxx

#6;<H%BIIh99N	 s   <A3A3(A3c                s^    \        V 4      ^8X  d   RMRpRP                  R V  4       4      V3# )z8
Create an error message for extra items or properties.
ZwasZwerez, c              3   r)   r   r*   )r+   Zextrar,   r
   r-   Zextras_msg.<locals>.<genexpr>\   s     5fUT%[[fr.   )r   r/   )ZextrasZverbr,   r
   
extras_msgr;   W   s0     K1$5&D995f55t;;r   c                s8    \        V \        4      '       d   V .# V # )zQ
Wrap ``thing`` in a list if it's a single str.

Otherwise, return it unchanged.
)
isinstancestr)Zthingr   r
   ensure_listr>   _   s     %wLr   c                s   a \        V 4      \        S4      8w  d   R# \        ;QJ d-    V3R lV P                  4        4       F  '       d   K   R# 	  R# ! V3R lV P                  4        4       4      # )zA
Check if two mappings are equal using the semantics of `equal`.
Fc              3   sh   <"   T F'  w  rVS9   ;'       d    \        VSV,          4      x  K)  	  R # 5ir   equal)r+   Zkeyr   twos   &  r
   r-   Z!_mapping_equal.<locals>.<genexpr>p   s4      %JC 	s
--uUCH--%s   22T)r   allitemsZonerA   s   &fr
   _mapping_equalrE   j   s_     3x3s83 ))+33 3 3 ))+  r   c                s    \        V 4      \        V4      8w  d   R# \        ;QJ d%    R \        W4       4       F  '       d   K   R# 	  R# ! R \        W4       4       4      # )zB
Check if two sequences are equal using the semantics of `equal`.
Fc              3   s<   "   T F  w  r\        W4      x  K  	  R # 5ir   r?   )r+   ijs   &  r
   r-   Z"_sequence_equal.<locals>.<genexpr>|   s     5}tquQ{{}s   T)r   rB   ziprD   r	   r
   _sequence_equalrI   v   sH     3x3s835s3}53353535s3}555r   c                sz   WJ d   R# \        V \        4      '       g   \        V\        4      '       d   W8H  # \        V \        4      '       d"   \        V\        4      '       d   \        W4      # \        V \        4      '       d"   \        V\        4      '       d   \        W4      # \        V 4      \        V4      8H  # )z
Check if two things are equal evading some Python type hierarchy semantics.

Specifically in JSON Schema, evade `bool` inheriting from `int`,
recursing into sequences to do the same.
T)r<   r=   r   rI   r    rE   unboolrD   r	   r
   r@   r@      s     z#sz#s33z#x  ZX%>%>s((#wJsG$<$<c''#;&+%%r   c                s&    V RJ d   V# V RJ d   V# V # )z@
A hack to make True and 1 and False and 0 unique for ``uniq``.
TFr(   )ZelementZtrueZfalser   r
   rJ   rJ      s"     $	E	Nr   c                sh    \        R V  4       4      p\        P                  ! V^R4      p\        W4       F  w  r4\	        W44      '       g   K   R# 	  R#   \
        \        3 dK    . pT  F>  p\        T4      pT F  p\	        Y64      '       g   K     R# 	  TP                  T4       K@  	   R# i ; i)z
Check if all of a container's elements are unique.

Tries to rely on the container being recursively sortable, or otherwise
falls back on (slow) brute force.
c              3   r)   r   )rJ   )r+   rF   r,   r
   r-   Zuniq.<locals>.<genexpr>   s     3AfQiir.   NFT)	Zsorted	itertoolsZislicerH   r@   ZNotImplementedErrorZ	TypeErrorrJ   append)r0   ZsortZslicedrF   rG   ZseenZes   &      r
   uniqrM      s    333!!$40%DAQ{{ &   + 	Aq	A;;   KKN  	s*   AA A A 6B1B1B10B1c           	     sl   V P                  VR4      '       d   . # . pRV9   d   \        \        \        V4      4      4      # VP	                  R4      pVeg   V P
                  P                  V4      pVP                  \        V P                  VP                  VP                  R7      VVP                  4      4       VP	                  R4      pVeg   V P
                  P                  V4      pVP                  \        V P                  VP                  VP                  R7      VVP                  4      4       RV9   d,   V\        \        \        VR,          4      4      4      ,          pRV9   d   V P                  VR,          R	7      P                  V4      '       d=   V\        WVR,          4      ,          pR
V9   d   V\        WVR
,          4      ,          pM!RV9   d   V\        WVR,          4      ,          pR F_  pWr9   g   K  \        V4       FE  w  rV P                  W',          R	7      P                  V	4      '       g   K4  VP                  V4       KG  	  Ka  	  R FN  pWr9   g   K  W',           F7  p
\        V P!                  W4      R4      pVe   K$  V\        WV
4      ,          pK9  	  KP  	  V# )z
Get all indexes of items that get evaluated under the current schema.

Covers all keywords related to unevaluatedItems: items, prefixItems, if,
then, else, contains, unevaluatedItems, allOf, oneOf, anyOf
booleanrC   $refNr8   	_resolver$dynamicRefZprefixItemsifr8   thenelse)ZcontainsZunevaluatedItemsZallOfZoneOfZanyOf)is_typeZlistZranger   r4   rQ   lookupextend%find_evaluated_item_indexes_by_schemaevolvecontentsresolveris_validZ	enumeraterL   nextdescend)	validatorr7   r8   Zevaluated_indexesrefresolved
dynamicRefkeywordZkZv	subschemaerrss   &&&         r
   r[   r[      s    ++	&E#h-())
**V
C
&&--c2  1  #,,&// !  !!		
 M*J&&--j9  1  #,,&// !  !!		
 T%F=,A(B"CDDv~6$<099(CC!FVD\"  !%J& ! v!FVF^"  4!(+##6?#;DDQGG%,,Q/ , 4 /#__	I--hBDI<%)N!Y* % - / r   c           	     s4   V P                  VR4      '       d   . # . pVP                  R4      pVeg   V P                  P                  V4      pVP	                  \        V P                  VP                  VP                  R7      VVP                  4      4       VP                  R4      pVeg   V P                  P                  V4      pVP	                  \        V P                  VP                  VP                  R7      VVP                  4      4       R F  pWr9   g   K  W',          pV P                  VR4      '       d!   V'       d   W1P                  4       ,          pKK  V P                  VR4      '       g   Ke  V F  p	W9   g   K  VP                  V	4       K  	  K  	  RV9   dI   V FB  p	VR,           F2  p
\        P                  ! W4      '       g   K!  VP                  V	4       K4  	  KD  	  RV9   d<   VR,          P                  4        F   w  rW9  d   K  V\        WV4      ,          pK"  	  R FN  pWr9   g   K  W',           F7  p\        V P                  W4      R4      pVe   K$  V\        WV4      ,          pK9  	  KP  	  R	V9   d   V P                  VR	,          R
7      P!                  V4      '       d>   V\        WVR	,          4      ,          pRV9   d   V\        WVR,          4      ,          pV# RV9   d   V\        WVR,          4      ,          pV# )z
Get all keys of items that get evaluated under the current schema.

Covers all keywords related to unevaluatedProperties: properties,
additionalProperties, unevaluatedProperties, patternProperties,
dependentSchemas, allOf, oneOf, anyOf, if, then, else
rN   rO   NrP   rR   objectr3   ZdependentSchemasrS   rT   rU   rV   )r2   ZadditionalPropertiesZunevaluatedPropertiesrW   )rX   r4   rQ   rY   rZ   &find_evaluated_property_keys_by_schemar\   r]   r^   ZkeysrL   r5   r6   rC   r`   ra   r_   )rb   r7   r8   Zevaluated_keysrc   rd   re   rf   Zschema_valuer9   Zpatternrg   rh   s   &&&          r
   rj   rj     s    ++	N
**V
C
&&--c22  #,,&// !  !!		
 M*J&&--j92  #,,&// !  !!		
 !?L  y99l--/1""<:: ,H+&--h7 !- f$ H!"56699W//"))(3 7 !
 V##)*<#=#C#C#EH'DY N $F /#__	I--hBDI<"&L!Y' N - / v~6$<099(CCDVD\ N "H#   vDVF^ N r   )Zcollections.abcr    r   r   Zurllib.parser   rK   r5   r   r'   r1   r:   r;   r>   rE   rI   r@   ri   rJ   rM   r[   rj   r(   r   r
   <module>rk      sp    = = !  	 n  > I,$<	6&$   8JZZr   