Prv8 Shell
Server : Apache
System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : matalashes ( 1004)
PHP Version : 8.1.29
Disable Function : NONE
Directory :  /usr/local/lib/python3.6/site-packages/jsonschema/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/lib/python3.6/site-packages/jsonschema/tests/__pycache__/test_cli.cpython-36.pyc
3

F�Kd�o�@s2ddlmZmZddlmZddlmZddlmZddl	m
Z
ddlmZddlZddl
Z
ddlZddlZddlZyddlmZWnek
r�ddlZYnXdd	lmZdd
lmZmZmZddlmZmZmZddlm Z m!Z!d
d�Z"dd�Z#dd�Z$Gdd�de�Z%Gdd�de�Z&Gdd�de�Z'dS)�)�redirect_stderr�redirect_stdout)�StringIO)�JSONDecodeError)�Path)�dedent)�TestCaseN)�metadata)�m)�Draft4Validator�Draft202012Validator�cli)�RefResolutionError�SchemaError�ValidationError)�_LATEST_VERSION�validatecs$tt����G�fdd�dt�}|S)Ncs,eZdZdd�Z�fdd�Zedd��ZdS)z%fake_validator.<locals>.FakeValidatorc_sdS)N�)�self�args�kwargsrr�?/tmp/pip-build-8nxjc3nm/jsonschema/jsonschema/tests/test_cli.py�__init__!sz.fake_validator.<locals>.FakeValidator.__init__cs�r�j�SgS)N)�pop)r�instance)�errorsrr�iter_errors$sz1fake_validator.<locals>.FakeValidator.iter_errorscSsdS)Nr)r�schemarrr�check_schema)sz2fake_validator.<locals>.FakeValidator.check_schemaN)�__name__�
__module__�__qualname__rr�classmethodrr)rrr�
FakeValidator sr#)�list�reversed�object)rr#r)rr�fake_validators
r'cs�fdd�}|S)Ncs"�j|�}|dkrt|��t|�S)N)�get�FileNotFoundErrorr)�path�contents)�all_contentsrr�open1s
zfake_open.<locals>.openr)r,r-r)r,r�	fake_open0sr.cCs@ytj|�Wn$tk
r2}zt|�Sd}~Xn
Xtd��dS)Nz.Tried and failed to capture a JSON dump error.)�json�loadsr�str�RuntimeError)Znon_json�errorrrr�_message_for9s
r4c@s�eZdZe�e�dfdd�Zd^dd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Z d;d<�Z!d=d>�Z"d?d@�Z#dAdB�Z$dCdD�Z%dEdF�Z&dGdH�Z'dIdJ�Z(dKdL�Z)dMdN�Z*dOdP�Z+dQdR�Z,dSdT�Z-dUdV�Z.dWdX�Z/dYdZ�Z0d[d\�Z1d]S)_�TestCLIrc
Ks�tj|�}|j|�|jttd��t|�t_z$t�t�}}tj||||d�}	Wdt`X|j	|	|t
dj||	|j�|j���d�|j�|j�fS)Nr-)�stdin�stdout�stderrz�
                    Expected an exit code of {} != {}.

                    stdout: {}

                    stderr: {}
                )�msg)
r
�
parse_args�update�assertFalse�hasattrr.r-r�run�assertEqualr�format�getvalue)
r�argv�filesr6�	exit_code�override�	argumentsr7r8Zactual_exit_coderrr�run_cliCs(


zTestCLI.run_cli�cKs$|j|jf|�t|�t|�f�dS)N)r?rGr)rr7r8rrrr�
assertOutputshs
zTestCLI.assertOutputscCs@tddd�}|jtdtj|j�d�t|g�dddgd	d
d�dS)NzI am an error!�)rz*{"does not": "matter since it is stubbed"})�some_schema�
some_instancez-irLrK�z12: I am an error!
)rC�	validatorrBrDr8)rrI�dictr/�dumpsrr')rr3rrr�test_invalid_instancenszTestCLI.test_invalid_instancecCsDtddd�}|jtdtj|j�d�t|g�dddd	d
gddd
�dS)NzI am an error!rJ)rz*{"does not": "matter since it is stubbed"})rKrLz-irLz--output�prettyrKrMz�                ===[ValidationError]===(some_instance)===

                I am an error!
                -----------------------------
            )rCrNrBrDr8)rrIrOr/rPrr')rr3rrr�#test_invalid_instance_pretty_output}sz+TestCLI.test_invalid_instance_pretty_outputcCsDtddd�}|jtdtj|j�d�t|g�dddd	d
gddd
�dS)NzI am an error!rJ)rz*{"does not": "matter since it is stubbed"})rKrLz--output�plainz-irLrKrMz12: I am an error!
)rCrNrBrDr8)rrIrOr/rPrr')rr3rrr�+test_invalid_instance_explicit_plain_output�sz3TestCLI.test_invalid_instance_explicit_plain_outputcCsPd}td|d�}td|d�}|jtdtj|�d�t||g�ddd	gd
dd�dS)
NrJzFirst error)rzSecond errorz*{"does not": "matter since it is stubbed"})rKrLz-irLrKrMzM                12: First error
                12: Second error
            )rCrNrBrDr8)rrIrOr/rPr')rr�first�secondrrr�%test_invalid_instance_multiple_errors�s
z-TestCLI.test_invalid_instance_multiple_errorscCsTd}td|d�}td|d�}|jtdtj|�d�t||g�ddd	d
dgdd
d�dS)NrJzFirst error)rzSecond errorz*{"does not": "matter since it is stubbed"})rKrLz-irLz--outputrRrKrMa                ===[ValidationError]===(some_instance)===

                First error
                -----------------------------
                ===[ValidationError]===(some_instance)===

                Second error
                -----------------------------
            )rCrNrBrDr8)rrIrOr/rPr')rrrVrWrrr�3test_invalid_instance_multiple_errors_pretty_output�s

z;TestCLI.test_invalid_instance_multiple_errors_pretty_outputcCsld}td|d�td|d�g}d}td|d�g}|jtdtj|�tj|�d�t||�d	d
d	ddgd
dd�dS)NrJzAn error)rz
Another error�foo�BOOMz*{"does not": "matter since it is stubbed"})rK�some_first_instance�some_second_instancez-ir\r]rKrMze                12: An error
                12: Another error
                foo: BOOM
            )rCrNrBrDr8)rrIrOr/rPr')r�first_instance�first_errors�second_instance�
second_errorsrrr�test_multiple_invalid_instances�s 
z'TestCLI.test_multiple_invalid_instancesc
Cspd}td|d�td|d�g}d}td|d�g}|jtdtj|�tj|�d�t||�d	d
dddd
dgddd�dS)NrJzAn error)rz
Another errorrZr[z*{"does not": "matter since it is stubbed"})rKr\r]z--outputrRz-ir\r]rKrMa�                ===[ValidationError]===(some_first_instance)===

                An error
                -----------------------------
                ===[ValidationError]===(some_first_instance)===

                Another error
                -----------------------------
                ===[ValidationError]===(some_second_instance)===

                BOOM
                -----------------------------
            )rCrNrBrDr8)rrIrOr/rPr')rr^r_r`rarrr�-test_multiple_invalid_instances_pretty_output�s"
