
    	h                        d Z ddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
 ddlmZ ddlmZ 	 ddlZdan# e$ r daY nw xY w ej        e          Zdefd	Zdeee
eef         f         fd
Z ej        d          defd            Z ej        d          de	e         fd            Z ej        d          de	e         fd            Z ej        d          de	e         fd            Z ej        d          de	e         fd            Z ej        d          de	ee                  fd            Z  ej        d          defd            Z!defdZ" ej        d          defd            Z# ej        d          de	e         fd            Z$ ej        d          deeef         fd            Z%dS )zEnvironment information.    N)DictListOptionalUnion)get_docker_compose_command)exec_gitTFreturnc                  >    i t                      t                      S )z/Get the runtime information as well as metrics.)get_runtime_environmentget_system_metrics     g/var/www/html/web-builder-api.evdpl.com/venv/lib/python3.11/site-packages/langsmith/env/_runtime_env.pyget_runtime_and_metricsr      s     @%''@+=+?+?@@r   c                     t           si S 	 t          j        t          j                              } i }|                                 5  |                                 }t          |                                           |d<   dt          |j	                  i|d<   | 
                                }|                                 }|j        |j        dt          |j                  t          |j                  d|                                 d|d<   ddd           n# 1 swxY w Y   |S # t"          $ r)}d	a t$                              d
|           i cY d}~S d}~ww xY w)z&Get CPU and other performance metrics.thread_countrssmem)sysuser)	voluntaryinvoluntary)timectx_switchespercentcpuNFz Failed to get system metrics: %s)_PSUTIL_AVAILABLEpsutilProcessosgetpidoneshotmemory_infofloatnum_threadsr   num_ctx_switches	cpu_timessystemr   r   r   cpu_percent	Exceptionloggerdebug)processmetricsmem_infor   r'   es         r   r   r      s     	.--13__ 	 	**,,H&+G,?,?,A,A&B&BGN#uX\**GEN #3355L))++I %+%N 
 "'|'=!>!>#()A#B#B! ! #..00
 
GEN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	&     "7;;;						sB   ;D( C	DD( DD( "D#D( (
E2EEE   )maxsizec            
          ddl m}  t                      }d| dt          j                    dt          j                    t          j                    t                      t                      d	|S )&Get information about the environment.r   )__version__zlangsmith-py	langsmithpython)	sdksdk_versionlibraryplatformruntimepy_implementationruntime_versionlangchain_versionlangchain_core_version)r6   r5   get_release_shasr;   python_implementationpython_versionget_langchain_environmentget_langchain_core_version)r5   shass     r   r   r   A   s|     &%%%%%D"%''%;==#244688"<">">   r   c                  *    	 dd l } | j        S #  Y d S xY wNr   )	langchainr5   )rI   s    r   rD   rD   V   s,    $$tts   
 c                  <    	 dd l } | j        S # t          $ r Y d S w xY wrH   )langchain_corer5   ImportError)rK   s    r   rE   rE   `   s>    ))   tts   
 
c                      dd l } 	  | j        ddg                              d                                          }n# t          $ r d}Y n Y d S xY w|S )Nr   docker	--versionutf-8unknown
subprocesscheck_outputdecodestripFileNotFoundError)rS   docker_versions     r   get_docker_versionrY   j   s|    #J#X{$;<<CCGLLRRTT 	  # # #"tts   7> AAc                      	 t          j        ddg                              d                                          } n# t          $ r d} Y n Y d S xY w| S )Nzdocker-composerO   rP   rQ   rR   )docker_compose_versions    r   get_docker_compose_versionr\   y   sm    	#%5{$CDDVG__UWW 	
  + + +!*tt!!s   ;> AAc                  f    	 t                      } n # t          $ r}d| g} Y d }~nd }~w Y d S xY w| S )NzNOT INSTALLED: )r   
