+
     hޓ  c                   s0   ^ RI Ht ^ RIt^ RIHtHtHtHtHt ^ RI	H
t
 ]! RR R R R	 R
7      tR t ! R R4      t ! R R4      t ! R R4      t ! R R4      t ! R R4      t]P$                  P'                  R]]]]]P(                  .4      R 4       tR# )i    )HashTrieMapN)AnchorRegistryResourceSpecification
exceptions)DRAFT202012zid-and-childrenc                 s$    V P                  R 4      # )IDgetcontents   &@/usr/lib/python3.14/site-packages/referencing/tests/test_core.py<lambda>r   	   s    8<<-    c                 s&    V P                  R . 4      # )childrenr   r
   r   r   r   r   
   s    X\\*b%Ar   c                 s    VP                  R / 4      P                  4        UUu. uF"  w  r#\        VV P                  VR7      R7      NK$  	  upp# u uppi )anchorsr
   nameresource)r	   Zitemsr   create_resource)specificationr   r   eachs   &&  r   r   r      sW    
 #,,y"5;;=0
 >JD	 	"22D2A	
 >0 0s   (Ac                 s    \        V 4      ^,          '       gZ   \        ;QJ d#    R V R,           4       F  '       d   K   RM	  RM! R V R,           4       4      '       d   VP                  V4      # T# )   c              3   s*   "   T F	  qR 8H  x  K  	  R# 5ir   N )Z.0r      & r   Z	<genexpr>Z<lambda>.<locals>.<genexpr>   s     =}t
"}s   :NNr   FT)lenZallin_subresourceZsegmentsresolverZsubresource   &&&r   r   r      sY    8}q  C=x}=CCC=x}=== 	, 	 	r   r   id_ofsubresources_of
anchors_inZmaybe_in_subresourcec                s    \        R4      h)zI
A retriever suitable for use in tests which expect it never to be used.
z2This retrieve function expects to never be called!)ZRuntimeErrorurir   r   blow_upr'      s     K
LLr   c                   s:  a  ] tR t^"t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/ t2R0t3V t4R1# )2TestRegistryc                s    \         P                  ! RR/R7      pRp\        4       P                  W!R7      pW2,          VJ g   Q hR# )zA
Adding a resource to the registry then allows re-retrieving it.
foobarr
   urn:exampler&   r   N)r   opaquer   with_resourceselfr   r&   registry   &   r   test_with_resourceZTestRegistry.test_with_resource#   s@    
 ??UEN;:+++G}(((r   c                s    \         P                  ! / R7      p\        RR/\        R7      p\        4       P	                  RV3RV3.4      pV\        4       P                  RVR7      P                  RVR7      8X  g   Q hR# )	zD
Adding multiple resources to the registry is like adding each one.
r
   r)   r*   r   r   http://example.com/1http://example.com/foo/barr,   N)r   r-   ID_AND_CHILDRENr   with_resourcesr.   r0   onetwor1   r2   r   test_with_resourcesZ TestRegistry.test_with_resources-   s    
 oor*oN:,,'--s3
 8:33& 4 
 -,  

 	
 
r   c                s    R p\         P                  RVR^/4      pV\        4       ,          pV\        4       P                  W4      8X  g   Q hR# )zurn:example:resourcer   r)   N)r7   r   r   r.   r0   r&   r   r1   r2   r   test_matmul_resourceZ!TestRegistry.test_matmul_resourceB   sG    $"22D#ub3IJhj(8:33CBBBBr   c                s    R p\         P                  RVR^/4      pRp\         P                  RVR^/4      pW$.\        4       ,          pV\        4       P                  W3W43.4      8X  g   Q hR# )zurn:example:oner   r)   zurn:example:twoN)r7   r   r   r8   )r0   Zone_urir:   Ztwo_urir;   r1      &     r   test_matmul_many_resourcesZ'TestRegistry.test_matmul_many_resourcesH   sy    #--tWeR.HI#--tWeR.HI:
*8:44^g^,
 
 	
 
r   c                s:   \         P                  ! R R/R7      p\        P                  ! \        P
                  4      ;_uu_ 4       pV\        4       ,           RRR4       XP                  \        P
                  ! VR7      8X  g   Q hR#   + '       g   i     L:; i)r)   r*   r
   N)r   )r   r-   pytestraisesr   ZNoInternalIDr   value)r0   r   e   &  r   test_matmul_resource_without_idZ,TestRegistry.test_matmul_resource_without_idT   s`    ??UEN;]]:2233qxz! 4ww*118DDDD 43s   B

B	c                s    R pRR/p\        4       P                  W3.4      p\        V\        R7      pW1,          V8X  g   Q hR# )r+   $schema,https://json-schema.org/draft/2020-12/schemar4   N)r   with_contentsr   r   )r0   r&   schemar1   expected   &    r   #test_with_contents_from_json_schemaZ0TestRegistry.test_with_contents_from_json_schemaZ   sD    KL:++c]O<V;G}(((r   c                s    R p\        4       P                  VRR/3.\        P                  R7      pW!,          \        P
                  ! RR/4      8X  g   Q hR# )r+   r)   r*   Zdefault_specificationN)r   rI   r   OPAQUEr   r-   )r0   r&   r1   rE   r   ,test_with_contents_and_default_specificationZ9TestRegistry.test_with_contents_and_default_specificationb   sU    :++E5>"#"/"6"6 , 
 } ????r   c                s    ^p\        4       P                  \        V4       Uu. uF  p\        V4      RR/3NK  	  up\        P
                  R7      p\        V4      V8X  g   Q hR# u upi )i   r)   r*   rN   N)r   rI   rangestrr   rO   r   )r0   Ztotalir1   r2   r   test_lenZTestRegistry.test_lenj   sc    :++/4U|<|!c!fuen%|<"/"6"6 , 
 8}%%% =s   A&c                s*    \        4       '       d   Q hR # N)r   r0   r   r   test_bool_emptyZTestRegistry.test_bool_emptyr   s    ::~:r   c                s    \        4       P                  \        ^4       Uu. uF  p\        V4      RR/3NK  	  up\        P
                  R7      pV'       g   Q hR# u upi )i   r)   r*   rN   N)r   rI   rQ   rR   r   rO   r0   rS   r1   rE   r   test_bool_not_emptyZ TestRegistry.test_bool_not_emptyu   sS    :++/4Qx8x!c!fuen%x8"/"6"6 , 
 x 9s   Ac                s    \        4       P                  \        ^4       Uu. uF  p\        V4      RR/3NK  	  up\        P
                  R7      p\        V4      \        ^4       Uu0 uF  p\        V4      kK  	  up8X  g   Q hR# u upi u upi )   r)   r*   rN   N)r   rI   rQ   rR   r   rO   ZsetrX   rE   r   	test_iterZTestRegistry.test_iter|   sz    :++/4Qx8x!c!fuen%x8"/"6"6 , 
 8}q :AQ :::: 9 !;s   B'Bc                s    \         P                  ! R R/4      pRp\        W!/4      P                  4       pW2,          VJ g   Q hR# r)   r*   r+   N)r   r-   r   crawlr/   r2   r   'test_crawl_still_has_top_level_resourceZ4TestRegistry.test_crawl_still_has_top_level_resource   s>    ??E5>2SO,224}(((r   c           	     sb   R p\         P                  RRRRVR^/./4      pV\        4       ,          p\        P                  ! \
        4      ;_uu_ 4        W1,           RRR4       \         P                  RVR^/4      pVP                  4       V,          V8X  g   Q hR#   + '       g   i     LI; i)	urn:childr   urn:rootr   r)   N)r7   r   r   rA   rB   ZLookupErrorr]   )r0   Zchild_idrootr1   rK   rL   r   test_crawl_finds_a_subresourceZ+TestRegistry.test_crawl_finds_a_subresource   s    ..:zT8UB,G+HI
 (*$]];'' ( #22D(E23NO~~)X555	 ('s   	BB.	c                s   \         P                  R RRR^//4      pV\        4       ,          pVP                  4       P	                  VP                  4       R4      P                  \        R\         P                  ^4      R7      8X  g   Q hR# )r   urn:barr   r)   r   N)r7   r   r   r]   anchoridrC   r   r0   r   r1   rE   r    test_crawl_finds_anchors_with_idZ-TestRegistry.test_crawl_finds_anchors_with_id   s{    "229i%5
 hj(~~&&x{{}e<BBf$44R8G
 
 	
 
r   c                s
   \         P                  R R^//4      p\        4       P                  RV4      pVP	                  4       P                  RR4      P                  \        R\         P                  ^4      R7      8X  g   Q hR# )r   r)   r`   r   N)r7   r   r   r.   r]   rd   rC   r   rf   rE   r   test_crawl_finds_anchors_no_idZ+TestRegistry.test_crawl_finds_anchors_no_id   st    "22Ir{3KL:++JA~~&&z59??6$44R8D
 
 	
 
