Ë
    òmxi·H  ã                  ó¤  — U d Z ddlmZ ddlmZmZ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 ddlmZmZmZmZ ddlmZm
ZmZ eeef   Zeez  Zee   Z ee   Z! e«       Z"d	e#d
<   e G d„ de$«      «       Z%d>d„Z&d>d„Z'd?d„Z(	 	 	 	 	 	 d@d„Z)	 	 	 	 	 	 dAd„Z*	 	 	 	 	 	 dAd„Z+	 	 	 	 	 	 dBd„Z, e-«        e-«        e-«       f	 	 	 	 	 dCd„Z. e-«        e-«        e-«       f	 	 	 	 	 dCd„Z/ e-«        e-«        e-«       f	 	 	 	 	 dCd„Z0 e-«        e-«        e-«       f	 	 	 	 	 dCd„Z1 e-«        e-«        e-«       f	 	 	 	 	 dCd„Z2 e-«        e-«        e-«       f	 	 	 	 	 dCd„Z3 e-«        e-«        e-«       f	 	 	 	 	 dCd„Z4 ede& e.h d£h d£h d£¬«      e) e2h d£h d£h d£¬«      ¬ «      Z5 ed!e& e/h d"£h d#£h d£¬«      e* e3h d"£h d#£h d£¬«      ¬ «      Z6 ed$e' e0h d%£h d#£h d&£¬«      e+ e4h d%£h d#£h d&£¬«      ¬ «      Z7 ed'e' e0h d(£h d#£h d&£¬«      e+ e4h d(£h d#£h d&£¬«      ¬ «      Z8 ed)e( e1d*hh d#£h d&£¬«      e, e4h d+£h d#£h d&£¬«      ¬ «      Z9 ed,e( e1d-hh d&£¬.«      e, e4d/d0hd-hh d&£¬«      ¬ «      Z: ed1e5fd2e6fd3e7fd4e8fd5e9fd6e:ffD � �ci c]  \  } }|  ejv                  |«      “Œ c}} «      Z<d7e#d8<   ef	 	 	 	 	 dDd9„Z=e G d:„ d;«      «       Z>dEd<„Z?y=c c}} w )FzI
Referencing implementations for JSON Schema specs (historic & current).
é    )Úannotations)ÚIterableÚSequenceÚSet)ÚAny)ÚAnchorÚRegistryÚResourceÚSpecificationÚ
exceptions)Úfrozen)Ú_UNSETÚResolvedÚResolverÚ_Unset)ÚURIr   ÚMappingÚSchemaRegistryÚEMPTY_REGISTRYc                  ó   — e Zd ZU dZded<   y)ÚUnknownDialectz›
    A dialect identifier was found for a dialect unknown by this library.

    If it's a custom ("unofficial") dialect, be sure you've registered it.
    r   ÚuriN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    úM/home/htdocs/ttos/venv/lib/python3.12/site-packages/referencing/jsonschema.pyr   r   $   s   … ñð 
„Hr   r   c                óF   — t        | t        «      ry | j                  d«      S )Nú$id)Ú
isinstanceÚboolÚget)Úcontentss    r    Ú
_dollar_idr'   /   s   € Ü�(œDÔ!ØØ�<‰<˜ÓÐr   c                ó|   — t        | t        «      sd| v ry | j                  d«      }|�|j                  d«      s|S y y )Nú$refr"   ú#)r#   r$   r%   Ú
startswith©r&   Úids     r    Ú_legacy_dollar_idr.   5   s@   € Ü�(œDÔ! V¨xÑ%7ØØ	�‰�eÓ	€BØ	€~˜bŸm™m¨CÔ0Øˆ	ð 1€~r   c                ó\   — d| v ry | j                  d«      }|�|j                  d«      s|S y y )Nr)   r-   r*   )r%   r+   r,   s     r    Ú
_legacy_idr0   =   s7   € Ø�ÑØØ	�‰�dÓ	€BØ	€~˜bŸm™m¨CÔ0Øˆ	ð 1€~r   c              #  óô   K  — t        |t        «      ry |j                  d«      }|�t        || j	                  |«      ¬«      –— |j                  d«      }|�t        || j	                  |«      ¬«      –— y y ­w)Nú$anchor©ÚnameÚresourcez$dynamicAnchor)r#   r$   r%   r   Úcreate_resourceÚDynamicAnchor)Úspecificationr&   ÚanchorÚdynamic_anchors       r    Ú_anchorr;   E   s�   è ø€ ô �(œDÔ!ØØ�\‰\˜)Ó$€FØÐÜØØ"×2Ñ2°8Ó<ô
ò 	
ð
 —\‘\Ð"2Ó3€NØÐ!ÜØØ"×2Ñ2°8Ó<ô
