`d/ ^dZddlmZddlmZddlZddlZddlZddlZ ddlm Z  ddl m Z ddlZddlmZddlmZmZGd d eZej.Gd d eZej.Gd deZej.GddeZdZej:dZej?dddddej?dddej?ddd d!gd d"#ej?d$d%ed&'ej?d(d)ej?d*d+e j@d,-ej?d.d/d0Z!d1Z"ejFd2dfd3Z$ejJejLejNfd4Z(y#e $rddl Z YswxYw#e $r ddlm Z Y~wxYw)5z" The ``jsonschema`` command line. )JSONDecodeError)dedentN)metadata resolve_name) SchemaError) RefResolver validator_forc eZdZy)_CannotLoadFileN)__name__ __module__ __qualname__0/usr/lib/python3/dist-packages/jsonschema/cli.pyr r srr ceZdZejZejZejZedZ dZ dZ dZ dZ dZy) _Outputtercj|ddk(rt|d}n|ddk(r t}|||S)Noutputplain error_formatpretty) formatterstdoutstderr)_PlainFormatter_PrettyFormatter)cls argumentsrrrs rfrom_argumentsz_Outputter.from_arguments'sB X ' )' .(ABI x H ,(*IYvfEErcf t|}|5 t j|cdddS#t$r0|j|tjt wxYw#t$r0|j|tjt wxYw#1swYyxYw)Npathexc_info) openFileNotFoundErrorfilenotfound_errorsysr%r jsonloadr parsing_error)selfr$files rr+z_Outputter.load/s $:D  ( (yy ( ( ! $  # #  # G!# # $# (""s||~"F%'' ( ( (s% /B'A+9A(+9B$$B''B0c n|jj|jjdi|yNr)_stderrwrite _formatterr(r-kwargss rr(z_Outputter.filenotfound_error=) =4??==GGHrc n|jj|jjdi|yr0)r1r2r3r,r4s rr,z_Outputter.parsing_error@s) 84??88B6BCrc n|jj|jjdi|yr0)r1r2r3validation_errorr4s rr9z_Outputter.validation_errorCs) ;4??;;EfEFrc n|jj|jjdi|yr0)_stdoutr2r3validation_successr4s rr<z_Outputter.validation_successFr6rN)r rrattribr3r;r1 classmethodr!r+r(r,r9r<rrrrr s\JdggiGdggiGFF (IDGIrrc8eZdZedZdZdZdZdZdZ y)rz` ===[{type}]===({path})=== {body} ----------------------------- z===[SUCCESS]===({path})=== c\|jj|ddj|S)Nr'z{!r} does not exist.r$typebody) _ERROR_MSGformatr-r$r%s rr(z#_PrettyFormatter.filenotfound_errorWs2%%$'..t4&  rc|\}}}djtj|||}|jj ||j |S)NrB)join tracebackformat_exceptionrErFr )r-r$r%exc_type exc_value exc_traceback exc_liness rr,z_PrettyFormatter.parsing_error^s[-5*)]GG  & &xM J %%""&  rcf|jj||jj|S)NrB)rErF __class__r r- instance_patherrors rr9z!_PrettyFormatter.validation_erroris1%%))&  rc:|jj|S)N)r$) _SUCCESS_MSGrFr-rTs rr<z#_PrettyFormatter.validation_successps  '']';;rN) r rrrrErWr(r,r9r<rrrrrJs. J2L    )rFreprrGs rr,z_PlainFormatter.parsing_error|s,)00*IT QK  rc<|jj||S)N) file_namerU) _error_formatrFrSs rr9z _PlainFormatter.validation_errors!!((=(NNrcy)NrIrrXs rr<z"_PlainFormatter.validation_successsrN) r rrr=r>rar(r,r9r<rrrrrts&DGGIM5 Orrc*d|vrd|z}t|S)N.z jsonschema.r)names r_resolve_name_with_defaultrfs $t#  rzJSON Schema Validation CLI) descriptionz-iz --instanceappend 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. )actiondesthelpz-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. )rlz-oz--outputrrz 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. )choicesdefaultrlz-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. )rCrlz --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 --versionversion jsonschema)rjroschemaz=the path to a JSON Schema to validate with (i.e. schema.json)cttj|xsdg}|ddk7r|drtjd|ddk(r |dd|d<|S)Nz--helpargsrrrz3--error-format can only be used with --output plainz"{error.instance}: {error.message} )varsparser parse_argsrU)rtr s rrwrwsrV&&D,>XJ&?@Ig%)N*Cll A  g%)N*C*K$I .! rcd}|j|D]}d}|j|||s|j||S)NFTrTrU)rT) iter_errorsr9r<)rTinstance validator outputterinvalidrUs r_validate_instancersVG&&x0M""e"LM $$=$A Nrr]cVtjtt|y)Nrs)r )r)exitrunrwrss rmainrsHHS:40 12rc tj||| j|d}|dt ||d< |dj ||dr j|d}}n fd}dg}|d t|d | nd}|d|| } d } |D]} || } | t| | | z} | S#t$rYywxYw#t $r } j|d|Yd}~yd}~wwxYw#t$rd} YjwxYw)N)r rrrqr]r|ryric tjS#t$r0jdt j t wxYw)Nr\r#)r*r+rr,r)r%r )_r}stdins rr+zrun..loadsO (yy''" (''"S\\^(&''  (s 9Ar\base_uri)rreferrer)resolverr)rTr{r|r}) rr!r+r r check_schemarr9r r)r rrrrqrUr+rirr| exit_codeeachr{r}s ` @rrrs))*I  ( 34%!.v!6 ++++F3#..)K*@i (K :  *:&15 ' +&vAII  DzH +"!##  I  a  ""#H- #  < I s;CC$C= C C C:C55C:= D  D ))__doc__r*rtextwraprargparser)rK importlibr ImportErrorimportlib_metadatapkgutilrpkgutil_resolve_namer=jsonschema.exceptionsrjsonschema.validatorsr r Exceptionr sobjectrrrrfArgumentParserrv add_argumentrorwrargvrrrrrrrrrs! *"2$ -< i &I&I&IR&