ó
xiù\c           @   s­   d  Z  d d l m Z d d l m Z m Z d d l m Z d d l m	 Z	 d d d g Z
 d e f d	 „  ƒ  YZ d e f d
 „  ƒ  YZ d Z d Z d e f d „  ƒ  YZ d S(   sê   
    pygments.formatters.other
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Other formatters: NullFormatter, RawTokenFormatter.

    :copyright: Copyright 2006-2019 by the Pygments team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iÿÿÿÿ(   t	   Formatter(   t   OptionErrort   get_choice_opt(   t   Token(   t   colorizet   NullFormattert   RawTokenFormattert   TestcaseFormatterc           B   s2   e  Z d  Z d Z d d g Z d g Z d „  Z RS(   s;   
    Output the text unchanged without any formatting.
    s	   Text onlyt   textt   nulls   *.txtc         C   sP   |  j  } x@ | D]8 \ } } | r; | j | j | ƒ ƒ q | j | ƒ q Wd  S(   N(   t   encodingt   writet   encode(   t   selft   tokensourcet   outfilet   enct   ttypet   value(    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyt   format   s
    	(   t   __name__t
   __module__t   __doc__t   namet   aliasest	   filenamesR   (    (    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR      s
   	c           B   sA   e  Z d  Z d Z d d g Z d g Z e Z d „  Z d „  Z	 RS(   s}  
    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

    s
   Raw tokenst   rawt   tokenss   *.rawc         K   s¾   t  j |  |  d |  _ t | d d d d d g d ƒ |  _ | j d d  ƒ |  _ |  j t k rm d |  _ n  |  j d  k	 rº y t	 |  j d ƒ Wqº t
 k
 r¶ t d	 |  j ƒ ‚ qº Xn  d  S(
   Nt   asciit   compresst    t   nonet   gzt   bz2t   error_colort   reds   Invalid color %r specified(   R    t   __init__R
   R   R   t   gett   NoneR"   t   TrueR   t   KeyErrort
   ValueError(   R   t   options(    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR$   ?   s    		c   
         sƒ  y ˆ j  d ƒ Wn t k
 r0 t d ƒ ‚ n X|  j d k r d d  l } | j d d d ˆ ƒ ‰ ‡ f d †  } ˆ j } ni |  j d k rÐ d d  l } | j d ƒ ‰  ‡  ‡ f d	 †  } ‡  ‡ f d
 †  } n ‡ f d †  } ˆ j } |  j rMx„ | D]N \ } } d | | f }	 | t	 j
 k r<| t |  j |	 ƒ ƒ qø | |	 ƒ qø Wn+ x( | D]  \ } } | d | | f ƒ qTW| ƒ  d  S(   NR   s3   The raw tokens formatter needs a binary output fileR    iÿÿÿÿt   wbi	   c            s   ˆ  j  |  j ƒ  ƒ d  S(   N(   R   R   (   R   (   R   (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR   Z   s    R!   c            s    ˆ j  ˆ  j |  j ƒ  ƒ ƒ d  S(   N(   R   R   R   (   R   (   t
   compressorR   (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR   `   s    c              s!   ˆ j  ˆ  j ƒ  ƒ ˆ j ƒ  d  S(   N(   R   t   flush(    (   R,   R   (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR-   b   s    c            s   ˆ  j  |  j ƒ  ƒ d  S(   N(   R   R   (   R   (   R   (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR   f   s    s   %s	%r
(   R   t	   TypeErrorR   t   gzipt   GzipFileR-   R!   t   BZ2CompressorR"   R   t   ErrorR   (
   R   R   R   R/   R   R-   R!   R   R   t   line(    (   R,   R   s8   lib/python2.7/site-packages/pygments/formatters/other.pyR   Q   s2    		(
   R   R   R   R   R   R   t   Falset   unicodeoutputR$   R   (    (    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR   %   s   		uF       def testNeedsName(self):
        fragment = %r
        tokens = [
uR           ]
        self.assertEqual(tokens, list(self.lexer.get_tokens(fragment)))
c           B   s/   e  Z d  Z d Z d g Z d „  Z d „  Z RS(   sU   
    Format tokens as appropriate for a new testcase.

    .. versionadded:: 2.0
    t   Testcaset   testcasec         K   sA   t  j |  |  |  j d  k	 r= |  j d k r= t d ƒ ‚ n  d  S(   Ns   utf-8s*   Only None and utf-8 are allowed encodings.(   R    R$   R
   R&   R)   (   R   R*   (    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR$   Š   s    c         C   sò   d } g  } g  } x; | D]3 \ } } | j  | ƒ | j  d | | | f ƒ q Wt d j | ƒ f } d j | ƒ }	 t }
 |  j d  k r¢ | j | |	 |
 ƒ nB | j | j d ƒ ƒ | j |	 j d ƒ ƒ | j |
 j d ƒ ƒ | j ƒ  d  S(   Nt    i   s   %s(%s, %r),
u    s   utf-8s               (	   t   appendt   TESTCASE_BEFOREt   joint   TESTCASE_AFTERR
   R&   R   R   R-   (   R   R   R   t   indentationt   rawbuft   outbufR   R   t   beforet   duringt   after(    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR      s    (   R   R   R   R   R   R$   R   (    (    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyR      s
   		N(   R   t   pygments.formatterR    t   pygments.utilR   R   t   pygments.tokenR   t   pygments.consoleR   t   __all__R   R   R:   R<   R   (    (    (    s8   lib/python2.7/site-packages/pygments/formatters/other.pyt   <module>
   s   U