o a6;@sdZddlZddlmZmZddlmZmZmZm Z ddl m Z m Z m Z mZmZmZmZmZmZmZddlmZgdZGdd d eZGd d d eZGd d d eZGdddeZGdddeZGdddeZdS)z pygments.lexers.textfmts ~~~~~~~~~~~~~~~~~~~~~~~~ Lexers for various text formats. :copyright: Copyright 2006-2021 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 @seZdZdZdZdgZdgZdgZej ej BZ dZ de fde d ee jejfde d ee jejd fde d ee jeejfde d ee jeee fdefgdejfdedfgdZdS)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 rInsertedr r Attributetokensr0r0:/usr/lib/python3/dist-packages/pygments/lexers/textfmts.pyrs2     rc@seZdZdZdZddgZddgZgdZdd ej fd ej fd e j fd e eejefd efde ejeefde ejejejeefgiZdS)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)rrr r!r"r#r$r%r Type Declarationr Singlerr r PropertyVariablerrIntegerr/r0r0r0r1rVs,  rc @seZdZdZdZdgZejZdddZ ddZ d d Z d d Z d e ejeejeejeeedfde ejeeeeeejedfgde fde fdedfgde fgdZddZdS)rz= Lexer for HTTP sessions. .. versionadded:: 1.5 HTTPhttprcCsd|_t|||S)zReset the content-type state.N) content_typerget_tokens_unprocessed)selftextstackr0r0r1r>~sz HttpLexer.get_tokens_unprocessedccs|ddkr#|d}d|vr |d|d}||_|dtj|dfV|dt|dfV|dt |dfV|dt|dfV|dt |dfV|dt|dfVdS) Nz content-type;) grouplowerstripfindr=startr r.rr r)r?matchr=r0r0r1header_callbackszHttpLexer.header_callbackccsN|dt|dfV|dt|dfV|dt|dfVdS)NrBrErF)rMrrIr)r?rNr0r0r1continuous_header_callbacksz$HttpLexer.continuous_header_callbackc cst|dd}|}|}|rTddlm}|g}d|vr*tdd|}|||D]'}z||} Wn ty=Yq,w| |D] \} } } || | | fVqCdS|t |fVdS)Nr=r)get_lexer_for_mimetype+z^(.*)/.*\+(.*)$z\1/\2) getattrrIrMpygments.lexersrQr&subappendrr>r) r?rNr=contentoffsetrQpossible_lexer_mimetypes general_typeilexeridxtokenvaluer0r0r1content_callbacks,     zHttpLexer.content_callbackze(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH)( +)([^ ]+)( +)(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?\nrWz.+)rrarWcCs |dS)N)zGET /zPOST /zPUT /zDELETE /zHEAD /z OPTIONS /zTRACE /zPATCH / startswithr@r0r0r1 analyse_texts zHttpLexer.analyse_textN)r<)rrr r!r"r#r&DOTALLr)r>rOrPr`rr Functionr Namespacer Reservedr r Exceptionr/rer0r0r0r1rrs<     rc @s*eZdZdZdZdgZddgZdgZeZ e Z e j Ze jZe jZeZdZdZd Zd Zd ed Zed ed Zdeded Zeee ee edfeee edfeeee edfeedfeedfeedfeedfde dfgde dfeefeefde fde fgde dfeefeefde fde fgdZdS)rzb Lexer for `Todo.txt `_ todo list format. .. versionadded:: 2.0 Todotxttodotxtztodo.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+)rrorpN)rrr r!r"r#r$r%r CompleteTaskTextrIncompleteTaskTextrHeadingPriority SubheadingDateErrorProjectr Context date_regexpriority_regex project_regex context_regexcomplete_one_date_regexcomplete_two_date_regexpriority_date_regexrr/r0r0r0r1rsj    rc @s*eZdZdZdZdgZddZdedfgdee j e fd ee j e j fd ee j e fed gd ed fd edfdedfgded fdee j e fdeejee jfgdedfdedfded fgdee j e j fdeee j e fdeee j e fed gded fdedfdefd efgd!Zd"d#Zd$d%Zd&S)'ra5 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``). Notmuchnotmuchccs^|d}z|jrt|j}nt|}Wn ty$td}Ynw||EdHdS)NrBr@)rI body_lexerrrrKrr>)r?rNcoder\r0r0r1_highlight_code=s     zNotmuchLexer._highlight_codez\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)))rrrrrrrcCs|drdSdS)Nz message{g?grbrdr0r0r1rewszNotmuchLexer.analyse_textcKs$|dd|_tj|fi|dS)Nr)getrr__init__)r?optionsr0r0r1rzszNotmuchLexer.__init__N)rrr r!r"r#rr rr r.r rr9rrStrongrr,rr r/rerr0r0r0r1r-sb        - rc @seZdZdZdZddgZddgZdedfd ed fd ed fd ed fdedfdedfdedfgded fdedfed gde fde fdedfge dde dfge ddedfge dde jdfge dde jdfgdZdS)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)rrr r!r"r#r$rrrr rr rrrwr/r0r0r0r1rsD    r)r!r&rTrrpygments.lexerrrrrpygments.tokenrr r r r r rrrr pygments.utilr__all__rrrrrrr0r0r0r1s 0 ?WdR