§
    ¥”jý   ã                   óH  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	Z	ddlZddl
Z
ddlZddlZddlmZmZ ddlmZ dd	lmZmZ  ej        d
ed¬¦  «          G d„ de¦  «        Ze G d„ d¦  «        ¦   «         Ze G d„ d¦  «        ¦   «         Ze G d„ d¦  «        ¦   «         Zd„ Z e	j        d¬¦  «        Ze                     ddddd¬¦  «         e                     ddd ¬!¦  «         e                     d"d#d$d%gd$d&¬'¦  «         e                     d(d)ed*¬+¦  «         e                     d,d-¬!¦  «         e                     d.d/ ej         d0¦  «        ¬1¦  «         e                     d2d3¬!¦  «         d4„ Z!d5„ Z"e
j#        d6d…         fd7„Z$e
j%        e
j&        e
j'        fd8„Z(dS )9z"
The ``jsonschema`` command line.
é    )Úmetadata)ÚJSONDecodeError©Úresolve_name)ÚdedentN)ÚdefineÚfield)ÚSchemaError)Ú_RefResolverÚvalidator_forzµThe jsonschema CLI is deprecated and will be removed in a future version. Please use check-jsonschema instead, which can be installed from https://pypi.org/project/check-jsonschema/é   )Ú
stacklevelc                   ó   — e Zd ZdS )Ú_CannotLoadFileN)Ú__name__Ú
__module__Ú__qualname__© ó    ú]/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/jsonschema/cli.pyr   r      s   € € € € € Ø€Dr   r   c                   ó~   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zd„ Zd„ ZdS )Ú
_Outputterc                 ó–   — |d         dk    rt          |d         ¦  «        }n|d         dk    rt          ¦   «         } | |||¬¦  «        S )NÚoutputÚplainÚerror_formatÚpretty)Ú	formatterÚstdoutÚstderr)Ú_PlainFormatterÚ_PrettyFormatter)ÚclsÚ	argumentsr   r    r   s        r   Úfrom_argumentsz_Outputter.from_arguments*   sX   € à�XÔ 'Ò)Ð)Ý'¨	°.Ô(AÑBÔBˆIˆIØ�xÔ  HÒ,Ð,Ý(Ñ*Ô*ˆIØˆs˜Y¨v¸fÐEÑEÔEÐEr   c                 óª  — 	 t          |¦  «        }nI# t          $ r<}|                      |t          j        ¦   «         ¬¦  «         t          ¦   «         |‚d }~ww xY w|5  	 t          j        |¦  «        cd d d ¦  «         S # t          $ r<}|  	                    |t          j        ¦   «         ¬¦  «         t          ¦   «         |‚d }~ww xY w# 1 swxY w Y   d S )N©ÚpathÚexc_info)
ÚopenÚFileNotFoundErrorÚfilenotfound_errorÚsysr)   r   ÚjsonÚloadr   Úparsing_error)Úselfr(   ÚfileÚerrors       r   r/   z_Outputter.load2   s*  € ð	/Ý˜‘:”:ˆDˆDøÝ ð 	/ð 	/ð 	/Ø×#Ò#¨½¼¹¼Ð#ÑGÔGÐGÝ!Ñ#Ô#¨Ð.øøøøð	/øøøð ð 	3ð 	3ð3Ý”y ‘”ð	3ð 	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3øõ #ð 3ð 3ð 3Ø×"Ò"¨µs´|±~´~Ð"ÑFÔFÐFÝ%Ñ'Ô'¨UÐ2øøøøð3øøøð	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3sD   ‚ ’
Aœ7AÁAÁCÁA?Á?
CÂ	7C Ã CÃCÃCÃCc                 óZ   — | j                               | j        j        di |¤Ž¦  «         d S ©Nr   )Ú_stderrÚwriteÚ
_formatterr,   ©r1   Úkwargss     r   r,   z_Outputter.filenotfound_error@   ó4   € ØŒ×ÒÐ=˜4œ?Ô=ÐGÐGÀÐGÐGÑHÔHÐHÐHÐHr   c                 óZ   — | j                               | j        j        di |¤Ž¦  «         d S r5   )r6   r7   r8   r0   r9   s     r   r0   z_Outputter.parsing_errorC   s4   € ØŒ×ÒÐ8˜4œ?Ô8ÐBÐB¸6ÐBÐBÑCÔCÐCÐCÐCr   c                 óZ   — | j                               | j        j        di |¤Ž¦  «         d S r5   )r6   r7   r8   Úvalidation_errorr9   s     r   r>   z_Outputter.validation_errorF   s4   € ØŒ×ÒÐ;˜4œ?Ô;ÐEÐE¸fÐEÐEÑFÔFÐFÐFÐFr   c                 óZ   — | j                               | j        j        di |¤Ž¦  «         d S r5   )Ú_stdoutr7   r8   Úvalidation_successr9   s     r   rA   z_Outputter.validation_successI   r;   r   N)r   r   r   r	   r8   r@   r6   Úclassmethodr%   r/   r,   r0   r>   rA   r   r   r   r   r   #   s¬   € € € € € ð �‘”€JØˆe‰gŒg€GØˆe‰gŒg€GàðFð Fñ „[ðFð3ð 3ð 3ðIð Ið IðDð Dð DðGð Gð GðIð Ið Ið Ið Ir   r   c                   ó@   — e Zd Z ed¦  «        ZdZd„ Zd„ Zd„ Zd„ Z	dS )r"   z`        ===[{type}]===({path})===

        {body}
        -----------------------------
        z===[SUCCESS]===({path})===
