a
    ==ic                     @   s$  d dl Z d dlZd dlmZ d dlmZmZ d dlmZmZ G dd deZ	G dd deZ
d	d
 ZG dd deZG dd deZG dd deZedkr e jddZejdedd e Zeejd@Zee
 e	Ze  eej edej W d   n1 s0    Y  dS )    N)Markdown)OpDocGeneratorDocUploader)OperatorDocOperatorEnginec                   @   s   e Zd Zdd Zdd ZdS )GHOpDocUploaderc                 C   s   d S N selfr	   r	   j/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/python/docs/github.py__init__   s    zGHOpDocUploader.__init__c                 C   s   t | d S r   )print)r   content_bodyr	   r	   r   upload   s    zGHOpDocUploader.uploadN)__name__
__module____qualname__r   r   r	   r	   r	   r   r      s   r   c                   @   s2   e Zd ZdddZdd ZdddZdd	d
ZdS )
GHMarkdown   c                 C   s   |  dj|d |dd d S )Nz
{header} {text}
#)headertextT)addLineformat)r   r   hr	   r	   r   	addHeader   s    zGHMarkdown.addHeaderc                 C   sT   |  d |  d |  d |  d |  d |  d |  d |  d d S )Nz---zdocid: operators-catalogztitle: Operators Catalogzlayout: operatorsz)permalink: /docs/operators-catalogue.htmlz* TOCz{:toc})r   r
   r	   r	   r   addDocHeader   s    






zGHMarkdown.addDocHeaderFc              	   C   sx   |    t|dksJ | ddd tt|d D  | d|d  |dd  D ]}| d| q^d S )Nr   z | c                 S   s   g | ]}d qS )z
----------r	   ).0ir	   r	   r   
<listcomp>'       z'GHMarkdown.addTable.<locals>.<listcomp>r   )addLinebreaklenr   joinrange)r   tablenoTitlerowr	   r	   r   addTable$   s    &zGHMarkdown.addTablec                 C   sf   |  d |D ]H}|  d |D ]*}|  d | dj|d |  d q |  d q|  d d S )	Nz<table>z<tr>z<td>z{cell})cellz</td>z</tr>z</table>)addRawr   r   )r   r&   r'   r(   r*   r	   r	   r   addTableHTML,   s    


zGHMarkdown.addTableHTMLN)r   )F)F)r   r   r   r   r   r)   r,   r	   r	   r	   r   r      s   


r   c                 C   s@   |   } tj|jd}dj|d}| dj|d| |  S )NZcaffe2z5https://github.com/pytorch/pytorch/blob/master/{path})pathz{path})cloneosr-   relpathfiler   ZaddLinkdump)	formatterschemar-   Z
schemaLinkr	   r	   r   getCodeLink7   s    r5   c                   @   s   e Zd Zdd ZdS )GHOperatorEnginec                 C   sN   |   D ]@\}}|dj| jdd |r|d |dj|dd qd S )Nz{engine})engineTz on z{device})devicer   )ZgetDeviceImpladdCoder   r7   r+   addEmphasis)r   r3   r8   _r	   r	   r   generateDocA   s
    
zGHOperatorEngine.generateDocN)r   r   r   r<   r	   r	   r	   r   r6   @   s   r6   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )GHOperatorDocc                 C   s*   | dd |  |t|| j d S )NZCode   )r   r"   r+   r5   r4   r   r3   r	   r	   r   generateCodeLinkJ   s    zGHOperatorDoc.generateCodeLinkc                 C   sF   |  }|r>|dj|dd |d |dj|dd | S )Nz{name})namer    z{impl})implT)r.   r:   r   r+   r9   r2   )r   r3   rA   rC   r	   r	   r   getInfoO   s    
zGHOperatorDoc.getInfoc                 C   sJ   | | jd | jr<| | | | | | |  n
|d d S )N   zNo schema documented yet.)r   rA   r4   r<   ZgenerateInterfacer@   ZaddBreakr   r?   r	   r	   r   generateSchemaW   s    



zGHOperatorDoc.generateSchemaN)r   r   r   r@   rD   rF   r	   r	   r	   r   r=   I   s   r=   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )GHOpDocGeneratorc                 C   s   t |||S r   )r=   )r   rA   r4   priorityr	   r	   r   getOperatorDocc   s    zGHOpDocGenerator.getOperatorDocc                 C   s   t |S r   )r6   )r   rA   r	   r	   r   getOperatorEnginef   s    z"GHOpDocGenerator.getOperatorEnginec                 C   s@   | j   |  }|D ]}|| j  q|  j| j  7  _d S r   )r3   r   ZgetOperatorsrF   r   r2   )r   	operatorsoperatorr	   r	   r   
createBodyi   s
    
zGHOpDocGenerator.createBodyN)r   r   r   rI   rJ   rM   r	   r	   r	   r   rG   b   s   rG   __main__zOperators catalog generator.)descriptioncatalog_pathz&operators-catalogue.md to write out to)typehelpwzUpdated {}!)argparser/   Zcaffe2.python.docs.formatterr   Zcaffe2.python.docs.generatorr   r   r   r   r   r   r5   r6   r=   rG   r   ArgumentParserparseradd_argumentstr
parse_argsargsopenrP   fpopsrM   writer   r   r   r	   r	   r	   r   <module>   s*   !		
