
    dh                         S SK r S SKJrJr  S SKJr  S SKJr  S SKJ	r	J
r
  S SKJrJrJr   " S S\	5      r " S	 S
\\5      rg)    N)OptionalType)CallbackManagerForToolRun)BaseTool)	BaseModelField)INVALID_PATH_TEMPLATEBaseFileToolMixinFileValidationErrorc                   J    \ rS rSr% Sr\" SSS9r\\S'   \" SSS9r	\\S'   S	r
g
)FileCopyInput   zInput for CopyFileTool..zPath of the file to copy)descriptionsource_pathzPath to save the copied filedestination_path N)__name__
__module____qualname____firstlineno____doc__r   r   str__annotations__r   __static_attributes__r       f/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/tools/file_management/copy.pyr   r      s*    !S.HIKI!#3QRcRr   r   c            	       p    \ rS rSr% SrSr\\S'   \r	\
\   \S'   Sr\\S'    SS	\S
\S\\   S\4S jjrSrg)CopyFileTool   zTool that copies a file.	copy_filenameargs_schemaz/Create a copy of a file in a specified locationr   Nr   r   run_managerreturnc                 f    U R                  U5      n U R                  U5      n [        R
                  " XESS9  SU SU S3$ ! [         a    [        R                  " SUS9s $ f = f! [         a    [        R                  " SUS9s $ f = f! [         a  nS	[        U5      -   s S nA$ S nAff = f)
Nr   )arg_namevaluer   F)follow_symlinkszFile copied successfully from z to .zError: )get_relative_pathr   r	   formatshutilcopy2	Exceptionr   )selfr   r   r#   source_path_destination_path_es          r   _runCopyFileTool._run   s    	11+>L
	 $ 6 67G H
	&LL%P3K=EUDVVWXX # 	(//&k 	 # 	(//+3C 	  	&s1v%%	&s?   A A) B A&%A&)B
B
B0B+%B0+B0r   )N)r   r   r   r   r   r!   r   r   r   r"   r   r   r   r   r   r3   r   r   r   r   r   r      sc    "D##0Ki0HKH <@	&& & 78	&
 
& &r   r   )r,   typingr   r   langchain_core.callbacksr   langchain_core.toolsr   pydanticr   r   /langchain_community.tools.file_management.utilsr	   r
   r   r   r   r   r   r   <module>r:      s;     ! > ) % SI S&$h &r   