o
    rriO                     @   s   d dl Z d dlZd dlmZ d dlZG dd dZdefddZdedeje fd	d
Z	dedeje deje fddZ
dddZdeje defddZdd Zedkr[e  dS dS )    N)Pathc                
   @   sT   e Zd ZdZedZdededededdf
d	d
Z	de
fddZdefddZdS )MarkdownLinkzhHandle to a markdown link, for easy existence test and printing
    (external links are not tested)
    z#\[(?P<name>.+?)\]\((?P<link>\S+?)\)rootfilenamelinkreturnNc                 C   s   || _ || _|| _|| _d S )N)r   r   r   r   )selfr   r   r   r    r
   O/home/ubuntu/.local/lib/python3.10/site-packages/submitit/test_documentation.py__init__   s   
zMarkdownLink.__init__c                 C   sB   | j drdS | j dd }|sdS | j| jj | }| S )NhttpT#r   F)r   
startswithsplitr   r   parentexists)r	   r   fullpathr
   r
   r   r      s   zMarkdownLink.existsc                 C   s   d| j  d| j d| j S )N[z](z
) in file )r   r   r   )r	   r
   r
   r   __repr__%   s   zMarkdownLink.__repr__)__name__
__module____qualname____doc__recompileregexr   strr   boolr   r   r
   r
   r
   r   r      s    

r   r   c                  C   s.   t tjj } | d  sJ d|  | S )Nzpyproject.tomlzWrong root folder: )r   __file__r   absoluter   r   r
   r
   r   	_get_root)   s   r"   r   c                    s    fdddD S )Nc                    s    g | ]}  |D ]}|q	qS r
   )glob).0patternmdr!   r
   r   
<listcomp>0   s     z'_get_markdown_files.<locals>.<listcomp>)z*.mdzsubmitit/**/*.mdzdocs/**/*.mdr
   r!   r
   r!   r   _get_markdown_files/   s   r(   filesc                 C   sL   t j}g }|D ]}|| D ]}|t | ||d|d qq|S )z-Returns a list of all existing markdown linksr   r   )r   r   finditer	read_textappendgroup)r   r)   r%   linksr   matchr
   r
   r   _get_all_markdown_links3   s   "r0   c                  C   sV   t  } t| }t|dksJ t| |}t|dksJ ddd |D }|r)J d S )N      z#There should be several hyperlinks!c                 S   s   g | ]}|  s|qS r
   )r   )r$   lr
   r
   r   r'   D   s    z9test_assert_markdown_links_not_broken.<locals>.<listcomp>)r"   r(   lenr0   )r   r)   r.   broken_linksr
   r
   r   %test_assert_markdown_links_not_broken=   s   
r6   r   c                 C   s^   |   }|  d}|  d}tj}|ds-t| r-d| }d| d| d| d}|S )	zhConverts relative links into links to master
    so that links on Pypi long description are correct
    r   r   r   z+github.com/facebookincubator/submitit/blob/r   z
](https:///))r-   submitit__version__r   r   r   )r   stringr   r   version
github_urlr
   r
   r   _replace_relative_linksH   s   


r>   c                  C   s@   t  d } |  sJ | jdd}ttjt|}| | d S )Nz	README.mdzutf-8)encoding)	r"   r   r+   r   subr   r   r>   
write_text)readmedescr
   r
   r   expand_linksV   s
   
rD   __main__)r   N)r   typingtppathlibr   r9   r   r"   Listr(   r0   r6   Matchr   r>   rD   r   r
   r
   r
   r   <module>   s   "

	
