Ë
    ùmxiý   ã                   ó  — 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j?                  ddddd¬«       ej?                  ddd ¬!«       ej?                  d"d#d$d%gd$d&¬'«       ej?                  d(d)ed*¬+«       ej?                  d,d-¬!«       ej?                  d.d/ ej@                  d0«      ¬1«       ej?                  d2d3¬!«       d4„ Z!d5„ Z"e
jF                  d6d fd7„Z$e
jJ                  e
jL                  e
jN                  fd8„Z(y)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y)Ú_CannotLoadFileN)Ú__name__Ú
__module__Ú__qualname__© ó    úE/home/htdocs/ttos/venv/lib/python3.12/site-packages/jsonschema/cli.pyr   r      s   „ Ør   r   c                   ód   — e Zd Z e«       Z e«       Z e«       Zed„ «       Zd„ Z	d„ Z
d„ Zd„ Zd„ Zy)Ú
_Outputterc                 ój   — |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*   sB   € à�XÑ 'Ò)Ü'¨	°.Ñ(AÓB‰IØ�xÑ  HÒ,Ü(Ó*ˆIÙ˜Y¨v¸fÔEÐEr   c                 óz  — 	 t        |«      }|5  	 t        j                  |«      cd d d «       S # t        $ r5}| j                  |t        j                  «       ¬«       t        «       |‚d }~ww xY w# t        $ r5}| j                  |t        j                  «       ¬«       t        «       |‚d }~ww xY w# 1 sw Y   y xY w)N©ÚpathÚexc_info)
ÚopenÚFileNotFoundErrorÚfilenotfound_errorÚsysr)   r   ÚjsonÚloadr   Úparsing_error)Úselfr(   ÚfileÚerrors       r   r/   z_Outputter.load2   sª   € ð	/Ü˜“:ˆDð
 ñ 	3ð3Ü—y‘y “÷	3ñ 	3øô	 !ò 	/Ø×#Ñ#¨¼¿¹»Ð#ÔGÜ!Ó#¨Ð.ûð	/ûô #ò 3Ø×"Ñ"¨´s·|±|³~Ð"ÔFÜ%Ó'¨UÐ2ûð3ú÷	3ð 	3ús<   ‚/ �B1‘A0¯	A-¸0A(Á(A-Á0	B.Á90B)Â)B.Â.B1Â1B:c                 ón   — | j                   j                   | j                  j                  di |¤Ž«       y ©Nr   )Ú_stderrÚwriteÚ
_formatterr,   ©r1   Úkwargss     r   r,   z_Outputter.filenotfound_error@   ó)   € Ø�‰×ÑÐ=˜4Ÿ?™?×=Ñ=ÑGÀÑGÕHr   c                 ón   — | j                   j                   | j                  j                  di |¤Ž«       y r5   )r6   r7   r8   r0   r9   s     r   r0   z_Outputter.parsing_errorC   s)   € Ø�‰×ÑÐ8˜4Ÿ?™?×8Ñ8ÑB¸6ÑBÕCr   c                 ón   — | j                   j                   | j                  j                  di |¤Ž«       y r5   )r6   r7   r8   Úvalidation_errorr9   s     r   r>   z_Outputter.validation_errorF   s)   € Ø�‰×ÑÐ;˜4Ÿ?™?×;Ñ;ÑE¸fÑEÕFr   c                 ón   — | j                   j                   | j                  j                  di |¤Ž«       y 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   #   sJ   „ ñ “€JÙ‹g€GÙ‹g€GàñFó ðFò3òIòDòGóIr   r   c                   ó8   — e Zd Z ed«      ZdZd„ Zd„ Zd„ Zd„ Z	y)r"   z`        ===[{type}]===({path})===

        {body}
        -----------------------------
        z===[SUCCESS]===({path})===
