o
    ;i                     @   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	m
Z
 d dlmZ d dddded	e	d
edededefddZdee ddfddZedkr]eeejdkrUdnejd  dS dS )    N)Path)Optionalcast)CommandContextGroup)entrypoint_cli )indentnamecall_prefixobjctxr
   r   r   returnc                C   s  dd|  }|p
| j }|r| d| }|rd| dnd}|d| d7 }| jr4|t| j d7 }| |}|rZ|d7 }|d7 }|rL|| d7 }|d| d	7 }|d
7 }g }	g }
| |D ]'}||}|d urt|ddruqc|j	dkr|	
| qc|j	dkr|

| qc|	r|d7 }|	D ]\}}|d| d7 }|r|d| 7 }|d	7 }q|d	7 }|
r|d7 }|
D ]\}}|d| d7 }|r|d| 7 }|d	7 }q|d	7 }| jr|| j d7 }t| tr\tt| }||}|r/|d7 }|D ]/}|||}|sJ |jrq|d|j  d7 }|jdd}|r&|d| 7 }|d	7 }q|d	7 }|D ]*}|||}|jr?q1|sDJ d}|rN|| 7 }|t|||d |d7 }q1|S )N#    `CLIz

z**Usage**:

z	```shell

z```

hiddenFargumentoptionz**Arguments**:

z* `z: z**Options**:

z**Commands**:

   )limitr	   )r   r   r
   r   )r   helpinspectcleandoccollect_usage_piecesjoin
get_paramsget_help_recordgetattrparam_type_nameappendepilog
isinstancer   r   list_commandsget_commandr   get_short_help_strget_docs_for_click)r   r   r
   r   r   docscommand_nametitleusage_piecesargsoptsparamrvarg_namearg_helpopt_nameopt_helpgroupcommandscommandcommand_objcommand_help
use_prefix r=   K/home/ubuntu/.local/lib/python3.10/site-packages/modal_docs/gen_cli_docs.pyr*      s   













r*   output_dirnamec           	      C   s   t tt}t|}||}|D ]6}|||}|jrqt||dd}| rBt| }|j	ddd || d }t
d| || qt
| qd S )Nmodal)r   r   r   T)parentsexist_okz.mdz
Writing to)r   r   r   r   r'   r(   r   r*   r   mkdirprint
write_text)	r?   
entrypointr   r8   r9   r:   r+   
output_diroutput_filer=   r=   r>   run_   s    



rI   __main__r   )r   syspathlibr   typingr   r   clickr   r   r   modal.cli.entry_pointr   intstrr*   rI   __name__lenargvr=   r=   r=   r>   <module>   s4   	
Q$