
    ^iO                        S SK r S SKrS SKJr  S SKr " S S5      rS\4S jrS\S\R                  \   4S jr	S\S	\R                  \   S\R                  \   4S
 jr
SS jrS\R                  \   S\4S jrS r\S:X  a  \" 5         gg)    N)Pathc            
       v    \ rS rSrSr\R                  " S5      rS\S\S\	S\	SS	4
S
 jr
S\4S jrS\	4S jrSrg	)MarkdownLink   z`Handle 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                 4    Xl         X l        X0l        X@l        g )N)r   r   r	   r
   )selfr   r   r	   r
   s        X/mnt/rpi/tmp/demucs-venv-sys/lib/python3.13/site-packages/submitit/test_documentation.py__init__MarkdownLink.__init__   s    				    c                     U R                   R                  S5      (       a  gU R                   R                  S5      S   nU(       d  gU R                  U R                  R
                  -  U-  nUR                  5       $ )NhttpT#r   F)r
   
startswithsplitr   r   parentexists)r   r
   fullpaths      r   r   MarkdownLink.exists   sa    99''yys#A&99tyy///$6  r   c                 T    SU R                    SU R                   SU R                   3$ )N[z](z
) in file )r
   r	   r   )r   s    r   __repr__MarkdownLink.__repr__%   s'    499+R		{*TYYK@@r   )r   r
   r	   r   )__name__
__module____qualname____firstlineno____doc__recompileregexr   strr   boolr   r   __static_attributes__ r   r   r   r      sZ     JJ=>ET  S   ! !A# Ar   r   r   c                      [        [        5      R                  R                  R                  5       n U S-  R	                  5       (       d
   SU  35       eU $ )Nzpyproject.tomlzWrong root folder: )r   __file__r   absoluter   )r   s    r   	_get_rootr.   )   sM    >  ''002D##++--K1DTF/KK-Kr   r   c                 f    S VVs/ s H  oR                  U5        H  o"PM     M     snn$ s  snnf )N)z*.mdzsubmitit/**/*.mdzdocs/**/*.md)glob)r   patternmds      r   _get_markdown_filesr3   /   s/    JhJ7U^U^_fUgrBUgBJhhhs   #-filesc                     [         R                  n/ nU Hc  nUR                  UR                  5       5       H=  nUR	                  [        XUR                  S5      UR                  S5      5      5        M?     Me     U$ )z-Returns a list of all existing markdown linksr	   r
   )r   r&   finditer	read_textappendgroup)r   r4   r1   linksr   matchs         r   _get_all_markdown_linksr<   3   sg      GE%%dnn&67ELLd%++f2Eu{{SYGZ[\ 8  Lr   c                      [        5       n [        U 5      n[        U5      S:  d   e[        X5      n[        U5      S:  d   S5       eU Vs/ s H  o3R	                  5       (       a  M  UPM     nnU(       a   eg s  snf )N      z#There should be several hyperlinks!)r.   r3   lenr<   r   )r   r4   r:   lbroken_linkss        r   %test_assert_markdown_links_not_brokenrC   =   sm    ;D%Eu:>>#D0Eu:>@@@>$7u!HHJAuL7| 8s   A:(A:r&   c                    U R                  5       nU R                  S5      nU R                  S5      n[        R                  nUR                  S5      (       d/  [	        U5      R                  5       (       a  SU 3nSU SU SU S3nU$ )	z`Converts 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:///))r9   submitit__version__r   r   r   )r&   stringr
   r	   version
github_urls         r   _replace_relative_linksrL   H   s     ++-F;;vD;;vD""G??6""tDz'8'8':':B7)L
TF*ZL$q9Mr   c                      [        5       S-  n U R                  5       (       d   eU R                  SS9n[        R                  " [
        R                  [        U5      nU R                  U5        g )Nz	README.mdzutf-8)encoding)	r.   r   r7   r$   subr   r&   rL   
write_text)readmedescs     r   expand_linksrS   V   sX    [;&F==???W-D66,$$&=tDD
dr   __main__)r   N)r$   typingtppathlibr   rG   r   r.   Listr3   r<   rC   Matchr'   rL   rS   r   r*   r   r   <module>rZ      s    
   A A64 id irwwt} i$ rwwt} AV 288C= S  zN r   