Files
intellecton/venv/lib/python3.12/site-packages/pymdownx/__pycache__/util.cpython-312.pyc
T

97 lines
13 KiB
Plaintext
Raw Normal View History

Ë
jÔ+ã óˆdZddlmZddlmZddlmZddlmcm Zddl
m Z ddl Z ddl
Z
ddlZddlZddlmZmZddlmZdd lmZddlZdd
lmZmZmZej8d «Zej8d «Zej8d
«Zej8d«Z e jBjEd«rdZ#ne jBdk(rdZ#ndZ#de jHkZ%de jHkZ&d(dZ'd)dZ(d)dZ)d)dZ*d*dZ+d+dZ,d,dZ-d-dZ.d.dZ/d/dZ0d0d „Z1Gd!„d"e d"gd#¢««Z2Gd$„d%e«Z3d1d2d&„Z4d1d3d'„Z5y)4zW
General utilities.
MIT license.
Copyright (c) 2017 Isaac Muse <isaacmuse@gmail.com>
é)Ú annotations)ÚMarkdown)ÚInlineProcessorN)Ú
namedtuple)Ú pathname2urlÚ url2pathname)Úurlparse©Úwraps)ÚSequenceÚCallableÚAnyz
^[A-Za-z]$z^[A-Za-z]:(?:\\.*)?$z!(http|ftp)s?|data|mailto|tel|newsz^///[A-Za-z]:(?:/.*)?$ÚwinÚwindowsÚdarwinÚosxÚlinux)éé )récór||tt||«|«S| t||«S| t||«S|S)z1Clamp the value to the given minimum and maximum.)ÚmaxÚmin)ÚvalueÚmnÚmxs úP/home/antigravity/intellecton/venv/lib/python3.12/site-packages/pymdownx/util.pyÚclampr'sGð
€~˜"˜”3u˜b“>  ˆÜ5˜"Ø ˆÜ5˜"‹~Ðàˆ ócótdk(S)z Is Windows.r©Ú _PLATFORM©rrÚis_winr$4sô ˜ Ñ !rcótdk(S)z Is Linux.rr!r#rrÚis_linuxr&:sô ˜Ñ Ðrcótdk(S)z Is macOS.rr!r#rrÚis_macr(@sô ˜Ñ Ðrcót|«S)z Path to URL.)r)Úpaths rÚurl2pathr+Fsô ˜Ó Ðrcó°t|«}t«r(tj|«r|j ddd«}t
r|j dd«}|S)z URL to path.z///Úéú/)rr$ÚRE_WIN_DEFAULT_PROTOCOLÚmatchÚreplaceÚPY314)Úurlr*s rÚpath2urlr5LsKô ˜Ó €Dä
„xÔ1°$Ô|‰|˜E 2 )ˆÝ Ø|‰|˜E 'ˆØ €Krcót|«S)zGet the Unicode code points.)Úlist)Úss rÚget_code_pointsr9Xs
ô ‹7€Nrcót|«S)zGet Unicode ord.)Úord)Úcs rÚget_ordr=^s
ô ˆq‹6€Mrcót|«S)zGet the Unicode char.)Úchr)rs rÚget_charr@dsô ˆurcóŠtj|j«}|D]}||vsŒ|j|«Œ||_y)
Add chars to the escape list.
Don't just append as it modifies the global list permanently.
Make a copy and extend **that** copy so that only this Markdown
instance gets modified.
N)ÚcopyÚ
ESCAPED_CHARSÚappend)ÚmdÚechrsÚescapedÚecs rÚ escape_charsrIjsEôi‰i˜×)€GØòˆØ
Ø N‰N˜2Õ ðð€BÕrcó¬d}d}ttj|««\}}}}}}tj |«rd}n |dk(r
|dk(r|dk(rd}n÷|dk(r2t
j |«rd||zj
dd«z}d}d}nÀ|dk(r+|jd«r||zj
dd«}d}d}n|dk(rd}nˆtj |«r)dj||j
dd««}d}d}d}nJ|dk(r%|dk7r |jd«rd|z|z}d}d}d}n |dk7r|dk7rd}n|jd «rd}||||||||fS)
a—
Parse the URL.
Try to determine if the following is a file path or
(as we will call anything else) a URL.
We return it slightly modified and combine the path parts.
We also assume if we see something like c:/ it is a Windows path.
We don't bother checking if this **is** a Windows system, but
'nix users really shouldn't be creating weird names like c: for their folder.
FTr-Úfiler/ú\z/{}:{}z//)r/rL)
r ÚhtmlÚunescapeÚRE_URLr1ÚRE_WIN_DRIVE_PATHr2Ú
startswithÚRE_WIN_DRIVE_LETTERÚformat) r4Úis_urlÚ is_absoluteÚschemeÚnetlocr*ÚparamsÚqueryÚfragments rÚ parse_urlr[zs{ð€FØ€KÜ4<¼T¿]¹]È3Ó=OÓ4PÑ1€FˆFD˜& ä
‡||àŠØ ˜& Bš,¨4°2ª:àØ Ô0×6°vÔf˜tm×,¨T°3ÓØˆØ Ø ˜f×Ô˜
×& t¨SÓ1ˆØˆØ Ø à Ü × "Ñ " 6Ô *à˜v t§|¡|°D¸#Ó'>Ó?ˆØˆØˆØ Ø ˜& Bš,¨3¯>©>¸$Ô+?àf‰}˜ØˆØˆØ Ø ˜& Bš,àØ
˜Ô %àˆ à F˜D &¨%°¸6À;Ð Orcó&eZdZdZddˆfd
ZˆxZS)Ú
PatSeqItemzPattern sequence item item.có*t||||||«S)zCreate object.)ÚsuperÚ__new__)ÚclsÚpatternÚbuilderÚtagsÚfull_recursionÚ __class__s €rr`zPatSeqItem.__new__¸sø€ô‰w‰˜s G¨W°d¸Kr)F)
rbzre.Pattern[str]rcÚstrrdrgreÚboolÚreturnr])Ú__name__Ú
__module__Ú __qualname__Ú__doc__r`Ú
__classcell__)rfs@rr]r]µsø„ÙLòLrr])rbrcrdrecó€eZdZdZgZd dZd
dZd
dZ d dZ d dZ d
dZ
y)ÚPatternSequenceProcessorzMProcessor for handling complex nested patterns such as strong and em matches.có|tj|«}|jd«}|j||d||«|S)zReturn single tag.éN)ÚetreeÚElementÚgroupÚparse_sub_patterns)ÚselfÚtagreÚidxÚel1Útexts rÚ build_singlez%PatternSequenceProcessor.build_singleÃs8äm‰m˜CÓ ˆØw‰wq‹zˆØ ×Ñ  c¨4°ÀÔˆ
rcót|jd«\}}tj|«}tj|«}|jd«} |j | |d||«|j |«t
|j««dk(r&|jd«} |j | ||||«|S)zReturn double tag.ú,rrNr)ÚsplitrsrtrurvrDÚlenÚgroups©
rwrxrdrerzÚtag1Útag2r{Úel2r|s
rÚ build_doublez%PatternSequenceProcessor.build_doubleÊs™ð—Z‘Z “_‰
ˆˆdÜm‰m˜DÓÜm‰m˜DÓØw‰wq‹zˆØ ×Ñ  c¨4°ÀÔ
Ü ˆqx‰x‹z‹?˜aÒ Ø—7‘7˜1“:ˆDØ × # D¨#¨s°NÀCÔ ˆ
rcó<|jd«\}}tj|«}tj|«}|jd«} |j | |d||«|jd«} |j |«|j | |d||«|S)zFReturn double tags (variant 2): `<strong>text <em>text</em></strong>`.rrrNr)r€rsrtrurvrDs
rÚ
build_double2z&PatternSequenceProcessor.build_double2Øs‡ð—Z‘Z “_‰
ˆˆdÜm‰m˜DÓÜm‰m˜DÓØw‰wq‹zˆØ ×Ñ  c¨4°ÀÔw‰wq‹zˆØ
Ø ×Ñ  c¨4°ÀÔˆ
rcóLd}d}t|«}||kr÷|jj||«rÐd} t|j«D\}
} |s|
|krŒ| j
j||«} | sŒ-||| j
d«}
|
r||
|_n|
|_|j| | j| j| j|
«}|j|«|}| jd«x}}d} Œ°| s |dz
}n|dz
}||krŒ÷||d}
|
r||
|_y|
|_yy)a”
Parses sub patterns.
`data` (`str`):
text to evaluate.
`parent` (`etree.Element`):
Parent to attach text and sub elements to.
`last` (`etree.Element`):