HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.60.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 5 05:00:59 EST 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //var/opt/nydus/ops/jsonschema/__pycache__/_format.cpython-39.pyc
a

�,�h�<�@s
UddlmZddlmZddlmZmZddlmZddlZddl	Z	ddl
Z
ddlZddlm
Z
e
jegefZe
jded�Ze
jeeeeed	ffZe	�d
e	j�ZGdd�d�Ze�Ze�Ze�Ze�Z e�Z!e�Z"e#eeee e!e"d
�Z$de%d<dhdd�dd�Z&e&dd�e&dd�ddd�dd���Z'e&ddddddej(d�ddd�d d!��Z)e&d"ej(d#�ddd�d$d%��Z*ee+��Bdd&l,m-Z-e&d'd(d(d(d(d(e.d�ddd�d)d*��Z/Wd�n1�s�0Yee+��>ddl0Z0e&d+d+d+e0j1e2fd,�ddd�d-d.��Z3Wd�n1�s0Yzddl4Z4Wn�e+�y0ee+��Xdd/l5m6Z6e&d0d�ddd�d1d2��Z7e&d3d3d3d3e.d4�ddd�d5d6��Z8Wd�n1�s�0Yee+��\dd7l9m:Z;e&d8d8d8e.d,�ddd�d9d:��Z<e&d;d;d;e.d,�ddd�d<d=��Z=Wd�n1�s"0YYn�0e&d8d8d8e.d,�ddd�d>d:��Z<e&d;d;d;e.d,�ddd�d?d=��Z=e&d0e.d#�ddd�d@d2��Z7e&d3d3d3d3e.d4�ddd�dAd6��Z8ee+��TddBl>m?Z?e&dCd�ddd�dDdE��Z@e&dFdFdFdG�ddd�dHdI��ZAWd�n1�s0Ye&dJe	jBd#�ddd�dKdL��ZCe&dMdMdMdMe.dN�ddd�dOdP��ZDe&dFe.dQ�ddd�dRdS��ZEee+��8ddlFZFe&dTe.eGfdQ�ddd�dUdV��ZHWd�n1�s�0Yee+��^ddlIZIe&dWdWdWdWeIjJd4�ddd�dXdY��ZKe&dZdZdZeIjJd,�ddd�d[d\��ZLWd�n1�s:0Yee+��8ddlMZMe&d]d]d]d]d^�ddd�d_d`��ZNWd�n1�s�0Yee+��8ddlOZOe&dadaeOjPdb�ddd�dcdd��ZQWd�n1�s�0Ye&dedee.db�ddd�dfdg��ZRdS)i�)�annotations)�suppress)�date�datetime)�UUIDN)�FormatError�_F)�bound.z^\d{4}-\d{2}-\d{2}$c@s�eZdZUdZiZded<ddd�dd�Zd	d
�Zddd
dd�dd�Ze	d dd
dd�dd��Z
e	d!dd
dd�dd��Zdddd�dd�Zdddd�dd�Z
dS)"�
FormatCheckeraz
    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]]�checkersNztyping.Iterable[str] | None)�formatscs*|dur�j��}�fdd�|D��_dS)Ncsi|]}|�j|�qS��r)�.0�k��selfr
�C/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/jsonschema/_format.py�
<dictcomp>4�z*FormatChecker.__init__.<locals>.<dictcomp>)r�keys)rrr
rr�__init__1s
zFormatChecker.__init__cCsdt|j��d�S)Nz<FormatChecker checkers=�>)�sortedrrr
r
r�__repr__6szFormatChecker.__repr__r
�str�_RaisesType�typing.Callable[[_F], _F])�format�raises�returncsddd����fdd�}|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.

        r��funcr cs|�f�j�<|S�Nr�r"�rrrr
r�_checksPsz%FormatChecker.checks.<locals>._checksr
)rrrr&r
r%r�checks9szFormatChecker.checkscCstjdtdd�|j||d�S)NzoFormatChecker.cls_checks is deprecated. Call FormatChecker.checks on a specific FormatChecker instance instead.�)�
stacklevel)rr)�warnings�warn�DeprecationWarning�_cls_checks��clsrrr
r
r�
cls_checksVs�	zFormatChecker.cls_checkscsddd����fdd�}|S)Nrr!cs|�f�j�<|Sr#rr$r.r
rr&isz*FormatChecker._cls_checks.<locals>._checksr
)r/rrr&r
r.rr-eszFormatChecker._cls_checks�object�None)�instancerr c
Csx||jvrdS|j|\}}d\}}z||�}Wn(|yX}z|}WYd}~n
d}~00|stt|�d|��|d��dS)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)rr)rr3rr"r�resultr4�er
r
r�checkos
zFormatChecker.check�boolcCs.z|�||�Wnty$YdS0dSdS)aW
        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

        FTN)r7r)rr3rr
