Ë
    º2Úi~  ã                  ó‚  — d Z ddlmZ ddlmZ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Zdd	lmZmZ dd
lmZ ddlZerddlZddlmZ ddlZ ej>                  d«      Z d„ Z!e G d„ d«      «       Z"e G d„ d«      «       Z#e G d„ d«      «       Z$ ed¬«       G d„ d«      «       Z%d„ Z&y)z=
Python representations of the JSON Schema Test Suite tests.
é    )Úannotations)ÚIterableÚMapping)Úsuppress)Úpartial)ÚPath)ÚTYPE_CHECKINGÚAnyN)ÚfieldÚfrozen)ÚRegistry)Ú_VALIDATORSz[\W\- ]+c                 óô   — t         j                  j                  d«      } | �t        | «      S t        t        j
                  «      j                  j                  dz  } | j                  «       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    úN/var/www/html/acx/venv/lib/python3.12/site-packages/jsonschema/tests/_suite.pyÚ_find_suiter      sh   € Ü�:‰:�>‰>Ð2Ó3€DØÐÜ�D‹zÐä”
×#Ñ#Ó$×+Ñ+×2Ñ2°VÑ;€DØ�;‰;Œ=Üð ó
ð 	
ð €Kó    c                  ó\   — e Zd ZU  ee¬«      Zded<    ed¬«      Zded<   d„ Zdd	„Z	dd
„Z
y)ÚSuite)Úfactoryr   Ú_rootF)Úinitú%referencing.jsonschema.SchemaRegistryÚ_remotesc           	     ó¤  — | j                   j                  dd«      }t        j                  t	        |«      dg}t        j                  |«      j                  d«      }t        j                  |«      }d}d}t        «       j                  |t        j                  j                  j                  |j!                  |«      ¬«      f|t        j                  j"                  j                  |j!                  |«      ¬«      fg«      j%                  |j'                  «       t        j                  j(                  ¬«      }t*        j-                  | d	|«       y )
NÚbinÚjsonschema_suiteÚremotesúutf-8z?http://localhost:1234/locationIndependentIdentifierPre2019.jsonz>http://localhost:1234/locationIndependentIdentifierDraft4.json)Úcontents)Údefault_specificationr$   )r!   ÚjoinpathÚsysÚ
executableÚstrÚ
subprocessÚcheck_outputÚdecoder   Úloadsr   Úwith_resourcesÚreferencingr   ÚDRAFT7Úcreate_resourceÚpopÚDRAFT4Úwith_contentsÚitemsÚDRAFT202012ÚobjectÚ__setattr__)Úselfr'   Úargvr(   Ú	resourcesÚliÚli4Úregistrys           r   Ú__attrs_post_init__zSuite.__attrs_post_init__7   s'  € ØŸ:™:×.Ñ.¨uÐ6HÓIÐÜ—‘¤Ð$4Ó 5°yÐAˆÜ×)Ñ)¨$Ó/×6Ñ6°wÓ?ˆä—J‘J˜wÓ'ˆ	àNˆØNˆä“:×,Ñ,ð Ü×*Ñ*×1Ñ1×AÑAØ!*§¡¨rÓ!2ð Bó ðð Ü×*Ñ*×1Ñ1×AÑAØ!*§¡¨sÓ!3ð Bó ððó
÷ ‰-Ø�O‰OÓÜ"-×"8Ñ"8×"DÑ"Dð ó 
ð 	ô& 	×Ñ˜4 ¨XÕ6r   c                ó‚   — t        j                  «       D ](  \  }}| j                  |¬«      j                  ||¬«       Œ* y )N)Úname)ÚrunnerÚ	Validator)r   r;   ÚversionÚ	benchmark)r?   rH   rG   rI   s       r   rK   zSuite.benchmarkV   sB   € Ü*×0Ñ0Ó2ò 	‰OˆD�)Ø�L‰L˜dˆLÓ#×-Ñ-ØØ#ð .õ ñ	r   c                óR   — t        || j                  dz  |z  | j                  ¬«      S )NÚtests)rG   Úpathr(   )ÚVersionr!   r$   ©r?   rG   s     r   rJ   zSuite.version]   s*   € ÜØØ—‘˜gÑ%¨Ñ,Ø—M‘Mô
ð 	
r   N©rH   zpyperf.Runner)ÚreturnrO   )Ú__name__Ú
__module__Ú__qualname__r   r   r!   Ú__annotations__r$   rE   rK   rJ   © r   r   r   r   1   s2   … ñ  Ô,€Eˆ4Ó,Ù6;ÀÔ6G€HÐ3ÓGò7ó>ô
r   r   c                  óX   — 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	y)rO   r   Ú_pathr#   r$   r/   rG   c                óR   — | j                  «       D ]  } |j                  di |¤Ž Œ y ©NrW   )ÚcasesrK   )r?   ÚkwargsÚcases      r   rK   zVersion.benchmarkm   s(   € Ø—J‘J“Lò 	%ˆDØˆD�N‰NÑ$˜VÓ$ñ	%r   c                óX   — | j                  | j                  j                  d«      ¬«      S )Nz*.json©Úpaths©Ú	_cases_inrY   Úglob©r?   s    r   r\   zVersion.casesq   s    € Ø�~‰~ D§J¡J§O¡O°HÓ$=ˆ~Ó>Ð>r   c                óX   — | j                  | j                  j                  d«      ¬«      S )Nzoptional/format/*.jsonr`   rb   re   s    r   Úformat_caseszVersion.format_casest   s!   € Ø�~‰~ D§J¡J§O¡OÐ4LÓ$Mˆ~ÓNÐNr   c                óN   — | j                  | j                  dz  |› d�z  g¬«      S )NÚoptionalz.jsonr`   )rc   rY   rP   s     r   Úoptional_cases_ofzVersion.optional_cases_ofw   s*   € Ø�~‰~ T§Z¡Z°*Ñ%<À$ÀÀu¸~Ñ%MÐ$Nˆ~ÓOÐOr   c                ór  ‡— ‰j                  dd| j                  j                  «       j                  dd«      z   «      }ˆfd„|D «       D �ci c]  }|j                  |“Œ }}t        |t        j                  f|«      }t        t        «      5  t        «       |_        d d d «       |S c c}w # 1 sw Y   |S xY w)NrG   ÚTestú-Ú c              3  ór   •K  — | ].  }|D ]'  }|j                   D ]  } |j                  di ‰¤Ž–— Œ Œ) Œ0 y ­wr[   )rM   Úto_unittest_method)Ú.0Úgroupr^   Útestr]   s       €r   ú	<genexpr>z/Version.to_unittest_testcase.<locals>.<genexpr>~   sW   øè ø€ ò àØ!òð Ø ŸJ™Jò	ð ð (�×'Ñ'Ñ1¨&Õ1ðØ1ðØ1ñùs   ƒ47)r8   rG   ÚtitleÚreplacerS   ÚtypeÚunittestÚTestCaser   Ú	ExceptionÚ)_someone_save_us_the_module_of_the_callerrT   )r?   Úgroupsr]   rG   ÚmethodÚmethodsÚclss     `    r   Úto_unittest_testcasezVersion.to_unittest_testcasez   s³   ø€ Ø�z‰z˜& &¨4¯9©9¯?©?Ó+<×+DÑ+DÀSÈ"Ó+MÑ"MÓNˆóà#ôö
àð �O‰O˜VÑ#ð
ˆð 
ô �4œ(×+Ñ+Ð-¨wÓ7ˆô
 ”iÓ ñ 	IÜFÓHˆCŒN÷	Ið ˆ
ùò#
÷	Ið ˆ
ús   ÁB'ÂB,Â,B6c              #  óÌ   K  — |D ][  }t        j                  |j                  d¬«      «      D ]1  }t        j	                  || |j
                  | j                  ¬«      –— Œ3 Œ] y ­w)Nr)   )Úencoding)rJ   Úsubjectr(   )r   r3   Ú	read_textÚ_CaseÚ	from_dictÚstemr$   )r?   ra   rN   r^   s       r   rc   zVersion._cases_in�   sb   è ø€ Øò 	ˆDÜŸ
