o
    ÖtBh!$  ã                
   @   sô   d dl Z d dlZd dlZd dlZd dl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mZ dd„ ZG dd„ deƒZdd„ ZG d	d
„ d
eƒZe	 e¡G dd„ deƒƒZzejejdd… Ž  W dS  eyy Z zeeƒ W Y dZ[dS dZ[ww )é    N)ÚinputÚmapc                  K   sB   t j t ¡ ¡ tdtjj t	j
tfi ƒ}dd l}|| ƒ ¡  d S )Nzshopify r   )ÚsysÚpathÚappendÚosÚgetcwdÚtypeÚshopifyÚversionÚVERSIONÚcodeÚInteractiveConsoleÚobjectÚreadlineÚinteract)Ú	variablesÚconsoler   © r   úo/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/../../../bin/shopify_api.pyÚstart_interpreter   s   r   c                   @   s   e Zd ZdS )ÚConfigFileErrorN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r      s    r   c                    s   ‡ fdd„}|S )z-Decorator to add a usage string to a functionc                    s
   ˆ | _ | S ©N)Úusage)Úfunc©Úusage_stringr   r   Údecorate    s   zusage.<locals>.decorater   )r   r    r   r   r   r      s   r   c                   @   sB   e Zd Zej ejd ¡Zdd„ Z	d
dd„Z
edƒd
dd	„ƒZdS )Ú	TasksMetar   c                    sJ   t  | |||¡‰ t| ¡ ƒ}| d¡ ‡ fdd„}t||ƒ}t|ƒˆ _ˆ S )NÚhelpc                    s   |   d¡ ottˆ | ƒdƒS )NÚ_Ú__call__)Ú
startswithÚhasattrÚgetattr©Úitem©Úclsr   r   Úfilter_func0   s   z&TasksMeta.__new__.<locals>.filter_func)r	   Ú__new__ÚlistÚkeysr   ÚfilterÚsortedÚ_tasks)ÚmcsÚnameÚbasesÚ	new_attrsÚtasksr,   r   r*   r   r-   *   s   


zTasksMeta.__new__Nc                    sv   ˆ dv r
|   ¡  d S ˆ | jvr0t‡ fdd„| jƒ}t|ƒ}t|ƒdkr(|d ‰ ntj dˆ  ¡ t| ˆ ƒ}||Ž  d S )N)Nz-hz--helpc                    s
   |   ˆ ¡S r   )r%   r(   ©Útaskr   r   Ú<lambda>?   s   
 z$TasksMeta.run_task.<locals>.<lambda>é   r   zCould not find task "%s".
)	r"   r2   r0   r.   Úlenr   ÚstderrÚwriter'   )r+   r9   ÚargsÚmatchesÚlist_of_matchesÚ	task_funcr   r8   r   Úrun_task8   s   


zTasksMeta.run_taskzhelp [TASK]c           	      C   s  |du rpg }t | jƒD ]}t| |ƒ}d| j|jf }|j ¡ d }| ||f¡ qt 	dd„ |d¡}t
dƒ ttj dd¡ƒ}|D ],\}}t| |ƒ}|rYd	|d
|t|ƒ  |f }t|ƒ|kri|d|d … d }t
|ƒ qAdS t| |ƒ}t
dƒ t
d| j|jf ƒ t
dƒ t
|jƒ dS )z-Describe available tasks or one specific taskNz  %s %sr   c                 S   s   t | t|d ƒƒS ©Nr   )Úmaxr<   )Úmr)   r   r   r   r:   S   s    z TasksMeta.help.<locals>.<lambda>zTasks:ÚCOLUMNSéP   z
%s%s  # %sú é   z...zUsage:Ú )Úiterr2   r'   Ú_progr   Ú__doc__Ú
splitlinesr   Ú	functoolsÚreduceÚprintÚintr   ÚenvironÚgetr<   )	r+   r9   Ú
usage_listrB   r   ÚdescÚmax_lenÚcolsÚliner   r   r   r"   I   s.   


ú
zTasksMeta.helpr   )r   r   r   r   r   Úbasenamer   ÚargvrM   r-   rC   r   r"   r   r   r   r   r!   '   s    
r!   c                   @   s0  e Zd Zej ejd dd¡Zej ed¡ZdZ	e
edƒdd„ ƒƒZe
ed	ƒd
d„ ƒƒZe
edƒdd„ ƒƒZe
edƒd-dd„ƒƒZe
edƒd-dd„ƒƒZe
edƒd-dd„ƒƒZe
edƒd-dd„ƒƒZe
edƒdd„ ƒƒZe
dd „ ƒZe
d!d"„ ƒZe
d#d$„ ƒZe
d%d&„ ƒZe
d'd(„ ƒZe
d)d*„ ƒZe
d+d,„ ƒZdS ).ÚTasksÚHOMEz.shopifyÚshopsÚdefaultÚunstabler.   c                 C   s0   |   ¡ D ]}|  |¡rdnd}t|| ƒ qdS )zlist available connectionsz * z   N)Ú_available_connectionsÚ_is_defaultrR   )r+   ÚcÚprefixr   r   r   r.   k   s   þz
Tasks.listzadd CONNECTIONc                 C   s$  |   |¡}tj |¡rtd| ƒ‚tdd}td| ƒ}| ¡ s$d| }||d< tdƒ td| ƒ td	ƒ|d
< tdƒ|d< td| j	 ƒ|d< |d  ¡ sR| j	|d< tj 
| j¡s_t | j¡ t|dƒ}| tj|ddd¡ W d  ƒ n1 szw   Y  tt|  ¡ ƒƒdkr|  |¡ dS dS )z6create a config file for a connection named CONNECTIONz"There is already a config file at Úhttps)Úprotocolz+Domain? (leave blank for %s.myshopify.com) z%s.myshopify.comÚdomainrK   zNopen https://%s/admin/apps/private in your browser to generate API credentialsz	API key? Úapi_keyz
Password? Úpasswordz"API version? (leave blank for %s) Úapi_versionÚwFz---)Údefault_flow_styleÚexplicit_startNr;   )Ú_get_config_filenamer   r   Úexistsr   Údictr   ÚstriprR   Ú_default_api_versionÚisdirÚ_shop_config_dirÚmakedirsÚopenr>   ÚyamlÚdumpr<   r.   rb   r`   )r+   Ú
connectionÚfilenameÚconfigrh   Úfr   r   r   Úadds   s.   


