
    '<i                         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 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 d dlmZ  ed       G d d             Z G d d      Zy)    )Sequence)	dataclass)cast)	LookupKey)
LookupNode)Registry)Resolved)Resolver)PrefixResolvedCache)
SchemaNode)SchemaT)frozenc                   (    e Zd ZU ee   ed<   eed<   y)ResolveResultresolvedregistry_changedN)__name__
__module____qualname__r	   r   __annotations__bool     /home/jay/workspace/.worktrees/task-2057-dev2/scripts/.codegraph-venv/lib/python3.12/site-packages/jsonschema_path/resolvers.pyr   r      s    z""r   r   c                   n    e Zd Zdee   fdZdedee   de	fdZ
dedee   dee   fdZdee   defd	Zy
)CachedPathResolverresolverc                 0    || _         t               | _        y )N)r   r   prefix_cache)selfr   s     r   __init__zCachedPathResolver.__init__   s     /1r   nodepartsreturnc                     | j                  ||      }| j                  |j                  j                        }t	        ||      S )N)r   r   )_resolve_with_prefix_cache_sync_registryr   	_registryr   )r    r"   r#   r   r   s        r   resolvezCachedPathResolver.resolve   sF    
 224?..x/@/@/J/JK-
 	
r   c                    t        |      }| j                  j                  |      }|{t        j                  || j
                        }t        t        t           |      }t        t        |j                        }|j
                  }d}	| j                  j                  |       n2|\  }	}|j                  }t        t        t           |j
                        }t        |	t        |            D ]  }
||
   }t        j                  ||      }t        j                  ||      }t        t        t           |      }|j                  |j
                  }}| j                  j!                  ||
|        |S )Nr   )tupler   longest_prefix_hitr   _resolve_noder   r   r	   r   contents	seed_rootr
   r   rangelen_get_subnodestore_intermediate)r    r"   r#   parts_tuplecached_prefixroot_resolved_schemar   current_nodecurrent_resolverstartindexpartresolved_schemas                r   r&   z-CachedPathResolver._resolve_with_prefix_cache'   s[    El))<<[I #-#;#;$  HZ02FGH
,@,I,IJL1E1N1NE''1+OE8#,,L#HV$4h6G6GH5#k"23 	Eu%D%22<FL(66 O HZ0/BH!!(( +L 00	$ r   registryc                     || j                   j                  u ry| j                   j                  | j                   j                  |      | _         | j                  j                          y)NF)r=   T)r   r(   _evolve	_base_urir   
invalidate)r    r=   s     r   r'   z!CachedPathResolver._sync_registryR   sY    t}}...--MM## . 
 	$$&r   N)r   r   r   r
   r   r!   r   r   r   r   r)   r	   r&   r   r   r'   r   r   r   r   r      s}    2&!1 2



 	"

 
	

)) 	") 
*		)V	x
'; 	 	r   r   N)collections.abcr   dataclassesr   typingr   pathable.typesr   r   referencingr   referencing._corer	   r
   jsonschema_path.cachesr   jsonschema_path.nodesr   jsonschema_path.typingr   r   r   r   r   r   <module>rK      sP    $ !  $ %   & & 6 , ) $  
E Er   