Ë
    çÍ:je  ã                   ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ dededdfd„Z	 	 dded	ed
ededededefd„Zdedee   fd„Zdedede
e   defd„Z	 	 ddededeeee   f   dee   deddfd„Zy)é    N)ÚIterable)ÚOptionalÚUnionÚpath_inÚpath_outÚreturnc                 óº  — t        | «      5 }|j                  «       }ddd«       d}t        «      D ]i  \  }}|j                  d«      r&|dd j	                  d«      d   j                  «       }Œ=|j                  d«      sŒO|j                  dd|› d	�«      }|||<   Œk t        |d
«      5 }|j                  |«       ddd«       y# 1 sw Y   Œ©xY w# 1 sw Y   yxY w)zªAdjust changelog headers to avoid duplication of short subtitles.

    Args:
        path_in: Input Markdown file path.
        path_out: Output Markdown file path.

    NÚ z## é   ú-r   z### z###z -Úw)ÚopenÚ	readlinesÚ	enumerateÚ
startswithÚsplitÚstripÚreplaceÚ
writelines)r   r   ÚfpÚchlog_linesÚ	chlog_verÚiÚlns          úx/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/lightning_utilities/docs/formatting.pyÚ_transform_changelogr      sÜ   € ô 
ˆg‹ð %˜"Ø—l‘l“nˆ÷%ð €IÜ˜;Ó'ò  ‰ˆˆ2Ø�=‰=˜ÔØ˜1˜2˜Ÿ™ SÓ)¨!Ñ,×2Ñ2Ó4‰IØ�]‰]˜6Õ"Ø—‘˜E T¨)¨°BÐ#7Ó8ˆBØˆK˜ŠNð ô 
ˆh˜Ó	ð # Ø
�‰�kÔ"÷#ð #÷%ð %ú÷#ð #ús   ŒCÂ*CÃCÃCÚdomainÚinfoÚgithub_userÚgithub_repoÚmain_branchÚstable_branchc                 ór  ‡‡— dt         t        t        t        f   fˆˆfd„}| dk7  s‰d   sy	 d |«       z  }|j                  d«      d
   }‰|dœj                  ||«      }dj                  |g|j                  d«      dd  ¢«      }d|› d|› d|› �S # t        $ r ‰d   j	                  dd«      d	z   }Y Œ}w xY w)Nr   c                  ó�  •‡— t         j                  ‰d      } ‰d   j                  d«      D ]  }t        | |«      } Œ t	        t        j                  | «      «      Št        ˆfd„dD «       «      rit        j                  j                  t        j                  j                  ddd«      «      }t	        t        j                  j                  ‰|¬«      «      ŠnC‰› dt        j                  j                  ‰t        j                  j                  d«      ¬«      › �Št        j                  | «      \  }}‰||t        |«      z   d	z
  fS )
