view tests/heredoctest.py @ 46480:05dd091dfa6a

wireprotopeer: clarify some variable names now that we allow snake_case "encargsorres" is hard to parse ("encarg sorres" sounds like it might be Spanish to me, and indeed Google Translate tells me that it's Catalan for "order sands"). Let's clarify with some added underscores and longer names. Differential Revision: https://phab.mercurial-scm.org/D9973
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 09 Feb 2021 09:37:39 -0800
parents 2372284d9457
children 6000f5b25c9b
line wrap: on
line source

from __future__ import absolute_import, print_function

import sys


def flush():
    sys.stdout.flush()
    sys.stderr.flush()


globalvars = {}
lines = sys.stdin.readlines()
while lines:
    l = lines.pop(0)
    if l.startswith('SALT'):
        print(l[:-1])
    elif l.startswith('>>> '):
        snippet = l[4:]
        while lines and lines[0].startswith('... '):
            l = lines.pop(0)
            snippet += l[4:]
        c = compile(snippet, '<heredoc>', 'single')
        try:
            flush()
            exec(c, globalvars)
            flush()
        except Exception as inst:
            flush()
            print(repr(inst))