|e;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-2023 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 eZdZdZdZdgZdgZdgZejejzZ dZ de fde zd zee jej"fde zd zee jej"d fde zd zee jeej(fde zd zee jeee fdefgdej.fdedfgdZy)rzD Lexer for IRC logs in *irssi*, *xchat* or *weechat* style. zIRC logsircz *.weechatlogz text/x-irclogaf ( # 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 mimetypesreVERBOSE MULTILINEflags timestampr rPreprocr Tagr rInsertedrr Attributetokens:/usr/lib/python3/dist-packages/pygments/lexers/textfmts.pyrrs( DgG I !I JJ %EI2' 0 9_2 2HW__dhh4W X 9_ 22 gootxx 0% 99_ DDgoow0@0@ A C 9_ FFgoow @  B  ) .DNN + dF # /Fr3rc2eZdZdZdZddgZddgZgdZdd ejfd ejfd e jfd e eej efd efde ej"eefde ej"ej(ej"eefgiZy)rzE Lexer for Gettext catalog files. .. versionadded:: 0.9 zGettext Catalogpotpoz*.potz*.po)zapplication/x-gettextztext/x-gettextz text/gettextrz ^#,\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 Type Declarationr Singlerrr PropertyVariabler rIntegerr1r2r3r4rrVs DdmG&!IKI  7<< ( 7.. / ,gnn = ' fdmmV 4 6   @ dmmT6 2 4 / dmmV^^T]]D& Q S  Fr3rc eZdZdZdZdgZejZddZ dZ dZ dZ de ejeej"eej&eeed fd e ej&eeeeeej,ed fgd e fd e fd edfgde fgdZdZy)rz= Lexer for HTTP sessions. .. versionadded:: 1.5 HTTPhttpc>d|_tj|||S)zReset the content-type state.N) content_typerget_tokens_unprocessed)selftextstacks r4rCz HttpLexer.get_tokens_unprocessed~s 00tUCCr3c#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;) grouplowerstripfindrBstartr r0r r r)rDmatchrBs r4header_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)NrHrKrL)rSr rOr)rDrTs r4continuous_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)NrBr)get_lexer_for_mimetype+z^(.*)/.*\+(.*)$z\1/\2) getattrrOrSpygments.lexersrYr(subappendrCrr ) rDrTrBcontentoffsetrYpossible_lexer_mimetypes general_typeilexeridxtokenvalues r4content_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?\nr_z.+)rrir_c,tfddDS)Nc3NK|]}tj|duyw)N)r(search).0patternrEs r4 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))anyrEs`r4 analyse_textzHttpLexer.analyse_texts    r3N))r)r r!r"r#r$r%r(DOTALLr+rCrUrWrhrr Functionr Namespacer Reservedr r Exceptionr1rrr2r3r4rrrs DhG IIED 33 $69 dmmT4>>4&&&$@    W g&&&$nnd,    9/ J ,.H I tY ' $ % #F, r3rc eZdZdZdZdZdgZddgZdgZe Z e Z e jZe j Ze j$ZeZdZd Zd Zd Zd ezd zZedzezd zZdezdzezd zZeee ee edfeee edfeeee edfeedfeedfeedfeedfde dfgde dfeefeefde fde fgde dfeefeefde fde fgdZy)rzI Lexer for Todo.txt todo list format. .. versionadded:: 2.0 Todotxtzhttp://todotxt.com/todotxtztodo.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+)rr}r~N)r r!r"r#r$urlr%r&r'r CompleteTaskTextr IncompleteTaskTextrHeadingPriority SubheadingDateErrorProjectrContext date_regexpriority_regex project_regex context_regexcomplete_one_date_regexcomplete_two_date_regexpriority_date_regexrr1r2r3r4rrs D CkG[)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 $ ' ( ' (  U5Fr3rc >eZdZdZdZdZdgZdZdedfgde e je fd e e je jfd e e je fed gd ed fd edfdedfgded fde e je fde ej"ee j&fgdedfdedfded fgde e je jfde ee je fde ee je fed gded fdedfdefd efgd!Zd"Zd#Zy$)%ra For Notmuch email text format. .. versionadded:: 2.5 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/notmuchc#K|jd} |jrt|j}nt|j }|j |Ed{y#t $rtd}Y0wxYw7w)NrHrE)rO body_lexerrrrQrrC)rDrTcoderds r4_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)))rrrrrrrc,|jdrdSdS)Nz message{g?g) startswithrqs r4rrzNotmuchLexer.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=-r3rc "eZdZdZdZddgZddgZdedfd ed fd ed fd ed fdedfdedfdedfgded fdedfed gde fde fdedfge dde dfge ddedfge dde jdfge dde jdfgdZy)rzK For Linux Kernel log ("dmesg") output. .. versionadded:: 2.6 z Kernel logkmsgdmesgz*.kmsgz*.dmesgz^[^:]+: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)rrrrrrrN)r r!r"r#r$r%r&r rrr rr rrrr1r2r3r4rrs" DwG9%I&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$Fr3r)r#r(r\rrpygments.lexerrrrrpygments.tokenr r r r r rrrrr pygments.utilr__all__rrrrrrr2r3r4rs :AA***' -<:<~:8Y Y xb:bJP-:P-f.Z.r3