r
r�conforms�s
zFormatChecker.conforms)N)r
)r
)r
)�__name__�
__module__�__qualname__�__doc__r�__annotations__rrr'�classmethodr0r-r7r9r
r
r
rr
s
�
���	!r
)�draft3�draft4�draft6�draft7�draft201909�draft202012zdict[str, FormatChecker]�_draft_checkersr
r)r c	sT�p|��p|��p|��p|��p&|��p.|�ddd��������fdd�}|S)Nrr!cs��rtd����|�}�r0td����|�}�rHtd����|�}�r`td����|�}�rxtd����|�}�r�td����|�}t��p��p��p��p��p����|�|S)Nr@rArBrCrDrE)rFr'r
r-r$�rDrEr@rArBrCrr
r�wrap�s.����z_checks_drafts.<locals>.wrapr
)	�namer@rArBrCrDrErrHr
rGr�_checks_drafts�s
 rJz	idn-email)rI�emailr1r8)r3r cCst|t�sdSd|vS)NT�@)�
isinstancer�r3r
r
r�is_email�s
rOz
ip-addressZipv4)r@rArBrCrDrErcCst|t�sdStt�|��S�NT)rMrr8�	ipaddress�IPv4AddressrNr
r
r�is_ipv4�s

rSZipv6)rIrcCs&t|t�sdSt�|�}t|dd�S)NT�scope_id�)rMrrQ�IPv6Address�getattr)r3�addressr
r
r�is_ipv6s

rY)�FQDNz	host-name�hostnamecCst|t�sdSt|dd�jS)NT�)Z
min_labels)rMrrZZis_validrNr
r
r�is_host_names
r]zidn-hostname)rCrDrErcCst|t�sdSt�|�dSrP)rMr�idna�encoderNr
r
r�is_idn_host_name"s

r`)�validate_rfc3986�uricCst|t�sdSt|dd�S�NT�URI�Zrule�rMrrarNr
r
r�is_uri5s
rgz
uri-reference)rBrCrDrErcCst|t�sdSt|dd�S�NTZ
URI_referencererfrNr
r
r�is_uri_reference;s
ri)�is_valid_syntax�iricCst|t�sdStd|�S)NTrk�rMr�_rfc3987_is_valid_syntaxrNr
r
r�is_iriJs
rnz
iri-referencecCst|t�sdStd|�S)NTZ
iri_referencerlrNr
r
r�is_iri_referenceUs
rocCst|t�sdStj|dd�S)NTZIRIre�rMr�rfc3987�parserNr
r
rrnbs
cCst|t�sdStj|dd�S)NTZ
IRI_referencererprNr
r
rroms
cCst|t�sdStj|dd�SrcrprNr
r
rrgxs
cCst|t�sdStj|dd�SrhrprNr
r
rri~s
)�validate_rfc3339z	date-timecCst|t�sdSt|���SrP)rMrrs�upperrNr
r
r�is_datetime�s
ru�time)rCrDrEcCst|t�sdStd|�S)NTz1970-01-01T)rMrrurNr
r
r�is_time�s
rw�regexcCst|t�sdStt�|��SrP)rMrr8�re�compilerNr
r
r�is_regex�s
r{r)r@rCrDrErcCs&t|t�sdStt�|�o"t�|��SrP)rMrr8�_RE_DATE�	fullmatchr�
fromisoformatrNr
r
r�is_date�s
r)r@rcCst|t�sdStt�|d��S)NTz%H:%M:%S)rMrr8r�strptimerNr
r
r�is_draft3_time�s
r��colorcCs>t|t�r:zt�|�Wn ty8t�|���Yn0dSrP)rMr�	webcolorsZname_to_hex�
ValueErrorZ
normalize_hex�lowerrNr
r
r�is_css21_color�s
r�zjson-pointercCst|t�sdStt�|��SrP)rMrr8�jsonpointer�JsonPointerrNr
r
r�is_json_pointer�s
r�zrelative-json-pointercCs�t|t�sdS|sdSgd}}t|�D]X\}}|��rf|dkrZt||d�dkrZdS|�|�q(|spdS||d�}q�q(|dkp�tt�|��S)NTFrUrr\�#)	rMr�	enumerate�isdigit�int�appendr8r�r�)r3Znon_negative_integer�rest�i�	characterr
r
r�is_relative_json_pointer�s 	


r�zuri-template)rBrCrDrEcCst|t�sdSt�|�SrP)rMr�uri_template�validaterNr
r
r�is_uri_template�s
r��duration)rDrErcCs&t|t�sdSt�|�|�td��S)NTZDMYWHMS)rMr�isodurationZparse_duration�endswith�tuplerNr
r
r�is_durations

r��uuidcs,t�t�sdSt��t�fdd�dD��S)NTc3s|]}�|dkVqdS)�-Nr
)r�positionrNr
r�	<genexpr>"rzis_uuid.<locals>.<genexpr>)��
��)rMrr�allrNr
rNr�is_uuids
r�)NNNNNNNr
)S�
__future__r�
contextlibrrrr�rrQry�typingr*Zjsonschema.exceptionsr�Callabler1r8Z_FormatCheckCallable�TypeVarr�Union�type�	Exceptionr�rrz�ASCIIr|r
Zdraft3_format_checkerZdraft4_format_checkerZdraft6_format_checkerZdraft7_format_checkerZdraft201909_format_checkerZdraft202012_format_checker�dictrFr>rJrO�AddressValueErrorrSrY�ImportErrorZfqdnrZr�r]r^�	IDNAError�UnicodeErrorr`rqZrfc3986_validatorrargriZrfc3987_syntaxrjrmrnroZrfc3339_validatorrsrurw�errorr{rr�r��	TypeErrorr�r�ZJsonPointerExceptionr�r�r�r�r�ZDurationParsingExceptionr�r�r
r
r
r�<module>s���.�	
�2
�2
�2
��8��
�
�2�

2	
�	�2
�2
�2