ó 	
ð "ùs   ‚A6A8c                óŠ   — t        |t        «      rg S |j                  d«      }|€g S t        || j	                  |«      ¬«      gS )Nr2   r3   )r#   r$   r%   r   r6   )r8   r&   r9   s      r    Ú_anchor_2019r=   Z   sN   € ô �(œDÔ!Øˆ	Ø�\‰\˜)Ó$€FØ€~Øˆ	äØØ"×2Ñ2°8Ó<ô	
ðð r   c                ó°   — t        |t        «      rg S |j                  dd«      }|j                  d«      sg S t	        |dd  | j                  |«      ¬«      gS )Nr"   Ú r*   é   r3   )r#   r$   r%   r+   r   r6   ©r8   r&   r-   s      r    Ú_legacy_anchor_in_dollar_idrB   k   s]   € ô �(œDÔ!Øˆ	Ø	�‰�e˜RÓ	 €BØ�=‰=˜ÔØˆ	äØ�A�B�Ø"×2Ñ2°8Ó<ô	
ðð r   c                óŒ   — |j                  dd«      }|j                  d«      sg S t        |dd  | j                  |«      ¬«      gS )Nr-   r?   r*   r@   r3   )r%   r+   r   r6   rA   s      r    Ú_legacy_anchor_in_idrD   |   sN   € ð 
�‰�d˜BÓ	€BØ�=‰=˜ÔØˆ	äØ�A�B�Ø"×2Ñ2°8Ó<ô	
ðð r   c                ó   ‡ ‡‡— dˆˆˆ fd„}|S )zÕ
    Create a callable returning JSON Schema specification-style subschemas.

    Relies on specifying the set of keywords containing subschemas in their
    values, in a subobject's values, or in a subarray.
    c              3  óÞ   •K  — t        | t        «      ry ‰D ]  }|| v sŒ| |   –— Œ ‰D ]  }|| v sŒ| |   E d {  –—†  Œ ‰D ]"  }|| v sŒ| |   j                  «       E d {  –—†  Œ$ y 7 Œ.7 Œ	­w©N)r#   r$   Úvalues)r&   ÚeachÚin_subarrayÚin_subvaluesÚin_values     €€€r    Úsubresources_ofz)_subresources_of.<locals>.subresources_of—   s•   øè ø€ Ü�h¤Ô%ØØò 	%ˆDØ�xÒØ˜t‘nÓ$ð	%ð  ò 	*ˆDØ�xÒØ# D™>×)Ñ)ð	*ð !ò 	3ˆDØ�xÒØ# D™>×0Ñ0Ó2×2Ñ2ñ	3ð *øð 3ús1   ƒA-ŸA-²A-ºA)»A-ÁA-Á!A+Á"A-Á+A-©r&   ÚSchemaÚreturnúIterable[ObjectSchema]r   ©rL   rK   rJ   rM   s   ``` r    Ú_subresources_ofrS   ‹   s   ú€ ÷3ð Ðr   c                ó   ‡ ‡‡— dˆˆˆ fd„}|S )úO
    Specifically handle older drafts where there are some funky keywords.
    c              3  óH  •K  — t        | t        «      ry ‰D ]  }|| v sŒ| |   –— Œ ‰D ]  }|| v sŒ| |   E d {  –—†  Œ ‰D ]"  }|| v sŒ| |   j                  «       E d {  –—†  Œ$ | j                  d«      }|� t        |t        «      r|E d {  –—†  y |–— y y 7 Œa7 Œ<7 Œ­w©NÚitems)r#   r$   rH   r%   r   )r&   rI   rX   rJ   rK   rL   s      €€€r    rM   z:_subresources_of_with_crazy_items.<locals>.subresources_of°   sÎ   øè ø€ Ü�h¤Ô%ØØò 	%ˆDØ�xÒØ˜t‘nÓ$ð	%ð  ò 	*ˆDØ�xÒØ# D™>×)Ñ)ð	*ð !ò 	3ˆDØ�xÒØ# D™>×0Ñ0Ó2×2Ñ2ð	3ð —‘˜WÓ%ˆØÐÜ˜%¤Ô*Ø × Ñ à“ð	 ð *øð 3øð
 !úsC   ƒB"ŸB"²B"ºB»B"ÁB"Á!BÁ".B"ÂB ÂB"ÂB"Â B"rN   r   rR   s   ``` r    Ú!_subresources_of_with_crazy_itemsrY   §   s   ú€ ÷ð( Ðr   c                ó   ‡ ‡‡— dˆˆˆ fd„}|S )rU   c              3  óú  •K  — t        | t        «      ry ‰D ]  }|| v sŒ| |   –— Œ ‰D ]  }|| v sŒ| |   E d {  –—†  Œ ‰D ]"  }|| v sŒ| |   j                  «       E d {  –—†  Œ$ | j                  d«      }|�t        |t        «      r|E d {  –—†  n|–— | j                  d«      }|�Et        |j                  «       «      }t        |d «      }t        |t        «      r|–— |E d {  –—†  y y y 7 Œ¸7 Œ“7 Œf7 Œ­w)NrX   Údependencies)r#   r$   rH   r%   r   ÚiterÚnextr   ©	r&   rI   rX   r\   rH   ÚvaluerJ   rK   rL   s	         €€€r    rM   zG_subresources_of_with_crazy_items_dependencies.<locals>.subresources_ofÐ   s$  øè ø€ Ü�h¤Ô%ØØò 	%ˆDØ�xÒØ˜t‘nÓ$ð	%ð  ò 	*ˆDØ�xÒØ# D™>×)Ñ)ð	*ð !ò 	3ˆDØ�xÒØ# D™>×0Ñ0Ó2×2Ñ2ð	3ð —‘˜WÓ%ˆØÐÜ˜%¤Ô*Ø × Ñ à’Ø—|‘| NÓ3ˆØÐ#Ü˜,×-Ñ-Ó/Ó0ˆFÜ˜ Ó&ˆEÜ˜%¤Ô)Ø’Ø!×!Ñ!ð *ð $ð *øð 3øð
 !øð "úsV   ƒC;ŸC;²C;ºC3»C;ÁC;Á!C5Á".C;ÂC7ÂAC;Ã+C9Ã,C;Ã5C;Ã7C;Ã9C;rN   r   rR   s   ``` r    Ú._subresources_of_with_crazy_items_dependenciesra   Ç   s   ú€ ÷"ð6 Ðr   c                ó   ‡ ‡‡— dˆˆˆ fd„}|S )zT
    Specifically handle even older drafts where there are some funky keywords.
    c              3  ó.  •K  — ‰D ]  }|| v sŒ| |   –— Œ ‰D ]  }|| v sŒ| |   E d {  –—†  Œ ‰D ]"  }|| v sŒ| |   j                  «       E d {  –—†  Œ$ | j                  d«      }|�t        |t        «      r|E d {  –—†  n|–— | j                  d«      }|�Ct	        |j                  «       «      }t        |d «      }t        |t        «      r|–— |E d {  –—†  dD ](  }| j                  |«      }t        |t        «      sŒ%|–— Œ* y 7 Œã7 Œ¾7 Œ‘7 Œ8­w)NrX   r\   )ÚadditionalItemsÚadditionalProperties)rH   r%   r#   r   r]   r^   r   r_   s	         €€€r    rM   zJ_subresources_of_with_crazy_aP_items_dependencies.<locals>.subresources_of÷   s9  øè ø€ Øò 	%ˆDØ�xÒØ˜t‘nÓ$ð	%ð  ò 	*ˆDØ�xÒØ# D™>×)Ñ)ð	*ð !ò 	3ˆDØ�xÒØ# D™>×0Ñ0Ó2×2Ñ2ð	3ð —‘˜WÓ%ˆØÐÜ˜%¤Ô*Ø × Ñ à’Ø—|‘| NÓ3ˆØÐ#Ü˜,×-Ñ-Ó/Ó0ˆFÜ˜ Ó&ˆEÜ˜%¤Ô)Ø’Ø!×!Ð!à=ò 	ˆDØ—L‘L Ó&ˆEÜ˜%¤Õ)Ø“ñ	ð' *øð 3øð
 !øð "ús[   ƒ
DŽD¡D©DªDºDÁDÁ.DÁ?DÂ ADÃDÃ*DÄDÄDÄDÄD)r&   ÚObjectSchemarP   rQ   r   rR   s   ``` r    Ú1_subresources_of_with_crazy_aP_items_dependenciesrg   î   s   ú€ ÷ð< Ðr   c                ó2   ‡ ‡— ||z  Š	 	 	 	 	 	 	 	 dˆˆ fd„}|S )Nc                ó|   •— t        | «      }|D ]  }|‰vsŒ|‰vst        |d «      �Œ|c S  |j                  |«      S rG   )r]   r^   Úin_subresource©ÚsegmentsÚresolverÚsubresourceÚ	_segmentsÚsegmentÚin_childrL   s        €€r    Úmaybe_in_subresourcez3_maybe_in_subresource.<locals>.maybe_in_subresource  sQ   ø€ ô
 ˜“Nˆ	Ø ò 	 ˆGØ˜hÒ&Ø˜xÑ'¬4°	¸4Ó+@Ñ+Hà’ð		 ð
 ×&Ñ& {Ó3Ð3r   ©rl   zSequence[int | str]rm   ú_Resolver[Any]rn   zResource[Any]rP   rt   r   ©rL   rK   rJ   rr   rq   s   `   @r    Ú_maybe_in_subresourcerv     s@   ù€ ð
 ˜kÑ)€Hð4Ø%ð4à ð4ð #ð4ð 
ö	4ð  Ðr   c                ó2   ‡ ‡— ||z  Š	 	 	 	 	 	 	 	 dˆˆ fd„}|S )Nc                óà   •— t        | «      }|D ]M  }|dk(  r-t        |j                  t        «      r|j	                  |«      c S |‰vsŒ:|‰vst        |d «      �ŒK|c S  |j	                  |«      S rW   ©r]   r#   r&   r   rj   r^   rk   s        €€r    rr   z?_maybe_in_subresource_crazy_items.<locals>.maybe_in_subresource6  s   ø€ ô
 ˜“Nˆ	Ø ò 		 ˆGØ˜'Ò!¤jØ×$Ñ$Üô'ð  ×.Ñ.¨{Ó;Ò;Ø˜hÒ&Ø˜xÑ'¬4°	¸4Ó+@Ñ+Hà’ð		 ð ×&Ñ& {Ó3Ð3r   rs   r   ru   s   `   @r    Ú!_maybe_in_subresource_crazy_itemsrz   /  ó@   ù€ ð
 ˜kÑ)€Hð4Ø%ð4à ð4ð #ð4ð 