ÿÿz	Tasks.addzremove CONNECTIONc                 C   sH   |   |¡}tj |¡r|  |¡rt | j¡ t |¡ dS |  |¡ dS )z%remove the config file for CONNECTIONN)ro   r   r   rp   rc   ÚremoveÚ_default_symlinkÚ_no_config_file_error)r+   rz   r{   r   r   r   r      s   

zTasks.removezedit [CONNECTION]Nc                 C   sR   |   |¡}tj |¡r"tj d¡}|rt ||g¡ dS tdƒ dS |  	|¡ dS )z;open the config file for CONNECTION with you default editorÚEDITORz7Please set an editor in the EDITOR environment variableN)
ro   r   r   rp   rT   rU   Ú
subprocessÚcallrR   r   )r+   rz   r{   Úeditorr   r   r   Úedit›   s   
z
Tasks.editzshow [CONNECTION]c                 C   sv   |du r|   ¡ }|  |¡}tj |¡r4t|ƒ t|ƒ}t| ¡ ƒ W d  ƒ dS 1 s-w   Y  dS |  |¡ dS )z@output the location and contents of the CONNECTION's config fileN)	Ú_default_connectionro   r   r   rp   rR   rw   Úreadr   )r+   rz   r{   r}   r   r   r   Úshow©   s   

"ÿz
Tasks.showzdefault [CONNECTION]c                 C   s€   |dur)|   |¡}tj |¡r$tj | j¡rt | j¡ t || j¡ n|  |¡ tj | j¡r:td|  	¡  ƒ dS tdƒ dS )z;show the default connection, or make CONNECTION the defaultNzDefault connection is z"There is no default connection set)
ro   r   r   rp   r€   r   Úsymlinkr   rR   r‡   )r+   rz   Útargetr   r   r   r`   ·   s   

zTasks.defaultzconsole [CONNECTION]c                 C   sŠ   |   |¡}tj |¡s|  |¡ t|ƒ}t | ¡ ¡}W d  ƒ n1 s&w   Y  t	d|d  ƒ |  
|¡}tj |¡ ttd dS )z#start an API console for CONNECTIONNzusing %srh   )r
   )ro   r   r   rp   r   rw   rx   Ú	safe_loadrˆ   rR   Ú_session_from_configr
   ÚShopifyResourceÚactivate_sessionr   )r+   rz   r{   r}   r|   Úsessionr   r   r   r   È   s   


ÿ
zTasks.consoler   c                 C   s   t tjjƒ dS )z"output the shopify library versionN)rR   r
   r   r   r*   r   r   r   r   Ø   s   zTasks.versionc                 C   s    t dd„ t tj | jd¡¡ƒS )Nc                 S   s   t j t j | ¡¡d S rD   )r   r   Úsplitextr[   r(   r   r   r   r:   á   s    z.Tasks._available_connections.<locals>.<lambda>z*.yml)r   Úglobr   r   Újoinru   r*   r   r   r   rb   Þ   s   þzTasks._available_connectionsc                 C   s.   t j | j¡s	d S t  | j¡}t j | j|¡S r   )r   r   rp   r€   Úreadlinkr“   ru   ©r+   r‹   r   r   r   Ú_default_connection_targetå   s   z Tasks._default_connection_targetc                 C   s(   |   ¡ }|sd S tj tj |¡¡d S rD   )r–   r   r   r‘   r[   r•   r   r   r   r‡   ì   s   zTasks._default_connectionc                 C   s"   |d u r| j S tj | j|d ¡S )Nz.yml)r€   r   r   r“   ru   ©r+   rz   r   r   r   ro   ó   s   zTasks._get_config_filenamec                 C   sF   t  | d¡| d| j¡¡}| dd¡|_| d¡|_| d¡|_|S )Nrh   rk   rg   rf   ri   rj   )r
   ÚSessionrU   rs   rg   ri   Útoken)r+   r|   r   r   r   r   r   ú   s
   zTasks._session_from_configc                 C   s   ||   ¡ kS r   )r‡   r—   r   r   r   rc     ó   zTasks._is_defaultc                 C   s   t d| ƒ‚)NzThere is no config file at )r   )r+   r{   r   r   r   r     rš   zTasks._no_config_file_errorr   )r   r   r   r   r   r“   rT   ru   r€   rs   Úclassmethodr   r.   r~   r   r†   r‰   r`   r   r   rb   r–   r‡   ro   r   rc   r   r   r   r   r   r]   e   sT    






r]   r;   )r
   r   r   r   Úos.pathr’   rƒ   rP   rx   ÚsixÚ	six.movesr   r   r   Ú	Exceptionr   r   r	   r!   Úadd_metaclassr   r]   rC   r\   ÚerR   r   r   r   r   Ú<module>   s0   	
> &€ÿ