VULN_CHECK_I913V6 % g9 4UddlmZddlmZddlmZddlZddlZddlZddl Z ddl Z ddl m Z e jegefZe j"deZe j&e j(ee j,e j(edffZej0d ej2ZGd d ZeZeZeZeZeZ eZ!e"eeeee e! Z#d e$d< dK dLdZ%e%de%ddMdZ&e%ddddddejNdMdZ(e%dejNdMdZ)ee*5ddl+m,Z,e%dddddd dMdZ-dddee*5ddl.Z.e%ddde.j^e0f dMd!Z1ddd ddl2Z2e%d"d"d"e3 dMd#Z4e%d$d$d$e3 dMd%Z5e%d&e3dMd'Z6e%d(d(d(d(e3)dMd*Z7ee*5dd.l:m;Z;e%d/dMd0Z<e%d1d1d12dMd3Z=ddde%d4ej|dMd5Z?e%d6d6d6d6e37dMd8Z@e%d1e39dMd:ZAee*5dd;lBmCZCddlBZBdMd<ZDe%d=e3eEf9dMd>ZFdddee*5ddlGZGe%d?d?d?d?eGj)dMd@ZIe%dAdAdAeGj dMdBZJdddee*5ddlKZKe%dCdCdCdCDdMdEZLdddee*5ddlMZMe%dFdFeMjGdMdHZOddde%dIdIe3GdMdJZPy#1swYxYw#1swYxYw#e*$rLee*5dd+l8m9Z9e%d&dMd,Z6e%d(d(d(d(e3)dMd-Z7dddn #1swYnxYwYwxYw#1swYxYw#1swYAxYw#1swYxYw#1swYxYw#1swYxYw)N) annotations)suppress)UUIDN) FormatError_F)bound.z^\d{4}-\d{2}-\d{2}$ceZdZUdZiZded<d d dZdZ d ddZe d ddZ e d dd Z dd Z dd Z y) FormatCheckeray A ``format`` property checker. JSON Schema does not mandate that the ``format`` property actually do any validation. If validation is desired however, instances of this class can be hooked into validators to enable format validation. `FormatChecker` objects always return ``True`` when asked about formats that they do not know how to validate. To add a check for a custom format use the `FormatChecker.checks` decorator. Arguments: formats: The known formats to validate. This argument can be used to limit which formats will be used during validation. z3dict[str, tuple[_FormatCheckCallable, _RaisesType]]checkersNc||jj}|Dcic]}||j|c}|_ycc}wN)r keys)selfformatsks 7/usr/lib/python3.12/site-packages/jsonschema/_format.py__init__zFormatChecker.__init__2s@ ?mm((*G6=>gDMM!,,g> >sAc4dt|jdS)Nz)sortedr )rs r__repr__zFormatChecker.__repr__7s)&*?)@BBcdfd }|S)a Register a decorated function as validating a new format. Arguments: format: The format that the decorated function will check. raises: The exception(s) raised by the decorated function when an invalid instance is found. The exception object will be accessible as the `jsonschema.exceptions.ValidationError.cause` attribute of the resulting validation error. c*|fj<|Sr r )funcformatraisesrs r_checksz%FormatChecker.checks.._checksPs%)6NDMM& !Krrrreturnr)rrrrs``` rcheckszFormatChecker.checks:s, rc`tjdtd|j||S)NzoFormatChecker.cls_checks is deprecated. Call FormatChecker.checks on a specific FormatChecker instance instead.) stacklevel)rr)warningswarnDeprecationWarning _cls_checks)clsrrs r cls_checkszFormatChecker.cls_checksVs2    fV<._checksis$(&>CLL Krr r")r+rrrs``` rr*zFormatChecker._cls_checkses rc||jvry|j|\}}d\}} ||}|st|d||y#|$r }|}Yd}~!d}~wwxYw)a Check whether the instance conforms to the given format. Arguments: instance (*any primitive type*, i.e. str, number, bool): The instance to check format: The format that instance should conform to Raises: FormatError: if the instance does not conform to ``format`` N)NNz is not a )cause)r r)rinstancerrrresultr0es rcheckzFormatChecker.checkosu(  & }}V, f"  (^F JvjAO O E sAA AAcH |j||y#t$rYywxYw)aV Check whether the instance conforms to the given format. Arguments: instance (*any primitive type*, i.e. str, number, bool): The instance to check format: The format that instance should conform to Returns: bool: whether it conformed TF)r4r)rr1rs rconformszFormatChecker.conformss.$  JJx (  s  !!r )rztyping.Iterable[str] | None)r")rstrr _RaisesTyper!typing.Callable[[_F], _F])r1objectrr7r!None)r1r:rr7r!bool)__name__ __module__ __qualname____doc__r __annotations__rrr# classmethodr,r*r4r6r"rrr r s0   ? C24#. "802 = ="- = " = =02"- "P@rr )draft3draft4draft6draft7 draft201909 draft202012zdict[str, FormatChecker]_draft_checkersctxs|xs|xs|xs|xs|xs|dfd }|S)Ncrtdj|}rtdj|}rtdj|}rtdj|}rtdj|}rtdj|}tjxsxsxs xsxs||S)NrCrDrErFrGrH)rIr#r r*)rrGrHrCrDrErFrs rwrapz_checks_drafts..wraps "8,33FFCDID "8,33FFCDID "8,33FFCDID "8,33FFCDID "=188fMD "=188fMD !!  N; N& NF Nf N     rr r") namerCrDrErFrGrHrrLs ``````` r_checks_draftsrNsN^tF ^tF ^tF ^tF%K%K4 Krz idn-email)rMemailc,t|tsyd|vS)NT@) isinstancer7r1s ris_emailrTs h $ (?rz ip-addressipv4)rCrDrErFrGrHrc`t|tsyttj|SNT)rRr7r< ipaddress IPv4AddressrSs ris_ipv4rZs' h $  %%h/ 00ripv6)rMrcjt|tsytj|}t |dd S)NTscope_id)rRr7rX IPv6Addressgetattr)r1addresss ris_ipv6rbs1 h $##H-Gw B/ //r)FQDNz host-namehostnamecRt|tsyt|djS)NT) min_labels)rRr7rcis_validrSs r is_host_nameri s$(C(H+444rz idn-hostname)rFrGrHrcPt|tsytj|yrW)rRr7idnaencoderSs ris_idn_host_namerms (C( HriricRt|tsytj|dS)NTIRIrulerRr7rfc3987parserSs ris_irirvCs"(C(}}XE22rz iri-referencecRt|tsytj|dS)NT IRI_referencerqrsrSs ris_iri_referenceryNs"(C(}}XO<t|tsyt|dSr|rRr7rrSs rr~r~/sh,#H59 9rc>t|tsyt|dSrrrSs rrr5sh,#H?C Cr)validate_rfc3339z date-timecVt|tsyt|jSrW)rRr7rupperrSs r is_datetimeros!(C( 011rtime)rFrGrHc@t|tsytd|zS)NTz 1970-01-01T)rRr7rrSs ris_timerus! (C(=8344rregexc`t|tsyttj|SrW)rRr7r<recompilerSs ris_regexrs# h $  8$ %%rdate)rCrFrGrHrct|tsyttj |xrt j j|SrW)rRr7r<_RE_DATE fullmatchdatetimer fromisoformatrSs ris_datersC h $ 8$ 2 MM ' ' 1 r)rCrcvt|tsyttjj |dS)NTz%H:%M:%S)rRr7r<rstrptimerSs ris_draft3_timers- h $ !!**8Z@ AAr)CSS21_NAMES_TO_HEXc,tj|Sr ) webcolors normalize_hexrSs ris_css_color_coders&&x00rcolorcft|tr|jtvryt |SrW)rRr7lowerrrrSs ris_css21_colorrs,8S)~~#55 **rz json-pointerc`t|tsyttj|SrW)rRr7r< jsonpointer JsonPointerrSs ris_json_pointerrs'(C(K++H566rzrelative-json-pointerc0t|tsy|sygd}}t|D]L\}}|jr-|dkDrt ||dz dk(ry|j |C|sy||d}n|dk(xst tj|S)NTFr^rrf#) rRr7 enumerateisdigitintappendr<rr)r1non_negative_integerresti characters ris_relative_json_pointerrs(C(%'d%h/LAy  "q5S!a%1Q6 $++I6'ABzis_uuid.. sIXx!S(s) )rRr7rallrSs`ris_uuidrs* h $N II IIr)NNNNNNNr")r!r9)r1r:r!r<)Q __future__r contextlibrrrrrXrtypingr'jsonschema.exceptionsrCallabler:r<_FormatCheckCallableTypeVarrUnionType ExceptionTupler8rASCIIrr draft3_format_checkerdraft4_format_checkerdraft6_format_checkerdraft7_format_checkerdraft201909_format_checkerdraft202012_format_checkerdictrIrArNrTAddressValueErrorrZrb ImportErrorfqdnrcrirk IDNAError UnicodeErrorrmrt ValueErrorrvryr~rrfc3986_validatorrrfc3339_validatorrrrerrorrrrrrr TypeErrorrrJsonPointerExceptionrrrrrDurationParsingExceptionrrr"rrrsC" -x~6V^^D 45ll KK FLLY)?)DEF  2::,bhh 7OOd&%%%*_*_,0 ** -)      ++\[!W"       & &11 VI$?$?@0A0k 55"k"" -    "@=2  3  3 ##  =  = z2333 ## == k2%2&2  5  5(WRXX.&/&     vj1B2B k,17J +BC+D+"k""// 77&++//  D  D3fk""  /  /k33 3  3   J  J"&D + 6 U # : $ : ""''   D  D!   DBd"fsM. $M;8N)O"O):AO6 P2!P.M8;N O+O  O O OOO&)O36O?P P