o
    xid*                     @   s   d Z ddlZddlmZmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZ ddlmZ g dZG dd deZG d	d
 d
eZG dd deZG dd deZdS )z
    pygments.lexers.textfmts
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Lexers for various text formats.

    :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    N)
RegexLexerbygroups)	TextCommentOperatorKeywordNameStringNumberGenericLiteral)ClassNotFound)IrcLogsLexerTodotxtLexer	HttpLexerGettextLexerc                
   @   s   e Zd ZdZdZdgZdgZdgZej	ej
B ZdZdefde d	 eejejfde d
 eejejdfde d eejeejfde d eejeeefdefgdejfdedfgdZdS )r   zD
    Lexer for IRC logs in *irssi*, *xchat* or *weechat* style.
    zIRC logsircz*.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}|<?-[!@=P]?->?)\s*)  # Star(s) or symbols
                (\S+\s+)                     # Nick + Space
                (.*?\n)                         # Rest of message z^.*?\nz
\S+:(?!//)z.*\n#pop)rootr   N)__name__
__module____qualname____doc__namealiases	filenames	mimetypesreVERBOSE	MULTILINEflags	timestampr   r   Preprocr   Tagr   r   Insertedr	   r   	Attributetokens r)   r)   Y/home/ubuntu/.local/lib/python3.10/site-packages/wandb/vendor/pygments/lexers/textfmts.pyr      s2    



r   c                   @   s   e Zd ZdZdZddgZddgZg dZdd	ej	fd
ej
fdejfdeeejefdefdeejeefdeejejejeefgiZdS )r   zE
    Lexer for Gettext catalog files.

    .. versionadded:: 0.9
    zGettext Catalogpotpoz*.potz*.po)zapplication/x-gettextztext/x-gettextztext/gettextr   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   TypeDeclarationr   Singler   r	   r   PropertyVariabler   r
   Integerr(   r)   r)   r)   r*   r   U   s,    r   c                   @   s   e Zd ZdZdZdgZejZdddZ	dd Z
d	d
 Zdd Zdeejeejeejeeedfdeejeeeeeejedfgde
fdefdedfgdefgdZdd ZdS )r   z=
    Lexer for HTTP sessions.

    .. versionadded:: 1.5
    HTTPhttpr   c                 C   s   d| _ t| ||S )zReset the content-type state.N)content_typer   get_tokens_unprocessed)selftextstackr)   r)   r*   r7   }   s   z HttpLexer.get_tokens_unprocessedc                 c   s    | d dkr#| d }d|v r |d |d  }|| _|dtj| dfV  |dt| dfV  |dt	| dfV  |dt| dfV  |dt
| dfV  |dt| dfV  d S )	N   zcontent-type   ;            )grouplowerstripfindr6   startr   r'   r   r   r   )r8   matchr6   r)   r)   r*   header_callback   s   zHttpLexer.header_callbackc                 c   sN    | dt|dfV  | dt|dfV  | dt|dfV  d S )Nr;   r>   r?   )rF   r   rB   r   )r8   rG   r)   r)   r*   continuous_header_callback   s   z$HttpLexer.continuous_header_callbackc              	   c   s    t | dd }| }| }|rTddlm} |g}d|v r*tdd|}|| |D ]'}z||}	W n	 ty=   Y q,w |		|D ]\}
}}||
 ||fV  qC d S |t
|fV  d S )Nr6   r   )get_lexer_for_mimetype+z^(.*)/.*\+(.*)$z\1/\2)getattrrB   rF   pygments.lexersrJ   r   subappendr   r7   r   )r8   rG   r6   contentoffsetrJ   possible_lexer_mimetypesgeneral_typeilexeridxtokenvaluer)   r)   r*   content_callback   s,   
zHttpLexer.content_callbackzY(GET|POST|PUT|DELETE|HEAD|OPTIONS|TRACE|PATCH)( +)([^ ]+)( +)(HTTP)(/)(1\.[01])(\r?\n|\Z)headersz5(HTTP)(/)(1\.[01])( +)(\d{3})( +)([^\r\n]+)(\r?\n|\Z)z(([^\s:]+)( *)(:)( *)([^\r\n]+)(\r?\n|\Z)z([\t ]+)([^\r\n]+)(\r?\n|\Z)z\r?\nrP   z.+)r   rZ   rP   c                 C   s
   |  dS )N)zGET /zPOST /zPUT /zDELETE /zHEAD /z	OPTIONS /zTRACE /zPATCH /)
startswith)r9   r)   r)   r*   analyse_text   s   
zHttpLexer.analyse_textN)r5   )r   r   r   r   r   r   r   DOTALLr"   r7   rH   rI   rY   r   r   Functionr   	Namespacer   Reservedr   r
   	Exceptionr(   r\   r)   r)   r)   r*   r   q   s<    

r   c                
   @   s*  e Zd ZdZdZdgZddgZdgZeZ	e
ZejZejZejZeZdZdZd	Zd
Zde d Zed e d Zde d e d Zeee	ee	edfeee	edfeeeeedfeedfeedfeedfeedfdedfgde	dfeefeefde	fde	fgdedfeefeefdefdefgdZdS )r   zb
    Lexer for `Todo.txt <http://todotxt.com/>`_ todo list format.

    .. versionadded:: 2.0
    Todotxttodotxtztodo.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*\nr   z\s+)r   rf   rg   N)r   r   r   r   r   r   r   r   r   CompleteTaskTextr   IncompleteTaskTextr   HeadingPriority
SubheadingDateErrorProjectr	   Context
date_regexpriority_regexproject_regexcontext_regexcomplete_one_date_regexcomplete_two_date_regexpriority_date_regexr   r(   r)   r)   r)   r*   r      sj    

r   )r   r   pygments.lexerr   r   pygments.tokenr   r   r   r   r   r	   r
   r   r   pygments.utilr   __all__r   r   r   r   r)   r)   r)   r*   <module>   s   
,?W