z5TestCLI.test_multiple_invalid_instances_pretty_outputc
Cspd}td|d�td|d�g}d}td|d�g}|jtdtj|�tj|�d�t||�d	d
dddd
dgddd�dS)NrJzAn error)rz
Another errorrZr[z*{"does not": "matter since it is stubbed"})rKr\r]z--error-formatz&:{error.message}._-_.{error.instance}:z-ir\r]rKrMz5:An error._-_.12::Another error._-_.12::BOOM._-_.foo:)rCrNrBrDr8)rrIrOr/rPr')rr^r_r`rarrr�test_custom_error_formats"
z TestCLI.test_custom_error_formatcCs|jtdd�dgddd�dS)Nz{"type": 12})rKrKrMzO                12: 12 is not valid under any of the given schemas
            )rCrBrDr8)rIrO)rrrr�test_invalid_schema4s
zTestCLI.test_invalid_schemacCshddi}|jt��}t|dd�WdQRXt|j�}|jttj|�d�dddgd	d
t|�dd�dS)
N�typerJrH)rr)rKz--outputrRrKrMz%===[SchemaError]===(some_schema)===

z
-----------------------------
)rCrBrDr8)	�assertRaisesrrr1�	exceptionrIrOr/rP)rr�er3rrr�!test_invalid_schema_pretty_output?s
z)TestCLI.test_invalid_schema_pretty_outputcCs|jtdd�dgddd�dS)Nz{"type": 12, "items": 57})rKrKrMzF                57: 57 is not of type 'object', 'boolean'
            )rCrBrDr8)rIrO)rrrr�#test_invalid_schema_multiple_errorsRs
