o
    rrit                     @   s   d Z ddlZddlmZ ddlZddlZddlZddlZddl	Z	ddl
mZ ddlmZmZ eedZdd	 Zd
d ZdefddZdefddZdS )z|
Allow to export and import XP hyper-params using base64 encoded string.
This allows easy sharing through paste, mails etc.
    N)partial   )DecoratedMain)fatal
simple_logzExport:c                 C   s,   t t|  }t|}t|	 S )N)
zlibcompressjsondumpsencodebase64	b64encodetextwrapfilldecode)valuebitsb64 r   >/home/ubuntu/.local/lib/python3.10/site-packages/dora/share.pydump   s   
r   c                 C   s<   d dd | dD } t| }t|}t| S )N c                 S   s   g | ]}|  qS r   )strip).0liner   r   r   
<listcomp>!   s    zload.<locals>.<listcomp>
)	joinsplitr   	b64decoder   
decompressr	   loadsr   )r   r   jsonedr   r   r   load    s   

r#   mainc                 C   s   g }| j D ]/}z||}W n ty- } ztd| d|jd   W Y d }~nd }~ww ||j qt  tt| t  t  d S )NzError loading XP : r   )	sigsget_xp_from_sigRuntimeErrorr   argsappendargvprintr   )r)   r$   all_argvsigxperrorr   r   r   export_action'   s   
&
r1   c                 C   s   g }t jD ]}| }|s|r n|r|| qtd|}|D ]}||}|| ||}t	d|j
 d|  q"d S )Nr   zImported XP r%   )sysstdinr   r*   r#   r   get_xpinit_xpget_namelogr.   )r)   r$   bufferr   r-   r+   r/   namer   r   r   import_action5   s   




r:   )__doc__r   	functoolsr   r	   r2   r   typingtpr   r$   r   r7   r   r   r   r#   r1   r:   r   r   r   r   <module>   s   
