
    Mha                     .    d dl mZ  G d de          ZdS )   )CodeGeneratorDraft06c                   h     e Zd Z eej        fi ddddddddZd	i d
d
d
f fd	Zd Zd Zd Z	 xZ
S )CodeGeneratorDraft07zL^(?P<year>\d{4})-(?P<month>(0[1-9]|1[0-2]))-(?P<day>(0[1-9]|[12]\d|3[01]))\Zz^\w+:(\/?\/?)[^\s]+\Zz'^(\w+:(\/?\/?))?[^#\\\s]*(#[^\\\s]*)?\Zz^[^@]+@[^@]+\.[^@]+\Zz^(?!-)(xn--)?[a-zA-Z0-9][a-zA-Z0-9-_]{0,61}[a-zA-Z0-9]{0,1}\.(?!-)(xn--)?([a-zA-Z0-9\-]{1,50}|[a-zA-Z0-9-]{1,30}\.[a-zA-Z]{2,})$z1^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)\Zzu^(?P<hour>\d{1,2}):(?P<minute>\d{1,2})(?::(?P<second>\d{1,2})(?:\.(?P<microsecond>\d{1,6}))?([zZ]|[+-]\d\d:\d\d)?)?\Z)dateiriziri-referencez	idn-emailzidn-hostnamezrelative-json-pointertimeNTc                     t                                          ||||||           | j                            d| j        fd| j        fd| j        ff           d S )NifcontentEncodingcontentMediaType)super__init___json_keywords_to_functionupdategenerate_if_then_elsegenerate_content_encodinggenerate_content_media_type)self
definitionresolverformatsuse_defaultuse_formatsdetailed_exceptions	__class__s          V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/fastjsonschema/draft07.pyr   zCodeGeneratorDraft07.__init__   sq    Xw[Refff'..4-. >?!AB0
 	 	 	 	 	    c                    |                      dd          5  |                     | j        d         | j        | j        d           ddd           n# 1 swxY w Y   |                      d          5  d	| j        v r/|                     | j        d	         | j        | j        d           n|                      d
           ddd           n# 1 swxY w Y   d| j        v r^|                      d          5  |                     | j        d         | j        | j        d           ddd           dS # 1 swxY w Y   dS dS )a  
        Implementation of if-then-else.

        .. code-block:: python

            {
                'if': {
                    'exclusiveMaximum': 0,
                },
                'then': {
                    'minimum': -10,
                },
                'else': {
                    'multipleOf': 2,
                },
            }

        Valid values are any between -10 and 0 or any multiplication of two.
        try:F)optimizer
   T)clear_variablesNz except JsonSchemaValueException:elsepassthenzelse:)lgenerate_func_code_block_definition	_variable_variable_namer   s    r   r   z*CodeGeneratorDraft07.generate_if_then_else   s+   ( VVFUV++ 	 	)) &# $	 *   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 VV677 		 		)))--$V,N'$(	 .     v		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 T%%%  --$V,N'$(	 .                     &%s6   /AAA3ACCC6/D22D69D6c                 @   | j         d         dk    r|                     d          5  |                     d          5  |                     d           |                     d           ddd           n# 1 swxY w Y   |                     d          5  |                     d	           ddd           n# 1 swxY w Y   |                     d
          5  |                     d           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS dS )z
        Means decoding value when it's encoded by base64.

        .. code-block:: python

            {
                'contentEncoding': 'base64',
            }
        r   base64if isinstance({variable}, str):r   zimport base64z){variable} = base64.b64decode({variable})Nexcept Exception:z {name} must be encoded by base64zif {variable} == "":zcontentEncoding must be base64r'   r%   excr*   s    r   r   z.CodeGeneratorDraft07.generate_content_encodingK   s;    -.(::9:: ? ?VVF^^ H HFF?+++FFFGGGH H H H H H H H H H H H H H H VV/00 A AHH?@@@A A A A A A A A A A A A A A AVV233 ? ?HH=>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ;:s|   D+A5)D5A9	9D<A9	=DB7+D7B;	;D>B;	?DC9-D9C=	=D C=	DDDc                    | j         d         dk    rz|                     d          5  |                     d          5  |                     d           ddd           n# 1 swxY w Y   |                     d          5  |                     d           ddd           n# 1 swxY w Y   ddd           n# 1 swxY w Y   |                     d	          5  |                     d          5  |                     d
           |                     d           ddd           n# 1 swxY w Y   |                     d          5  |                     d           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS dS )z
        Means loading value when it's specified as JSON.

        .. code-block:: python

            {
                'contentMediaType': 'application/json',
            }
        r   zapplication/jsonz!if isinstance({variable}, bytes):r   z'{variable} = {variable}.decode("utf-8")Nr.   z{name} must encoded by utf8r-   zimport jsonz#{variable} = json.loads({variable})z{name} must be valid JSONr/   r*   s    r   r   z0CodeGeneratorDraft07.generate_content_media_type_   s    ./3EEE;<< < <VVF^^ F FFFDEEEF F F F F F F F F F F F F F FVV/00 < <HH:;;;< < < < < < < < < < < < < < << < < < < < < < < < < < < < <
 9:: : :VVF^^ B BFF=)))FF@AAAB B B B B B B B B B B B B B B VV/00 : :HH8999: : : : : : : : : : : : : : :	: : : : : : : : : : : : : : : : : : FEs   B9A B9 A$	$B9'A$	(B9 B"B9"B&	&B9)B&	*B99B= B=F /+D&F &D*	*F -D*	.F E(F (E,	,F /E,	0F  FF)__name__
__module____qualname__dictr   FORMAT_REGEXSr   r   r   r   __classcell__)r   s   @r   r   r      s        D-;  _'C- \!U)@ @  M -1"$\`vz      , , ,\? ? ?(: : : : : : :r   r   N)draft06r   r    r   r   <module>r:      sV    ) ) ) ) ) )p: p: p: p: p:/ p: p: p: p: p:r   