z+TestCLI.test_invalid_schema_multiple_errorscCsjddd�}|jt��}t|dd�WdQRXt|j�}|jttj|�d�ddd	gd
dt|�dd
�dS)NrJ�9)rf�itemsrH)rr)rKz--outputrRrKrMz%===[SchemaError]===(some_schema)===

z
-----------------------------
)rCrBrDr8)	rgrrr1rhrIrOr/rP)rrrir3rrr�1test_invalid_schema_multiple_errors_pretty_output]s

z9TestCLI.test_invalid_schema_multiple_errors_pretty_outputcCs$|jtddd�dddgddd	�d
S)zv
        "Validating" an instance that's invalid under an invalid schema
        just shows the schema error.
        z{"type": 12, "minimum": 30}Z13)rKrLz-irLrKrMzO                12: 12 is not valid under any of the given schemas
            )rCrBrDr8N)rIrO)rrrr�)test_invalid_schema_with_invalid_instancepsz1TestCLI.test_invalid_schema_with_invalid_instancecCs|dddd�}}|jt��}t||d�WdQRXt|j�}|jttj|�tj|�d�ddd	d
dgdd
t|�dd�dS)N�
rJ�)rf�minimum)rr)rKrLz--outputrRz-irLrKrMz%===[SchemaError]===(some_schema)===

z
-----------------------------
)rCrBrDr8)	rgrrr1rhrIrOr/rP)rrrrir3rrr�7test_invalid_schema_with_invalid_instance_pretty_output�s
z?TestCLI.test_invalid_schema_with_invalid_instance_pretty_outputcCs4|jtdddd�dddddgd	d
jtd��d�dS)Nz{"minimum": 30}znot valid JSON!Z12)rKr^r`z-ir^r`rKrMzw                Failed to parse 'first_instance': {}
                12: 12 is less than the minimum of 30
            )rCrBrDr8)rIrOr@r4)rrrr�-test_invalid_instance_continues_with_the_rest�sz5TestCLI.test_invalid_instance_continues_with_the_restc
CsZdddd�}}|jt��t||d�WdQRX|jttj|�d�ddd	gd
dd�dS)
NrprJrq)rfrr)rr)rKz--error-formatz&:{error.message}._-_.{error.instance}:rKrMz7:12 is not valid under any of the given schemas._-_.12:)rCrBrDr8)rgrrrIrOr/rP)rrrrrr�1test_custom_error_format_applies_to_schema_errors�sz9TestCLI.test_custom_error_format_applies_to_schema_errorscCs2d}|jtd|d�dddgddjt|��d	�dS)
Nznot valid JSON!z{})rKrLz-irLrKrMz@                Failed to parse 'some_instance': {}
            )rCrBrDr8)rIrOr@r4)rrrrr�test_instance_is_invalid_JSON�s
z%TestCLI.test_instance_is_invalid_JSONcCsL|jtddd�dddddgd	d
�\}}|j|�|jd|�|jd|�dS)Nz{}znot valid JSON!)rKrLz--outputrRz-irLrKrM)rCrBrDz7(some_instance)===

Traceback (most recent call last):
)rGrOr<�assertIn�assertNotIn)rr7r8rrr�+test_instance_is_invalid_JSON_pretty_output�s
z3TestCLI.test_instance_is_invalid_JSON_pretty_outputcCs2d}|jtdd�t|�dgddjt|��d�dS)Nznot valid JSON!z{})rKrKrMz8                Failed to parse <stdin>: {}
            )rCr6rBrDr8)rIrOrr@r4)rrrrr�&test_instance_is_invalid_JSON_on_stdin�sz.TestCLI.test_instance_is_invalid_JSON_on_stdincCsL|jtdd�td�dddgdd�\}}|j|�|jd	|�|jd|�dS)
