1from __future__ import annotations 
    2 
    3from typing import TYPE_CHECKING 
    4 
    5from prompt_toolkit.styles.pygments import pygments_token_to_classname 
    6 
    7from .base import StyleAndTextTuples 
    8 
    9if TYPE_CHECKING: 
    10    from pygments.token import Token 
    11 
    12__all__ = [ 
    13    "PygmentsTokens", 
    14] 
    15 
    16 
    17class PygmentsTokens: 
    18    """ 
    19    Turn a pygments token list into a list of prompt_toolkit text fragments 
    20    (``(style_str, text)`` tuples). 
    21    """ 
    22 
    23    def __init__(self, token_list: list[tuple[Token, str]]) -> None: 
    24        self.token_list = token_list 
    25 
    26    def __pt_formatted_text__(self) -> StyleAndTextTuples: 
    27        result: StyleAndTextTuples = [] 
    28 
    29        for token, text in self.token_list: 
    30            result.append(("class:" + pygments_token_to_classname(token), text)) 
    31 
    32        return result