rc/ ~dZddlmZddlmZddlZddlZddlZddlZ ddlm Z n#e $rddl Z YnwxYw ddl m Z n#e $r ddlm Z YnwxYwddlZddlmZddlmZmZGd d eZejGd d eZejGd deZejGddeZdZejdZedddddedddeddd d!gd d"#ed$d%ed&'ed(d)ed*d+e j d,-ed.d/d0Z!d1Z"ej#d2dfd3Z$ej%ej&ej'fd4Z(dS)5z" The ``jsonschema`` command line. )JSONDecodeError)dedentN)metadata resolve_name) SchemaError) RefResolver validator_forceZdZdS)_CannotLoadFileN)__name__ __module__ __qualname__0/usr/lib/python3/dist-packages/jsonschema/cli.pyr r sDrr ceZdZejZejZejZedZ dZ dZ dZ dZ dZdS) _Outputterc|ddkrt|d}n|ddkrt}||||S)Noutputplain error_formatpretty) formatterstdoutstderr)_PlainFormatter_PrettyFormatter)cls argumentsrrrs rfrom_argumentsz_Outputter.from_arguments'sX X ' ) )' .(ABBII x H , ,(**IsYvfEEEErc t|}nD#t$r7||tjt wxYw|5 t j|cdddS#t$r7| |tjt wxYw#1swxYwYdS)Npathexc_info) openFileNotFoundErrorfilenotfound_errorsysr%r jsonloadr parsing_error)selfr$files rr+z_Outputter.load/s $::DD  $ $ $  # #  # G G G!## # $ ( ( (y ( ( ( ( ( ( ( (# ( ( (""s|~~"FFF%''' ( ( ( ( ( ( ( ( ( ( (s/AAB>A::AB;;B>>CCc Z|j|jjdi|dSNr)_stderrwrite _formatterr(r-kwargss rr(z_Outputter.filenotfound_error=4 =4?=GGGGHHHHHrc Z|j|jjdi|dSr0)r1r2r3r,r4s rr,z_Outputter.parsing_error@s4 84?8BB6BBCCCCCrc Z|j|jjdi|dSr0)r1r2r3validation_errorr4s rr9z_Outputter.validation_errorCs4 ;4?;EEfEEFFFFFrc Z|j|jjdi|dSr0)_stdoutr2r3validation_successr4s rr<z_Outputter.validation_successFr6rN)r rrattribr3r;r1 classmethodr!r+r(r,r9r<rrrrr sJdgiiGdgiiGFF[F ( ( (IIIDDDGGGIIIIIrrc@eZdZedZdZdZdZdZdZ dS)rz` ===[{type}]===({path})=== {body} ----------------------------- z===[SUCCESS]===({path})=== cb|j|dd|S)Nr'z{!r} does not exist.r$typebody) _ERROR_MSGformatr-r$r%s rr(z#_PrettyFormatter.filenotfound_errorWs8%%$'..t44&   rc|\}}}dtj|||}|j||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 J  %%"&   rcP|j||jj|S)NrB)rErF __class__r r- instance_patherrors rr9z!_PrettyFormatter.validation_erroris/%%)&   rc8|j|S)N)r$) _SUCCESS_MSGrFr-rTs rr<z#_PrettyFormatter.validation_successps '']';;;rN) r rrrrErWr(r,r9r<rrrrrJso J2L          <<<<)rFreprrGs rr,z_PlainFormatter.parsing_error|s8)00**IIT QK   rc:|j||S)N) file_namerU) _error_formatrFrSs rr9z _PlainFormatter.validation_errors!((=(NNNrcdS)NrIrrXs rr<z"_PlainFormatter.validation_successsrrN) r rrr=r>rar(r,r9r<rrrrrtsbDGIIM555   OOOrrc2d|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)ctt|pdg}|ddkr"|drtd|ddkr |dd|d<|S)Nz--helpargsrrrz3--error-format can only be used with --output plainz"{error.instance}: {error.message} )varsparser parse_argsrU)rtr s rrwrwsV&&D,>XJ&??@@Ig%%)N*C%ll A   g%%)N*C*K$I .! rcd}||D]}d}||||s|||S)NFTrTrU)rT) iter_errorsr9r<)rTinstance validator outputterinvalidrUs r_validate_instancerslG&&x00MM""e"LLLL B$$=$AAA Nrr]cftjtt|dS)Nrs)r )r)exitrunrwrss rmainrs.HS:4000 1 1 122222rc t||| |d}n#t$rYdSwxYw|dt ||d< |d|n5#t $r(} |d|Yd}~dSd}~wwxYw|dr j|d}}n fd}dg}|d t|d | nd}|d|| } d } |D]6} || } | t| | | z} %#t$rd} Y3wxYw| S)N)r rrrqr]r|ryric tjS#t$r7dt jt wxYw)Nr\r#)r*r+rr,r)r%r )_r}stdins rr+zrun..loadsi (y'''" ( ( (''"S\^^(&'''  (s AAr\base_uri)rreferrer)resolverr)rTr{r|r}) rr!r+r r check_schemarr9r r)r rrrrqrUr+rirr| exit_codeeachr{r}s ` @rrrs))*I  ( 344 qq%!.v!6!6 ++++F3333 ""#H- #   qqqqq   #.)K*@i ( ( ( ( ( (K :  *:&15 ' +&vAAAII   tDzzH +"!##  II   III  s9= A  A )B B7B22B7 D88 EE))__doc__r*rtextwraprargparser)rK importlibr ImportErrorimportlib_metadatapkgutilrpkgutil_resolve_namer=jsonschema.exceptionsrjsonschema.validatorsr r Exceptionr sobjectrrrrfArgumentParserrv add_argumentrorwrargvrrrrrrrrrs!  *"""""""***))))))*2$$$$$$$222111111112 ------<<<<<<<<     i   &I&I&I&I&I&I&I&IR&<&<&<&<& A  A