r   c                s    \         P                  ! R R/4      pRp\        4       P                  W!4      pVP	                  V4      R R/8X  g   Q hR# r\   )r   r-   r   r.   r   r/   r2   r   test_contentsZTestRegistry.test_contents   sH    ??E5>2:++C:  %%777r   c                s    R p\         P                  RVR,           /4      pV\        4       ,          pW1,          W1R,           ,          u;8X  d	   V8X  g   Q h Q hR# http://example.com/r   #N)r7   r   r   r=   r2   r   #test_getitem_strips_empty_fragmentsZ0TestRegistry.test_getitem_strips_empty_fragments   sN    #"22D#)3DEhj(}s 3?x?????r   c                s    R p\         P                  RVR,           /4      pV\        4       ,          pVP                  V4      VP                  VR,           4      u;8X  d   RVR,           /8X  g    Q h Q hR# rj   )r7   r   r   r   r=   r2   r   $test_contents_strips_empty_fragmentsZ1TestRegistry.test_contents_strips_empty_fragments   sv    #"22D#)3DEhj(c"  s+!cCi !	
!	
!r   c                s   \        4       p\        P                  ! \        P                  4      ;_uu_ 4       pVP                  R 4       RRR4       XP                  \        P                  ! R R7      8X  g   Q hR#   + '       g   i     L:; i)r+   Nref)r   rA   rB   r   NoSuchResourcer   rC   r0   r1   rD   rE   r   "test_contents_nonexistent_resourceZ/TestRegistry.test_contents_nonexistent_resource   sY    :]]:4455m, 6ww*33FFFF 65s   A;;B	c                s4   \         P                  R RR//4      p\        4       P                  RV4      pVP	                  RR4      pVP
                  \        R\         P                  R4      R7      8X  g   Q hVP                  VP                  4       8X  g   Q hR# )r   r)   r*   r+   r   N)	r7   r   r   r.   rd   rC   r   r1   r]   )r0   r   r1   Z	retrievedr2   r   test_crawled_anchorZ TestRegistry.test_crawled_anchor   s    "22Iu~3NO:++M8DOOM59	&$44U;#
 
 	
 
 !!X^^%5555r   c                s   \        4       p\        P                  ! \        P                  4      ;_uu_ 4       pVP                  R R4       RRR4       XP                  \        P                  ! R R7      8X  g   Q hR#   + '       g   i     L:; i)r+   r)   Nro   )r   rA   rB   r   rq   rd   rC   rr   rE   r   #test_anchor_in_nonexistent_resourceZ0TestRegistry.test_anchor_in_nonexistent_resource   sY    :]]:4455OOM51 6ww*33FFFF 65s   A<<B	c                s    \         P                  ! / R 7      p\        P                  RR/4      p\	        RVRV/4      pV\	        4       P                  RV3RV3.4      P                  4       8X  g   Q hR# )r
   r)   r*   r5   r6   N)r   r-   r7   r   r   r8   r]   r9   r2   r   	test_initZTestRegistry.test_init   s~    oor*--uen=&,c
 z^+S1137 UW
	
r   c                s    \         P                  ! / R7      p\        P                  RR/4      p\	        RV/4      P                  RV4      pVP                  4       \	        4       P                  RV3RV3.4      P                  4       8X  g   Q hR# )zm
Passing a `dict` to `Registry` gets converted to a `HashTrieMap`.

So continuing to use the registry works.
r
   r)   r*   r5   r6   N)r   r-   r7   r   r   r.   r]   r8   r9   r2   r   test_dict_conversionZ!TestRegistry.test_dict_conversion   s     oor*--uen=#S)

-4c
: 	 NNz^+S1137 UW
	
