
    lj                        d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlmZ g dZ	 	 dddZ G d de
          ZddZddZdS )    )annotationsN)	Generator)Path)run)	TypedDict)StrOrBytesPath)captureget_video_metadataget_dir_layoutcommandstr | list[str]cwdStrOrBytesPath | Nonecommand_input
str | Nonereturntuple[str, str, int]c                \    t          | ||ddd          }|j        |j        }}|||j        fS )NTzutf-8)r   inputcapture_outputtextencoding)r   stdoutstderr
returncode)r   r   r   pouterrs         O/home/agentuser/manim-venv/lib/python3.11/site-packages/manim/utils/commands.pyr	   r	      sH    
 		 	 	A xCQ\!!    c                  V    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   d
S )VideoMetadataintwidthheightstr	nb_framesdurationavg_frame_rate
codec_namepix_fmtN)__name__
__module____qualname____annotations__ r    r   r"   r"   %   sR         JJJKKKNNNMMMOOOLLLLLr    r"   path_to_videostr | os.PathLikec           	     "   t          j        t          |                     5 }|j        j        d         }|j        }|j        }|j        $t          |j        |j	        z            }|j
        }nDt          d |                    d          D                       }t          ||j        z            }|j        |j        t          |          |d|j         d|j         |j        j        |j        j        dcd d d            S # 1 swxY w Y   d S )Nr   c              3     K   | ]}d V  dS )   Nr0   ).0_s     r   	<genexpr>z%get_video_metadata.<locals>.<genexpr>8   s"      BB1QBBBBBBr    )videoz.6f/)r$   r%   r'   r(   r)   r*   r+   )avopenr&   streamsr9   codec_contextaverage_rater(   float	time_baseframessumdecode	base_rater$   r%   	numeratordenominatornamer+   )r1   	containerstreamctxtrater(   
num_framess          r   r
   r
   /   sU   	]##	$	$ 
	"(+#"?&V_v/??@@HJJBB	(8(8q(8(A(ABBBBBJZ&*::;;H ZkZ#))!%DD$2BDD .3+3
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   CDDDdirpathr   Generator[str, None, None]c              #     K   |                                  D ]P}|                                rt          |          E d{V  ,t          |                    |                     V  QdS )zRGet list of paths relative to dirpath of all files in dir and subdirs recursively.N)iterdiris_dirr   r&   relative_to)rN   r   s     r   r   r   F   s      __ * *88:: 	%a(((((((((!--(())))))	* *r    )NN)r   r   r   r   r   r   r   r   )r1   r2   r   r"   )rN   r   r   rO   )
__future__r   oscollections.abcr   pathlibr   
subprocessr   typingr   r;   manim.typingr   __all__r	   r"   r
   r   r0   r    r   <module>r\      s   " " " " " " 				 % % % % % %                   				 ' ' ' ' ' '   "& $" " " " ""    I   
 
 
 
.* * * * * *r    