
    ?Ki                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
Jr  SSKrSSKrSSKrSSKrSSKrSSKJrJr  SS	KJr  SSKr\
(       a  SS
KJrJrJr  SSKJr  SSKrSSKJr  SSKrSr \RB                  " S5      r"S r#\ " S S5      5       r$\ " S S5      5       r%\ " S S5      5       r&        SS jr'\" SS9 " S S5      5       r(S r)g)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                     [         R                  R                  S5      n U b  [        U 5      $ [        [        R
                  5      R                  R                  S-  n U R                  5       (       d  [        S5      eU $ )NJSON_SCHEMA_TEST_SUITEjsonzCan'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    Y/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/jsonschema/tests/_suite.py_find_suiter   "   sj    ::>>23DDz
##$++22V;D;;== 
 	
 K    c                  @    \ rS rSr% \" \S9rS\S'   S	S jrS
S jr	Sr
g)Suite4   )factoryr   _rootc                z    [         R                  " 5        H"  u  p#U R                  US9R                  UUS9  M$     g )N)name)runner	Validator)r   itemsversion	benchmark)selfr'   r&   r(   s       r   r+   Suite.benchmark:   s;    *002ODLLdL#--# .   3r   c                   [         U   nUR                  UR                  5      n[        R                  R                  U5      n[        5       R                  [        U R                  S-  XS9US9n[        UU R                  S-  U-  US9$ )Nremotes)r   r&   uri)default_specificationtests)r&   pathr/   )r   ID_OFMETA_SCHEMAreferencingr   specification_withr   with_contents
remotes_inr$   Version)r,   r&   r(   r0   specificationregistrys         r   r*   Suite.versionA   s    %	??9#8#89#..AA#F:++DJJ2G"/ , 
 g%,
 	
r    Nr'   zpyperf.Runner)returnr:   )__name__
__module____qualname____firstlineno__r	   r   r$   __annotations__r+   r*   __static_attributes__r>   r   r   r!   r!   4   s     ,E4,
r   r!   c                  h    \ rS rSr% S\S'   S\S'   S\S'   S rSS	 jrSS
 jrSS jrS r	SS jr
Srg)r:   Q   r   _path%referencing.jsonschema.SchemaRegistry_remotesstrr&   c                V    U R                  5        H  nUR                  " S0 UD6  M     g Nr>   )casesr+   )r,   kwargscases      r   r+   Version.benchmarkY   s!    JJLDNN$V$ !r   c                R    U R                  U R                  R                  S5      S9$ )N*.jsonpaths	_cases_inrI   globr,   s    r   rO   Version.cases]   s     ~~DJJOOH$=~>>r   c                R    U R                  U R                  R                  S5      S9$ )Nzoptional/format/*.jsonrU   rW   rZ   s    r   format_casesVersion.format_cases`   s!    ~~DJJOO4L$M~NNr   c                H    U R                  U R                  S-  U S3-  /S9$ )Noptionalz.jsonrU   )rX   rI   )r,   r&   s     r   optional_cases_ofVersion.optional_cases_ofc   s*    ~~TZZ*%<$u~%M$N~OOr   c                  ^ TR                  SSU R                  R                  5       R                  SS5      -   5      nU4S jU 5        Vs0 s H  nUR                  U_M     nn[        U[        R                  4U5      n[        [        5         [        5       Ul        S S S 5        U$ s  snf ! , (       d  f       U$ = f)Nr&   Test- c              3     >#    U  H5  nU  H+  nUR                     H  nUR                  " S0 TD6v   M     M-     M7     g 7frN   )r2   to_unittest_method).0grouprQ   testrP   s       r   	<genexpr>/Version.to_unittest_testcase.<locals>.<genexpr>j   sF      #E!D JJD ''1&1 ' 2! 2#s   =A )popr&   titlereplacerA   typeunittestTestCaser   	Exception)_someone_save_us_the_module_of_the_callerrB   )r,   groupsrP   r&   methodmethodsclss     `    r   to_unittest_testcaseVersion.to_unittest_testcasef   s    zz&&499??+<+D+DS"+M"MN#
 OOV# 	 
 4(++-w7
 i FHCN ! 
#
 !  
s   B+B00
B?c           	   #     #    U HY  n[         R                  " UR                  SS95       H/  n[        R	                  UU UR
                  U R                  S9v   M1     M[     g 7f)Nzutf-8)encoding)r*   subjectr/   )r   loads	read_text_Case	from_dictstemrK   )r,   rV   r3   rQ   s       r   rX   Version._cases_in{   sX     D

4>>7>#CDoo  II MM	 &   E s   A!A#r>   N)r@   Iterable[_Case])r&   rL   r@   r   )rV   zIterable[Path]r@   r   )rA   rB   rC   rD   rE   r+   rO   r]   ra   rz   rX   rF   r>   r   r   r:   r:   Q   s4     K33
I%?OP*r   r:   c                  ~    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   SrS\S'   SrS\S'   \S 5       rSS jr	Sr
g)r      r:   r*   rL   r~   descriptionMapping[str, Any] | boolschemazlist[_Test]r2   N
str | Nonecommentr>   zSequence[dict[str, str]]r;   c                    UR                  U5        UR                  S5       Vs/ s H   n[        SUS   US   US   US   US.UD6PM"     nnU " SSU0UD6$ s  snf )Nr2   r*   r~   r   r   )r*   r~   case_descriptionr   r/   r>   )updatern   _Test)ry   datar/   rP   rk   r2   s         r   r   _Case.from_dict   s    F ((7+	
 ,$  YY!%m!4H~  , 	 	
 ''$''	
s   'Ac           	         U R                    H3  nUR                  UR                  [        UR                  40 UD65        M5     g N)r2   
bench_funcfully_qualified_namer   validate_ignoring_errors)r,   r'   rP   rk   s       r   r+   _Case.benchmark   s:    JJD))55@@ r   r?   )rA   rB   rC   rD   rE   r   r;   classmethodr   r+   rF   r>   r   r   r   r      sM     L$$GZ.0M+0( (r   r   c              #    #    U R                  S5       H  n[        R                  " UR                  5       5      n[	        UR                  U 5      5      R                  SS5      nUS;   a  UR                  S:X  d2  SU;  a.  UR                  S5      (       a  UR                  U5      (       d  M  [         SU 3U4v   M     g 7f)NrT   \/>   draft3draft4treez$schemadraft)
rglobr   r   r   rL   relative_torp   r   
startswithMAGIC_REMOTE_URL)r   r&   r0   eachr   relatives         r   r9   r9      s      