Nz{})rKznot valid JSON!z--outputrRrKrM)rCr6rBrDz1(<stdin>)===

Traceback (most recent call last):
)rGrOrr<rwrx)rr7r8rrr�4test_instance_is_invalid_JSON_on_stdin_pretty_output�s
z<TestCLI.test_instance_is_invalid_JSON_on_stdin_pretty_outputcCs,d}|jt|d�dgddjt|��d�dS)Nznot valid JSON!)rKrKrMz>                Failed to parse 'some_schema': {}
            )rCrBrDr8)rIrOr@r4)rrrrr�test_schema_is_invalid_JSON�sz#TestCLI.test_schema_is_invalid_JSONcCs:|jtdd�dddgdd�\}}|j|�|jd|�dS)	Nznot valid JSON!)rKz--outputrRrKrM)rCrBrDz5(some_schema)===

Traceback (most recent call last):
)rGrOr<rw)rr7r8rrr�)test_schema_is_invalid_JSON_pretty_output
s
z1TestCLI.test_schema_is_invalid_JSON_pretty_outputcCs2d	\}}|jt||d�dgddjt|��d�dS)
zM
        Only the schema error is reported, as we abort immediately.
        �not valid JSON!�also not valid JSON!)rKrLrKrMz>                Failed to parse 'some_schema': {}
            )rCrBrDr8N)r~r)rIrOr@r4)rrrrrr�.test_schema_and_instance_are_both_invalid_JSONs
z6TestCLI.test_schema_and_instance_are_both_invalid_JSONcCsL|jtddd�dddddgd	d
�\}}|j|�|jd|�|jd|�dS)
zM
        Only the schema error is reported, as we abort immediately.
        znot valid JSON!zalso not valid JSON!)rKrLz--outputrRz-irLrKrM)rCrBrDz5(some_schema)===

Traceback (most recent call last):
N)rGrOr<rwrx)rr7r8rrr�<test_schema_and_instance_are_both_invalid_JSON_pretty_output(s
zDTestCLI.test_schema_and_instance_are_both_invalid_JSON_pretty_outputcCs"|jtdd�dddgddd�dS)	Nz{})rKz-i�nonexisting_instancerKrMzC                'nonexisting_instance' does not exist.
            )rCrBrDr8)rIrO)rrrr�test_instance_does_not_exist=s
z$TestCLI.test_instance_does_not_existcCs&|jtdd�dddddgdd	d
�dS)Nz{})rKz--outputrRz-ir�rKrMz�                ===[FileNotFoundError]===(nonexisting_instance)===

                'nonexisting_instance' does not exist.
                -----------------------------
            )rCrBrDr8)rIrO)rrrr�*test_instance_does_not_exist_pretty_outputHsz2TestCLI.test_instance_does_not_exist_pretty_outputcCs|jdgddd�dS)N�nonexisting_schemarMz%'nonexisting_schema' does not exist.
)rBrDr8)rI)rrrr�test_schema_does_not_existZsz"TestCLI.test_schema_does_not_existcCs|jdddgddd�dS)Nz--outputrRr�rMz�                ===[FileNotFoundError]===(nonexisting_schema)===

                'nonexisting_schema' does not exist.
                -----------------------------
            )rBrDr8)rI)rrrr�(test_schema_does_not_exist_pretty_outputbsz0TestCLI.test_schema_does_not_exist_pretty_outputcCs|jdddgddd�dS)Nz-ir�r�rMz%'nonexisting_schema' does not exist.
)rBrDr8)rI)rrrr�&test_neither_instance_nor_schema_existosz.TestCLI.test_neither_instance_nor_schema_existcCs|jdddddgddd�dS)	Nz--outputrRz-ir�r�rMz�                ===[FileNotFoundError]===(nonexisting_schema)===

                'nonexisting_schema' does not exist.
                -----------------------------
            )rBrDr8)rI)rrrr�4test_neither_instance_nor_schema_exist_pretty_outputwsz<TestCLI.test_neither_instance_nor_schema_exist_pretty_outputcCs$|jtddd�dddgddd�dS)Nz{})rKrLz-irLrKrH)rCrBr7r8)rIrO)rrrr�test_successful_validation�s

