Beispiel #1
0
def _handle_exception(cli, e, style=style_from_pygments(DefaultStyle)):
    output = cli.output

    # Instead of just calling ``traceback.format_exc``, we take the
    # traceback and skip the bottom calls of this framework.
    t, v, tb = sys.exc_info()
    tblist = traceback.extract_tb(tb)

    for line_nr, tb_tuple in enumerate(tblist):
        if tb_tuple[0] == '<stdin>':
            tblist = tblist[line_nr:]
            break

    l = traceback.format_list(tblist)
    if l:
        l.insert(0, "Traceback (most recent call last):\n")
    l.extend(traceback.format_exception_only(t, v))

    # For Python2: `format_list` and `format_exception_only` return
    # non-unicode strings. Ensure that everything is unicode.
    if six.PY2:
        l = [i.decode('utf-8') if isinstance(i, six.binary_type) else i for i in l]

    tb = ''.join(l)

    # Format exception and write to output.
    # (We use the default style. Most other styles result
    # in unreadable colors for the traceback.)
    tokens = _lex_python_traceback(tb)
    cli.print_tokens(tokens, style=style)

    output.write('%s\n' % e)
    output.flush()
Beispiel #2
0
    def _handle_exception(cls, cli, e):
        output = cli.output

        # Instead of just calling ``traceback.format_exc``, we take the
        # traceback and skip the bottom calls of this framework.
        t, v, tb = sys.exc_info()
        tblist = traceback.extract_tb(tb)

        for line_nr, tb_tuple in enumerate(tblist):
            if tb_tuple[0] == '<stdin>':
                tblist = tblist[line_nr:]
                break

        l = traceback.format_list(tblist)
        if l:
            l.insert(0, "Traceback (most recent call last):\n")
        l.extend(traceback.format_exception_only(t, v))
        tb = ''.join(l)

        # Format exception and write to output.
        # (We use the default style. Most other styles result
        # in unreadable colors for the traceback.)
        tokens = _lex_python_traceback(tb)
        cli.print_tokens(tokens, style=style_from_pygments(DefaultStyle))

        output.write('%s\n\n' % e)
        output.flush()
Beispiel #3
0
    def _handle_exception(cls, cli, e):
        output = cli.output

        # Instead of just calling ``traceback.format_exc``, we take the
        # traceback and skip the bottom calls of this framework.
        t, v, tb = sys.exc_info()
        tblist = traceback.extract_tb(tb)

        for line_nr, tb_tuple in enumerate(tblist):
            if tb_tuple[0] == '<stdin>':
                tblist = tblist[line_nr:]
                break

        l = traceback.format_list(tblist)
        if l:
            l.insert(0, "Traceback (most recent call last):\n")
        l.extend(traceback.format_exception_only(t, v))
        tb = ''.join(l)

        # Format exception and write to output.
        # (We use the default style. Most other styles result
        # in unreadable colors for the traceback.)
        tokens = _lex_python_traceback(tb)
        cli.print_tokens(tokens, style=style_from_pygments(DefaultStyle))

        output.write('%s\n' % e)
        output.flush()
Beispiel #4
0
    def _handle_exception(cls, cli, e):
        output = cli.output

        # Instead of just calling ``traceback.format_exc``, we take the
        # traceback and skip the bottom calls of this framework.
        t, v, tb = sys.exc_info()
        tblist = traceback.extract_tb(tb)

        for line_nr, tb_tuple in enumerate(tblist):
            if tb_tuple[0] == '<stdin>':
                tblist = tblist[line_nr:]
                break

        l = traceback.format_list(tblist)
        if l:
            l.insert(0, "Traceback (most recent call last):\n")
        l.extend(traceback.format_exception_only(t, v))

        # For Python2: `format_list` and `format_exception_only` return
        # non-unicode strings. Ensure that everything is unicode.
        if six.PY2:
            l = [i.decode('utf-8') if isinstance(i, six.binary_type) else i for i in l]

        tb = ''.join(l)

        # Format exception and write to output.
        # (We use the default style. Most other styles result
        # in unreadable colors for the traceback.)
        tokens = _lex_python_traceback(tb)
        cli.print_tokens(tokens, style=style_from_pygments(DefaultStyle))

        output.write('%s\n' % e)
        output.flush()
