§
    �Ÿ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d„ eD ¦   «         Zd„ Zd„ ZdS )z[
Common validator wrapper to provide a uniform usage of other schema validation
libraries.
é    )ÚannotationsN)ÚJsonSchemaException)ÚDraft4Validator)Ú	ErrorTreeÚValidationError)r   ÚJsonSchemaValidatorÚFastJsonSchemaValidatorÚget_current_validatorÚ
VALIDATORSc                  ó0   — e Zd ZdZdZd„ Zd„ Zdd„Zd„ ZdS )	r   zA json schema validator.Ú
jsonschemac                óT   — || _         t          |¦  «        | _        | j        | _        dS ©zInitialize the validator.N)Ú_schemaÚ_JsonSchemaValidatorÚ_default_validatorÚ
_validator)ÚselfÚschemas     úa/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/nbformat/json_compat.pyÚ__init__zJsonSchemaValidator.__init__    s'   € àˆŒÝ"6°vÑ">Ô">ˆÔØÔ1ˆŒˆˆó    c                ó:   — | j                              |¦  «         dS )úValidate incoming data.N)r   Úvalidate)r   Údatas     r   r   zJsonSchemaValidator.validate&   s   € àÔ×(Ò(¨Ñ.Ô.Ð.Ð.Ð.r   Nc                óö   — |€| j                              |¦  «        S t          | j         d¦  «        r.| j                              |¬¦  «                             |¦  «        S | j                              ||¦  «        S )ú%Iterate over errors in incoming data.NÚevolve)r   )r   Úiter_errorsÚhasattrr   )r   r   r   s      r   r    zJsonSchemaValidator.iter_errors*   su   € àˆ>ØÔ*×6Ò6°tÑ<Ô<Ð<Ý�4Ô*¨HÑ5Ô5ð 	SØÔ*×1Ò1¸Ð1Ñ@Ô@×LÒLÈTÑRÔ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      sd   € € € € € Ø"Ð"à€Dð2ð 2ð 2ð/ð /ð /ðAð Að Að 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                ó|   •— t          ¦   «                              |¦  «         t          j        |¦  «        | _        dS r   )Úsuperr   r.   Úcompiler   )r   r   Ú	__class__s     €r   r   z FastJsonSchemaValidator.__init__<   s1   ø€ å‰Œ×Ò˜Ñ Ô Ð Ý(Ô0°Ñ8Ô8ˆŒˆˆr   c                óž   — 	 |                       |¦  «         dS # 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ð 	Qð 	QÝ!¥# e¡*¤*¸%¼*ÐEÑEÔEÈ5ÐPøøøøð	Qøøøs   ‚ ™
A£$AÁANc                óò   •— |�"t          ¦   «                              ||¦  «        S g }| j        }	  ||¦  «         n;# t          $ r.}t	          t          |¦  «        |j        ¬¦  «        g}Y d}~nd}~ww xY w|S )r   Nr4   )r0   r    r   r6   r   r7   r8   )r   r   r   r$   Úvalidate_funcr9   r2   s         €r   r    z#FastJsonSchemaValidator.iter_errorsH   s™   ø€ àÐÝ‘7”7×&Ò& t¨VÑ4Ô4Ð4àˆØœˆð	KØˆM˜$ÑÔÐÐøÝ#ð 	Kð 	Kð 	KÝ%¥c¨%¡j¤j¸e¼jÐIÑIÔIÐJˆFˆFˆFˆFˆFˆFøøøøð	Køøøð ˆs   °< ¼
A4Á$A/Á/A4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Ð2à€Dð9ð 9ð 9ð 9ð 9ð
Qð Qð Qðð ð ð ð ð ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'r   r	   r.   r   c                ó   — g | ]
}|d          ‘ŒS )r   r,   )Ú.0Úitems     r   ú
<listcomp>rC   f   s   € Ð1Ð1Ð1˜$ˆd�1ŒgÐ1Ð1Ð1r   c                ó¨   — | t           vrd| › dt           › �}t          |¦  «        ‚t          D ]\  }}}|r
| |k    r|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_namerJ   i   s}   € Ø�ZÐ'Ð'Ø\ NÐ\Ð\ÕPZÐ\Ð\ˆÝ˜‰oŒoÐå'5ð !ð !Ñ#ˆˆf�mØð 	!�n¨Ò,Ð,Ø Ð Ð Ð øà
5 >Ð
5Ð
5€CÝ
�S‰/Œ/Ðr   c                 ó`   — t           j                             dd¦  «        } t          | ¦  «        S )zU
    Return the default validator based on the value of an environment variable.
    ÚNBFORMAT_VALIDATORr.   )ÚosÚenvironÚgetrJ   )rG   s    r   r
   r
   v   s)   € õ ”Z—^’^Ð$8Ð:JÑKÔK€NÝ˜~Ñ.Ô.Ð.r   )r*   Ú
__future__r   rM   r.   r   r   r6   r   r   Újsonschema.exceptionsr   r   Ú__all__r   r	   rF   r   rJ   r
   r,   r   r   ú<module>rS      sA  ððð ð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	à Ð Ð Ð Ø Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FØ >Ð >Ð >Ð >Ð >Ð >Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <ðð ð €ð(ð (ð (ð (ð (ñ (ô (ð (ð8('ð ('ð ('ð ('ð ('Ð1ñ ('ô ('ð ('ðX �~Ð'>Ð?Ø�:Ð2Ð3ð€ð 2Ð1 .Ð1Ñ1Ô1€
ð
ð 
ð 
ð/ð /ð /ð /ð /r   