NÚmoduleÚfullnameú.c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­w)N© )Ú.0ÚsÚfnames     €r   ú	<genexpr>z9_linkcode_resolve.<locals>.find_source.<locals>.<genexpr>5   s   øè ø€ ÒH˜aˆq�EŒzÑHùs   ƒ)ÚreadthedocsÚrtfdÚ	checkoutsz..)Ústartú/é   )ÚsysÚmodulesr   ÚgetattrÚstrÚinspectÚgetsourcefileÚanyÚosÚpathÚabspathÚjoinÚrelpathÚgetsourcelinesÚlen)ÚobjÚpartÚpath_topÚsourceÚ
line_startr,   r   r!   s        @€€r   Úfind_sourcez&_linkcode_resolve.<locals>.find_source-   s  ù€ ô �k‰k˜$˜x™.Ñ)ˆØ˜Ñ$×*Ñ*¨3Ó/ò 	%ˆDÜ˜#˜tÓ$‰Cð	%ä”G×)Ñ)¨#Ó.Ó/ˆäÓHÐ#GÔHÔHô —w‘w—‘¤r§w¡w§|¡|°D¸$ÀÓ'EÓFˆHÜœŸ™Ÿ™¨°X˜Ó>Ó?‰Eð #�m 1¤R§W¡W§_¡_°UÄ"Ç'Á'Ç/Á/ÐRVÓBW _Ó%XÐ$YÐZˆEÜ$×3Ñ3°CÓ8Ñˆ�
Ø�j *¬s°6«{Ñ":¸QÑ">Ð>Ð>ó    Úpyr%   r
   z
%s#L%d-L%dr'   r2   ú.pyr   )ÚlatestÚstabler3   zhttps://github.com/z/blob/)Útupler7   ÚintÚ	Exceptionr   r   Úgetr>   )	r   r   r   r    r!   r"   rG   ÚfilenameÚbranchs	    `  `    r   Ú_linkcode_resolverS   %   sÔ   ù€ ð?œœs¤C¬˜}Ñ-ö ?ð& �‚~˜T (š^Øð<Ø¡+£-Ñ/ˆð �^‰^˜CÓ  Ñ#€Fà#¨}Ñ=×AÑAÀ&È&ÓQ€FØ�x‰x˜Ð: (§.¡.°Ó"5°a°bÐ"9Ð:Ó;€HØ   ¨Q¨{¨m¸6À(ÀÐLÐLøô ò <Ø˜‘>×)Ñ)¨#¨sÓ3°eÑ;Šð<ús   ®
B Â!B6Â5B6Úpackage_namec                 óú   — ddl }ddlm} d| › d�}|j                  |d¬«      j	                  «       }|d   j                  «       }|D �ch c]  }t        j                  d	|«      sŒ|’Œ }}t        ||¬
«      S c c}w )zûLoad the versions of the package from PyPI.

    >>> _load_pypi_versions("numpy")  # doctest: +ELLIPSIS
    ['0.9.6', '0.9.8', '1.0', ...]
    >>> _load_pypi_versions("scikit-learn")  # doctest: +ELLIPSIS
    ['0.9', '0.10', '0.11', '0.12', ...]

    r   N)ÚVersionzhttps://pypi.org/pypi/z/jsoné
   )ÚtimeoutÚreleasesz^\d+(\.\d+)*$)Úkey)	ÚrequestsÚpackaging.versionrV   rP   ÚjsonÚkeysÚreÚmatchÚsorted)rT   r[   rV   ÚurlÚdataÚversionsÚks          r   Ú_load_pypi_versionsrf   P   sz   € ó Ý)à" < .°Ð
6€CØ�<‰<˜ Rˆ<Ó(×-Ñ-Ó/€DØ�JÑ×$Ñ$Ó&€Hà#ÖE�a¤r§x¡xÐ0@À!Õ'D’ÐE€HÐEÜ�( Ô(Ð(ùò Fs   Á	A8Á%A8ÚlinkÚpkg_verÚversion_digitsc                 ól  — |j                  d«      }	 t        |d   «      d   }|j                  d«      d   }dj                  |j                  d«      d| «      }| j                  d|› d�|«      S # t        $ r9 t        j                  dj                  |dd «      «      }t        ||d   «      }Y ŒŽw xY w)aÝ  Resolve a ``{package.version}`` placeholder in a link using the latest available version.

    Args:
        link: The link template containing a ``{...}`` placeholder to replace.
        pkg_ver: A dotted path to resolve the version (e.g., ``"numpy.__version__"``).
        version_digits: Number of version components to keep (e.g., ``2`` -> ``"1.26"``). If ``None``, keep all.

    Returns:
        The link with the ``{...}`` placeholder replaced by a version string.

    r'   r   éÿÿÿÿNú+ú{ú})r   rf   rO   Ú	importlibÚimport_moduler>   r6   r   )rg   rh   ri   Úpkg_attÚverr%   s         r   Ú#_update_link_based_imported_packagers   d   sµ   € ð �m‰m˜CÓ €Gð*Ü! '¨!¡*Ó-¨bÑ1ˆð �)‰)�C‹.˜Ñ