Beispiel #5
0
    def __init__(self, uri=None, **settings):
        self.output_file = settings.pop("file", None)
        verbose = settings.pop("verbose", False)
        connection_data = get_connection_data(uri, **settings)
        try:
            self.graph = Graph(uri, **settings)
        except ServiceUnavailable as error:
            raise ConsoleError("Could not connect to {} -- {}".format(
                connection_data["uri"], error))
        try:
            makedirs(HISTORY_FILE_DIR)
        except OSError:
            pass
        self.history = FileHistory(path_join(HISTORY_FILE_DIR, HISTORY_FILE))
        self.prompt_args = {
            "history":
            self.history,
            "lexer":
            PygmentsLexer(CypherLexer),
            "style":
            style_from_pygments(
                VimStyle, {
                    Token.Prompt:
                    "#ansi{}".format(self.prompt_colour.replace(
                        "cyan", "teal")),
                    Token.TxCounter:
                    "#ansi{} bold".format(
                        self.tx_colour.replace("cyan", "teal")),
                })
        }
        self.lexer = CypherLexer()
        self.result_writer = Table.write
        if verbose:
            from neo4j.util import watch
            self.watcher = watch("neo4j.%s" % connection_data["scheme"])

        self.commands = {
            "//": self.set_multi_line,
            "/e": self.edit,
            "/?": self.help,
            "/h": self.help,
            "/help": self.help,
            "/x": self.exit,
            "/exit": self.exit,
            "/play": self.play,
            "/csv": self.set_csv_result_writer,
            "/table": self.set_tabular_result_writer,
            "/tsv": self.set_tsv_result_writer,
            "/config": self.config,
            "/kernel": self.kernel,
        }
        self.tx = None
        self.tx_counter = 0
Beispiel #6
0
def cmdloop(self, intro=None):
    """A Cmd.cmdloop implementation"""
    style = style_from_pygments(BasicStyle, style_dict)
    self.preloop()
    stop = None
    while not stop:
        line = prompt(get_prompt_tokens=get_prompt_tokens, lexer=lexer,
                      get_bottom_toolbar_tokens=get_bottom_toolbar_tokens,
                      history=history, style=style, true_color=True,
                      on_exit='return-none', on_abort='return-none',
                      completer=QCompleter())
        if line is None or line.strip() == r'\\':
            raise SystemExit
        else:
            line = self.precmd(line)
            stop = self.onecmd(line)
        stop = self.postcmd(stop, line)
    self.postloop()
Beispiel #7
0
    def app_initialize(self, mp):
        if sys.platform.startswith('win'):
            callbacks.ENCODING = interface.encoding()

        if interface.get_option("rice.editing_mode", "emacs") in ["vim", "vi"]:
            mp.app.editing_mode = EditingMode.VI
        else:
            mp.app.editing_mode = EditingMode.EMACS

        color_scheme = interface.get_option("rice.color_scheme", "native")
        mp.style = style_from_pygments(get_style_by_name(color_scheme))

        mp.app.auto_indentation = interface.get_option("rice.auto_indentation", True)
        mp.app.tab_size = int(interface.get_option("rice.tab_size", 4))
        mp.complete_while_typing = interface.get_option("rice.complete_while_typing", True)

        prompt = interface.get_option("rice.prompt", None)
        if prompt:
            mp.set_prompt_mode_message("r", ANSI(prompt))
        else:
            sys_prompt = interface.get_option("prompt")
            if sys_prompt == "> ":
                prompt = PROMPT
            else:
                prompt = sys_prompt

        mp.default_prompt = prompt
        mp.set_prompt_mode_message("r", ANSI(prompt))
        interface.set_option("prompt", prompt)

        shell_prompt = interface.get_option("rice.shell_prompt", SHELL_PROMPT)
        mp.set_prompt_mode_message("shell", ANSI(shell_prompt))

        set_width_on_resize = interface.get_option("setWidthOnResize", True)
        mp.auto_width = interface.get_option("rice.auto_width", set_width_on_resize)

        if mp.auto_width:
            interface.set_option("width", mp.app.output.get_size().columns)

        # necessary on windows
        interface.set_option("menu.graphics", False)

        # print welcome message
        sys.stdout.write(interface.r_version())