r   c                s   \        4       p\        P                  ! \        P                  4      ;_uu_ 4       pVR ,           RRR4       XP
                  \        P                  ! R R7      8X  g   Q hR#   + '       g   i     L:; i)zurn:bigboomNro   )r   rA   rB   r   rq   rC   rr   rE   r   test_no_such_resourceZ"TestRegistry.test_no_such_resource  sS    :]]:4455]# 6ww*33FFFF 65s   
A33B	c                sJ   \         P                  ! / R 7      p\        P                  RR/4      p\        P                  RR/4      p\        P                  RR^//4      p\	        RV/4      p\	        4       P                  RV4      p\	        RVRV/4      p\	        4       P                  R	V4      P                  4       pVP                  WgV4      \	        RV3RV3R	V3.\        R\        R\        P                  ^4      R
7      /4      R7      P                  RV4      8X  g   Q hR# )r
   r)   r*   bazquuxr   r5   r6   http://example.com/bazhttp://example.com/foo/quuxr   )r   N)r|   r)   )
r   r-   r7   r   r   r.   r]   combiner    r   )	r0   r:   r;   threeZfourfirstsecondthirdfourth	   &        r   test_combineZTestRegistry.test_combine  s0   oor*--uen=//@..	E2;/GH0#67))*FL&(%
 J]- UW 	 }}VF3x'-)51.5
  :F"!0!@!@!D=8
 -4c
:; 	; ;r   c                sN    \        RR/4      pVP                  V4      VJ g   Q hR# )z
Combining a registry with itself short-circuits.

This is a performance optimization -- otherwise we do lots more work
(in jsonschema this seems to correspond to making the test suite take
 *3x* longer).
urn:foor*   N)r   r}   r0   r1   r   r   test_combine_selfZTestRegistry.test_combine_self.  s,     Y./)X555r   c                s   \         P                  ! / R 7      p\        P                  RR/4      p\        P                  RR/4      p\	        4       P                  RV4      p\	        4       P                  RV4      p\	        RVRV/4      p\	        RV3RV3RV3.4      pVP                  WV4      pW8w  g   Q hVP                  4       V8X  g   Q hR# )	r
   r)   r*   ry   rz   r5   r6   r{   N)r   r-   r7   r   r   r.   r}   r]   )	r0   r:   r;   r~   r   r   r   rK   Zcombinedr   r   %test_combine_with_uncrawled_resourcesZ2TestRegistry.test_combine_with_uncrawled_resources:  s    oor*--uen=//@
(()?E))*FL&(%
 '--s3)51
 ==/###~~8+++r   c                s   \         P                  ! / R 7      p\        P                  RR/4      p\        P                  RR/4      pR p\	        4       P                  RV4      p\	        VR7      P                  RV4      p\	        4       P                  R	V4      pVP                  Wg4      \	        VR7      P                  RV3RV3R	V3.4      8X  g   Q hVP                  WW4      \	        VR7      P                  RV3RV3R	V3.4      8X  g   Q hR
# )r
   r)   r*   ry   rz   c                     R # rU   r   r%   r   r   retrieveZ@TestRegistry.test_combine_with_single_retrieve.<locals>.retrieveW      r   r5   r   http://example.com/2http://example.com/3Nr   r-   r7   r   r   r.   r}   r8   r0   r:   r;   r~   r   r   r   r      &       r   !test_combine_with_single_retrieveZ.TestRegistry.test_combine_with_single_retrieveR  s"   oor*--uen=//@	 
(()?E

-.
4 	 
(()?G}}V+x0

.'-'-'/

 	
 
 ~~e+x0

.'-'-'/

 	
 
r   c                s&   \         P                  ! / R 7      p\        P                  RR/4      p\        P                  RR/4      pR p\	        VR7      P                  RV4      p\	        VR7      P                  RV4      p\	        VR7      P                  R	V4      pVP                  Wg4      \	        VR7      P                  RV3RV3R	V3.4      8X  g   Q hVP                  WW4      \	        VR7      P                  RV3RV3R	V3.4      8X  g   Q hR
# )r
   r)   r*   ry   rz   c                 r   rU   r   r%   r   r   r   Z@TestRegistry.test_combine_with_common_retrieve.<locals>.retrievex  r   r   r   r5   r   r   Nr   r   r   r   !test_combine_with_common_retrieveZ.TestRegistry.test_combine_with_common_retrieves  s2   oor*--uen=//@	 (+99"
 

-.
4 	 (+99"

 }}V+x0

.'-'-'/

 	
 
 ~~e+x0

.'-'-'/

 	
 
r   c                s   \         P                  ! / R 7      p\        P                  RR/4      p\        P                  RR/4      pR pR p\	        VR7      P                  RV4      p\	        4       P                  R	V4      p\	        VR7      P                  R
V4      p\        P                  ! \        RR7      ;_uu_ 4        VP                  Wx4       RRR4       R#   + '       g   i     R# ; i)r
   r)   r*   ry   rz   c                 r   rU   r   r%   r   r   foo_retrieveZDTestRegistry.test_combine_conflicting_retrieve.<locals>.foo_retrieve  r   r   c                 r   rU   r   r%   r   r   bar_retrieveZDTestRegistry.test_combine_conflicting_retrieve.<locals>.bar_retrieve  r   r   r   r5   r   r   zconflict.*retrievZmatchN)
r   r-   r7   r   r   r.   rA   rB   	Exceptionr}   )	r0   r:   r;   r~   r   r   r   r   r   r   r   !test_combine_conflicting_retrieveZ.TestRegistry.test_combine_conflicting_retrieve  s    oor*--uen=//@		 ,/=="
 ))*@#F,/=="

 ]]9,?@@MM&( A@@@s   CC/	c                s    \         P                  ! / R 7      p\        P                  RR/4      p\	        RVRV/4      pVP                  R4      \	        RV/4      8X  g   Q hR# r
   r)   r*   r   rc   N)r   r-   r7   r   r   remover9   r2   r   test_removeZTestRegistry.test_remove  sX    oor*--uen=YY<=y)Xy#6F-GGGGr   c                s    \         P                  ! / R 7      p\        P                  RR/4      p\	        4       P                  RV3RV3.4      pVP                  R4      \	        4       P                  RV4      8X  g   Q hR# r   )r   r-   r7   r   r   r8   r   r.   r9   r2   r   test_remove_uncrawledZ"TestRegistry.test_remove_uncrawled  sz    oor*--uen=:,,	3/0
 y)XZ-E-E.
 
 	
 