€Cà
�(‰(�3—9‘9˜S“> / >Ð2Ó
3€Cà�<‰<˜"˜W˜I RÐ(¨#Ó.Ð.øô ò *ä×(Ñ(¨¯©°'¸#¸2°,Ó)?Ó@ˆä�f˜g a™jÓ)Šð	*ús   “A1 Á1?B3Â2B3Úsource_linkÚtarget_linkÚbrowse_folderÚfile_extensionsc                 ó0  — g }t        |t        «      r|g}|D ]E  }|D ]>  }|t        j                  t        j                  j                  |dd|› �«      d¬«      z  }Œ@ ŒG |st        j                  d|› d|› d�«       yt        j                  d	|«      }|D ]  }	t        ||	|«      }Œ t        |«      D ]È  }
t        |
d
¬«      5 }|j                  «       }ddd«       d\  }}t        «      D ]C  \  }}t        j                   › d�|v rd}|s| |v r|j#                  | |«      ||<   d}|sŒ=d|v sŒBd}ŒE |sŒ‚t        j$                  d|
› d| › d|› d�«       t        |
dd
¬«      5 }|j'                  |«       ddd«       ŒÊ y# 1 sw Y   Œ¬xY w# 1 sw Y   ŒáxY w)a|  Adjust the linked external docs to be local.

    Args:
        source_link: the link to be replaced
        target_link: the link to be replaced, if ``{package.version}`` is included it will be replaced accordingly
        browse_folder: the location of the browsable folder
        file_extensions: what kind of files shall be scanned
        version_digits: for semantic versioning, how many digits to be considered

    Examples:
        >>> adjust_linked_external_docs(
        ...     "https://numpy.org/doc/stable/",
        ...     "https://numpy.org/doc/{numpy.__version__}/",
        ...     "docs/source",
        ... )

    z**Ú*T)Ú	recursivez No files were listed in folder "z" and pattern "ú"Nz{(.+)}zUTF-8)Úencoding)FFú(ú)Fzlinks adjusting in z: "z" -> "r   )Ú
isinstancer7   Úglobr;   r<   r>   ÚloggingÚwarningr_   Úfindallrs   Úsetr   r   r   Úadjust_linked_external_docsÚ__name__r   Údebugr   )rt   ru   rv   rw   ri   Ú
list_filesÚfolderÚextÚpkg_ver_allrh   ÚfpathÚfopenÚlinesÚfoundÚskipr   r   Úfws                     r   r…   r…   €   sÐ  € ð0 €JÜ�-¤Ô%Ø&˜ˆØò [ˆØ"ò 	[ˆCØœ$Ÿ)™)¤B§G¡G§L¡L°¸ÀÀ3À%¸yÓ$IÐUYÔZÑZ‰Jñ	[ð[ñ Ü�‰Ð:¸=¸/ÈÐYhÐXiÐijÐkÔlØô —*‘*˜Y¨Ó4€KØò `ˆÜ9¸+ÀwÐP^Ó_‰ð`ô �Z“ò !ˆÜ�% 'Ô*ð 	&¨eØ—O‘OÓ%ˆE÷	&à"‰ˆˆtÜ˜uÓ%ò 
	‰EˆAˆrä-×6Ñ6Ð7°qÐ9¸RÑ?Ø�Ù˜K¨2Ñ-àŸ:™: k°;Ó?��a‘à�Ú˜˜rš	Ø‘ð
	ñ ØÜ�‰Ð+¨E¨7°#°k°]À&ÈÈÐUVÐWÔXÜ�%˜ wÔ/ð 	!°2Ø�M‰M˜%Ô ÷	!ð 	!ñ%!÷	&ð 	&ú÷"	!ð 	!ús   ÃF Å#FÆ F		ÆF	)Úmasterzrelease/stable))z.rstrJ   r   )r€   ro   r8   r�   r;   r_   r4   Úcollections.abcr   Útypingr   r   r7   r   ÚdictrS   Úlistrf   rN   rs   r…   r)   rH   r   ú<module>r—      s,  ðó Û Û Û Û 	Û 	Û 
Ý $ß "ð# #ð #°ð #¸ó #ð6  Ø)ñ(MØð(Mà
ð(Mð ð(Mð ð	(Mð
 ð(Mð ð(Mð 	ó(MðV) cð )¨d°3©ió )ð(/¨cð /¸Cð /ÐQYÐZ]ÑQ^ð /Ðcfó /ð@ &5Øñ;!Øð;!àð;!ð ˜˜h s™mÐ+Ñ,ð;!ð ˜c‘]ð	;!ð
 ð;!ð 
ô;!rH   