
    ,hz                         d Z ddlmZ ddlmZ ddlmZ ddlmZ g dZ	 G d de      Z
 G d	 d
e      ZdZdZ G d de      Zy)z
    pygments.formatters.other
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Other formatters: NullFormatter, RawTokenFormatter.

    :copyright: Copyright 2006-2025 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )	Formatter)get_choice_opt)Token)colorize)NullFormatterRawTokenFormatterTestcaseFormatterc                   (    e Zd ZdZdZddgZdgZd Zy)r   z;
    Output the text unchanged without any formatting.
    z	Text onlytextnullz*.txtc                     | j                   }|D ]9  \  }}|r!|j                  |j                  |             )|j                  |       ; y N)encodingwriteencode)selftokensourceoutfileencttypevalues         [/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pygments/formatters/other.pyformatzNullFormatter.format   sB    mm' 	%LE5ell3/0e$		%    N)__name__
__module____qualname____doc__namealiases	filenamesr    r   r   r   r      s$     DvG	I%r   r   c                   2    e Zd ZdZdZddgZdgZdZd Zd Z	y	)
r   a}  
    Format tokens as a raw representation for storing token streams.

    The format is ``tokentype<TAB>repr(tokenstring)\n``. The output can later
    be converted to a token stream with the `RawTokenLexer`, described in the
    :doc:`lexer list <lexers>`.

    Only two options are accepted:

    `compress`
        If set to ``'gz'`` or ``'bz2'``, compress the output with the given
        compression algorithm after encoding (default: ``''``).
    `error_color`
        If set to a color name, highlight error tokens using that color.  If
        set but with no value, defaults to ``'red'``.

        .. versionadded:: 0.11

    z
Raw tokensrawtokensz*.rawFc                 T   t        j                  | fi | d| _        t        |dg dd      | _        |j                  dd       | _        | j                  du rd| _        | j                  	 t        | j                  d       y y # t        $ r t        d| j                  d	      w xY w)
Nasciicompress) nonegzbz2r)   error_colorTredzInvalid color z
 specified)
r   __init__r   r   r(   getr-   r   KeyError
ValueErrorr   optionss     r   r/   zRawTokenFormatter.__init__>   s    4+7+  &w
'@"F";;}d;t#$D'R))2. (  R >$2B2B1EZ!PQQRs   ,B #B'c                 T  
 	 j                  d       | j                  dk(  r1dd l}|j	                  ddd      j                   }j
                  }nI| j                  dk(  r"dd l}|j                  d      

fd	}
fd
}nj                   }j                  }| j                  rI|D ]C  \  }}d||fz  }	|t        j                  u r |t        | j                  |	             < ||	       E n|D ]  \  }} |d||fz           |        y # t        $ r t        d      w xY w)Nr   z3The raw tokens formatter needs a binary output filer+   r   r)   wb	   r,   c                 F    j                  j                  |              y r   )r   r(   )r   
compressorr   s    r   r   z'RawTokenFormatter.format.<locals>.write_   s    j11$78r   c                  d    j                   j                                j                          y r   )r   flush)r9   r   s   r   r;   z'RawTokenFormatter.format.<locals>.flushb   s!    j..01r   s   %r	%r
)r   	TypeErrorr(   gzipGzipFilecloser,   BZ2Compressorr;   r-   r   Errorr   )r   r   r   r=   r   r;   r,   r   r   liner9   s     `       @r   r   zRawTokenFormatter.formatO   s)   	+MM# ==D mmBa9GMMEMME]]e#**1-J9  MMEMME +  u"eU^3EKK'(4#3#3T:;$K  !, 4ukUEN234C  	+ * + +	+s   D D'N)
r   r   r   r   r   r    r!   unicodeoutputr/   r   r"   r   r   r   r   $   s/    & DhG	IMR"$r   r   zG    def testNeedsName(lexer):
        fragment = %r
        tokens = [
zD        ]
        assert list(lexer.get_tokens(fragment)) == tokens
c                   &    e Zd ZdZdZdgZd Zd Zy)r	   zU
    Format tokens as appropriate for a new testcase.

    .. versionadded:: 2.0
    Testcasetestcasec                 ~    t        j                  | fi | | j                  | j                  dk7  rt        d      y y )Nutf-8z*Only None and utf-8 are allowed encodings.)r   r/   r   r2   r3   s     r   r/   zTestcaseFormatter.__init__   s?    4+7+==$')AIJJ *B$r   c           	         d}g }g }|D ]0  \  }}|j                  |       |j                  | d| d|d       2 t        dj                  |      fz  }dj                  |      }	t        }
| j                  |j                  ||	z   |
z          n`|j                  |j                  d             |j                  |	j                  d             |j                  |
j                  d             |j                          y )Nz            (z, z),
r)   rH   )appendTESTCASE_BEFOREjoinTESTCASE_AFTERr   r   r   r;   )r   r   r   indentationrawbufoutbufr   r   beforeduringafters              r   r   zTestcaseFormatter.format   s    ' 	CLE5MM% MM[M5'E9DAB	C !BGGFO#55== MM&6/E12MM&--01MM&--01MM%,,w/0r   N)r   r   r   r   r   r    r/   r   r"   r   r   r	   r	      s     
 DlGK
r   r	   N)r   pygments.formatterr   pygments.utilr   pygments.tokenr   pygments.consoler   __all__r   r   rL   rN   r	   r"   r   r   <module>rZ      sR    ) (   %
E%I %"O	 Od
	 r   