™
 4§>¡>¸7 >Ó#CÓDò �Ü—o‘oØØ Ø ŸI™IØ ŸM™Mð	 &ó ó ññ	ùs   ‚A"A$N)rR   úIterable[_Case])rG   r/   rR   rˆ   )ra   zIterable[Path]rR   rˆ   )
rS   rT   rU   rV   rK   r\   rg   rj   r€   rc   rW   r   r   rO   rO   e   s4   … ð ƒKØ3Ó3à
ƒIò%ó?óOóPòô*r   rO   c                  óf   — 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<   ed„ «       Zdd„Zy
)r…   rO   rJ   r/   rƒ   ÚdescriptionúMapping[str, Any] | boolÚschemazlist[_Test]rM   Nú
str | NoneÚcommentc                ó´   — |j                  |«       |j                  d«      D �cg c]  }t        d|d   |d   |d   |d   |dœ|¤Ž‘Œ! }} | dd|i|¤ŽS c c}w )NrM   rJ   rƒ   rŠ   rŒ   )rJ   rƒ   Úcase_descriptionrŒ   r(   rW   )Úupdater8   Ú_Test)r   Údatar(   r]   rs   rM   s         r   r†   z_Case.from_dict¥   s†   € à�‰�FÔð Ÿ(™( 7Ó+ö	
ð ô ð Ø˜Y™Ø˜Y™Ø!% mÑ!4Ø˜H‘~Øñð óð	
ˆð 	
ñ Ñ'˜Ð' $Ñ'Ð'ùò	
s   ¥$Ac           	     ó†   — | j                   D ]2  }|j                  |j                  t        |j                  fi |¤Ž«       Œ4 y ©N)rM   Ú
bench_funcÚfully_qualified_namer   Úvalidate_ignoring_errors)r?   rH   r]   rs   s       r   rK   z_Case.benchmark´   s?   € Ø—J‘Jò 	ˆDØ×ÑØ×)Ñ)Ü˜×5Ñ5Ñ@¸Ñ@õñ	r   rQ   )rS   rT   rU   rV   rŽ   Úclassmethodr†   rK   rW   r   r   r…   r…   š   sB   … ð ÓàƒLØÓØ$Ó$ØÓØ€GˆZÓàñ(ó ð(ôr   r…   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
y)r’   rO   rJ   r/   rƒ   r�   rŠ   r
   r“   r‹   rŒ   ÚboolÚvalidr#   r$   Nr�   rŽ   c                ó"   — d| j                   › d�S )Nz<Test ú>)r—   re   s    r   Ú__repr__z_Test.__repr__Î   s   € Ø˜×1Ñ1Ð2°!Ð4Ð4r   c                ó�   — dj                  | j                  j                  | j                  | j                  | j
                  g«      S )Nz > )ÚjoinrJ   rG   rƒ   r�   rŠ   re   s    r   r—   z_Test.fully_qualified_nameÑ   s>   € à�z‰zà—‘×!Ñ!Ø—‘Ø×%Ñ%Ø× Ñ ð	ó
