1""" 
    2prompt_toolkit 
    3============== 
    4 
    5Author: Jonathan Slenders 
    6 
    7Description: prompt_toolkit is a Library for building powerful interactive 
    8             command lines in Python.  It can be a replacement for GNU 
    9             Readline, but it can be much more than that. 
    10 
    11See the examples directory to learn about the usage. 
    12 
    13Probably, to get started, you might also want to have a look at 
    14`prompt_toolkit.shortcuts.prompt`. 
    15""" 
    16 
    17from __future__ import annotations 
    18 
    19import re 
    20from importlib import metadata 
    21 
    22# note: this is a bit more lax than the actual pep 440 to allow for a/b/rc/dev without a number 
    23pep440 = re.compile( 
    24    r"^([1-9]\d*!)?(0|[1-9]\d*)(\.(0|[1-9]\d*))*((a|b|rc)(0|[1-9]\d*)?)?(\.post(0|[1-9]\d*))?(\.dev(0|[1-9]\d*)?)?$", 
    25    re.UNICODE, 
    26) 
    27from .application import Application 
    28from .formatted_text import ANSI, HTML 
    29from .shortcuts import PromptSession, choice, print_formatted_text, prompt 
    30 
    31# Don't forget to update in `docs/conf.py`! 
    32__version__ = metadata.version("prompt_toolkit") 
    33 
    34assert pep440.match(__version__) 
    35 
    36# Version tuple. 
    37VERSION = tuple(int(v.rstrip("abrc")) for v in __version__.split(".")[:3]) 
    38 
    39 
    40__all__ = [ 
    41    # Application. 
    42    "Application", 
    43    # Shortcuts. 
    44    "prompt", 
    45    "choice", 
    46    "PromptSession", 
    47    "print_formatted_text", 
    48    # Formatted text. 
    49    "HTML", 
    50    "ANSI", 
    51    # Version info. 
    52    "__version__", 
    53    "VERSION", 
    54]