
    x
hS
                    ~    d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 g dZddZddZddZddZddZdS )    )annotationsN)BinaryIO)urlparse)	constants)BKiBMiBGiBTiBPiBEiBsizeintreturntuple[float, str]c                    t          |           }d}|dk    r@|t          t                    k     r(|dz  }|dz  }|dk    r|t          t                    k     (|t          |         fS )z=
    Format byte size into IEC prefixes, B, KiB, MiB ...
    r   g      @   )floatlenUNITS)r   sis      O/var/www/html/mejor/venv/lib/python3.11/site-packages/transmission_rpc/utils.pyformat_sizer      sf     	dA	A
v++!c%jj..	Q	V v++!c%jj.. eAh;    c                4    t          |           \  }}|| dfS )zP
    Format bytes per second speed into IEC prefixes, B/s, KiB/s, MiB/s ...
    z/s)r   )r   r   units      r   format_speedr      s%     D!!IQkkk>r   deltadatetime.timedeltastrc                    t          | j        d          \  }}t          |d          \  }}| j        dd|dd|dd|dS )zL
    Format datetime.timedelta into <days> <hours>:<minutes>:<seconds>.
    <   d 02d:)divmodsecondsdays)r   minutesr)   hourss       r   format_timedeltar-   %   s_     emR00GWGR((NE7jDDDUDDDDDDwDDDDr   rpc_version	list[str]c                    g }t           j                                        D ]?\  }}d}| |j        k     rd}|j        |j        | k    rd}|r|                    |           @|S )zQ
    Get torrent arguments for method in specified Transmission RPC version.
    TF)r   TORRENT_GET_ARGSitemsadded_versionremoved_versionappend)r.   
accessibleargumentinfovalid_versions        r   get_torrent_argumentsr:   .   s     J#4::<< ( ($+++!M+0D0S0S!M 	(h'''r   torrent%BinaryIO | str | bytes | pathlib.Path
str | Nonec                F   t          | t                    r3t          |           }|j        dv rdS |j        dv rt	          d          nt          | t
          j                  r9t          j        | 	                                          
                    d          S t          | t                    r't          j        |           
                    d          S t          | d          r9t          j        |                                           
                    d          S dS )zL
    if torrent should be encoded with base64, return a non-None value.
    )httpshttpmagnetN)filez+support for `file://` URL has been removed.zutf-8read)
isinstancer!   r   scheme
ValueErrorpathlibPathbase64	b64encode
read_bytesdecodebyteshasattrrC   )r;   
parsed_uris     r   _try_read_torrentrP   >   s   
 '3 @g&&
 ;;;4((JKKK )	GW\	*	* @ 2 2 4 455<<WEEE	GU	#	# @((//888	&	!	! @//66w???4r   )r   r   r   r   )r   r    r   r!   )r.   r   r   r/   )r;   r<   r   r=   )
__future__r   rI   datetimerG   typingr   urllib.parser   transmission_rpcr   r   r   r   r-   r:   rP    r   r   <module>rW      s    # " " " " "          ! ! ! ! ! ! & & & & & &777	 	 	 	   E E E E         r   