z"TestCLI.test_successful_validationcCs(|jtddd�dddddgdd	d
�dS)Nz{})rKrLz--outputrRz-irLrKz"===[SUCCESS]===(some_instance)===
rH)rCrBr7r8)rIrO)rrrr�(test_successful_validation_pretty_output�s

z0TestCLI.test_successful_validation_pretty_outputcCs$|jtdd�td�dgddd�dS)Nz{})rKrKrH)rCr6rBr7r8)rIrOr)rrrr�#test_successful_validation_of_stdin�sz+TestCLI.test_successful_validation_of_stdincCs(|jtdd�td�dddgddd�dS)	Nz{})rKz--outputrRrKz===[SUCCESS]===(<stdin>)===
rH)rCr6rBr7r8)rIrOr)rrrr�1test_successful_validation_of_stdin_pretty_output�sz9TestCLI.test_successful_validation_of_stdin_pretty_outputcCs$|jtddd�dddgddd�dS)Nz{})rKrLz-irLrKrH)rCrBr7r8)rIrO)rrrr�-test_successful_validation_of_just_the_schema�s

z5TestCLI.test_successful_validation_of_just_the_schemacCs(|jtddd�dddddgdd	d
�dS)Nz{})rKrLz--outputrRz-irLrKz"===[SUCCESS]===(some_instance)===
rH)rCrBr7r8)rIrO)rrrr�;test_successful_validation_of_just_the_schema_pretty_output�s

zCTestCLI.test_successful_validation_of_just_the_schema_pretty_outputcCsptjdd�}|jtj|j�t|j�}|jd�d|j�d�}|jt	|dd�dd	d
|j
j�ddgd
d
d�dS)NF)�deletez-{"definitions": {"num": {"type": "integer"}}}z
{"$ref": "z#definitions/num"}�1)rKrLz-irLz
--base-uri�/rKrH)rCrBr7r8)�tempfile�NamedTemporaryFile�
addCleanup�os�remove�namer�
write_textrIrO�parent�as_uri)r�ref_schema_file�ref_pathrrrr�0test_successful_validation_via_explicit_base_uri�s


z8TestCLI.test_successful_validation_via_explicit_base_uricCsrtjdd�}|jtj|j�t|j�}|jd�d|j�d�}|jt	|dd�dd	d
|j
j�ddgd
ddd�dS)NF)r�z-{"definitions": {"num": {"type": "integer"}}}z
{"$ref": "z#definitions/num"}z"1")rKrLz-irLz
--base-urir�rKrMrHz 1: '1' is not of type 'integer'
)rCrBrDr7r8)r�r�r�r�r�r�rr�rIrOr�r�)rr�r�rrrr�2test_unsuccessful_validation_via_explicit_base_uri�s


z:TestCLI.test_unsuccessful_validation_via_explicit_base_uricCshd}d}|jt��.}|jt||d�dddtj�j�dgd�WdQRXt|j�}|j	t
j�d	�|�dS)
Nz4{"$ref": "someNonexistentFile.json#definitions/num"}r�)rKrLz-irLz
--base-urirK)rCrBzsomeNonexistentFile.json')rgrrIrOr�cwdr�r1rhrwr��sep)rrrrir3rrr�,test_nonexistent_file_with_explicit_base_uri�s
z4TestCLI.test_nonexistent_file_with_explicit_base_uricCsXd}d}|jt��&}|jt||d�dddddgd	�WdQRXt|j�}|j|d
�dS)Nz${"$ref": "foo.json#definitions/num"}r�)rKrLz-irLz
--base-uriznot@UR1rK)rCrBzunknown url type: 'foo.json')rgrrIrOr1rhr?)rrrrir3rrr�test_invalid_exlicit_base_uri�s
z%TestCLI.test_invalid_exlicit_base_uricCs2|jtt�|jtddd�dddgddd	d
�dS)Nz{"const": "check"}z"a")rKrLz-irLrKrMrHza: 'check' was expected
)rCrBrDr7r8)�assertIsrrrIrO)rrrr�=test_it_validates_using_the_latest_validator_when_unspecifieds
zETestCLI.test_it_validates_using_the_latest_validator_when_unspecifiedcCs.d}d}|jt||d�dddgddd	d
�dS)zG
        Specifically, `const` validation applies for Draft 7.
        z�
            {
                "$schema": "http://json-schema.org/draft-07/schema#",
                "const": "check"
            }
        z"foo")rKrLz-irLrKrMrHzfoo: 'check' was expected
)rCrBrDr7r8N)rIrO)rrrrrr�-test_it_validates_using_draft7_when_specifieds	
z5TestCLI.test_it_validates_using_draft7_when_specifiedcCs,d}d}|jt||d�dddgddd�d	S)
zP
        Specifically, `const` validation *does not* apply for Draft 4.
        z�
            {
                "$schema": "http://json-schema.org/draft-04/schema#",
                "const": "check"
            }
            z"foo")rKrLz-irLrKrH)rCrBr7r8N)rIrO)rrrrrr�-test_it_validates_using_draft4_when_specified.s	