ð 	
r   c                 ó   — y r•   rW   )rs   s    r   ú<lambda>z_Test.<lambda>Ü   s   � r   c           	     ó$  ‡ ‡— ‰ j                   rˆˆ fd„}nˆˆ fd„}dj                  dt        j                  d‰ j                  «      t        j                  d‰ j
                  «      t        j                  d‰ j                  «      g«      |_         |‰ «      }|�#t        j                  j                  dd«      dk7  r|S t        j                  j                  dd«      dk7  rt        j                  |«      S  t        j                  |«      |«      S )Nc                ó*   •—  ‰j                   di ‰¤Ž y r[   )Úvalidate©Úthisr]   r?   s    €€r   Úfnz$_Test.to_unittest_method.<locals>.fnÞ   s   ø€ Ø�—‘Ñ' Ó'r   c                ó’   •— | j                  t        j                  «      5   ‰j                  di ‰¤Ž d d d «       y # 1 sw Y   y xY wr[   )ÚassertRaisesr   ÚValidationErrorr§   r¨   s    €€r   rª   z$_Test.to_unittest_method.<locals>.fná   s=   ø€ Ø×&Ñ&¤z×'AÑ'AÓBñ ,Ø!�D—M‘MÑ+ FÒ+÷,÷ ,ñ ,ús	   ¡=½AÚ_rs   ÚJSON_SCHEMA_DEBUGÚ0ÚJSON_SCHEMA_EXPECTED_FAILURES)r�   r¢   Ú_DELIMITERSÚsubrƒ   r�   rŠ   rS   r   r   r   rx   ÚexpectedFailureÚskip)r?   rµ   r]   rª   Úreasons   ` `  r   rp   z_Test.to_unittest_methodÜ   sÓ   ù€ Ø�:Š:ö(õ,ð —h‘hàÜ—‘  T§\¡\Ó2Ü—‘  T×%:Ñ%:Ó;Ü—‘  T×%5Ñ%5Ó6ð	ó