c                 óD   — | j                   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   s/   € Ø�‰×%Ñ%ØØ$Ø�8Ð+Ð,ð &ó 
ð 	
r   c                 óª   — |\  }}}dj                  t        j                  |||«      «      }| 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ó
ˆ	ð �‰×%Ñ%ØØ×"Ñ"Øð &ó 
ð 	
r   c                 óf   — | j                   j                  ||j                  j                  |¬«      S )NrE   )rH   rI   Ú	__class__r   ©r1   Úinstance_pathr3   s      r   r>   z!_PrettyFormatter.validation_errorl   s1   € Ø�‰×%Ñ%ØØ—‘×)Ñ)Øð &ó 
ð 	
r   c                 ó:   — | j                   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   s.   „ ñ ð	ó€Jð 2€Lò
ò	
ò
ó<r   r"   c                   ó2   — e Zd Z e«       Zd„ Zd„ Zd„ Zd„ Zy)r!   c                 ó   — |›d�S )Nz does not exist.
r   rJ   s      r   r,   z"_PlainFormatter.filenotfound_error|   s   € Ø�Ð+Ð,Ð,r   c                 óL   — dj                  |dk(  rdn
t        |«      |d   «      S )NzFailed to parse {}: {}
ú<stdin>é   )rI   ÚreprrJ   s      r   r0   z_PlainFormatter.parsing_error   s,   € Ø)×0Ñ0Ø Ò*‰I´°T³
Ø�Q‰Kó
ð 	
r   c                 ó<   — | j                   j                  ||¬«      S )N)Ú	file_namer3   )Ú_error_formatrI   rV   s      r   r>   z _PlainFormatter.validation_error…   s   € Ø×!Ñ!×(Ñ(°=ÈÐ(ÓNÐNr   c                  ó   — y)NrL   r   rZ   s     r   rA   z"_PlainFormatter.validation_successˆ   s   € Ør   N)	r   r   r   r	   rc   r,   r0   r>   rA   r   r   r   r!   r!   w   s    „ ñ “G€Mò-ò
òOór   r!   c                 ó*   — 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        j                  | xs dg¬«      «      }|d   dk7  r|d   rt        j                  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   Ð   sr   € Ü”V×&Ñ&¨DÒ,>°X°JÐ&Ó?Ó@€IØ�Ñ˜gÒ%¨)°NÒ*CÜ�l‰lØAó
ð 	
ð �Ñ˜gÒ%¨)°NÑ*CÐ*KØ$Iˆ	�.Ñ!ØÐr   c                 óˆ   — d}|j                  |«      D ]  }d}|j                  | |¬«       Œ |s|j                  | ¬«       |S )NFT©rW   r3   )rW   )Úiter_errorsr>   rA   )rW   ÚinstanceÚ	validatorÚ	outputterÚinvalidr3   s         r   Ú_validate_instancer�   Û   sV   € Ø€GØ×&Ñ& xÓ0ò MˆØˆØ×"Ñ"°ÀeÐ"ÕLðMñ Ø×$Ñ$°=Ð$ÔAØ€Nr   r_   c                 óV   — t        j                  t        t        | ¬«      ¬«      «       y )Nru   )r$   )r-   ÚexitÚrunry   ru   s    r   Úmainr…   æ   s   € Ü‡H�HŒSœ:¨4Ô0Ô1Õ2r   c                 ó  ‡‡— t         j                  | ||¬«      Š	 ‰j                  | d   «      }| d   }|€t	        |«      }	 |j                  |«       | d   r‰j                  | d   }}n	ˆˆfd„}dg}| d	   �t        | d	   |¬
«      nd }	 |||	¬«      }
d}|D ]  }	  ||«      }|t        |||
‰¬«      z  }Œ |S # t        $ r Y yw xY w# t        $ r }‰j                  | d   |¬«       Y d }~yd }~ww xY w# t        $ r d}Y Œjw xY w)N)r$   r   r    rs   r_   r~   r{   rk   c                 ó²   •— 	 t        j                  ‰«      S # t        $ r5}‰j                  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  sR   ø€ ð3Ü—y‘y Ó'Ð'øÜ"ò 3Ø×'Ñ'Ø"¬S¯\©\«^ð (ô ô &Ó'¨UÐ2ûð	3ús   ƒ ˜	A¡0AÁ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„   ê   st  ù€ Ü×)Ñ)ØØØð *ó €IðØ—‘ 	¨(Ñ 3Ó4ˆð ˜+Ñ&€IØÐÜ! &Ó)ˆ	ðØ×Ñ˜vÔ&ð �ÒØ#Ÿ.™.¨)°KÑ*@ˆi‰õ	3ð �Kˆ	ð
 
�:Ñ	Ð	*ô Ø˜:Ñ&Øõð 15ð ñ
 ˜&¨8Ô4€IØ€IØò ˆð
	Ù˜D“zˆHð Ô+Ø"Ø!Ø#Ø#ô	ñ ‰Iðð Ðøôc ò Ùðûô ò Ø×"Ñ"Ø# HÑ-Øð 	#ô 	
ô ûðûô< ò 	ØŠIð	ús;   œB; ÁC
 ÂC6Â;	CÃCÃ
	C3ÃC.Ã.C3Ã6DÄ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ðR ÷&<ð &<ó ð&<ðR ÷ð ó ðò(ð 
!ˆ×	 Ñ	 Ø,ô
€ð × Ñ Øˆ,ØØ	ð
ð	 ô 	ð × Ñ ØÐ
ð
ð ô 
ð × Ñ Øˆ*Ø�hÐØð
ð	 ô 	ð × Ñ Øˆ-Ø	#ð
ð ô ð × Ñ Øð
ð ô ð × Ñ ØØØˆH×Ñ˜\Ó*ð ô ð
 × Ñ ØØ	Hð ô òòð �h‰h�q�rˆló 3ð Ÿ*™*¨S¯Z©Z¸s¿y¹yô :r   