o
    i                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlm  mZ d dl	m
Z
mZ dZdZdZee d Zd add Zd	d
 Zdd Zdd Zdd Zdd ZdddZdd ZdS )    N)ensure_bytesensure_stringGMTz%Y-%m-%dT%H:%M:%SZz%a, %d %b %Y %H:%M:%S GMT  c                  C   sb   t  j} tt d }t}td7 atd}dt| |||f }t	
 }||d | S )Nr      @   z%d-%d-%d-%d-%dutf-8)	threadingcurrent_threadidentinttime_seqIdrandomgetrandbits_process_start_timehashlibmd5updateencode	hexdigest)	thread_idcurrent_timeseqrandNummsgr    r   X/home/ubuntu/.local/lib/python3.10/site-packages/aliyunsdkcore/utils/parameter_helper.pyget_uuid%   s   

r   c                   C      t tt  S N)r   strftimeFORMAT_ISO_8601gmtimer   r   r   r   get_iso_8061_date2      r$   c                   C   r   r    )r   r!   FORMAT_RFC_2616r#   r   r   r   r   get_rfc_2616_date6   r%   r'   c                 C   s$   t | }t| }tt|S r    )r   r   r   digestr   base64standard_b64encode)contentcontent_bytes	md5_bytesr   r   r   md5_sum:   s   r.   c                 C   s\   d}| j }| dkrt| |d | |D ]}|dkr't||}t||| |d }qd S )Nr   r   )tag__len___get_xml_factoryEleTree
SubElement)elemvalparent_elementitag_nameitemsub_elemr   r   r   _get_xml_by_list@   s   
r;   c                 C   s*   |D ]}t | |}t||| |  qd S r    )r2   r3   r1   )r4   r5   kr:   r   r   r   _get_xml_by_dictM   s   r=   c                 C   sb   |d u rd S t |trt| | d S t |tttfr*|d u r"tdt| || d S t|| _	d S )Nr6   )

isinstancedictr=   listtupleset
ValueErrorr;   strtext)r4   r5   r6   r   r   r   r1   S   s   
r1   c                 C   s^   | d u rd S |   dkrdS d}| D ]}t|}t|| |  |tjt|dd7 }q|S )Nr    r   )encoding)r0   r2   Elementr1   bytesdecodetostring)dic
result_xmlr<   r4   r   r   r   to_xmla   s   
rN   r    )r   r)   r   r   r	   xml.etree.cElementTreeetreecElementTreer2   aliyunsdkcore.compatr   r   	TIME_ZONEr"   r&   r   r   r   r   r$   r'   r.   r;   r=   r1   rN   r   r   r   r   <module>   s(   