Beispiel #8
0
    def __init__(self):
        def get_toolbar(self):
            return [(Token.Toolbar.Status.Key, '[msx] Help      [ctrl+q] Exit')
                    ]

        updated_style = style_from_pygments(
            TangoStyle, {
                Token.Menu.Completions.Completion.Current:
                'bg:#acba36 #000000',
                Token.Menu.Completions.Completion: 'bg:#008888 #ffffff',
                Token.Menu.Completions.ProgressBar: 'bg:#acba36',
                Token.Scrollbar: 'bg:#acba36',
                Token.Scrollbar.Button: 'bg:#003333',
                Token.Toolbar: '#ffffff bg:#333333',
                Token: '#00ffff bold',
                Token.Toolbar.Status.Key: '#ff0000'
            })
        history = InMemoryHistory()
        layout = create_default_layout(message=u'musixli:$>> ',
                                       get_bottom_toolbar_tokens=get_toolbar)
        cli_buffer = Buffer(history=history,
                            auto_suggest=AutoSuggestFromHistory(),
                            enable_history_search=True,
                            completer=self.musix_completer,
                            complete_while_typing=Always(),
                            accept_action=AcceptAction.RETURN_DOCUMENT)
        loop = create_eventloop()
        self.manager = KeyBindingManager()

        @self.manager.registry.add_binding(Keys.ControlQ, eager=True)
        def exit_(event):
            sys.exit()

        application = Application(
            key_bindings_registry=self.manager.registry,
            layout=layout,
            mouse_support=False,
            buffer=cli_buffer,
            style=updated_style,
            ignore_case=True,
        )
        self.cli = CommandLineInterface(application=application,
                                        eventloop=loop)
Beispiel #9
0
    def __call__(self):
        print_(self.get_title())

        while True:
            try:
                request = prompt(
                    '>>> ',
                    multiline=True,
                    get_title=self.get_title,
                    get_continuation_tokens=self.continuation_tokens,
                    key_bindings_registry=self.kbmgr.registry,
                    lexer=PygmentsLexer(GraphDSLLexer),
                    style=style_from_pygments(
                        get_style_by_name(self.color_scheme),
                        {}
                    ),
                    history=self.histmgr.history,
                    enable_history_search=True,
                )

                requests = [req.strip() for req in request.split(';')]

                for request in requests:
                    if request:
                        try:
                            result = self.graph(request)
                            self.histmgr.add_to_history(request)
                            print_(result)

                        except Exception as err:
                            print_('Error:', err)

            except EOFError:
                break

        self.histmgr.close()
        print_('Goodbye!')
Beispiel #10
0
        Name.Decorator: '#ffa500',
        Generic.Heading: 'bold #ffffff',
        Generic.Subheading: 'underline #ffffff',
        Generic.Deleted: '#d22323',
        Generic.Inserted: '#589819',
        Generic.Error: '#d22323',
        Generic.Emph: 'italic',
        Generic.Strong: 'bold',
        Generic.Prompt: '#eeeeee',
        Generic.Output: '#ffffff',
        Generic.Traceback: '#d22323',
        Error: 'bg:#e3d2d2 #a61717'
    }


CHStyle = style_from_pygments(CHPygmentsStyle)


class Echo(object):
    def __init__(self, verbose=True, colors=True):
        self.verbose = verbose
        self.colors = colors

    def _echo(self, *args, **kwargs):
        if not self.colors:
            kwargs.pop('fg', None)
        if self.verbose:
            return secho(*args, **kwargs)

    def info(self, text, *args, **kwargs):
        self._echo(text, *args, **kwargs)
Beispiel #11
0
from pygments.lexer import RegexLexer, include, bygroups, words
from pygments.token import Text, Comment, Operator, Keyword, Name, String, \
    Number, Punctuation

from pygments.lexers.python import PythonLexer
from pygments.styles.paraiso_dark import ParaisoDarkStyle
from prompt_toolkit.styles import style_from_pygments


#  Colour pallet
#  #383830 #49483e #75715e #a59f85 #d0c8c6
#  #e9e1dd #f9f8f5 #cb6077 #d28b71 #f4bc87
#  #beb55b #7bbda4 #8ab3b5 #a89bb9 #bb9584

ripl_style = style_from_pygments(ParaisoDarkStyle, {
        Token.Comment: '#75715e italic',
        Token.Punctuation.Quoted: '#a89bb9',
    })