r   c                s<   \         P                  ! / R 7      p\        P                  RRR//4      p\	        4       P                  RV3RV3.4      P                  4       pVP                  R4      \	        4       P                  RV4      P                  4       8X  g   Q hR# )r
   r   r)   r*   r   rc   N)	r   r-   r7   r   r   r8   r]   r   r.   r9   r2   r   test_remove_with_anchorsZ%TestRegistry.test_remove_with_anchors  s    oor*--y5%..IJJ^S!Is#34 UW 	 OOI&z] UW	
r   c                s   \         P                  ! \        P                  4      ;_uu_ 4       p\	        4       P                  R 4       RRR4       XP                  \        P                  ! R R7      8X  g   Q hR#   + '       g   i     L:; i)zurn:doesNotExistNro   )rA   rB   r   rq   r   r   rC   )r0   rD   r   r   test_remove_nonexistent_uriZ(TestRegistry.test_remove_nonexistent_uri  sV    ]]:4455J01 6ww*338JKKKK 65s   A99B		c                s   a \         P                  ! R R/4      o\        V3R lR7      pVP                  R4      P                  S8X  g   Q hR# )r)   r*   c                    < S# rU   r   r&   r)      &r   r   Z,TestRegistry.test_retrieve.<locals>.<lambda>  s    r   r   r+   N)r   r-   r   get_or_retrieverC   )r0   r1   r)   s   & @r   test_retrieveZTestRegistry.test_retrieve  s>    oouen-_5''6<<CCCr   c                T  a \         P                  ! R R/4      oV3R lp\        VR7      pVP                  R4      P                  S8X  g   Q h\
        P                  ! \        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r)   r*   c                 s,   < V R 8X  d   S# \        R4      h)urn:succeedzOh no!)r   r   r   r   r   Z@TestRegistry.test_retrieve_arbitrary_exception.<locals>.retrieve  s    m#
H%%r   r   r   urn:uhohN)	r   r-   r   r   rC   rA   rB   r   Unretrievabler0   r   r1   r)      &  @r   !test_retrieve_arbitrary_exceptionZ.TestRegistry.test_retrieve_arbitrary_exception  sw    oouen-	&
 X.''6<<CCC]]:3344$$Z0 5444   :BB'	c                r   )r)   r*   c                 sD   < V R 8X  d   S# \         P                  ! V R7      h)r   ro   )r   rq   r   r   r   r   Z=TestRegistry.test_retrieve_no_such_resource.<locals>.retrieve  s!    m#
++44r   r   r   r   N)	r   r-   r   r   rC   rA   rB   r   rq   r   r   r   test_retrieve_no_such_resourceZ+TestRegistry.test_retrieve_no_such_resource  sw    oouen-	5
 X.''6<<CCC]]:4455$$Z0 6555r   c                s    R  p\        VR7      p\        P                  ! \        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)c                 s.    \         P                  ! / 4      # rU   )r   from_contentsr%   r   r   r   ZKTestRegistry.test_retrieve_cannot_determine_specification.<locals>.retrieve  s    ))"--r   r   r   N)r   rA   rB   r   CannotDetermineSpecificationr   )r0   r   r1   rE   r   ,test_retrieve_cannot_determine_specificationZ9TestRegistry.test_retrieve_cannot_determine_specification  sF    	. X.]]:BBCC$$Z0 DCCCs   AA)	c                s    \         P                  ! R R/4      p\        RV/\        R7      pVR,          V8X  g   Q hVP	                  R4      P
                  V8X  g   Q hR# )r)   r*   r+   r   N)r   r-   r   r'   r   rC   )r0   r)   r1   rE   r   (test_retrieve_already_available_resourceZ5TestRegistry.test_retrieve_already_available_resource  sW    oouen-]C07C&#---''6<<CCCr   c                s    \         P                  R RR^/4      p\         P                  RVP                  ./4      p\        \        R7      P                  RV4      pVP                  4       R,          V8X  g   Q hR# )r   r_   r)   r   r   r`   N)r7   r   r   r   r'   r.   r]   )r0   Zchildra   r1   r2   r   -test_retrieve_first_checks_crawlable_resourceZ:TestRegistry.test_retrieve_first_checks_crawlable_resource	  sh    //{E20NO..
U^^<L/MNW-;;JM~~,555r   c                s    \         P                  ! / R 7      p\        RV/4      pVP                  RR7      pVP	                  R4      P
                  / 8X  g   Q hR# )r
   http://example.com)Zbase_urirl   Nr   r-   r   r   lookupr   )r0   r:   r1   r   r2   r   test_resolverZTestRegistry.test_resolver  sQ    oor*1378$$.B$Cs#,,222r   c                s   \         P                  R R/4      p\        4       P                  V4      pVP	                  R4      P
                  VP
                  8X  g   Q hVP	                  R4      P
                  VP
                  8X  g   Q hR# )r   r   rl   N)r7   r   r   resolver_with_rootr   r   r0   ra   r   rE   r   "test_resolver_with_root_identifiedZ/TestRegistry.test_resolver_with_root_identified  sm    ..6J/KL:00634==NNNs#,,===r   c                s    \         P                  ! / R 7      p\        4       P                  V4      pVP	                  R4      P
                  VP
                  8X  g   Q hR# )r
   rl   N)r   r-   r   r   r   r   r   rE   r   $test_resolver_with_root_unidentifiedZ1TestRegistry.test_resolver_with_root_unidentified  sC    +:006s#,,===r   c                s   \         P                  ! / R 7      p\        P                  RR/4      p\	        4       P                  RV3RV3.4      p\        V4      R8X  g   Q h\        VP                  4       4      R8X  g   Q hR# )r
   r)   r*   r5   r6   z"<Registry (2 uncrawled resources)>z<Registry (2 resources)>N)r   r-   r7   r   r   r8   reprr]   r9   r2   r   	test_reprZTestRegistry.test_repr   s{    oor*--uen=:,,'--s3
 H~!EEEEHNN$%)CCCCr   c                s    \         P                  ! / R 7      p\        P                  RR/4      p\	        RV/4      P                  4       P                  RVR7      p\        V4      R8X  g   Q hR# )r
   r)   r*   r5   r6   r,   z%<Registry (2 resources, 1 uncrawled)>N)r   r-   r7   r   r   r]   r.   r   r9   r2   r   test_repr_mixed_crawledZ$TestRegistry.test_repr_mixed_crawled,  sf    oor*--uen='- UW];c]J 	 H~!HHHHr   c                s    \        4       P                  R \        P                  ! / R7      R7      p\	        V4      R8X  g   Q hR# )r5   r
   r,   z!<Registry (1 uncrawled resource)>N)r   r.   r   r-   r   r   r   r   test_repr_one_resourceZ#TestRegistry.test_repr_one_resource8  s=    :++&__b1 , 
 H~!DDDDr   c                s:    \        \        4       4      R 8X  g   Q hR# )z<Registry (0 resources)>N)r   r   rV   r   r   test_repr_emptyZTestRegistry.test_repr_empty?  s    HJ#====r   r   N)5__name__