ö	4ð$  Ðr   c                ó2   ‡ ‡— ||z  Š	 	 	 	 	 	 	 	 dˆˆ fd„}|S )Nc                óÞ   •— t        | «      }|D ]L  }|dv r-t        |j                  t        «      r|j	                  |«      c S |‰vsŒ9|‰vst        |d «      �ŒJ|c S  |j	                  |«      S )N>   rX   r\   ry   rk   s        €€r    rr   zL_maybe_in_subresource_crazy_items_dependencies.<locals>.maybe_in_subresourceR  s€   ø€ ô
 ˜“Nˆ	Ø ò 		 ˆGØÐ3Ñ3¼
Ø×$Ñ$Üô9ð  ×.Ñ.¨{Ó;Ò;Ø˜hÒ&Ø˜xÑ'¬4°	¸4Ó+@Ñ+Hà’ð		 ð ×&Ñ& {Ó3Ð3r   rs   r   ru   s   `   @r    Ú._maybe_in_subresource_crazy_items_dependenciesr~   K  r{   r   zdraft2020-12>   ÚifÚnotÚelseÚthenrX   ÚcontainsÚcontentSchemaÚpropertyNamesÚunevaluatedItemsre   ÚunevaluatedProperties>   ÚallOfÚanyOfÚoneOfÚprefixItems>   ú$defsÚ
propertiesÚdefinitionsÚdependentSchemasÚpatternProperties)rL   rJ   rK   )r4   Úid_ofrM   Ú
anchors_inrr   zdraft2019-09>   r   r€   r�   r‚   rƒ   r„   r…   rd   r†   re   r‡   >   rˆ   r‰   rŠ   zdraft-07>   r   r€   r�   r‚   rƒ   r…   rd   re   >   r�   rŽ   r�   zdraft-06>   r€   rƒ   r…   rd   re   zdraft-04r€   >   r€   rd   re   zdraft-03Úextends)rJ   rK   rd   re   z,https://json-schema.org/draft/2020-12/schemaz,https://json-schema.org/draft/2019-09/schemaz&http://json-schema.org/draft-07/schemaz&http://json-schema.org/draft-06/schemaz&http://json-schema.org/draft-04/schemaz&http://json-schema.org/draft-03/schemazRegistry[Specification[Schema]]Ú_SPECIFICATIONSc                ó�   — t         j                  | j                  d«      «      }|�|j                  S |t        u rt        | «      ‚|S )z¦
    Retrieve the `Specification` with the given dialect identifier.

    Raises:

        `UnknownDialect`

            if the given ``dialect_id`` isn't known

    r*   )r”   r%   Úrstripr&   r   r   )Ú
