Ë
    :vžjh  ã                  óÖ   — d Z ddlmZ ddlZddlZddlZddlmZ ddlmZ	 ddl
mZmZ g d¢Z G d„ d	«      Z G d
„ de«      ZdeefdeefgZeD � cg c]  } | d   ‘Œ	 c} Zd„ Zd„ Zyc c} w )z[
Common validator wrapper to provide a uniform usage of other schema validation
libraries.
é    )ÚannotationsN)ÚJsonSchemaException)ÚDraft4Validator)Ú	ErrorTreeÚValidationError)Ú
VALIDATORSÚFastJsonSchemaValidatorÚJsonSchemaValidatorr   Úget_current_validatorc                  ó.   — e Zd ZdZdZd„ Zd„ Zdd„Zd„ Zy)	r
   zA json schema validator.Ú
jsonschemac                óT   — || _         t        |«      | _        | j                  | _        y©zInitialize the validator.N)Ú_schemaÚ_JsonSchemaValidatorÚ_default_validatorÚ
_validator)ÚselfÚschemas     úe/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/nbformat/json_compat.pyÚ__init__zJsonSchemaValidator.__init__    s#   € àˆŒÜ"6°vÓ">ˆÔØ×1Ñ1ˆ�ó    c                ó:   — | j                   j                  |«       y)úValidate incoming data.N)r   Úvalidate)r   Údatas     r   r   zJsonSchemaValidator.validate&   s   € à×Ñ×(Ñ(¨Õ.r   Nc                óö   — |€| j                   j                  |«      S t        | j                   d«      r+| j                   j                  |¬«      j                  |«      S | j                   j                  ||«      S )ú%Iterate over errors in incoming data.Úevolve)r   )r   Úiter_errorsÚhasattrr   )r   r   r   s      r   r    zJsonSchemaValidator.iter_errors*   sl   € àˆ>Ø×*Ñ*×6Ñ6°tÓ<Ð<Ü�4×*Ñ*¨HÔ5Ø×*Ñ*×1Ñ1¸Ð1Ó@×LÑLÈTÓRÐRØ×&Ñ&×2Ñ2°4¸Ó@Ð@r   c                ó   — t        |¬«      S )ú$Create an error tree for the errors.)Úerrors)r   )r   r$   s     r   Ú
error_treezJsonSchemaValidator.error_tree2   s   € ä Ô'Ð'r   ©N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r   r    r%   © r   r   r
   r
      s   „ Ù"à€Dò2ò/óAó(r   r
   c                  ó>   ‡ — e Zd ZdZdZˆ fd„Zd„ Zdˆ fd„	Zd„ Zˆ xZ	S )r	   z(A schema validator using fastjsonschema.Úfastjsonschemac                óX   •— t         ‰| �  |«       t        j                  |«      | _        yr   )Úsuperr   r.   Úcompiler   )r   r   Ú	__class__s     €r   r   z FastJsonSchemaValidator.__init__<   s"   ø€ ä‰Ñ˜Ô Ü(×0Ñ0°Ó8ˆ�r   c                óŒ   — 	 | j                  |«       y# t        $ r&}t        t        |«      |j                  ¬«      |‚d}~ww xY w)r   ©Úschema_pathN)r   Ú_JsonSchemaExceptionr   ÚstrÚpath)r   r   Úerrors      r   r   z FastJsonSchemaValidator.validateA   s=   € ð	QØ�O‰O˜DÕ!øÜ#ò 	QÜ!¤# e£*¸%¿*¹*ÔEÈ5ÐPûð	Qús   ‚ ”	A�!>¾Ac                óÊ   •— |�t         ‰| �  ||«      S g }| j                  }	  ||«       |S # t        $ r,}t	        t        |«      |j                  ¬«      g}Y d}~|S d}~ww xY w)r   Nr4   )r0   r    r   r6   r   r7   r8   )r   r   r   r$   Úvalidate_funcr9   r2   s         €r   r    z#FastJsonSchemaValidator.iter_errorsH   sn   ø€ àÐÜ‘7Ñ& t¨VÓ4Ð4àˆØŸ™ˆð	KÙ˜$Ôð ˆøô $ò 	KÜ%¤c¨%£j¸e¿j¹jÔIÐJŒFàˆûð	Kús   £- ­	A"¶!AÁA"c                ó   — d}t        |«      ‚)r#   z>JSON schema error introspection not enabled for fastjsonschema)ÚNotImplementedError)r   r$   Úmsgs      r   r%   z"FastJsonSchemaValidator.error_treeV   s   € ð OˆÜ! #Ó&Ð&r   r&   )
r'   r(   r)   r*   r+   r   r   r    r%   Ú__classcell__)r2   s   @r   r	   r	   7   s    ø„ Ù2à€Dô9ò
Qõö	'r   r	   r.   r   c                ó–   — | t         vrd| › dt         › �}t        |«      ‚t        D ]  \  }}}|sŒ
| |k(  sŒ|c S  d| ›�}t        |«      ‚)NzInvalid validator 'z' value!
Valid values are: zMissing validator for )r   Ú
ValueErrorÚ_VALIDATOR_MAP)Úvalidator_namer>   r+   ÚmoduleÚvalidator_clss        r   Ú_validator_for_namerF   i   sc   € ØœZÑ'Ø# NÐ#3Ð3OÔPZÈ|Ð\ˆÜ˜‹oÐç'5Ñ#ˆˆf�mÚ�n¨Ó,Ø Ò ð (6ð # >Ð"4Ð
5€CÜ
�S‹/Ðr   c                 óX   — t         j                  j                  dd«      } t        | «      S )zU
    Return the default validator based on the value of an environment variable.
    ÚNBFORMAT_VALIDATORr.   )ÚosÚenvironÚgetrF   )rC   s    r   r   r   v   s%   € ô —Z‘Z—^‘^Ð$8Ð:JÓK€NÜ˜~Ó.Ð.r   )r*   Ú
__future__r   rI   r.   r   r   r6   r   r   Újsonschema.exceptionsr   r   Ú__all__r
   r	   rB   r   rF   r   )Úitems   0r   Ú<module>rP      sˆ   ðñõ #ã 	ã Û Ý FÝ >ß <ò€÷(ñ (ô8('Ð1ô ('ðX �~Ð'>Ð?Ø�:Ð2Ð3ð€ñ #1Ó1¡.˜$ˆd�1‹g .Ñ1€
ò
ó/ùò! 2s   ÁA&