__module____qualname____firstlineno__r3   r<   r>   r@   rF   rM   rP   rT   rW   rY   r[   r^   rb   rg   rh   ri   rm   rn   rs   rt   ru   rv   rw   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell__Z__classdict__   @r   r(   r(   "   s    )
*C

E)@&;)
6	

8@
G6G
*
0G$;L
6,0
B%
N)0H	

(L
D
111D63>>

D
IE> >r   r(   c                   sz   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tRtV tR# )TestResourceiC  c                sj    R R/p\         P                  ! V4      pV\        V\        R7      8X  g   Q hR# )rG   rH   r4   N)r   r   r   r0   rJ   r   rE   r   #test_from_contents_from_json_schemaZ0TestResource.test_from_contents_from_json_schemaD  s2    KL))&18V;OOOOr   c                s    \         P                  ! \        P                  4      ;_uu_ 4        \        P
                  ! RR/4       RRR4       R#   + '       g   i     R# ; i)z
Creating a resource with no discernible way to see what
specification it belongs to (e.g. no ``$schema`` keyword for JSON
Schema) raises an error.
r)   r*   N)rA   rB   r   r   r   r   rV   r   r   2test_from_contents_with_no_discernible_informationZ?TestResource.test_from_contents_with_no_discernible_informationI  s;     ]]:BBCC""E5>2 DCCC   AA!	c                    \         P                  ! R R/\        P                  R7      pV\         P                  ! R R/R7      8X  g   Q hR# r)   r*   rN   r
   Nr   r   r   rO   r-   r0   r   r   r   >test_from_contents_with_no_discernible_information_and_defaultZKTestResource.test_from_contents_with_no_discernible_information_and_defaultS  ?    ))EN"/"6"6
 8??UENCCCCr   c                s    R R/p\         P                  ! V\        P                  R7      pV\        V\        R7      8X  g   Q hR# )rG   rH   rN   r4   N)r   r   r   rO   r   r   rE   r   #test_from_contents_unneeded_defaultZ0TestResource.test_from_contents_unneeded_defaultZ  sJ    KL))"/"6"6
 8%
 
 	
 
r   c                sn    \         P                  ! R \        R7      pV\        R \        R7      8X  g   Q hR# )TrN   r4   N)r   r   r7   r   r   r   test_non_mapping_from_contentsZ+TestResource.test_non_mapping_from_contentse  s9    ))"1
 8)
 
 	
 
