i7i<dZddlZddlmZmZddlmZmZmZm Z ddl m Z m Z m Z mZmZmZmZmZmZmZddlmZgdZGdd eZGd d eZGd d eZGddeZGddeZGddeZy)z pygments.lexers.textfmts ~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for various text formats. :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) guess_lexerget_lexer_by_name) RegexLexerbygroupsdefaultinclude) TextCommentOperatorKeywordNameStringNumberGenericLiteral Punctuation) ClassNotFound) IrcLogsLexer TodotxtLexer HttpLexer GettextLexer NotmuchLexerKernelLogLexerc eZdZdZdZdgZdgZdgZdZdZ e je jzZ dZd efd ezd zeej"ej&fd ezd zeej"ej&d fd ezdzeej"eej,fd ezdzeej"eeefdefgdej2fdedfgdZy)rzD Lexer for IRC logs in *irssi*, *xchat* or *weechat* style. zIRC logsircz *.weechatlogz text/x-irclogz1https://en.wikipedia.org/wiki/Internet_Relay_Chataf ( # irssi / xchat and others (?: \[|\()? # Opening bracket or paren for the timestamp (?: # Timestamp (?: (?:\d{1,4} [-/])* # Date as - or /-separated groups of digits (?:\d{1,4}) [T ])? # Date/time separator: T or space (?: \d?\d [:.])* # Time as :/.-separated groups of 1 or 2 digits (?: \d?\d) ) (?: \]|\))?\s+ # Closing bracket or paren for the timestamp | # weechat \d{4}\s\w{3}\s\d{2}\s # Date \d{2}:\d{2}:\d{2}\s+ # Time + Whitespace | # xchat \w{3}\s\d{2}\s # Date \d{2}:\d{2}:\d{2}\s+ # Time + Whitespace )? z^\*\*\*\*(.*)\*\*\*\*$^z(\s*<[^>]*>\s*)$z/ (\s*<.*?>\s*) # Nick msgzo (\s*[*]\s+) # Star (\S+\s+.*?\n) # Nick + rest of message z (\s*(?:\*{3}|?)\s*) # Star(s) or symbols (\S+\s+) # Nick + Space (.*?\n) # Rest of message z^.*?\nz \S+:(?!//)z.*\n#pop)rootrN)__name__ __module__ __qualname____doc__namealiases filenames mimetypesurl version_addedreVERBOSE MULTILINEflags timestampr rPreprocr Tagr rInsertedrr Attributetokensa/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/pygments/lexers/textfmts.pyrrs2 DgG I !I =CM JJ %EI2' 0 9_2 2HW__dhh4W X 9_ 22 gootxx 0% 99_ DDgoow0@0@ A C 9_ FFgoow @  B  ) .DNN + dF # /Fr6rc:eZdZdZdZddgZddgZgdZdZd Z d d e jfd e jfd e jfdeeej$efdefdeej&eefdeej&ej,ej&eefgiZy)rz* Lexer for Gettext catalog files. zGettext Catalogpotpoz*.potz*.po)zapplication/x-gettextztext/x-gettextz text/gettextz$https://www.gnu.org/software/gettextz0.9r z ^#,\s.*?$z ^#:\s.*?$z^(#|#\.\s|#\|\s|#~\s|#\s).*$z^(")([A-Za-z-]+:)(.*")$z^".*"$z0^(msgid|msgid_plural|msgstr|msgctxt)(\s+)(".*")$z^(msgstr\[)(\d)(\])(\s+)(".*")$N)r!r"r#r$r%r&r'r(r)r*r Type Declarationr Singlerrr PropertyVariabler rIntegerr4r5r6r7rrXs DdmG&!IKI 0CM  7<< ( 7.. / ,gnn = ' fdmmV 4 6   @ dmmT6 2 4 / dmmV^^T]]D& Q S  Fr6rc (eZdZdZdZdgZdZdZejZ ddZ dZ dZ d Zd eej"eej&eej*eeed fd eej*eeeeeej0ed fgd e fde fdedfgdefgdZdZy)rz" Lexer for HTTP sessions. HTTPhttpzhttps://httpwg.org/specsz1.5c>d|_tj|||S)zReset the content-type state.N) content_typerget_tokens_unprocessed)selftextstacks r7rFz HttpLexer.get_tokens_unprocesseds 00tUCCr6c#K|jdjdk(rL|jdj}d|vr"|d|jdj}||_|j dt j|jdf|j dt|jdf|j dt|jdf|j dt|jdf|j dt|jdf|j dt|jdfyw) Nz content-type;) grouplowerstripfindrEstartr r3r r r)rGmatchrEs r7header_callbackzHttpLexer.header_callbacks ;;q>   !^ 3 ;;q>//1Ll"+,C\->->s-CDJJL ,D kk!ndnnekk!n<<kk!ndEKKN22kk!nh A66kk!ndEKKN22kk!ngu{{1~55kk!ndEKKN22sE0E2c#K|jdt|jdf|jdt|jdf|jdt|jdfyw)NrKrNrO)rVr rRr)rGrWs r7continuous_header_callbackz$HttpLexer.continuous_header_callbacks]kk!ndEKKN22kk!ngu{{1~55kk!ndEKKN22sA=A?c#rKt|dd}|j}|j}|rjddlm}|g}d|vr(t j dd|}|j||D]0} ||} | j|D]\} } } || z| | fy|t|fy#t$rYJwxYww)NrEr)get_lexer_for_mimetype+z^(.*)/.*\+(.*)$z\1/\2) getattrrRrVpygments.lexersr\r+subappendrFrr ) rGrWrEcontentoffsetr\possible_lexer_mimetypes general_typeilexeridxtokenvalues r7content_callbackzHttpLexer.content_callbackst^T: ++-  >(4~ $l" "vv&8(&2 4 (// =- 215E.3-I-I'-R9)UE$slE5889 dG## %s*A*B7-B(53B7( B41B73B44B7zL([a-zA-Z][-_a-zA-Z]+)( +)([^ ]+)( +)(HTTP)(/)(1\.[01]|2(?:\.0)?|3)(\r?\n|\Z)headerszF(HTTP)(/)(1\.[01]|2(?:\.0)?|3)( +)(\d{3})(?:( +)([^\r\n]*))?(\r?\n|\Z)z(([^\s:]+)( *)(:)( *)([^\r\n]*)(\r?\n|\Z)z([\t ]+)([^\r\n]+)(\r?\n|\Z)z\r?\nrbz.+)r rlrbc,tfddDS)Nc3NK|]}tj|duyw)N)r+search).0patternrHs r7 z)HttpLexer.analyse_text..s)  IIgt $D 0 s"%)zM^([a-zA-Z][-_a-zA-Z]+)( +)([^ ]+)( +)(HTTP)(/)(1\.[01]|2(?:\.0)?|3)(\r?\n|\Z)zG^(HTTP)(/)(1\.[01]|2(?:\.0)?|3)( +)(\d{3})(?:( +)([^\r\n]*))?(\r?\n|\Z))anyrHs`r7 analyse_textzHttpLexer.analyse_texts    r6N))r )r!r"r#r$r%r&r)r*r+DOTALLr.rFrXrZrkrr Functionr Namespacer Reservedr r Exceptionr4rur5r6r7rrts DhG $CM IIED 33 $69 dmmT4>>4&&&$@    W g&&&$nnd,    9/ J ,.H I tY ' $ % #F, r6rc eZdZdZdZdZdgZdZddgZdgZ e Z e Z ejZej"Zej&ZeZd Zd Zd Zd Zd ezdzZedzezdzZdezdzezdzZeee ee edfeee edfeeee edfeedfeedfeedfeedfde dfgde dfeefeefde fde fgde dfeefeefde fde fgdZy)rz. Lexer for Todo.txt todo list format. Todotxtzhttp://todotxt.com/todotxtz2.0ztodo.txtz *.todotxtz text/x-todoz\d{4,}-\d{2}-\d{2}z \([A-Z]\)z\+\S+z@\S+z(x )()z( )((z)( )(complete incompletez\S+z\s*\nrz\s+)r rrN) r!r"r#r$r%r)r&r*r'r(r CompleteTaskTextr IncompleteTaskTextrHeadingPriority SubheadingDateErrorProjectrContext date_regexpriority_regex project_regex context_regexcomplete_one_date_regexcomplete_two_date_regexpriority_date_regexrr4r5r6r7rrs D CkGM[)II H   DmmGG'J!NMM'3d:6@) *,0 1/(:ZG$N%h/?/?'G  %h/?&F   !(85G"N  X| 4 | , G\ 2 G\ 2 ' 6/ :' 0 G $ G $ % & % &  )6 2 G $ G $ ' ( ' (  U5Fr6rc BeZdZdZdZdZdgZdZdZde dfgd e e je fd e e jejfd e e je fed gd e d fde dfde dfgde d fde e je fde ej$ee j(fgde dfde dfde d fgde e jejfde ee je fde ee je fed gde d fde dfd efd!efgd"Zd#Zd$Zy%)&rz For Notmuch email text format. Additional options accepted: `body_lexer` If given, highlight the contents of the message body with the specified lexer, else guess it according to the body content (default: ``None``). Notmuchzhttps://notmuchmail.org/notmuchz2.5c#K|jd} |jrt|j}nt|j }|j |Ed{y#t $rtd}Y0wxYw7w)NrKrH)rR body_lexerrrrTrrF)rGrWcodergs r7_highlight_codezNotmuchLexer._highlight_codeDss{{1~ .)$//:#DJJL1//555 .%f-E . 6s4B;A*B$B%B*B>BBBz\fmessage\{\s*)message message-attrz(\s*id:\s*)(\S+)z&(\s*(?:depth|match|excluded):\s*)(\d+)z(\s*filename:\s*)(.+\n)rz \fmessage\}\nz \fheader\{\nheaderz \fbody\{\nbodyz \fheader\}\nz'((?:Subject|From|To|Cc|Date):\s*)(.*\n)z(.*)(\s*\(.*\))(\s*\(.*\)\n)z \fpart\{\npartz\f(part|attachment)\{\s*)r part-attrz \fbody\}\nz (ID:\s*)(\d+)z*(,\s*)((?:Filename|Content-id):\s*)([^,]+)z(,\s*)(Content-type:\s*)(.+\n)z\f(?:part|attachment)\}\nz\f(?:part|attachment)\{\s*)z#pushrz^Non-text part: .*\nz&(?s)(.*?(?=\f(?:part|attachment)\}\n)))r rrrrrrc,|jdrdSdS)Nz message{g?g) startswithrts r7ruzNotmuchLexer.analyse_text~sool3s<>6"B C 6 dnnfnn 5 7 ' dnnf - / FO  w / gx 0 GV , gv . 7 dnnf - / , gnngtxx 8 :  GV , ('3H I GV , xG H : k4>>6 : < . k4>>6 : < FO  *7F ; *G5K L $g . 6 H  K+FZ=-r6rc *eZdZdZdZddgZddgZdZdZd e d fd e d fd e dfde dfde dfde dfde dfgde dfde dfe d gde fde fde dfge ddedfge dde dfge ddej dfge ddej"dfgdZy)rz0 For Linux Kernel log ("dmesg") output. z Kernel logkmsgdmesgz*.kmsgz*.dmesgz#https://fr.wikipedia.org/wiki/Dmesgz2.6z^[^:]+:debug : (?=\[)debugz^[^:]+:info : (?=\[)infoz^[^:]+:warn : (?=\[)warnz^[^:]+:notice: (?=\[)z^[^:]+:err : (?=\[)errorz^[^:]+:crit : (?=\[)z^(?=\[)unknownz(^(?=.+(warning|notice|audit|deprecated))z ^(?=.+(error|critical|fail|Bug))z \[[0-9. ]+\] z (?<=\] ).+?:z\nrbasez.+\n)r rrrrrrN)r!r"r#r$r%r&r'r)r*r rrr rr rrrr4r5r6r7rrs, DwG9%I /CM&tW 5 %tV 4 %tV 4 %tV 4 %tW 5 %tW 5 y ) 9$ G 0$ @ FO v & g & D& ! FO gv & FO dF # FO gnnf - FO gmmV , A$Fr6r)r$r+r_rrpygments.lexerrrrrpygments.tokenr r r r r rrrrr pygments.utilr__all__rrrrrrr5r6r7rs :AA***' ->:>B:8Y Y xa:aHO-:O-d.Z.r6