
    'iO                        d dl Z d dlZd dlmZ d dlZ G d d      ZdefdZdedej                  e   fdZ	ded	ej                  e   dej                  e   fd
Z
ddZdej                  e   defdZd Zedk(  r e        yy)    N)Pathc            
       h    e Zd ZdZ ej
                  d      Zdededededdf
d	Z	de
fd
ZdefdZy)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                 <    || _         || _        || _        || _        y )N)r   r   r   r	   )selfr   r   r   r	   s        U/var/www/stems/demucs_env/lib/python3.12/site-packages/submitit/test_documentation.py__init__zMarkdownLink.__init__   s    				    c                     | j                   j                  d      ry| j                   j                  d      d   }|sy| j                  | j                  j
                  z  |z  }|j                         S )NhttpT#r   F)r	   
startswithsplitr   r   parentexists)r   r	   fullpaths      r   r   zMarkdownLink.exists   s^    99'yys#A&99tyy///$6  r   c                 T    d| j                    d| j                   d| j                   S )N[z](z
) in file )r	   r   r   )r   s    r   __repr__zMarkdownLink.__repr__%   s'    499+R		{*TYYK@@r   )__name__
__module____qualname____doc__recompileregexr   strr   boolr   r    r   r   r   r      s\     BJJ=>ET  S   ! !A# Ar   r   r
   c                      t        t              j                  j                  j                         } | dz  j	                         s
J d|         | S )Nzpyproject.tomlzWrong root folder: )r   __file__r   absoluter   )r   s    r   	_get_rootr(   )   sJ    >  ''002D##++-K1DTF/KK-Kr   r   c                 ^    dD cg c]  }| j                  |      D ]  }|  c}}S c c}}w )N)z*.mdzsubmitit/**/*.mdzdocs/**/*.md)glob)r   patternmds      r   _get_markdown_filesr-   /   s/    Jh7UYU^U^_fUghrBhBhhhs   )filesc                     t         j                  }g }|D ]a  }|j                  |j                               D ]=  }|j	                  t        | ||j                  d      |j                  d                   ? c |S )z-Returns a list of all existing markdown linksr   r	   )r   r!   finditer	read_textappendgroup)r   r.   r+   linksr   matchs         r   _get_all_markdown_linksr6   3   sw      GE ]%%dnn&67 	]ELLdD%++f2Eu{{SYGZ[\	]] Lr   c                      t               } t        |       }t        |      dkD  sJ t        | |      }t        |      dkD  sJ d       |D cg c]  }|j	                         r| }}|rJ y c c}w )N      z#There should be several hyperlinks!)r(   r-   lenr6   r   )r   r.   r4   lbroken_linkss        r   %test_assert_markdown_links_not_brokenr=   =   sp    ;D%Eu:>>#D%0Eu:>@@@>$7!AHHJA7L7| 8s   A,!A,r!   c                     | j                         }| j                  d      }| j                  d      }t        j                  }|j                  d      s*t	        |      j                         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:///))r3   submitit__version__r   r   r   )r!   stringr	   r   version
github_urls         r   _replace_relative_linksrF   H   s|     ++-F;;vD;;vD""G??6"tDz'8'8':B7)L
TF*ZL$q9Mr   c                      t               dz  } | j                         sJ | j                  d      }t        j                  t
        j                  t        |      }| j                  |       y )Nz	README.mdzutf-8)encoding)	r(   r   r1   r   subr   r!   rF   
write_text)readmedescs     r   expand_linksrM   V   sV    [;&F==??W-D66,$$&=tDD
dr   __main__)r
   N)r   typingtppathlibr   rA   r   r(   Listr-   r6   r=   Matchr"   rF   rM   r   r$   r   r   <module>rT      s    
   A A64 id irwwt} i$ rwwt} AV 288C= S  zN r   