o
    iq
                     @   s   d dl mZ d dlmZ d dlmZ d dlZd dlZejj	dkr"eZG dd de
Zdd	 Zejj	d
kr?G dd deeZnd dlmZ dd Zdd Zdd Zdd Zdd ZdS )    )unicode_literals)str)
basestringN   c                   @   s   e Zd Zdd Zdd ZdS )BaseBaseStringc                 C   s   t |ttfS N)
isinstancebytesr   )clsinstance r   \/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/ffmpeg/_utils.py__instancecheck__   s   z BaseBaseString.__instancecheck__c                 C   s   t r   )NotImplemented)r
   thingr   r   r   __subclasshook__   s   zBaseBaseString.__subclasshook__N)__name__
__module____qualname__r   r   r   r   r   r   r      s    r   c                    s"   G  fddd}|dd i S )Nc                       s&   e Zd ZejZejZ fddZdS )z!with_metaclass.<locals>.metaclassc                    s$   |d u rt | |d|S | |S )Nr   )type__new__)r
   name
this_basesdbasesmetar   r   r      s   z)with_metaclass.<locals>.metaclass.__new__N)r   r   r   r   __call____init__r   r   r   r   r   	metaclass   s    r   temporary_classr   )r   r   r   r   r   r   with_metaclass   s   	r!      c                   @   s   e Zd ZdS )r   N)r   r   r   r   r   r   r   r   &   s    r   c                    s   t  trt }|S t  trdddd  D }|S t  tr: fddt D }dd| d }|S t }|S )zHack around python `repr` to deterministically represent dictionaries.

    This is able to represent more things than json.dumps, since it does not require things to be JSON serializable
    (e.g. datetimes).
    z[{}]z, c                 S   s   g | ]}t |qS r   )_recursive_repr).0xr   r   r   
<listcomp>8   s    z#_recursive_repr.<locals>.<listcomp>c                    s$   g | ]}d  t|t | qS )z{}: {})formatr#   )r$   kitemr   r   r&   :   s    {})	r   r   r   listr'   joindictsortedrepr)r*   resultZkv_pairsr   r)   r   r#   /   s   

	

r#   c                 C   s   t | d}t| S )Nzutf-8)r#   encodehashlibmd5	hexdigest)r*   repr_r   r   r   get_hashD   s   r8   c                 C   s   t t| ddS )N   )base)intr8   r)   r   r   r   get_hash_intI   s   r<   c                 C   sP   t | } tt|}d|v r|d |dd |D ]
}| |d| } q| S )z3Helper function to escape uncomfortable characters.\r   )r   r-   setremoveinsertreplace)textcharschr   r   r   escape_charsM   s   
rE   c                 C   sJ   g }t |  D ]}| | }|d| |dur"|d| q|S )z<Helper function to build command line arguments out of dict.z-{}Nz{})r0   keysappendr'   )kwargsargsr(   vr   r   r   convert_kwargs_to_cmd_line_argsY   s   rK   )
__future__r   builtinsr   Zpast.builtinsr   r4   sysversion_infomajorr   r   r!   r#   r8   r<   rE   rK   r   r   r   r   <module>   s"    	