r   c                r   r   r   r   r   r    test_from_contents_with_fallbackZ-TestResource.test_from_contents_with_fallbacko  r   r   c                sz    \        R R R R R R7      p\        RR/VR7      pVP                  4       R	8X  g   Q hR
# ) c                 r   urn:fixedIDr   r
   r   r   r   ATestResource.test_id_delegates_to_specification.<locals>.<lambda>y      =r   c                     . # rU   r   r
   r   r   r   r   z      Rr   c                 r   rU   r   r   r      &&r   r   r   {      rr   c                     V# rU   r   r   r    r   r   r   }      r   r!   r)   ry   r4   r   N)r   r   re   r0   r   r   rE   r   "test_id_delegates_to_specificationZ/TestResource.test_id_delegates_to_specificationv  sG    %0/9@
 U^'
 {{}---r   c                st    R p\         P                  RVR,           /4      pVP                  4       V8X  g   Q hR# rj   )r7   r   re   )r0   r&   ra   rE   r   test_id_strips_empty_fragmentZ*TestResource.test_id_strips_empty_fragment  s4    #..cCi/@AwwyCr   c                s    \         P                  R / ^./4      p\        VP                  4       4      / ^3 Uu. uF  p\         P                  V4      NK  	  up8X  g   Q hR# u upi r   )r7   r   listsubresources)r0   r   r   rE   r   ,test_subresources_delegates_to_specificationZ9TestResource.test_subresources_delegates_to_specification  sf    "22JR3IJH))+,?A2h1
>FdO++D1h1
 
 	
 
 1
s   A!c                s    R R/p\         P                  RV./4      p\        VP                  4       4      \        P                  ! V4      .8X  g   Q hR# )rG   rH   r   N)r7   r   r   r   r   r   rE   r   -test_subresource_with_different_specificationZ:TestResource.test_subresource_with_different_specification  sW    KL"22J3IJH))+,''/1
 
 	
 
r   c           	     s:   \         P                  R R/ R^RR//4      p\        VP                  4       4      \	        R\         P                  / 4      R7      \	        R\         P                  ^4      R7      \	        R\         P                  R4      R7      .8X  g   Q hR# )r   r)   r*   ry   r   r   N)r7   r   r   r   r   r   r   r   'test_anchors_delegates_to_specificationZ4TestResource.test_anchors_delegates_to_specification  s    "22E1eR89
 H$$&'(G(G(KL(G(G(JK(G(G(KL,
 
 	
 
r   c                s    \         P                  ! R R/R7      p\        4       P                  4       pVP	                  RVR7      P
                  R8X  g   Q hR# )r)   ry   r
   z/foor   Nr   r-   r   r   Zpointerr   r0   r   r   rE   r   test_pointer_to_mappingZ$TestResource.test_pointer_to_mapping  sH    ??UEN;:&&(:CCuLLLr   c                s    \         P                  ! R R^.//R7      p\        4       P                  4       pVP	                  RVR7      P
                  ^8X  g   Q hR# )r)   r*   r
   z
/foo/bar/0r   Nr   r   rE   r   test_pointer_to_arrayZ"TestResource.test_pointer_to_array  sO    ??UUQCL,AB:&&(x@IIQNNNr   c                s    R R/p\         P                  ! VR7      p\        4       P                  4       pVP	                  RVR7      P
                  V8X  g   Q hR# )r)   ry   r
   r   r   Nr   )r0   r   r   r   r2   r   test_root_pointerZTestResource.test_root_pointer  sM    5>??H5:&&(X6??8KKKr   c                sz    R R/p\         P                  ! V4      \        V\        P                  R7      8X  g   Q hR# )r)   r*   r4   N)r   r-   r   rO   )r0   r   r   r   test_opaqueZTestResource.test_opaque  s9    5>x(H'..-
 
 	
 
r   r   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   C  s[     P
3D	

D.  



M
O
L
 
r   r   c                   s   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tRtV tR# )TestResolveri  c                s    \         P                  ! R R/R7      p\        RV/4      P                  4       pVP	                  R4      pVP
                  VP
                  8X  g   Q hR# )r)   ry   r
   r5   Nr   )r0   r   r   resolvedr2   r   test_lookup_exact_uriZ"TestResolver.test_lookup_exact_uri  sV    ??UEN;3X>?HHJ??#9:  H$5$5555r   c           	     s    \         P                  R RRR RR^/./4      pV\        4       ,          pVP                  4       P	                  R4      pVP
                  R RR^/8X  g   Q hR# )r   rk   r   zhttp://example.com/ar)   Nr7   r   r   r   r   r   r0   ra   r1   r   r2   r   test_lookup_subresourceZ$TestResolver.test_lookup_subresource  sx    ..+15"=
 (*$$$&--.DE  T+A5"$MMMMr   c                s    \         P                  R RRR^//4      pV\        4       ,          pVP                  4       P	                  R4      pVP
                  ^8X  g   Q hR# )r   rk   r   r)   zhttp://example.com/#fooNr   r   r2   r   test_lookup_anchor_with_idZ'TestResolver.test_lookup_anchor_with_id  sb    ..+E2;
 (*$$$&--.GH  B&&&r   c                s    \         P                  R R^//4      p\        4       P                  RV4      P	                  4       pVP                  R4      pVP                  ^8X  g   Q hR# )r   r)   r+   zurn:example#fooN)r7   r   r   r.   r   r   r   )r0   ra   r   r   r2   r   test_lookup_anchor_without_idZ*TestResolver.test_lookup_anchor_without_id  s[    ..	E2;/GH:++M4@IIK??#45  B&&&r   c                s<   \        4       P                  4       pR p\        P                  ! \        P
                  4      ;_uu_ 4       pVP                  V4       RRR4       XP                  \        P
                  ! VR7      8X  g   Q hR#   + '       g   i     L:; i)z!http://example.com/does/not/existNro   )r   r   rA   rB   r   Unresolvabler   rC   )r0   r   rp   rD   r2   r   test_lookup_unknown_referenceZ*TestResolver.test_lookup_unknown_reference  se    :&&(1]]:2233qOOC  4ww*11c:::: 43s   BB	c                s   \         P                  ! R / /4      p\        RV/4      P                  4       pRp\        P
                  ! \        P                  4      ;_uu_ 4       pVP                  V4       RRR4       XP                  \        P                  ! RVR7      8X  g   Q h\        VP                  4      R8X  g   Q hR#   + '       g   i     LW; i)r)   r5   zhttp://example.com/1#/foo/barNz/foo/barrp   r   z,'/foo/bar' does not exist within {'foo': {}})r   r-   r   r   rA   rB   r   r   r   rC   PointerToNowhererR   r0   r   r   rp   rD   rL   r    test_lookup_non_existent_pointerZ-TestResolver.test_lookup_non_existent_pointer  s    ??E2;/3X>?HHJ-]]:2233qOOC  4ww*55
 
 	
 
 177|MMMM 43s   "CC	c                st   \         P                  ! . RO4      p\        RV/4      P                  4       pRp\        P
                  ! \        P                  4      ;_uu_ 4       pVP                  V4       RRR4       XP                  \        P                  ! RVR7      8X  g   Q hR#   + '       g   i     L;; i)   r5   zhttp://example.com/1#/10Nz/10r   )r   r   i   rZ   )r   r-   r   r   rA   rB   r   r   r   rC   r   r   rL   r   /test_lookup_non_existent_pointer_to_array_indexZ<TestResolver.test_lookup_non_existent_pointer_to_array_index  s    ??<03X>?HHJ(]]:2233qOOC  4ww*55
 
 	
 
 43s   "B''B7	c                s    \        4       P                  \        P                  ! R / /4      4      pVP	                  R4      P
                  / 8X  g   Q hR# )r   #/N)r   r   r   r-   r   r   )r0   r   r   r   #test_lookup_pointer_to_empty_stringZ0TestResolver.test_lookup_pointer_to_empty_string  s>    :00"b1JKt$--333r   c                sp   \         P                  ! R / /4      p\        4       P                  V4      p\        P
                  ! \        P                  RR7      ;_uu_ 4       pVP                  R4       RRR4       XP                  \        P                  ! RVR7      8X  g   Q hR#   + '       g   i     L;; i)r)   z+^'/' does not exist within {'foo': {}}.*'#'r   r   NZ/r   )r   r-   r   r   rA   rB   r   r   r   rC   r   )r0   r   r   rD   r2   r   0test_lookup_non_existent_pointer_to_empty_stringZ=TestResolver.test_lookup_non_existent_pointer_to_empty_string  s    ??E2;/:00:]]##?
 
 OOD!	

 ww*55
 
 	
 

 
s    B%%B5	c                s"   \         P                  R / /4      p\        4       P                  RV4      P	                  4       pVP                  R4      pVP                  VP                  8X  g   Q hRp\        P                  ! \        P                  4      ;_uu_ 4       pVP                  V4       RRR4       R\        XP                  4      9   g   Q hVP                  \        P                  ! RVRR7      8X  g   Q hR#   + '       g   i     LX; i)r   r+   zurn:example#noSuchAnchorNz'noSuchAnchor' does not existZnoSuchAnchor)rp   r   rd   )r7   r   r   r.   r   r   r   rA   rB   r   r   rR   rC   ZNoSuchAnchor)r0   ra   r   r   rp   rD   r?   r   test_lookup_non_existent_anchorZ,TestResolver.test_lookup_non_existent_anchor  s    ..	2?:++M4@IIK??=1  DMM111(]]:2233qOOC  4.#agg,>>>ww*11!
 
 	
 
 43s   C>>D	c           	     s   \        4       P                  \        P                  R RRR^//4      4      pVP	                  R4      pVP
                  ^8X  g   Q h\        P                  ! \        P                  4      ;_uu_ 4       pVP	                  R4       RRR4       R\        XP                  4      9   g   Q hR#   + '       g   i     L.; i)r   rk   r)   r*   z	#/foo/barz#foo/barNz '#/foo/bar')r   r   r7   r   r   r   rA   rB   r   ZInvalidAnchorrR   rC   )r0   r   ZvalidrD   r2   r   *test_lookup_invalid_JSON_pointerish_anchorZ7TestResolver.test_lookup_invalid_JSON_pointerish_anchor  s    :00++/E2;
 ,~~###]]:3344OOJ' 5QWW--- 54s   B;;C	c                s   a \         P                  ! R R/R7      o\        V3R lR7      P                  4       pVP	                  R4      pVP
                  SP
                  8X  g   Q hR# )r)   ry   r
   c                 r   rU   r   r,   r   r   r   Z=TestResolver.test_lookup_retrieved_resource.<locals>.<lambda>1  s    r   r   rk   Nr   )r0   r   r   r   r   r   test_lookup_retrieved_resourceZ+TestResolver.test_lookup_retrieved_resource/  sR    ??UEN;%9:CCE??#89  H$5$5555r   c                s   Rp\        \        R7      p\        P                  ! \        P
                  4      ;_uu_ 4        VP                  V4       RRR4       VP                  4       p\        P                  ! \        P                  4      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     Lh; i  + '       g   i     R# ; i)z<
Unretrievable exceptions are also wrapped in Unresolvable.
rk   r   N)
r   r'   rA   rB   r   r   r   r   r   r   )r0   r&   r1   r   r2   r   %test_lookup_failed_retrieved_resourceZ2TestResolver.test_lookup_failed_retrieved_resource5  s    
 $W-]]:3344$$S) 5 $$&]]:2233OOC  43	 54 433s   B1C1C	C	c                sL  a \         P                  ! RR/R7      pV.oV3R lp\        VR7      P                  4       pVP	                  R4      pVP
                  VP
                  8X  g   Q hVP                  P	                  R4      pVP
                  VP
                  8X  g   Q hR# )zS