ValueError)compose_commandr0   s     r   _get_compose_commandr`      sZ    466 2 2 20Q001tts    
.&.c                      t                      } t                      | d                    |           ndt                      dS )r4   N )rX   docker_compose_commandr[   )r`   rY   joinr\   )r_   s    r   get_docker_environmentre      sI     +,,O,..)8)DCHH_%%%$"<">">  r   c                     d t           j                                        D             } t          |           D ]N}d|                                v r6| |         }|dd         dt          |          dz
  z  z   |dd         z   | |<   O| S )-Retrieve the langchain environment variables.c                 D    i | ]\  }}|                     d           ||S )
LANGCHAIN_)
startswith).0kvs      r   
<dictcomp>z*get_langchain_env_vars.<locals>.<dictcomp>   s/    RRRAq||L7Q7QR1RRRr   keyN   *   )r    environitemslistlowerlen)env_varsro   rm   s      r   get_langchain_env_varsrz      s    RR!1!1!3!3RRRHH~~ @ @CIIKKAbqbEC3q66A:$66233?HSMOr   c                      h dfdt           j                                        D             } |                     dd          }|r|| d<   nt	                      x}r|| d<   | S )rg   >   LANGCHAIN_API_KEYLANGCHAIN_PROJECTLANGCHAIN_SESSIONLANGCHAIN_ENDPOINTLANGCHAIN_TRACING_V2LANGSMITH_RUNS_ENDPOINTSc                     i | ]x\  }}|                     d           s|                     d          rI|vrEd|                                vr/d|                                vrd|                                vu||yS )ri   
LANGSMITH_ro   secrettoken)rj   rw   )rk   rl   rm   excludeds      r   rn   z2get_langchain_env_var_metadata.<locals>.<dictcomp>   s       AqLL&& +,,,|*D*D X""AGGII%%17799$$ 	
1 %$$r   LANGCHAIN_REVISION_IDNrevision_id)r    rt   ru   pop_get_default_revision_id)langchain_metadataenv_revision_iddefault_revision_idr   s      @r   get_langchain_env_var_metadatar      s      H   J$$&&   ),,-DdKKO @,;=)) 8 : :	:	 @,?=)r   c                  H    	 t          g d          S # t          $ r Y dS w xY w)z4Get the default revision ID based on `git describe`.)describez--tagsz--alwaysz--dirtyN)r   BaseExceptionr   r   r   r   r      s>    EEEFFF   tts    
!!c                  h    g d} i }| D ](}t           j                            |          }||||<   )|S )N)VERCEL_GIT_COMMIT_SHA!NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA
COMMIT_REFRENDER_GIT_COMMITCI_COMMIT_SHACIRCLE_SHA1CF_PAGES_COMMIT_SHAREACT_APP_GIT_SHASOURCE_VERSION
GITHUB_SHATRAVIS_COMMIT
GIT_COMMITBUILD_VCS_NUMBERbamboo_planRepository_revisionzBuild.SourceVersionBITBUCKET_COMMITDRONE_COMMIT_SHASEMAPHORE_GIT_SHABUILDKITE_COMMIT)r    rt   get)common_release_envsrF   envenv_vars       r   rA   rA      sR      * D"    *..%%DIKr   )&__doc__	functoolsloggingr    r;   rS   typingr   r   r   r   langsmith.utilsr   langsmith.env._gitr   r   r   rL   	getLogger__name__r+   dictr   strr$   r   	lru_cacher   rD   rE   rY   r\   r`   re   rz   r   r   rA   r   r   r   <module>r      s          				      . . . . . . . . . . . . 6 6 6 6 6 6 ' ' ' ' ' 'MMM   		8	$	$A A A A A
"DeE4K&8!89 " " " "J Q     ( Q8C=      QHSM      QHSM      Q"HSM " " "  " QhtCy1      Q	 	 	 	  	     Q     8 Q(3-      Q$sCx.       s   7 A A