
    }
i;*                    B   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZmZmZmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZmZmZmZmZmZ  e  edd                    Z!d7dZ"d8dZ#d9dZ$d:dZ%ddddddd;d'Z&	 d<d=d+Z'	 d<d>d-Z(d?d1Z)d:d2Z*d3Z+d@d6Z,dS )A    )annotations)ChainMap)MappingSequence)getenv)Anycast)AsyncCallbackManagerBaseCallbackManagerCallbackManager	Callbacks)RunnableConfig)CONFIG_KEYSCOPIABLE_KEYSvar_child_runnable_config)CheckpointMetadata)CONFCONFIG_KEY_CHECKPOINT_IDCONFIG_KEY_CHECKPOINT_MAPCONFIG_KEY_CHECKPOINT_NSNS_ENDNS_SEP!LANGGRAPH_DEFAULT_RECURSION_LIMIT10000nsstrreturnc                n    t          j        d |                     t                     D                       S )zRemove task IDs from checkpoint namespace.

    Args:
        ns: The checkpoint namespace with task IDs.

    Returns:
        str: The checkpoint namespace without task IDs.
    c              3  ~   K   | ]8}|                                 |                    t                    d          V  9dS )r   N)isdigitsplitr   ).0parts     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/_internal/_config.py	<genexpr>z'recast_checkpoint_ns.<locals>.<genexpr>+   sT        "&$,,..

61         )r   joinr!   )r   s    r$   recast_checkpoint_nsr(   "   s@     ;  *,((6*:*:     r&   configRunnableConfig | Nonepatchdict[str, Any]r   c                |    | 	t           |iS t           | vri | t           |iS i | t           i | t                    |iS N)r   )r)   r+   s     r$   patch_configurabler/   0   sW     ~e}	V		&&&$&&&:&:$ 96$< 95 9:::r&   metadataCheckpointMetadata | Nonec                    | | S |r|                     d          nd x}r@| t                   }t          | t          i ||t                   |t
                   ii          S | S )Nparents)getr   r/   r   r   r   )r)   r0   r3   confs       r$   patch_checkpoint_mapr6   ;   s     ~08BX\\),,,d	C d|!) ,,12D9Q4R, ,
 
 	
 r&   configsc                 r   i }| D ]}||                                 D ]\  }}|s	|dk    r'|                    |          x}r
i ||||<   0|||<   6|dk    r'|                    |          x}r
g ||||<   ]|||<   c|t          k    r'|                    |          x}r
i ||||<   |||<   |dk    r6|                    d          }t          |t                    ro||                                |d<   t          |t                    r	||z   |d<   |                                }|D ]}|                    |d           ||d<   5t          |t                    r||                                |d<   et          |t                    r7|                                }|D ]}|                    |d           ||d<   |                    |          |d<   t          |dk    r|d         t          k    r|d         |d<   ||         ||<   t          |vr
i |t          <   |S )zMerge multiple configs into one.

    Args:
        *configs: The configs to merge.

    Returns:
        RunnableConfig: The merged config.
    Nr0   tags	callbacksT)inheritrecursion_limit)itemsr4   r   
isinstancelistcopyadd_handlerr   mergeNotImplementedErrorDEFAULT_RECURSION_LIMIT)	r7   baser)   keyvalue
base_valuebase_callbacksmngrcallbacks	            r$   merge_configsrL   O   s    D  6( 6(> ,,.. 3	( 3	(JC j  !%#.: & 7: 7 7DII %DII!%#.: & 5* 5u 5DII %DII!%#.: & 7: 7 7DII %DII##!%+!6!6 eT** .%-,1JJLL[))#ND99 1,:U,B[))  .2244(- E EH ,,Xt,DDDD,0[))':;; .%-,1JJLL[))#ND99 H$zz||(6 E EH ,,Xt,DDDD,0[)) -;,@,@,G,G[))--)))+,0GGG.45F.GD*+"3KS		g3	(h 4T
Kr&   N)r:   r<   max_concurrencyrun_nameconfigurabler:   r   r<   
int | NonerM   rN   
str | NonerO   dict[str, Any] | Nonec                   | |                                  ni } ||| d<   d| v r| d= d| v r| d= ||| d<   ||| d<   ||| d<   |'i |                     t          i           || t          <   | S )a  Patch a config with new values.

    Args:
        config: The config to patch.
        callbacks: The callbacks to set.
        recursion_limit: The recursion limit to set.
        max_concurrency: The max number of concurrent steps to run, which also applies to parallelized steps.
        run_name: The run name to set.
        configurable: The configurable to set.

    Returns:
        RunnableConfig: The patched config.
    Nr:   rN   run_idr<   rM   )r@   r4   r   )r)   r:   r<   rM   rN   rO   s         r$   patch_configrU      s    , %0V[[]]]bF ({z"vx "$3 !"$3 !%z?&**T2..?,?tMr&   r9   Sequence[str] | Noner   c                   ddl m} |                     d          }|	|g ||}n|t          |          }|                     d          x}rUt	          ||          rE|r|                    |           |                     d          x}r|                    |           |S  |j        |                     d          ||                     d                    S )zGet a callback manager for a config.

    Args:
        config: The config.

    Returns:
        CallbackManager: The callback manager.
    r   )r   r9   Nr:   r0   inheritable_callbacksinheritable_tagsinheritable_metadata) langchain_core.callbacks.managerr   r4   r?   r>   add_tagsadd_metadata	configure)r)   r9   r   all_tagsr:   r0   s         r$   get_callback_manager_for_configra      s    A@@@@@ zz&!!H 0%X%%		::ZZ,,,	 