A (custom-)retrieved resource is added to the registry returned by
looking it up.
r)   ry   r
   c                 $   < SP                  4       # rU   Zpopr&   oncer   r   r   ZKTestResolver.test_repeated_lookup_from_retrieved_resource.<locals>.retrieveL      88:r   r   rk   Nr   r0   r   r   r   r   r
     &    @r   ,test_repeated_lookup_from_retrieved_resourceZ9TestResolver.test_repeated_lookup_from_retrieved_resourceD  s    
 ??UEN;z	 X.779??#89  H$5$5555$$++,AB  H$5$5555r   c                sL  a \         P                  ! R R/R7      pV.oV3R lp\        VR7      P                  4       pVP	                  R4      pVP
                  VP
                  8X  g   Q hVP                  P	                  R4      pVP
                  VP
                  8X  g   Q hR# )r)   ry   r
   c                 r  rU   r  r	  r   r   r   ZRTestResolver.test_repeated_anchor_lookup_from_retrieved_resource.<locals>.retrieveZ  r  r   r   rk   rl   Nr   r  r  r   3test_repeated_anchor_lookup_from_retrieved_resourceZ@TestResolver.test_repeated_anchor_lookup_from_retrieved_resourceV  s    ??UEN;z	 X.779??#89  H$5$5555$$++C0  H$5$5555r   c           
     s   \         P                  R RRR RRR R/././4      pV\        4       ,          pVP                  4       pVP	                  R4      pVP
                  VP
                  8X  g   Q h\        P                  ! \        P                  4      ;_uu_ 4        VP                  P	                  R4       RRR4       VP                  P                  \         P                  VP
                  R,          ^ ,          4      4      pVP	                  R4      pVP
                  R R/8X  g   Q hR#   + '       g   i     L~; i)r   rk   r   child/
grandchildN)r7   r   r   r   r   r   rA   rB   r   r   r   )r0   ra   r1   r   r   Zsubr      &      r   test_in_subresourceZ TestResolver.test_in_subresourceg  s   ..+h"dL%9$:

 (*$$$& 56~~...]]:2233NN!!,/ 4 nn++++ENN:,Fq,IJ
 L)4"6666 43s   D//D?	c           
     sB   \         P                  R RRR RRR R/././4      pV\        4       ,          pVP                  4       pVP	                  R4      pVP
                  VP
                  8X  g   Q h\        P                  ! \        P                  4      ;_uu_ 4        VP                  P	                  R4       RRR4       VP                  P	                  R4      pVP                  P	                  R4      pVP
                  R R/8X  g   Q hR#   + '       g   i     L]; i)r   rk   r   r  r  N#/children/0)
r7   r   r   r   r   r   rA   rB   r   r   )r0   ra   r1   r   r   r   r   r  r   test_in_pointer_subresourceZ(TestResolver.test_in_pointer_subresource  s    ..+h"dL%9$:

 (*$$$& 56~~...]]:2233NN!!,/ 4 &&~6&&|4~~$!5555 43s   DD	c           
     s   \         P                  R RRR RRR R/././4      p\         P                  R RRR R/./4      pW.\        4       ,          pVP                  4       pVP	                  R4      pVP                  P	                  R4      pVP                  P	                  R4      pVP                  P	                  R4      p\        VP                  P                  4       4      RVP                  P                  3R	VP                  P                  3RVP                  P                  3.8X  g   Q h\        VP                  P                  4       4      R	VP                  P                  3RVP                  P                  3.8X  g   Q h\        VP                  P                  4       4      RVP                  P                  3.8X  g   Q h\        VP                  P                  4       4      . 8X  g   Q hR
