U
    g	                     @   s   d dl Z d dlZd dlm  mZ ddlmZ eed [G dd deZ	G dd dej
Zd	d
 Ze jdkrte jne jZdd Zdd Zedkrejdk rdd Zne jjZedkrdd Zne jjZdd ZdS )    N   )passthrough_modulez._deprecatedc                   @   s   e Zd ZdS )compat_HTMLParseErrorN)__name__
__module____qualname__ r   r   :/tmp/pip-unpacked-wheel-q5ljy6pj/yt_dlp/compat/__init__.pyr      s   r   c                   @   s   e Zd Zdd ZdS )_TreeBuilderc                 C   s   d S Nr   )selfnameZpubidsystemr   r   r	   doctype   s    z_TreeBuilder.doctypeN)r   r   r   r   r   r   r   r	   r
      s   r
   c                 C   s   t j| t jt ddS )N)target)parser)etreeXML	XMLParserr
   )textr   r   r	   compat_etree_fromstring   s    r   javac                 C   s   ddl m} || S )N   )shell_quote)utilsr   )sr   r   r   r	   compat_shlex_quote   s    r   c                 C   s   t | tr| S t| S r   )
isinstanceintord)cr   r   r	   
compat_ord#   s    r!   nt)      c                 C   s,   t j| r t jt | } q t j| S r   )ospathislinkabspathreadlinkrealpath)r&   r   r   r	   compat_realpath*   s    r+   )r"   Zcec                 C   s   t jd}|st j| S | ds*| S | dddd}|dk rNt| }|dkrtt j	t j
|| d| n|}|| |d   S )NHOME~\/r   r   )r%   environgetr&   
expanduser
startswithreplacefindlenjoindirname)r&   r,   iuserhomer   r   r	   compat_expanduser6   s    
*r;   c                 C   sR   ddl m} ddlm} ||  | j|  || j| jt	| drJd| j
inddS )z.Convert urllib Request to a networking Requestr   )Request)HTTPHeaderDicttimeoutN)datamethodheaders
extensions)Z
networkingr<   Zutils.networkingr=   get_full_urlr?   
get_methodrA   unredirected_hdrshasattrr>   )urllib_requestr<   r=   r   r   r	   urllib_req_to_reqE   s      rH   )r%   sysxml.etree.ElementTreer   ElementTreeZcompat_utilsr   r   
ValueErrorr   TreeBuilderr
   r   r   _nameZcompat_os_namer   r!   version_infor+   r&   r*   r;   r2   rH   r   r   r   r	   <module>   s$   