c                 óB   — | j                              |d|›d�¬¦  «        S )Nr+   z does not exist.©r(   ÚtypeÚbody)Ú
_ERROR_MSGÚformat©r1   r(   r)   s      r   r,   z#_PrettyFormatter.filenotfound_errorZ   s3   € ØŒ×%Ò%ØØ$ØÐ,Ð,Ð,ð &ñ 
ô 
ð 	
r   c                 ó¤   — |\  }}}d                      t          j        |||¦  «        ¦  «        }| j                             ||j        |¬¦  «        S )NÚ rE   )ÚjoinÚ	tracebackÚformat_exceptionrH   rI   r   )r1   r(   r)   Úexc_typeÚ	exc_valueÚexc_tracebackÚ	exc_liness          r   r0   z_PrettyFormatter.parsing_errora   s`   € Ø-5Ñ*ˆ�)˜]Ø—G’GÝÔ& x°¸MÑJÔJñ
ô 
ˆ	ð Œ×%Ò%ØØÔ"Øð &ñ 
ô 
ð 	
r   c                 óP   — | j                              ||j        j        |¬¦  «        S )NrE   )rH   rI   Ú	__class__r   ©r1   Úinstance_pathr3   s      r   r>   z!_PrettyFormatter.validation_errorl   s/   € ØŒ×%Ò%ØØ”Ô)Øð &ñ 
ô 
ð 	
r   c                 ó8   — | j                              |¬¦  «        S )N)r(   )Ú_SUCCESS_MSGrI   ©r1   rW   s     r   rA   z#_PrettyFormatter.validation_successs   s   € ØÔ ×'Ò'¨]Ð'Ñ;Ô;Ð;r   N)
r   r   r   r   rH   rY   r,   r0   r>   rA   r   r   r   r"   r"   M   so   € € € € € ð �ð	ñô €Jð 2€Lð
ð 
ð 
ð	
ð 	
ð 	
ð
ð 
ð 
ð<ð <ð <ð <ð <r   r"   c                   ó:   — e Zd Z e¦   «         Zd„ Zd„ Zd„ Zd„ ZdS )r!   c                 ó   — |›d�S )Nz does not exist.
r   rJ   s      r   r,   z"_PlainFormatter.filenotfound_error|   s   € ØÐ,Ð,Ð,Ð,r   c                 ód   — d                      |dk    rdnt          |¦  «        |d         ¦  «        S )NzFailed to parse {}: {}
ú<stdin>é   )rI   ÚreprrJ   s      r   r0   z_PlainFormatter.parsing_error   s8   € Ø)×0Ò0Ø Ò*Ð*ˆIˆIµ°T±
´
Ø�QŒKñ
ô 
ð 	
r   c                 ó:   — | j                              ||¬¦  «        S )N)Ú	file_namer3   )Ú_error_formatrI   rV   s      r   r>   z _PlainFormatter.validation_error…   s   € ØÔ!×(Ò(°=ÈÐ(ÑNÔNÐNr   c                 ó   — dS )NrL   r   rZ   s     r   rA   z"_PlainFormatter.validation_successˆ   s   € Øˆrr   N)	r   r   r   r	   rc   r,   r0   r>   rA   r   r   r   r!   r!   w   s`   € € € € € ð �E‘G”G€Mð-ð -ð -ð
ð 
ð 
ðOð Oð Oðð ð ð ð r   r!   c                 ó2   — d| vrd| z   } t          | ¦  «        S )Nú.zjsonschema.r   )Únames    r   Ú_resolve_name_with_defaultrh   Œ   s#   € Ø
�$€€Ø˜tÑ#ˆÝ˜ÑÔÐr   zJSON Schema Validation CLI)Údescriptionz-iz
--instanceÚappendÚ	instanceszÑ
        a path to a JSON instance (i.e. filename.json) to validate (may
        be specified multiple times). If no instances are provided via this
        option, one will be expected on standard input.
    )ÚactionÚdestÚhelpz-Fz--error-formata¢  
        the format to use for each validation error message, specified
        in a form suitable for str.format. This string will be passed
        one formatted object named 'error' for each ValidationError.
        Only provide this option when using --output=plain, which is the
        default. If this argument is unprovided and --output=plain is
        used, a simple default representation will be used.
    )rn   z-oz--outputr   r   zÓ
        an output format to use. 'plain' (default) will produce minimal
        text with one line for each error, while 'pretty' will produce
        more detailed human-readable output on multiple lines.
    )ÚchoicesÚdefaultrn   z-Vz--validatorzª
        the fully qualified object name of a validator to use, or, for
        validators that are registered with jsonschema, simply the name
        of the class.
    )rF   rn   z
