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

97 lines
13 KiB
Plaintext
Raw Normal View History

Ë
cÀ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(d„Z'd)d„Z(d)d„Z)d)d„Z*d*d„Z+d+d„Z,d,d„Z-d-d„Z.d.d„Z/d/d„Z0d0d „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€ð
€~˜"˜.Ü”3�u˜b“> 2Ó&Ð&Ø ˆÜ�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Ñ1°$Ô7Ø�|‰|˜E 2 qÓ)ˆÝ Ø�|‰|˜E 3Ó'ˆØ €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€ô ˆu‹:ÐrcóŠ—tj|j«}|D]}||vsŒ|j|«Œ||_y)zÊ
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ØòˆØ
�WÒ Ø �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ˆF�D˜& %¨ä
‡|�|�FÔàŠØ �2Š˜& Bš,¨4°2ª:à‰Ø �6Ò Ô0×6Ñ6°vÔ>à�f˜t‘m×,Ñ,¨T°3Ó7Ñ7ˆØˆØ‰ Ø �6Ò ˜f×/Ñ/°Ô5à˜‘
×&Ñ& t¨SÓ1ˆØˆØ‰ Ø �6Ò à‰ Ü × "Ñ " 6Ô *à�‰˜v t§|¡|°D¸#Ó'>Ó?ˆØˆØˆØ‰ Ø �2Š˜& Bš,¨3¯>©>¸$Ô+?à�f‰}˜tÑ#ˆØˆØˆØ‰ Ø �2Š˜& Bš,à‰Ø
�‰˜Ô %àˆ à �F˜D &¨%°¸6À;Ð OÐ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¸NÓKÐKr)F)
rbzre.Pattern[str]rcÚstrrdrgreÚboolÚreturnr])Ú__name__Ú
__module__Ú __qualname__Ú__doc__r`Ú
__classcell__)rfs@rr]r]µsø„Ù%÷LòLrr])rbrcrdrecó€—eZdZdZgZd d„Zd
d„Zd
d„Z d d„Z d d„Z d
d„Z
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ÚmÚtagreÚidxÚel1Útexts rÚ build_singlez%PatternSequenceProcessor.build_singleÃs8€ä�m‰m˜CÓ ˆØ�w‰w�q‹zˆØ ×Ñ  c¨4°ÀÔE؈
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‰w�q‹zˆØ ×Ñ  c¨4°ÀÔEØ �
‰
�3ŒÜ ˆq�x‰x‹z‹?˜aÒ Ø—7‘7˜1“:ˆDØ × #Ñ # D¨#¨s°NÀCÔ H؈
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€rsrtrurvrDrƒs
rÚ
build_double2z&PatternSequenceProcessor.build_double2Øs‡€ð—Z‘Z “_‰
ˆˆdÜ�m‰m˜DÓ!ˆÜ�m‰m˜DÓ!ˆØ�w‰w�q‹zˆØ ×Ñ  c¨4°ÀÔEØ�w‰w�q‹zˆØ �
‰
�3ŒØ ×Ñ  c¨4°ÀÔE؈
rcóL—d}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`):