
    i:
              	           d dl Z d dlZd dlmZ d dlZd dlZd dlZdedee   fdZ		 	 ddedede
defd	Zd
ee   defdZy)    N)Pathpy_filereturnc                    t        |       }|j                  d      }t        j                  |t	        |            }t        j
                  |      D cg c])  }t        |t        j                        s|j                  + c}S c c}w )Nzutf-8)encoding)filename)	r   	read_textastparsestrwalk
isinstanceClassDefname)r   	file_pathsourcetreenodes        M/Users/bowang/.openclaw/workspace/ChatDev/functions/function_calling/video.py_get_class_namesr      sc    WI  ' 2F99Vc)n5D"%((4.S.$JtS\\4RDII.SSSs   B5Bscript_pathqualitypreviewc                 6   t        j                         dz  }t        d|       t        j                  |d       t        |       j                         } | j                         st        | d      t        t        |             d   }t        j                  ddd	| g}|r|j                  d
d       |j                  t        |       |g       t        ddj                  |             	 t        j                   |ddd       d }t        j                         dz  dz  j*                  j-                  d      D ]  }	|	j.                  | dk(  s|	} n | j*                  |j.                  z  }
t        d|
        t        j0                  ||
       t        j                  |d       |
S # t        j"                  $ r\}t        d       t        d|j$                         t        d|j&                         d| d|  d|j&                   }t)        |      d }~ww xY w)NmediazClearing media folder:T)ignore_errorsz does not exist.r   z-mmanimz-pq   z-pzRunning: )checkcapture_outputtextzManim rendering failed:zstdout:zstderr:zError rendering z from z: videosz*.mp4z.mp4zCopying video to )r   cwdprintshutilrmtreeresolveexistsFileNotFoundErrorr   r   sys
executableinsertextendjoin
subprocessrunCalledProcessErrorstdoutstderrRuntimeErrorparentrglobr   copy2)r   r   r   
output_dir
scene_namecmde
error_info
video_filemp4_filetarget_paths              r   render_manimrA      s   
 g%J	
"J/
MM*D1{#++-K-?@@!#k"23A6Jg
gYC
 

1dJJK *-.	*chhsm$'s$t$G JXXZ')H4<<BB7K==zl$//!J L
 $$z6K	k]
+,
LL[)
MM*D1' (( ''(i"i"'
|6+b
S
:&&'s   *F) )H<AHHvideo_pathsc                    | st        d      | D cg c]  }t        |      j                          } }| d   j                  dz  }t	        j
                  ddd      5 }| D ]%  }|j                  d|j                          d	       ' |j                  }d d d        d
ddddddddt        |      g}t        j                  |d       |S c c}w # 1 sw Y   =xY w)NzNo video files to concatenater   zcombined_video.mp4wz.txtF)modesuffixdeletezfile 'z'
ffmpegz-yz-fconcatz-safe0z-iz-ccopyT)r    )
ValueErrorr   r(   r6   tempfileNamedTemporaryFilewriteas_posixr   r   r0   r1   )rB   poutput_pathf	list_filer;   s         r   concat_videosrU   <   s    899.9:k47??$kK:a.''*>>K		$	$#fU	KqAGGfQZZ\N#./ FF	 
L 	hifKC NN3d#' ; 
L	Ks    C7CC)hT)r&   r+   pathlibr   r
   r0   rM   r   listr   boolrA   rU        r   <module>r\      sz     
  
  Tc Td3i T ,,, , 
	,\tDz d r[   