class RiplLexer(RegexLexer):
    name = 'RIPL'
    aliases = ['Ripl']
    filenames = ['*.rpl']

    special_forms = (
        'car', 'cdr', 'import', 'do', 'is', 'in', 'eval',
        'quasiquote', 'unquote', 'unquote-splice', 'quote')

    declarations = 'define defn defmacro defclass lambda setv let'.split()

    builtins = (
Beispiel #12
0
    default_style = ''
    styles = {
            Generic.Inserted: '#88f',
            Generic.Heading: 'bold #8f8',
            Generic.Error: 'bold #f00',
            Text: 'bold #ccf',
            # Error is used for, at least, text that doesn't match any token
            # (when using a RegexLexer derivitive). As such, it is used for
            # text that is being actively typed that doesn't match anything
            # *yet*. Should probably leave it as unformatted.
            #Error: 'italic #004',
            }

#prompt_style = style_from_pygments(TangoStyle, {
prompt_style = style_from_pygments(PromptPygStyle, {
    Token.Text: '#888888',
    })

class Completer(prompt_toolkit.completion.Completer):
    def __init__(self, cmd):
        prompt_toolkit.completion.Completer.__init__(self)
        self.cmd = cmd

    def get_completions(self, document, complete_event):
        this_word = document.get_word_before_cursor()
        start_of_line = document.current_line_before_cursor.lstrip()
        if this_word == start_of_line:
            for i in self.cmd.completenames(this_word):
                # Other useful completion parameters:
                #   display=<string>       - use different text in popup list
                #   display_meta=<string>  - show additional info in popup
Beispiel #13
0
    def __init__(self, debugger):
        self._filename = None
        self.sources = {}
        self.debugger = debugger
        self.debugger.events.on_stop += self.on_stop
        self.current_address_margin = CurrentAddressMargin()
        kb = KeyBindings()
        self.locals_processor = DisplayVariablesProcessor()

        self.source_buffer = Buffer(multiline=True)
        self.bar_buffer = Buffer(multiline=True)
        self.register_buffer = Buffer(multiline=True)
        self.logs_buffer = Buffer(multiline=True)

        @kb.add(Keys.F10, eager=True)
        def quit_(event):
            event.app.exit()

        @kb.add(Keys.F8)
        def clear_breakpoint_(event):
            if self.has_source():
                filename, row = self.get_current_location()
                self.debugger.clear_breakpoint(filename, row)

        @kb.add(Keys.F7)
        def set_breakpoint_(event):
            if self.has_source():
                filename, row = self.get_current_location()
                self.debugger.set_breakpoint(filename, row)

        @kb.add(Keys.F6)
        def step_(event):
            self.debugger.step()

        @kb.add(Keys.F5)
        def run_(event):
            self.debugger.run()

        @kb.add(Keys.F4)
        def stop_(event):
            self.debugger.stop()

        @kb.add(Keys.PageUp)
        def scroll_up_(event):
            self.source_buffer.cursor_up(count=15)

        @kb.add(Keys.PageDown)
        def scroll_down_(event):
            self.source_buffer.cursor_down(count=15)

        src_lexer = PygmentsLexer(CLexer)

        source_code_window = Window(
            content=BufferControl(
                buffer=self.source_buffer,
                lexer=src_lexer,
                input_processors=[self.locals_processor],
            ),
            left_margins=[self.current_address_margin,
                          NumberredMargin()],
            right_margins=[ScrollbarMargin(display_arrows=True)],
            cursorline=True,
        )

        register_window = Window(
            content=BufferControl(buffer=self.register_buffer), width=20)

        title_text = "Welcome to the ppci debugger version {}".format(
            ppci_version)

        help_text = ("F4=stop F5=run F6=step F7=set breakpoint" +
                     " F8=clear breakpoint F10=exit")

        # Application layout:
        layout = HSplit([
            Window(content=FormattedTextControl(text=title_text), height=1),
            VSplit([
                HSplit([
                    Frame(body=source_code_window),
                    Window(
                        content=BufferControl(buffer=self.logs_buffer),
                        height=2,
                    ),
                ]),
                Frame(body=register_window, title="registers"),
            ]),
            Window(
                content=FormattedTextControl(self.get_status_tokens),
                height=1,
            ),
            Window(content=FormattedTextControl(help_text), height=1),
        ])

        style = style_from_pygments(get_style_by_name("vim"))

        log_handler = MyHandler(self.logs_buffer)
        fmt = logging.Formatter(fmt=logformat)
        log_handler.setFormatter(fmt)
        log_handler.setLevel(logging.DEBUG)
        logging.getLogger().setLevel(logging.DEBUG)
        logging.getLogger().addHandler(log_handler)

        self.application = Application(layout=layout,
                                       style=style,
                                       key_bindings=kb,
                                       full_screen=True)
Beispiel #14
0
from prompt_toolkit.shortcuts import prompt
from prompt_toolkit.styles import style_from_pygments
from prompt_toolkit.layout.lexers import PygmentsLexer

from pygments.styles.tango import TangoStyle
from pygments.token import Token
from pygments.lexers import HtmlLexer

our_style = style_from_pygments(
    TangoStyle, {
        Token.Comment: '#888888 bold',
        Token.Keyword: '#ff88ff bold',
    }
)

text = prompt('Enter HTML: ', lexer=PygmentsLexer(HtmlLexer), style=our_style)
print('You said: {}'.format(text))
Beispiel #15
0
    default_style = ''
    styles = {
            Generic.Inserted: '#88f',
            Generic.Heading: 'bold #8f8',
            Generic.Error: 'bold #f00',
            Text: 'bold #ccf',
            # Error is used for, at least, text that doesn't match any token
            # (when using a RegexLexer derivitive). As such, it is used for
            # text that is being actively typed that doesn't match anything
            # *yet*. Should probably leave it as unformatted.
            #Error: 'italic #004',
            }

#prompt_style = style_from_pygments(TangoStyle, {
prompt_style = style_from_pygments(PromptPygStyle, {
    Token.Text: '#888888',
    })

class Completer(prompt_toolkit.completion.Completer):
    def __init__(self, cmd):
        prompt_toolkit.completion.Completer.__init__(self)
        self.cmd = cmd

    def get_completions(self, document, complete_event):
        this_word = document.get_word_before_cursor()
        start_of_line = document.current_line_before_cursor.lstrip()
        if this_word == start_of_line:
            for i in self.cmd.completenames(this_word):
                # Other useful completion parameters:
                #   display=<string>       - use different text in popup list
                #   display_meta=<string>  - show additional info in popup
Beispiel #16
0
    def app_initialize(self, mp):
        if sys.platform.startswith('win'):
            encoding = api.encoding()
            callbacks.ENCODING = encoding

        if not interface.get_option("rice.suppress_reticulate_message", False):
            interface.reticulate_set_message(RETICULATE_MESSAGE)

        if interface.get_option("rice.editing_mode", "emacs") in ["vim", "vi"]:
            mp.app.editing_mode = EditingMode.VI
        else:
            mp.app.editing_mode = EditingMode.EMACS

        color_scheme = interface.get_option("rice.color_scheme", "native")
        mp.style = style_from_pygments(get_style_by_name(color_scheme))

        mp.app.auto_match = interface.get_option("rice.auto_match", False)
        mp.app.auto_indentation = interface.get_option("rice.auto_indentation",
                                                       True)
        mp.app.tab_size = int(interface.get_option("rice.tab_size", 4))
        mp.complete_while_typing = interface.get_option(
            "rice.complete_while_typing", True)
        mp.history_search_no_duplicates = interface.get_option(
            "rice.history_search_no_duplicates", False)
        mp.insert_new_line = interface.get_option("rice.insert_new_line", True)

        prompt = interface.get_option("rice.prompt", None)
        if prompt:
            mp.set_prompt_mode_message("r", ANSI(prompt))
        else:
            sys_prompt = interface.get_option("prompt")
            if sys_prompt == "> ":
                prompt = PROMPT
            else:
                prompt = sys_prompt

        mp.default_prompt = prompt
        mp.set_prompt_mode_message("r", ANSI(prompt))
        interface.set_option("prompt", prompt)

        shell_prompt = interface.get_option("rice.shell_prompt", SHELL_PROMPT)
        mp.set_prompt_mode_message("shell", ANSI(shell_prompt))

        mp.browse_prompt = interface.get_option("rice.browse_prompt",
                                                BROWSE_PROMPT)

        set_width_on_resize = interface.get_option("setWidthOnResize", True)
        mp.auto_width = interface.get_option("rice.auto_width",
                                             set_width_on_resize)

        if mp.auto_width:
            interface.set_option("width", mp.app.output.get_size().columns)

        # necessary on windows
        interface.set_option("menu.graphics", False)

        # enables completion of installed package names
        if interface.rcopy(interface.reval("rc.settings('ipck')")) is None:
            interface.reval("rc.settings(ipck = TRUE)")

        interface.installed_packages()

        # print welcome message
        sys.stdout.write(interface.r_version())
Beispiel #17
0
shell_style = style_from_pygments(
    MonokaiStyle,
    {
        # Commands
        Name.Command: "#f2b44f",
        Name.SubCommand: "#f2c46f",
        Name.InvalidCommand: "bg:#ff0066 #000000",
        Name.Select: "#0000ff",
        Name.Query: "#d78700",
        Name.Key: "#ffffff",
        Name.Path: "#fff484",
        Name.Help: "#00aa00",
        Name.Exit: "#ff0066",
        # User input.
        Token: "#ff0066",
        # Prompt.
        Token.Username: "******",
        Token.At: "#00aa00",
        Token.Colon: "#00aa00",
        Token.Pound: "#00aa00",
        Token.Tier: "#ff0088",
        Token.Path: "#884444 underline",
        Token.RPrompt: "bg:#ff0066 #ffffff",
        # Toolbar Tokens
        Token.Toolbar: "#ffffff bg:#1c1c1c",
        Token.TestTier: "#ff0000 bg:#1c1c1c",
        Token.ProductionTier: "#ff0000 bg:#1c1c1c",
        Token.OfflineNodes: "#ff0000 bg:#1c1c1c",
        Token.NodesCount: "#ffffff bg:#1c1c1c",
        Token.Spacer: "#ffffff bg:#1c1c1c",
        # Alarms
        Token.MinorAlarm: "#0000ff bg:#1c1c1c",
        Token.MajorAlarm: "#d78700 bg:#1c1c1c",
        Token.CriticalAlarm: "#ff0000 bg:#1c1c1c",
        Token.AppendFailures: "#0000ff bg:#1c1c1c",
        # General
        Token.Good: "#ffffff bg:#10c010",
        Token.Bad: "#ffffff bg:#c01010",
        Token.Info: "#ffffff bg:#1010c0",
        Token.Warn: "#000000 bg:#c0c010",
    },
)
Beispiel #18
0
def main():
    if prompt_toolkit.__version__[0:2] != "1.":
        from prompt_toolkit import PromptSession
        from prompt_toolkit.lexers import PygmentsLexer
        from prompt_toolkit.styles.pygments import style_from_pygments_cls
        from prompt_toolkit.key_binding import KeyBindings

        def key_bindings():
            key_binding = KeyBindings()
            key_binding.add('enter')(return_handler)
            key_binding.add('tab')(tab_handler)
            return key_binding

        def return_handler(event):
            buffer = event.current_buffer
            # document = buffer.document
            if buffer.text.endswith("\\"):
                buffer.text = buffer.text[:-1] + '\n'
            else:
                buffer.validate_and_handle()

        def tab_handler(event):
            buffer = event.current_buffer
            document = buffer.document
            if buffer.auto_suggest:
                suggestion = buffer.auto_suggest.get_suggestion(
                    buffer, document)
                if suggestion.text:
                    buffer.text += suggestion.text
                    buffer.cursor_position += len(suggestion.text)

        def prompt_continuation(width, line_number, is_soft_wrap):
            return ' ' * (width - 2) + "… "

        style = style_from_pygments_cls(
            get_style_by_name(env.get('_debug_read_color_scheme', 'vim')))
        session = PromptSession(
            message=env.get('_debug_prompt', '$ '),
            lexer=PygmentsLexer(BashLexer),
            style=style,
            key_bindings=key_bindings(),
            history=FileHistory(
                env.get('JUST_DEBUG_HISTORY',
                        os.path.expanduser('~/.debug_bash_history')) + '3'),
            enable_history_search=True,
            multiline=True,
            auto_suggest=AutoSuggestFromHistory(),
            prompt_continuation=prompt_continuation)

        try:
            text = session.prompt()
            sys.stderr.write(text)
        except KeyboardInterrupt:
            pass
    else:
        # from __future__ import unicode_literals
        from prompt_toolkit import prompt
        from prompt_toolkit.styles import style_from_pygments
        from prompt_toolkit.layout.lexers import PygmentsLexer
        from prompt_toolkit.key_binding.manager import KeyBindingManager
        from prompt_toolkit.keys import Keys

        manager = KeyBindingManager.for_prompt()

        @manager.registry.add_binding(Keys.Enter)
        def return_handler(event):
            buffer = event.current_buffer
            if buffer.text.endswith("\\"):
                buffer.text = buffer.text[:-1] + '\n'
            else:
                buffer.accept_action.validate_and_handle(event.cli, buffer)

        @manager.registry.add_binding(Keys.Tab)
        def tab_handler(event):
            buffer = event.current_buffer
            document = buffer.document
            if buffer.auto_suggest:
                suggestion = buffer.auto_suggest.get_suggestion(
                    event.cli, buffer, document)
                if suggestion.text:
                    buffer.text += suggestion.text
                    buffer.cursor_position += len(suggestion.text)

        style = style_from_pygments(
            get_style_by_name(env.get('_debug_read_color_scheme', 'vim')))

        try:
            text = prompt(
                env.get('_debug_prompt', '$ '),
                lexer=PygmentsLexer(BashLexer),
                style=style,
                key_bindings_registry=manager.registry,
                history=FileHistory(
                    env.get('JUST_DEBUG_HISTORY',
                            os.path.expanduser('~/.debug_bash_history')) +
                    '3'),
                multiline=True,
                auto_suggest=AutoSuggestFromHistory())
            sys.stderr.write(text)
        except KeyboardInterrupt:
            pass
Beispiel #19
0
#!/usr/bin/env python
from prompt_toolkit.shortcuts import prompt
from prompt_toolkit.styles import style_from_pygments
from prompt_toolkit.layout.lexers import PygmentsLexer
from pygments.styles.tango import TangoStyle
from pygments.token import Token
from pygments.lexers import HtmlLexer

our_style = style_from_pygments(TangoStyle, {
    Token.Comment:  '#888888 bold',
    Token.Keyword:  '#ff88ff bold',
})

text = prompt('Enter HTML: ', lexer=PygmentsLexer(HtmlLexer), style=our_style)
print('You said: {}'.format(text))
Beispiel #20
0
from prompt_toolkit.layout.lexers import PygmentsLexer
from prompt_toolkit.styles import style_from_pygments
from pygments.lexers import SqlLexer
from pygments.styles.tango import TangoStyle
from pygments.token import Token

custom_style = style_from_pygments(
    TangoStyle, {
        Token.Comment: '#888888 bold',
        Token.Name: '#888888 bold',
        Token.Operator: '#888888 bold',
        Token.Generic: '#888888 bold',
        Token.Other: '#888888 bold',
        Token.Number: '#ff9900 bold',
        Token.Literal: '#888888 bold',
        Token.String: '#00cc00 bold',
        Token.Keyword: '#ff00ff bold'
    })
Beispiel #21
0
from google.api_core.exceptions import BadRequest

from prompt_toolkit import prompt
from prompt_toolkit.token import Token
from prompt_toolkit.layout.lexers import PygmentsLexer
from prompt_toolkit.history import FileHistory
from prompt_toolkit.styles import style_from_pygments

from pygments.styles.default import DefaultStyle
from pygments.lexers.sql import PostgresLexer

from bqsh.meta import meta

style = style_from_pygments(DefaultStyle, {
    # Prompt tokens.
    Token.Project: 'bold',
    Token.Dataset: 'bold',
})


def loop(
    project, dataset, history_file, completion, multiline, verbose, true_color
):
    import ibis

    history = FileHistory(history_file)
    lexer = PygmentsLexer(PostgresLexer)
    con = ibis.bigquery.connect(project, dataset)

    while True:
        def get_prompt_tokens(cli):
Beispiel #22
0
from prompt_toolkit.layout.lexers import PygmentsLexer

from prompt_toolkit.styles import style_from_pygments
from pygments.styles.default import DefaultStyle

from gcloud import storage
import os.path
import click
import shlex

from .lexer import GCSShellLexer
from .path import Path
from .commands import commands_dict, ArgumentError

style = style_from_pygments(
    DefaultStyle, {
        Token.RPrompt: '#7baec0 bold',
    })


class ClientWrapper:
    def __init__(self, client):
        self.client = client
        self.cwd = Path(self, '/')

    def __getattr__(self, name):
        return getattr(self.client, name)


def get_prompt(path):
    return "gs://{} > ".format(path)