--base-urizá
        a base URI to assign to the provided schema, even if it does not
        declare one (via e.g. $id). This option can be used if you wish to
        resolve relative references to a particular URI (or local path)
    z	--versionÚversionÚ
jsonschema)rl   rq   Úschemaz=the path to a JSON Schema to validate with (i.e. schema.json)c                 óê   — t          t                               | pdg¬¦  «        ¦  «        }|d         dk    r"|d         rt                               d¦  «        ‚|d         dk    r|d         €d|d<   |S )Nz--help©Úargsr   r   r   z3--error-format can only be used with --output plainz"{error.instance}: {error.message}
)ÚvarsÚparserÚ
parse_argsr3   )rv   r$   s     r   ry   ry   Ð   s†   € Ý•V×&Ò&¨DÐ,>°X°JÐ&Ñ?Ô?Ñ@Ô@€IØ�Ô˜gÒ%Ð%¨)°NÔ*CÐ%Ý�lŠlØAñ
ô 
ð 	
ð �Ô˜gÒ%Ð%¨)°NÔ*CÐ*KØ$Iˆ	�.Ñ!ØÐr   c                 óœ   — d}|                      |¦  «        D ]}d}|                     | |¬¦  «         Œ|s|                     | ¬¦  «         |S )NFT©rW   r3   )rW   )Úiter_errorsr>   rA   )rW   ÚinstanceÚ	validatorÚ	outputterÚinvalidr3   s         r   Ú_validate_instancer�   Û   sl   € Ø€GØ×&Ò& xÑ0Ô0ð Mð MˆØˆØ×"Ò"°ÀeÐ"ÑLÔLÐLÐLàð BØ×$Ò$°=Ð$ÑAÔAÐAØ€Nr   r_   c                 óf   — t          j        t          t          | ¬¦  «        ¬¦  «        ¦  «         d S )Nru   )r$   )r-   ÚexitÚrunry   ru   s    r   Úmainr…   æ   s.   € Ý„H�S�:¨4Ð0Ñ0Ô0Ð1Ñ1Ô1Ñ2Ô2Ð2Ð2Ð2r   c                 ó~  ‡‡— t                                | ||¬¦  «        Š	 ‰                     | d         ¦  «        }n# t          $ r Y dS w xY w| d         }|€t	          |¦  «        }	 |                     |¦  «         n5# t          $ r(}‰                     | d         |¬¦  «         Y d }~dS d }~ww xY w| d         r‰j        | d         }}n	ˆˆfd„}dg}| d	         �t          | d	         |¬
¦  «        nd }	 |||	¬¦  «        }
d}|D ]6}	  ||¦  «        }|t          |||
‰¬¦  «        z  }Œ%# t          $ r d}Y Œ3w xY w|S )N)r$   r   r    rs   r_   r~   r{   rk   c                 óÀ   •— 	 t          j        ‰¦  «        S # t          $ r<}‰                     dt	          j        ¦   «         ¬¦  «         t          ¦   «         |‚d }~ww xY w)Nr^   r'   )r.   r/   r   r0   r-   r)   r   )Ú_r3   r   Ústdins     €€r   r/   zrun.<locals>.load  so   ø€ ð3Ý”y Ñ'Ô'Ð'øÝ"ð 3ð 3ð 3Ø×'Ò'Ø"­S¬\©^¬^ð (ñ ô ð õ &Ñ'Ô'¨UÐ2øøøøð	3øøøs   ƒ —
A¡7AÁAr^   Úbase_uri)rŠ   Úreferrer)Úresolverr   )rW   r}   r~   r   )
r   r%   r/   r   r   Úcheck_schemar
   r>   r   r�   )r$   r   r    r‰   rs   Ú	Validatorr3   r/   rk   rŒ   r~   Ú	exit_codeÚeachr}   r   s      `          @r   r„   r„   ê   s  øø€ Ý×)Ò)ØØØð *ñ ô €IðØ—’ 	¨(Ô 3Ñ4Ô4ˆˆøÝð ð ð Øˆqˆqðøøøð ˜+Ô&€IØÐÝ! &Ñ)Ô)ˆ	ðØ×Ò˜vÑ&Ô&Ð&Ð&øÝð ð ð Ø×"Ò"Ø# HÔ-Øð 	#ñ 	
ô 	
ð 	
ð ˆqˆqˆqˆqˆqøøøøðøøøð �Ôð  Ø#œ.¨)°KÔ*@ˆiˆˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð �Kˆ	ð
 
�:Ô	Ð	*õ Ø˜:Ô&Øðñ ô ð ð 15ð ð
 �	˜&¨8Ð4Ñ4Ô4€IØ€IØð ð ˆð
	Ø�t˜D‘z”zˆHð Õ+Ø"Ø!Ø#Ø#ð	ñ ô ñ ˆIˆIøõ ð 	ð 	ð 	ØˆIˆIˆIð	øøøð Ðs9   ¡= ½
AÁ
AÁ(A> Á>
B0ÂB+Â+B0Ä	D+Ä+D:Ä9D:))Ú__doc__Ú	importlibr   r.   r   Úpkgutilr   Útextwrapr   Úargparser-   rN   ÚwarningsÚattrsr   r	   Újsonschema.exceptionsr
   Újsonschema.validatorsr   r   ÚwarnÚDeprecationWarningÚ	Exceptionr   r   r"   r!   rh   ÚArgumentParserrx   Úadd_argumentrq   ry   r�   Úargvr…   r   r    r‰   r„   r   r   r   ú<module>r       s˜  ððð ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à €„ð	:ð Øðñ ô ð ð	ð 	ð 	ð 	ð 	�iñ 	ô 	ð 	ð ð&Ið &Ið &Ið &Ið &Iñ &Iô &Iñ „ð&IðR ð&<ð &<ð &<ð &<ð &<ñ &<ô &<ñ „ð&<ðR ðð ð ð ð ñ ô ñ „ðð(ð ð ð 
!ˆÔ	 Ø,ð
ñ 
ô 
€ð × Ò Øˆ,ØØ	ð
ð	 ñ 	ô 	ð 	ð × Ò ØÐ
ð
ð ñ 
ô 
ð 
ð × Ò Øˆ*Ø�hÐØð
ð	 ñ 	ô 	ð 	ð × Ò Øˆ-Ø	#ð
ð ñ ô ð ð × Ò Øð
ð ñ ô ð ð × Ò ØØØˆHÔ˜\Ñ*Ô*ð ñ ô ð ð
 × Ò ØØ	Hð ñ ô ð ðð ð ðð ð ð Œh�q�r�rŒlð 3ð 3ð 3ð 3ð œ*¨S¬Z¸s¼yð :ð :ð :ð :ð :ð :r   