§
    ‚Štj¶   ã                  óÊ  — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZmZ dd	lmZ ddlZe
rdd
lmZmZmZ ddlmZ ddlZddlmZ ddlZdZ  ej!        d¦  «        Z"d„ Z#e G d„ d¦  «        ¦   «         Z$e G d„ d¦  «        ¦   «         Z%e G d„ d¦  «        ¦   «         Z&d#d„Z' ed¬¦  «         G d „ d!¦  «        ¦   «         Z(d"„ Z)dS )$z=
Python representations of the JSON Schema Test Suite tests.
é    )Úannotations)Úsuppress)Úpartial)ÚPath)ÚTYPE_CHECKINGÚAnyN)ÚfieldÚfrozen)ÚRegistry)ÚIterableÚMappingÚSequence)ÚSchema)Ú_VALIDATORSzhttp://localhost:1234z[\W\- ]+c                 óø   — t           j                             d¦  «        } | �t          | ¦  «        S t          t          j        ¦  «        j        j        dz  } |                      ¦   «         st          d¦  «        ‚| S )NÚJSON_SCHEMA_TEST_SUITEÚjsonzŸCan't find the JSON-Schema-Test-Suite directory. Set the 'JSON_SCHEMA_TEST_SUITE' environment variable or run the tests from alongside a checkout of the suite.)	ÚosÚenvironÚgetr   Ú
jsonschemaÚ__file__ÚparentÚis_dirÚ
ValueError)Úroots    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/jsonschema/tests/_suite.pyÚ_find_suiter   "   sq   € ÝŒ:�>Š>Ð2Ñ3Ô3€DØÐÝ�D‰zŒzÐå•
Ô#Ñ$Ô$Ô+Ô2°VÑ;€DØ�;Š;‰=Œ=ð 
Ýð ñ
ô 
ð 	
ð €Kó    c                  óB   — e Zd ZU  ee¬¦  «        Zded<   dd„Zdd	„Zd
S )ÚSuite)Úfactoryr   Ú_rootÚrunnerúpyperf.Runnerc                óŽ   — t          j        ¦   «         D ]0\  }}|                      |¬¦  «                             ||¬¦  «         Œ1d S )N)Úname)r$   Ú	Validator)r   ÚitemsÚversionÚ	benchmark)Úselfr$   r'   r(   s       r   r+   zSuite.benchmark:   s^   € Ý*Ô0Ñ2Ô2ð 	ð 	‰OˆD�)Ø�LŠL˜dˆLÑ#Ô#×-Ò-ØØ#ð .ñ ô ð ð ð	ð 	r   ÚreturnÚVersionc                ó>  — t           |         }|                     |j        ¦  «        }t          j                             |¦  «        }t          ¦   «                              t          | j	        dz  ||¬¦  «        |¬¦  «        }t          || j	        dz  |z  |¬¦  «        S )NÚremotes)r   r'   Úuri)Údefault_specificationÚtests)r'   Úpathr0   )r   ÚID_OFÚMETA_SCHEMAÚreferencingr   Úspecification_withr   Úwith_contentsÚ
remotes_inr#   r.   )r,   r'   r(   r1   ÚspecificationÚregistrys         r   r*   zSuite.versionA   sž   € Ý Ô%ˆ	Ø—?’? 9Ô#8Ñ9Ô9ˆÝ#Ô.×AÒAÀ#ÑFÔFˆå‘:”:×+Ò+Ý˜DœJ¨Ñ2¸À3ÐGÑGÔGØ"/ð ,ñ 
ô 
ˆõ ØØ”˜gÑ%¨Ñ,Øð
ñ 
ô 
ð 	
r   N©r$   r%   )r-   r.   )	Ú__name__Ú
__module__Ú__qualname__r	   r   r#   Ú__annotations__r+   r*   © r   r   r!   r!   4   s^   € € € € € € ð �% Ð,Ñ,Ô,€EÐ,Ð,Ð,Ñ,ðð ð ð ð
ð 
ð 
ð 
ð 
ð 
r   r!   c                  óZ   — e Zd ZU ded<   ded<   ded<   d„ Zdd
„Zdd„Zdd„Zd„ Zdd„Z	dS )r.   r   Ú_pathú%referencing.jsonschema.SchemaRegistryÚ_remotesÚstrr'   c                óN   — |                       ¦   «         D ]} |j        di |¤Ž Œd S ©NrB   )Úcasesr+   )r,   ÚkwargsÚcases      r   r+   zVersion.benchmarkY   s>   € Ø—J’J‘L”Lð 	%ð 	%ˆDØˆDŒNÐ$Ð$˜VÐ$Ð$Ð$Ð$ð	%ð 	%r   r-   úIterable[_Case]c                ó^   — |                       | j                             d¦  «        ¬¦  «        S )Nú*.json©Úpaths©Ú	_cases_inrD   Úglob©r,   s    r   rJ   zVersion.cases]   s$   € Ø�~Š~ D¤J§O¢O°HÑ$=Ô$=ˆ~Ñ>Ô>Ð>r   c                ó^   — |                       | j                             d¦  «        ¬¦  «        S )Nzoptional/format/*.jsonrP   rR   rU   s    r   Úformat_caseszVersion.format_cases`   s%   € Ø�~Š~ D¤J§O¢OÐ4LÑ$MÔ$Mˆ~ÑNÔNÐNr   c                óL   — |                       | j        dz  |› d�z  g¬¦  «        S )NÚoptionalz.jsonrP   )rS   rD   )r,   r'   s     r   Úoptional_cases_ofzVersion.optional_cases_ofc   s+   € Ø�~Š~ T¤Z°*Ñ%<À$¸~¸~¸~Ñ%MÐ$Nˆ~ÑOÔOÐOr   c                óv  ‡— ‰                      dd| j                             ¦   «                              dd¦  «        z   ¦  «        }d„ ˆfd„|D ¦   «         D ¦   «         }t	          |t
          j        f|¦  «        }t          t          ¦  «        5  t          ¦   «         |_
        d d d ¦  «         n# 1 swxY w Y   |S )Nr'   ÚTestú-Ú c                ó   — i | ]
}|j         |“ŒS rB   )r>   )Ú.0Úmethods     r   ú
<dictcomp>z0Version.to_unittest_testcase.<locals>.<dictcomp>h   s,   € ð 
ð 
ð 
àð ŒO˜Vð
ð 
ð 
r   c              3  óP   •K  — | ] }|D ]}|j         D ]} |j        di ‰¤ŽV — ŒŒŒ!d S rI   )r3   Úto_unittest_method)r`   ÚgrouprL   ÚtestrK   s       €r   ú	<genexpr>z/Version.to_unittest_testcase.<locals>.<genexpr>j   sz   øè è € ð ð àØ!ðð ð Ø œJð	ð ð ð (�Ô'Ð1Ð1¨&Ð1Ð1ðð ð ð ð ð ð ð r   )Úpopr'   ÚtitleÚreplaceÚtypeÚunittestÚTestCaser   Ú	ExceptionÚ)_someone_save_us_the_module_of_the_callerr?   )r,   ÚgroupsrK   r'   ÚmethodsÚclss     `   r   Úto_unittest_testcasezVersion.to_unittest_testcasef   s  ø€ Ø�zŠz˜& &¨4¬9¯?ª?Ñ+<Ô+<×+DÒ+DÀSÈ"Ñ+MÔ+MÑ"MÑNÔNˆð
ð 
ðð ð ð à#ðñ ô ð
ñ 
ô 
ˆõ �4�(Ô+Ð-¨wÑ7Ô7ˆõ
 •iÑ Ô ð 	Ið 	IÝFÑHÔHˆCŒNð	Ið 	Ið 	Iñ 	Iô 	Ið 	Ið 	Ið 	Ið 	Ið 	Ið 	Iøøøð 	Ið 	Ið 	Ið 	Ið ˆ
s   ÂB.Â.B2Â5B2rQ   úIterable[Path]c              #  ó¾   K  — |D ]W}t          j        |                     d¬¦  «        ¦  «        D ],}t                               || |j        | j        ¬¦  «        V — Œ-ŒXd S )Nzutf-8)Úencoding)r*   Úsubjectr0   )r   ÚloadsÚ	read_textÚ_CaseÚ	from_dictÚstemrF   )r,   rQ   r4   rL   s       r   rS   zVersion._cases_in{   s…   è è € Øð 	ð 	ˆDÝœ
 4§>¢>¸7 >Ñ#CÔ#CÑDÔDð ð �Ý—o’oØØ Ø œIØ œMð	 &ñ ô ð ð ð ð ðð	ð 	r   N)r-   rM   )r'   rG   r-   rM   )rQ   rt   r-   rM   )
r>   r?   r@   rA   r+   rJ   rW   rZ   rs   rS   rB   r   r   r.   r.   Q   s¬   € € € € € € ð €K€K�KØ3Ð3Ð3Ñ3à€I€I�Ið%ð %ð %ð?ð ?ð ?ð ?ðOð Oð Oð OðPð Pð Pð Pðð ð ð*ð ð ð ð ð r   r.   c                  ó|   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
Zded<   dZded<   ed„ ¦   «         Zdd„Zd
S )rz   r.   r*   rG   rw   ÚdescriptionúMapping[str, Any] | boolÚschemazlist[_Test]r3   Nú
str | NoneÚcommentrB   zSequence[dict[str, str]]r;   c                óˆ   ‡‡— ‰                      |¦  «         ˆˆfd„‰                     d¦  «        D ¦   «         } | dd|i‰¤ŽS )Nc                ód   •— g | ],}t          d‰d          ‰d         ‰d         ‰d         ‰dœ|¤Ž‘Œ-S )r*   rw   r~   r€   )r*   rw   Úcase_descriptionr€   r0   rB   )Ú_Test)r`   rf   Údatar0   s     €€r   ú
<listcomp>z#_Case.from_dict.<locals>.<listcomp>•   si   ø€ ð 	
ð 	
ð 	
ð õ ð Ø˜YœØ˜YœØ!% mÔ!4Ø˜H”~Øðð ð ðð ð	
ð 	
ð 	
r   r3   rB   )Úupdaterh   )rr   r‡   r0   rK   r3   s    ``  r   r{   z_Case.from_dict’   sn   øø€ à�Š�FÑÔÐð	
ð 	
ð 	
ð 	
ð 	
ð Ÿ(š( 7Ñ+Ô+ð	
ñ 	
ô 	
ˆð ˆsÐ'Ð'˜Ð' $Ð'Ð'Ð'r   r$   r%   c           	     óp   — | j         D ]-}|                     |j        t          |j        fi |¤Ž¦  «         Œ.d S ©N)r3   Ú
bench_funcÚfully_qualified_namer   Úvalidate_ignoring_errors)r,   r$   rK   rf   s       r   r+   z_Case.benchmark¡   sV   € Ø”Jð 	ð 	ˆDØ×ÒØÔ)Ý˜Ô5Ð@Ð@¸Ð@Ð@ñô ð ð ð	ð 	r   r=   )	r>   r?   r@   rA   r‚   r;   Úclassmethodr{   r+   rB   r   r   rz   rz   †   s    € € € € € € ð ÐÐÑà€L€L�LØÐÐÑØ$Ð$Ð$Ñ$ØÐÐÑØ€GÐÐÐÑØ.0€MÐ0Ð0Ð0Ñ0àð(ð (ñ „[ð(ðð ð ð ð ð r   rz   r   r   r'   rG   r1   r-   úIterable[tuple[str, Schema]]c              #  óŽ  K  — |                       d¦  «        D ]¬}t          j        |                     ¦   «         ¦  «        }t	          |                     | ¦  «        ¦  «                             dd¦  «        }|dv r|j        dk    s.d|vr+|                     d¦  «        r|                     |¦  «        sŒœt          › d|› �|fV — Œ­d S )NrO   ú\ú/>   Údraft3Údraft4Útreez$schemaÚdraft)
Úrglobr   rx   ry   rG   Úrelative_torj   r|   Ú
startswithÚMAGIC_REMOTE_URL)r   r'   r1   Úeachr€   Úrelatives         r   r:   r:   ©   sì   è è € ð —
’
˜8Ñ$Ô$ð 7ð 7ˆÝ”˜DŸNšNÑ,Ô,Ñ-Ô-ˆå�t×'Ò'¨Ñ-Ô-Ñ.Ô.×6Ò6°t¸SÑAÔAˆð Ð,Ð,Ð,Ø”I Ò'Ð'ð  Ð'Ð'Ø×'Ò'¨Ñ0Ô0ð (à ×+Ò+¨DÑ1Ô1ð (ð
 Ý!Ð.Ð. HÐ.Ð.°Ð6Ð6Ð6Ð6Ð6ð#7ð 7r   F)Úreprc                  ó¢   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   dZded<   d„ Zed„ ¦   «         Zd„ fd„Zd„ Z	d„ Z
dS )r†   r.   r*   rG   rw   r…   r~   r   r‡   r   r€   ÚboolÚvalidrE   rF   Nr�   r‚   c                ó   — d| j         › d�S )Nz<Test ú>)r�   rU   s    r   Ú__repr__z_Test.__repr__Ù   s   € Ø4˜Ô1Ð4Ð4Ð4Ð4r   c                óf   — d                      | j        j        | j        | j        | j        g¦  «        S )Nz > )Újoinr*   r'   rw   r…   r~   rU   s    r   r�   z_Test.fully_qualified_nameÜ   s6   € à�zŠzà”Ô!Ø”ØÔ%ØÔ ð	ñ
ô 
ð 	
r   c                ó   — d S r‹   rB   )rf   s    r   ú<lambda>z_Test.<lambda>ç   s   € °4€ r   c           	     ó.  ‡ ‡— ‰ j         rˆˆ fd„}nˆˆ fd„}d                     dt                               d‰ j        ¦  «        t                               d‰ j        ¦  «        t                               d‰ j        ¦  «        g¦  «        |_         |‰ ¦  «        }|�$t          j	         
                    dd¦  «        dk    r|S t          j	         
                    dd¦  «        dk    rt          j        |¦  «        S  t          j        |¦  «        |¦  «        S )Nc                ó"   •—  ‰j         di ‰¤Ž d S rI   )Úvalidate©ÚthisrK   r,   s    €€r   Úfnz$_Test.to_unittest_method.<locals>.fné   s!   ø€ Ø�”Ð'Ð' Ð'Ð'Ð'Ð'Ð'r   c                ó’   •— |                       t          j        ¦  «        5   ‰j        di ‰¤Ž d d d ¦  «         d S # 1 swxY w Y   d S rI   )ÚassertRaisesr   ÚValidationErrorr«   r¬   s    €€r   r®   z$_Test.to_unittest_method.<locals>.fnì   s–   ø€ Ø×&Ò&¥zÔ'AÑBÔBð ,ð ,Ø!�D”MÐ+Ð+ FÐ+Ð+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ,ð ,s   ¡<¼A ÁA Ú_rf   ÚJSON_SCHEMA_DEBUGÚ0ÚJSON_SCHEMA_EXPECTED_FAILURES)r¡   r¦   Ú_DELIMITERSÚsubrw   r…   r~   r>   r   r   r   rl   ÚexpectedFailureÚskip)r,   r¹   rK   r®   Úreasons   ` `  r   rd   z_Test.to_unittest_methodç   s$  øø€ ØŒ:ð 	,ð(ð (ð (ð (ð (ð (ð (ð,ð ,ð ,ð ,ð ,ð ,ð —h’hàÝ—’  T¤\Ñ2Ô2Ý—’  TÔ%:Ñ;Ô;Ý—’  TÔ%5Ñ6Ô6ð	ñ
ô 
ˆŒð ��d‘”ˆØˆ>�RœZŸ^š^Ð,?ÀÑEÔEÈÒLÐLØˆIÝŒZ�^Š^Ð;¸SÑAÔAÀSÒHÐHÝÔ+¨BÑ/Ô/Ð/à(•8”= Ñ(Ô(¨Ñ,Ô,Ð,r   c                óþ   — |                      | j        ¦  «          |d| j        | j        dœ|¤Ž}t          j                             dd¦  «        dk    rt          ¦   «          |                     | j        ¬¦  «         d S )N)r€   r<   r³   r´   )ÚinstancerB   )	Úcheck_schemar€   rF   r   r   r   Ú
breakpointr«   r‡   )r,   r(   rK   Ú	validators       r   r«   z_Test.validate   s�   € Ø×Ò˜tœ{Ñ+Ô+Ð+Ø�Ið 
Ø”;Ø”]ð
ð 
ð ð
ð 
ˆ	õ
 Œ:�>Š>Ð-¨sÑ3Ô3°sÒ:Ð:Ý‰LŒLˆLØ×Ò D¤IÐÑ.Ô.Ð.Ð.Ð.r   c                ó–   — t          t          j        ¦  «        5  |                      |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r(   )r   r   r±   r«   )r,   r(   s     r   rŽ   z_Test.validate_ignoring_errors  s‹   € Ý•jÔ0Ñ1Ô1ð 	/ð 	/Ø�MŠM IˆMÑ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/ð 	/ð 	/s   š>¾AÁA)r>   r?   r@   rA   r‚   r¤   Úpropertyr�   rd   r«   rŽ   rB   r   r   r†   r†   Ç   sä   € € € € € € ð ÐÐÑà€L€L�LØÐÐÑØÐÐÑà€I€I�IØ$Ð$Ð$Ñ$à€K€K�Kà3Ð3Ð3Ñ3à€GÐÐÐÑð5ð 5ð 5ð ð
ð 
ñ „Xð
ð '8Ð&7ð -ð -ð -ð -ð2	/ð 	/ð 	/ð/ð /ð /ð /ð /r   r†   c                 ó@   — t          j        d¦  «        j        d         S )a‡  
    The FQON of the module 2nd stack frames up from here.

    This is intended to allow us to dynamically return test case classes that
    are indistinguishable from being defined in the module that wants them.

    Otherwise, trial will mis-print the FQON, and copy pasting it won't re-run
    the class that really is running.

    Save us all, this is all so so so so so terrible.
    é   r>   )ÚsysÚ	_getframeÚ	f_globalsrB   r   r   ro   ro     s   € õ Œ=˜ÑÔÔ% jÔ1Ð1r   )r   r   r'   rG   r1   rG   r-   r�   )*Ú__doc__Ú
__future__r   Ú
contextlibr   Ú	functoolsr   Úpathlibr   Útypingr   r   r   r   ÚrerÄ   rl   Úattrsr	   r
   r7   r   Úreferencing.jsonschemaÚcollections.abcr   r   r   r   ÚpyperfÚjsonschema.validatorsr   r   r›   Úcompiler¶   r   r!   r.   rz   r:   r†   ro   rB   r   r   ú<module>rÔ      so  ððð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø 
€
€
€
Ø €€€à Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð àð Ø;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;Ð;à-Ð-Ð-Ð-Ð-Ð-Ø€M€M€Mà -Ð -Ð -Ð -Ð -Ð -Ø Ð Ð Ð à*Ð àˆbŒj˜Ñ%Ô%€ðð ð ð$ ð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ „ð
ð8 ð1ð 1ð 1ð 1ð 1ñ 1ô 1ñ „ð1ðh ðð ð ð ð ñ ô ñ „ððD7ð 7ð 7ð 7ð< €ˆUÐÑÔðE/ð E/ð E/ð E/ð E/ñ E/ô E/ñ ÔðE/ðP2ð 2ð 2ð 2ð 2r   