ˆŒñ �d“ˆØˆ>œRŸZ™ZŸ^™^Ð,?ÀÓEÈÒLØˆIÜ�Z‰Z�^‰^Ð;¸SÓAÀSÒHÜ×+Ñ+¨BÓ/Ð/à(”8—=‘= Ó(¨Ó,Ð,r   c                ó
  — |j                  | j                  «        |d| j                  | j                  dœ|¤Ž}t        j                  j                  dd«      dk7  r
t        «        |j                  | j                  ¬«       y )N)rŒ   rD   r¯   r°   )ÚinstancerW   )	Úcheck_schemarŒ   r$   r   r   r   Ú
breakpointr§   r“   )r?   rI   r]   Ú	validators       r   r§   z_Test.validateõ   so   € Ø×Ñ˜tŸ{™{Ô+Ùð 
Ø—;‘;Ø—]‘]ñ
ð ñ
ˆ	ô
 �:‰:�>‰>Ð-¨sÓ3°sÒ:ÜŒLØ×Ñ D§I¡IÐÕ.r   c                ó„   — t        t        j                  «      5  | j                  |¬«       d d d «       y # 1 sw Y   y xY w)N)rI   )r   r   r­   r§   )r?   rI   s     r   r˜   z_Test.validate_ignoring_errors   s3   € Ü”j×0Ñ0Ó1ñ 	/Ø�M‰M IˆMÔ.÷	/÷ 	/ñ 	/ús   š6¶?)rS   rT   rU   rV   rŽ   r    Úpropertyr—   rp   r§   r˜   rW   r   r   r’   r’   ¼   sh   … ð ÓàƒLØÓØÓà
ƒIØ$Ó$àƒKà3Ó3à€GˆZÓò5ð ñ
ó ð
ñ '8ó -ò2	/ó/r   r’   c                 óF   — 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.
    é   rS   )r-   Ú	_getframeÚ	f_globalsrW   r   r   r{   r{     s   € ô �=‰=˜Ó×%Ñ% jÑ1Ð1r   )'Ú__doc__Ú
__future__r   Úcollections.abcr   r   Ú
contextlibr   Ú	functoolsr   Úpathlibr   Útypingr	   r
   r   r   Úrer0   r-   rx   Úattrsr   r   r5   r   Úreferencing.jsonschemaÚpyperfÚjsonschema.validatorsr   r   Úcompiler²   r   r   rO   r…   r’   r{   rW   r   r   ú<module>rÏ      sÏ   ðñõ #ç -Ý Ý Ý ß %Û Û 	Û 	Û Û 
Û ç Ý  Û áÛå -Û àˆb�j‰j˜Ó%€òð$ ÷0
ð 0
ó ð0
ðf ÷1ð 1ó ð1ðh ÷ð ó ðñB ˆUÔ÷E/ð E/ó ðE/óP2r   