
    mBNj	                        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
mZ ej                  g eej                  e   z  f   Zej                  egej                  d   dz  f   Z G d d	e
      Zy)
    )annotations   )_typing)AsyncCooperativeLock)	AsyncUtil)AsyncBookmarkManager	BookmarksNc                  R     e Zd Z	 	 	 d	 	 	 	 	 	 	 d fdZ	 	 	 	 	 	 ddZddZ xZS )AsyncNeo4jBookmarkManagerc                    t         |           || _        || _        |st	               | _        nt	        |j                        | _        t               | _        y N)	super__init___bookmarks_supplier_bookmarks_consumerset
_bookmarks
raw_valuesr   _lock)selfinitial_bookmarksbookmarks_supplierbookmarks_consumer	__class__s       n/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/neo4j/_async/bookmark_manager.pyr   z"AsyncNeo4jBookmarkManager.__init__!   sI     	#5 #5  !eDO!"3">">?DO)+
    c                  K   |sy | j                   5  | j                  j                  |       | j                  j                  |       | j                  rt        j                  | j                        }d d d        | j                  r)t        j                  | j                         d {    y y # 1 sw Y   ?xY w7 wr   )	r   r   difference_updateupdater   r	   from_raw_valuesr   callback)r   previous_bookmarksnew_bookmarkscurr_bms_snapshots       r   update_bookmarksz*AsyncNeo4jBookmarkManager.update_bookmarks0   s     
 ZZOO--.@AOO""=1''$-$=$=doo$N!	 
 ##$$((*;   $ Zs)   C A"B247C +B>,C 2B;7C c                  K   | j                   5  t        | j                        }d d d        | j                  rBt	        j
                  | j                         d {   }j                  |j                         S # 1 sw Y   YxY w7 -wr   )r   r   r   r   r   r!   r   r   )r   bms	extra_bmss      r   get_bookmarksz'AsyncNeo4jBookmarkManager.get_bookmarksA   sg     ZZdoo&C ##'001I1IJJIJJy++,
 Z Ks'   BA=6BB	!B=BB)NNN)r   zBookmarks | Noner   zTBmSupplier | Noner   zTBmConsumer | NonereturnNone)r"   t.Collection[str]r#   r,   r*   r+   )r*   zset[str])__name__
__module____qualname__r   r%   r)   __classcell__)r   s   @r   r   r       s_     /31515	,+, /, /	,
 
,- ) 
	"r   r   )
__future__r    r   t_async_compat.concurrencyr   _async_compat.utilr   apir   r	   Callable	AwaitableTBmSupplierTBmConsumerr    r   r   <module>r<      sk   " #  < * jjYY)???@jj)akk$&7$&>>?' 4 'r   