z5TestCLI.test_it_validates_using_draft4_when_specifiedN)rHrH)2rr r!r
rrGrIrQrSrUrXrYrbrcrdrerjrkrnrorsrtrurvryrzr{r|r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr5BsZ$
)

		r5c@s:eZdZe�Zdd�Zdd�Zdd�Zdd�Zd	d
�Z	dS)�
TestParsercCs*tjdddddg�}|j|d|j�dS)Nz--validatorz2jsonschema.tests.test_cli.TestParser.FakeValidatorz
--instancezmem://some/instancezmem://some/schemarN)r
r:r�r#)rrFrrr�2test_find_validator_by_fully_qualified_object_nameEsz=TestParser.test_find_validator_by_fully_qualified_object_namecCs(tjdddddg�}|j|dt�dS)Nz--validatorrz
--instancezmem://some/instancezmem://some/schemarN)r
r:r�r)rrFrrr�!test_find_validator_in_jsonschemaPs
z,TestParser.test_find_validator_in_jsonschemacGsft�t�}}t|��:t|��&|jt��tj|�WdQRXWdQRXWdQRX|j�|j�fS)N)rrrrg�
SystemExitr
r:rA)rrBr7r8rrr�cli_output_forZs
(zTestParser.cli_output_forcCs,|jddd�\}}|jd|�|j|�dS)Nz--outputrZzmem://some/schemazinvalid choice: 'foo')r�rwr<)rr7r8rrr�test_unknown_outputas

zTestParser.test_unknown_outputcCs0|jddddd�\}}|jd|�|j|�dS)Nz--outputrRz--error-formatrZzmem://some/schemaz3--error-format can only be used with --output plain)r�rwr<)rr7r8rrr�test_useless_error_formatis
z$TestParser.test_useless_error_formatN)
rr r!r'r#r�r�r�r�r�rrrrr�As
r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestCLIIntegrationcCs,tjtjddddgtjd�}|jd|�dS)Nz-m�pip�show�
jsonschema)r8sLicense: MIT)�
subprocess�check_output�sys�
executable�STDOUTrw)r�outputrrr�test_licensews
zTestCLIIntegration.test_licensecCs>tjtjdddgtjd�}|jd�j�}|j|tj	d��dS)Nz-mr�z	--version)r8zutf-8)
r�r�r�r�r��decode�stripr?r	�version)rr�rrr�test_version~s

zTestCLIIntegration.test_versioncCsBtjtjddgtjd�}tjtjdddgtjd�}|j||�dS)Nz-mr�)r8z--help)r�r�r�r�r�r?)rr�Zoutput_for_helprrr�#test_no_arguments_shows_usage_notes�s


z6TestCLIIntegration.test_no_arguments_shows_usage_notesN)rr r!r�r�r�rrrrr�vsr�)(�
contextlibrr�iorr/rZpathlibr�textwraprZunittestrr�r�r�r��	importlibr	�ImportErrorZimportlib_metadataZ
pyrsistentr
r�rrr
Zjsonschema.exceptionsrrrZjsonschema.validatorsrrr'r.r4r5r�r�rrrr�<module>s<		5

haha - 2025