dialect_idÚdefaultr5   s      r    Úspecification_withr™   =  sI   € ô ×"Ñ" :×#4Ñ#4°SÓ#9Ó:€HØÐØ× Ñ Ð Ø”&ÑÜ˜ZÓ(Ð(Ø€Nr   c                  ó.   — e Zd ZU dZded<   ded<   dd„Zy)	r7   z4
    Dynamic anchors, introduced in draft 2020.
    Ústrr4   ÚSchemaResourcer5   c                óP  — | j                   }|j                  «       D ]I  \  }}	 |j                  || j                  «      j                  }t        |t        «      sŒ>|j                   }ŒK t        |j                  |j                  |«      ¬«      S # t
        j                  $ r Y Œ‡w xY w)z2
        Resolve this anchor dynamically.
        )r&   rm   )r5   Údynamic_scoper9   r4   r`   r   ÚNoSuchAnchorr#   r7   Ú	_Resolvedr&   rj   )Úselfrm   Úlastr   Úregistryr9   s         r    ÚresolvezDynamicAnchor.resolve\  s›   € ð �}‰}ˆØ%×3Ñ3Ó5ò 	'‰MˆC�ðØ!Ÿ™¨¨d¯i©iÓ8×>Ñ>�ô ˜&¤-Õ0Ø—‘‘ð	'ô Ø—]‘]Ø×,Ñ,¨TÓ2ô
ð 	
øô	 ×*Ñ*ò Ùðús   ¤&BÂB%Â$B%N©rm   z_Resolver[Schema]rP   z_Resolved[Schema])r   r   r   r   r   r¤   r   r   r    r7   r7   S  s   … ñð ƒIØÓô
r   r7   c                óX  — | j                  d«      }t        |j                  t        «      r~|j                  j	                  d«      rc| j                  «       D ]P  \  }}| j                  |«      }t        |j                  t        «      r|j                  j	                  d«      s |S |}ŒR |S )u÷   
    Recursive references (via recursive anchors), present only in draft 2019.

    As per the 2019 specification (Â§ 8.2.4.2.1), only the ``#`` recursive
    reference is supported (and is therefore assumed to be the relevant
    reference).
    r*   z$recursiveAnchor)Úlookupr#   r&   r   r%   rž   )rm   Úresolvedr   Ú_Únext_resolveds        r    Úlookup_recursive_refr«   n  s¥   € ð �‰˜sÓ#€HÜ�(×#Ñ#¤WÔ-°(×2CÑ2C×2GÑ2GØô3ð ×,Ñ,Ó.ò 	%‰FˆC�Ø$ŸO™O¨CÓ0ˆMÜØ×&Ñ&Üôð #×+Ñ+×/Ñ/Ð0BÔCØà€Oð %‰Hð	%ð €Or   N)r&   rO   rP   ú
URI | None)r&   rf   rP   r¬   )r8   úSpecification[Schema]r&   rO   rP   zIterable[AnchorType[Schema]])r8   r­   r&   rO   rP   zIterable[Anchor[Schema]])r8   zSpecification[ObjectSchema]r&   rf   rP   zIterable[Anchor[ObjectSchema]])rL   úSet[str]rK   r®   rJ   r®   )r—   r   r˜   zSpecification[Any] | _UnsetrP   zSpecification[Any]r¥   )@r   Ú
__future__r   Úcollections.abcr   r   r   Útypingr   Úreferencingr   r	   r
   r   r   Úreferencing._attrsr   Úreferencing._corer   r   r    r   Ú	_Resolverr   Úreferencing.typingr   Ú
AnchorTyper   r›   rf   r$   rO   rœ   r   r   r   Ú	Exceptionr   r'   r.   r0   r;   r=   rB   rD   Ú	frozensetrS   rY   ra   rg   rv   rz   r~   ÚDRAFT202012ÚDRAFT201909ÚDRAFT7ÚDRAFT6ÚDRAFT4ÚDRAFT3Úopaquer”   r™   r7   r«   )r—   r8   s   00r    ú<module>rÁ      s³  ðòõ #ç 3Ñ 3Ý ç MÕ MÝ %÷ó ÷ BÑ Að �s˜C�xÑ €ð 
�Ñ	€ð ˜&Ñ!€ð ˜&Ñ!€ñ "*£€�Ó +ð ô�Yó ó ðóóóð
Ø(ð
àð
ð "ó
ð*Ø(ðàðð óð"Ø(ðàðð óð"Ø.ðàðð $óñ  #›Ù&›[Ù%›KðØðàðð óñ: #›Ù&›[Ù%›KðØðàðð óñB #›Ù&›[Ù%›Kð$Øð$àð$ð ó$ñP #›Ù&›[Ù%›Kð'Øð'àð'ð ó'ñV #›Ù&›[Ù%›Kð Øð àð ð ó ñ0 #›Ù&›[Ù%›Kð Øð àð ð ó ñ: #›Ù&›[Ù%›Kð Øð àð ð ó ñ: Ø	Ø
Ù$ò
ò ?ò
ôð. Ù.ò
ò ?ò
ôô72€ñh Ø	Ø
Ù5ò
ò 0ò
ôð. Ù:ò
ò 0ò
ôô72€ñh 
Ø	Ø
ÙBò	
ò 0ÚGôð +ÙGò	
ò 0ÚGôô% 
€ñD 
Ø	Ø
ÙBò
ò 0ÚGô
ð +ÙGò
ò 0ÚGô
ô
€ñ8 
Ø	Ø
ÙEØ�Ú/ÚGôð
 $ÙGÚCÚ/ÚGôô
€ñ  
Ø	Ø
ÙEØ�KÚGôð $ÙGØ#Ð%;Ð<Ø�KÚGôô
€ñ  4<ð <¸[ÐIØ;¸[ÐIØ5°vÐ>Ø5°vÐ>Ø5°vÐ>Ø5°vÐ>ð*
÷
á%ˆJ˜ð 	�O�H—O‘O MÓ2Ñ2ó
ó4€Ð0ó ð" ,2ðØðà(ðð óð, ÷
ð 
ó ð
ô4ùó
s   ÊK
