
    jKj                         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 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)rebind_registry)rebind_resolved)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     j/Users/ahmed/devFolder/Ultron/claude-voice/.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                  |       n|\  }	}
| j
                  j                  }|
j
                  j                  |ur>t        t        t           t        |
|            }
| j                  j                  ||	|
       |
}|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   replacer
   r   rangelen_get_subnodestore_intermediate)r"   r$   r%   parts_tuplecached_prefixroot_resolved_schemar   current_nodecurrent_resolverstartcached_resolvedcurrent_registryindexpartresolved_schemas                  r   r(   z-CachedPathResolver._resolve_with_prefix_cache)   s    El))<<[I #-#;#;$  HZ02FGH
,@,I,IJL1E1N1NE''1%2"E?  $}}66''119II"&Z(#O5EF# !!))+uoN&H#,,L#HV$4h6G6GH5#k"23Eu%D%22<FL(66 O HZ0/BH!!(( +L 00 4$ r   registryc                     || j                   j                  u ryt        t        t           t        | j                   |            | _         y)NFT)r   r*   r   r
   r   r   )r"   rB   s     r   r)   z!CachedPathResolver._sync_registrya   s?    t}}...
 VodmmXF
 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



 	"

 
	

66 	"6 
*		6p
x
'; 
 
r   r   N)collections.abcr   dataclassesr   typingr   pathable.typesr   r   referencingr   referencing._corer	   r
   #jsonschema_path._referencing_compatr   r   jsonschema_path.cachesr   jsonschema_path.nodesr   jsonschema_path.typingr   r   r   r   r   r   <module>rN      sV    $ !  $ %   & & ? ? 6 , ) $  
S Sr   