8$DNN,-t''-.66tSA ,,II' '''00 ++D11 !"!H:.66# %s   CCF)reprc                      \ rS rSr% S\S'   S\S'   S\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'   SrS\S'   S r\S 5       rS 4S jr	S r
S rSrg)r      r:   r*   rL   r~   r   r   r   r   r   r   boolvalidrJ   rK   Nr   r   c                "    SU R                    S3$ )Nz<Test >)r   rZ   s    r   __repr___Test.__repr__   s    112!44r   c                    SR                  U R                  R                  U R                  U R                  U R
                  /5      $ )Nz > )joinr*   r&   r~   r   r   rZ   s    r   r   _Test.fully_qualified_name   s>    zz!!%%  	
 	
r   c                    g r   r>   )rk   s    r   <lambda>_Test.<lambda>   s    4r   c           	     <  ^ ^ T R                   (       a  UU 4S jnOUU 4S jnSR                  S[        R                  ST R                  5      [        R                  ST R
                  5      [        R                  ST R                  5      /5      Ul        U" T 5      nUb$  [        R                  R                  SS5      S:w  a  U$ [        R                  R                  SS5      S:w  a  [        R                  " U5      $ [        R                  " U5      " U5      $ )Nc                *   > TR                   " S0 TD6  g rN   )validatethisrP   r,   s    r   fn$_Test.to_unittest_method.<locals>.fn   s    ''r   c                   > U R                  [        R                  5         TR                  " S0 TD6  S S S 5        g ! , (       d  f       g = frN   )assertRaisesr   ValidationErrorr   r   s    r   r   r      s3    &&z'A'ABMM+F+ CBBs	   =
A_rk   JSON_SCHEMA_DEBUG0JSON_SCHEMA_EXPECTED_FAILURES)r   r   _DELIMITERSsubr~   r   r   rA   r   r   r   rr   expectedFailureskip)r,   r   rP   r   reasons   ` `  r   rh   _Test.to_unittest_method   s    ::(, hhT\\2T%:%:;T%5%56	
 d>RZZ^^,?ELIZZ^^;SASH++B//==(,,r   c                   UR                  U R                  5        U" SU R                  U R                  S.UD6n[        R                  R                  SS5      S:w  a
  [        5         UR                  U R                  S9  g )N)r   r<   r   r   )instancer>   )	check_schemar   rK   r   r   r   
breakpointr   r   )r,   r(   rP   	validators       r   r   _Test.validate   so    t{{+ 
;;]]
 
	
 ::>>-s3s:LDII.r   c                    [        [        R                  5         U R                  US9  S S S 5        g ! , (       d  f       g = f)N)r(   )r   r   r   r   )r,   r(   s     r   r   _Test.validate_ignoring_errors  s*    j001MMIM. 211s	   3
Ar>   )rA   rB   rC   rD   rE   r   r   propertyr   rh   r   r   rF   r>   r   r   r   r      sh     L
I$$K33GZ5 
 
 '8 -2	//r   r   c                 H    [         R                  " S5      R                  S   $ )ak  
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.
   rA   )sys	_getframe	f_globalsr>   r   r   ru   ru     s     ==%%j11r   )r   r   r&   rL   r0   rL   r@   zIterable[tuple[str, Schema]])*__doc__
__future__r   
contextlibr   	functoolsr   pathlibr   typingr   r   r   r   rer   rr   attrsr	   r
   r6   r   referencing.jsonschemacollections.abcr   r   r   r   pyperfjsonschema.validatorsr   r   r   compiler   r   r!   r:   r   r9   r   ru   r>   r   r   <module>r      s    #    %  	 	 
     ;;- - * jj%$ 
 
 
8 1 1 1h   D7
7
7 
7 "	7< UE/ E/ E/P2r   