# )r   rk   r   r  r  zhttp://example.com/twoz
two-child/r  z#http://example.com/child/grandchildzhttp://example.com/child/N)r7   r   r   r   r   r   Zdynamic_scopeZ	_registry)	r0   r:   r;   r1   r   r   r   r   r   r   r   test_dynamic_scopeZTestResolver.test_dynamic_scope  s   --+h"dL%9$:

 --.dL12
 :
*$$& 56&&~6&&|4&&'?@FOO11342FOO4M4MN(&//*C*CD"FOO$=$=>9
 
 	
 

 ENN0023(%..*B*BC"ENN$<$<=8
 
 	
 
 FOO1134"FOO$=$=>9
 
 	
 
 ENN0023r999r   r   N)r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r   r   r     sf     6N	'';
N	
4

 ."6!6$6"7662%: %:r   r   c                   s\   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tRtV tR# )TestSpecificationi  c                s    \        R R R R R R7      pVP                  RR/R7      pV\        RR/VR	7      8X  g   Q hVP                  4       R
8X  g   Q hR# )r   c                 r   r   r   r
   r   r   r   8TestSpecification.test_create_resource.<locals>.<lambda>  r   r   c                 r   rU   r   r
   r   r   r   r    r   r   c                 r   rU   r   r   r   r   r   r    r   r   c                 r   rU   r   r   r    r   r   r    r   r   r!   r)   ry   r
   r4   r   N)r   r   r   re   r   rE   r   test_create_resourceZ&TestSpecification.test_create_resource  sm    %0/9@
 !005%.0I8U^'
 
 	
 
 {{}---r   c                sT    R R/p\         P                  ! V4      pV\        8X  g   Q hR# rG   rH   N)r   detectr   r0   rJ   r   rE   r   test_detect_from_json_schemaZ.TestSpecification.test_detect_from_json_schema  s+    KL%,,V4+++r   c                s    \         P                  ! \        P                  4      ;_uu_ 4        \        P
                  ! R R/4       RRR4       R#   + '       g   i     R# ; ir)   r*   NrA   rB   r   r   r   r  rV   r   r   +test_detect_with_no_discernible_informationZ=TestSpecification.test_detect_with_no_discernible_information  s9    ]]:BBCC  %0 DCCCr   c                s    \         P                  ! \        P                  4      ;_uu_ 4        \        P
                  ! R ^%/4       RRR4       R#   + '       g   i     R# ; i)rG   Nr  rV   r   r   test_detect_with_non_URI_schemaZ1TestSpecification.test_detect_with_non_URI_schema  s9    ]]:BBCC  )R1 DCCCr   c                t    \         P                  P                  R R/4      pV\         P                  J g   Q hR# r  r   rO   r  r0   r   r   r   7test_detect_with_no_discernible_information_and_defaultZITestSpecification.test_detect_with_no_discernible_information_and_default  0    %,,33UENC 4 4444r   c                sf    R R/p\         P                  P                  V4      pV\        8X  g   Q hR# r  )r   rO   r  r   r  rE   r   test_detect_unneeded_defaultZ.TestSpecification.test_detect_unneeded_default  s1    KL%,,33F;+++r   c                s    \         P                  ! \        P                  4      ;_uu_ 4        \        P
                  ! R 4       RRR4       R#   + '       g   i     R# ; iTNr  rV   r   r   test_non_mapping_detectZ)TestSpecification.test_non_mapping_detect  s5    ]]:BBCC  & DCCCs   AA	c                sH    \         P                  R 4      pV\         J g   Q hR# r(  )r7   r  r$  r   r   $test_non_mapping_detect_with_defaultZ6TestSpecification.test_non_mapping_detect_with_default  s     '..t4///r   c                r"  r  r#  r$  r   r   test_detect_with_fallbackZ+TestSpecification.test_detect_with_fallback  r&  r   c                s2    \        \        4      R 8X  g   Q hR# )z&<Specification name='id-and-children'>N)r   r7   rV   r   r   r   ZTestSpecification.test_repr  s    !%MM	
Mr   r   N)r   r   r   r   r  r  r   r!  r%  r'  r)  r*  r+  r   r   r   r   r   r   r  r    s<     .",
125,
'05
 
r   r  c                   s  a  ] tR tRt o RR/R^%R]! 4       .t]P                  P                  R]4      R 4       t	]P                  P                  R]4      R 4       t
]P                  P                  R]4      R 4       tR	tV tR
# )TestOpaqueSpecificationi  r)   r*   Tthingc                sL    \         P                  P                  V4      e   Q hR# )z
An arbitrary thing has no ID.
N)r   rO   r"   r0   r-  r   r   
test_no_idZ"TestOpaqueSpecification.test_no_id   s!     ##))%0888r   c                d    \        \        P                  P                  V4      4      . 8X  g   Q hR# )z)
An arbitrary thing has no subresources.
N)r   r   rO   r#   r.  r   r   test_no_subresourcesZ,TestOpaqueSpecification.test_no_subresources  s(     M((88?@BFFFr   c                r0  )z$
An arbitrary thing has no anchors.
N)r   r   rO   r$   r.  r   r   test_no_anchorsZ'TestOpaqueSpecification.test_no_anchors  s(     M((33E:;rAAAr   r   N)r   r   r   r   ZobjectZTHINGSrA   markparametrizer/  r1  r2  r   r   r   r   r   r,  r,    s     endBvx8F[[Wf-9 .9 [[Wf-G .G [[Wf-B .Br   r,  clsc                 s    \         P                  ! \        R R7      ;_uu_ 4         ! R RV 4      pRRR4       R#   + '       g   i     R# ; i)z(?i)subclassingr   c                   s    ] tR tRtRtR# )"test_nonsubclassable.<locals>.Boomi   r   N)r   r   r   r   r   r   r   r   Boomr6     s    r   r7  N)rA   rB   r   )r5  r7  r   r   test_nonsubclassabler8    s1    
 
y(9	:	:	3 	 
;	:	:	:s	   ;A	)Zrpdsr    rA   Zreferencingr   r   r   r   r   Zreferencing.jsonschemar   r7   r'   r(   r   r   r  r,  r3  r4  r   r8  r   r   r   <module>r9     s      M M .	
-A(M^> ^>Bt
 t
nF: F:R7
 7
tB B8 	Xx
0K0KL	r   