*?3 3 
  	)x(((zz*---8 	-""8,,, )("(**["9"9%!'J!7!7
 
 
 	
r&   r
   c                   ddl m} |                     d          }|	|g ||}n|t          |          }|                     d          x}rUt	          ||          rE|r|                    |           |                     d          x}r|                    |           |S  |j        |                     d          ||                     d                    S )zGet an async callback manager for a config.

    Args:
        config: The config.

    Returns:
        AsyncCallbackManager: The async callback manager.
    r   )r
   r9   Nr:   r0   rX   )r\   r
   r4   r?   r>   r]   r^   r_   )r)   r9   r
   r`   r:   r0   s         r$   %get_async_callback_manager_for_configrc      s    FEEEEE zz&!!H 0%X%%		::ZZ,,,	 
*'3 3 
  	)x(((zz*---8 	-""8,,, .#-"(**["9"9%!'J!7!7
 
 
 	
r&   rG   r   boolc                t    t          | t          t          t          f          rt	          |           dk    S | d uS )Nr   )r>   r?   tupledictlen)rG   s    r$   _is_not_emptyri     s6    %$t,-- !5zzA~D  r&   c                    t          g t                      dt          i           }t          j                    x}r1|                    d |                                D                        | D ]}||                                D ]X\  }}t          |          rD|t          v r;|t          k    r+t          t          |                                          ||<   S|||<   Y|                                D ]-\  }}t          |          r|t          vr||t                   |<   .|d         }|t                                                   D ]\  }}t          |||          r|||<   |S )zReturn a config with all keys, merging any provided configs.

    Args:
        *configs: Configs to merge before ensuring defaults.

    Returns:
        RunnableConfig: The merged and ensured config.
    N)r9   r0   r:   r<   rO   c                r    i | ]4\  }}t          |          ||t          v r|                                n|5S  )ri   r   r@   )r"   kvs      r$   
<dictcomp>z!ensure_config.<locals>.<dictcomp>%  sR       Aq ##qM11166888q  r&   r0   )r   r   rD   r   r4   updater=   ri   r   r   r	   rg   r@   _exclude_as_metadata)	r7   empty
var_configr)   rm   rn   _empty_metadatarF   rG   s	            r$   ensure_configru     s    /  E /2444z 
 &,,..  	
 	
 	
  # #>LLNN 	! 	!DAqQ !A$4$499#D!}}1133E!HH E!HLLNN 	# 	#DAqQ #A[$8$8!"dA	# J'ODk'')) % %
UUO<< 	$Lr&   )rF   tokensecretpasswordauthrF   Mapping[str, Any]c                    |                                  |                     d          pLt          |t          t          t
          t          f           p#| |v pt          fdt          D                       S )N__c              3      K   | ]}|v V  	d S r.   rl   )r"   substr	key_lowers     r$   r%   z'_exclude_as_metadata.<locals>.<genexpr>H  s(      77vv"777777r&   )	casefold
startswithr>   r   intfloatrd   any_OMIT)rF   rG   r0   r   s      @r$   rq   rq   B  su    It 	8%#sE4!8999	8(?	8 777777777	r&   )r   r   r   r   )r)   r*   r+   r,   r   r   )r)   r*   r0   r1   r   r   )r7   r*   r   r   )r)   r*   r:   r   r<   rP   rM   rP   rN   rQ   rO   rR   r   r   r.   )r)   r   r9   rV   r   r   )r)   r   r9   rV   r   r
   )rG   r   r   rd   )rF   r   rG   r   r0   rz   r   rd   )-
__future__r   collectionsr   collections.abcr   r   osr   typingr   r	   langchain_core.callbacksr
   r   r   r   langchain_core.runnablesr   langchain_core.runnables.configr   r   r   langgraph.checkpoint.baser   langgraph._internal._constantsr   r   r   r   r   r   r   rD   r(   r/   r6   rL   rU   ra   rc   ri   ru   r   rq   rl   r&   r$   <module>r      s   " " " " " "             - - - - - - - -                          4 3 3 3 3 3         
 9 8 8 8 8 8                #ff%H'RRSS    ; ; ; ;   (E E E EV  "&"&*.' ' ' ' ' 'V :>"
 "
 "
 "
 "
N "&#
 #
 #
 #
 #
L! ! ! !) ) ) )X 	7     r&   