示例#1
0
def run(update, context):
    # global command, lang
    text = update.message.text
    if text.startswith('/'):
        command = text.split(' ')[0]
        lang = command[1:]
        if lang not in ['crystal', 'nim', 'j', 'mathematica', 'red']:
            return
    try:
        code = text[len(command):]
    except:
        return
    request = TioRequest(lang=lang, code="")
    if lang == 'j':
        set_code = 'echo' + code
    elif lang == 'red':
        set_code = f"""
        Red []
        {code}
        """
    else:
        set_code = code
    request.set_code(set_code)
    tio = Tio()
    data = tio.send(request)
    if data.error:
        output = data.error
    else:
        output = data.result
    update.message.reply_text(
        "*[{}]*\n*Input*: `{}`".format(lang.upper(), str(code)) +
        "\n\n*Output*: `{}`".format(output),
        parse_mode=ParseMode.MARKDOWN)
示例#2
0
 def test_valid_python2_request(self):
     request = TioRequest(lang='python2', code="print \"Hello, World!\"")
     response = self.tio.send(request)
     self.assertIsNone(response.error)
     if platform.python_version() >= '3.0':
         self.assertIsInstance(response.result, str)
     else:
         # noinspection PyUnresolvedReferences
         self.assertIsInstance(response.result, (unicode, str))
     self.assertEqual(response.result.strip('\n'), "Hello, World!")
示例#3
0
 def test_invalid_apl_request(self):
     request = TioRequest(lang='apl-dyalog', code="I'm a teapot!")
     response = self.tio.send(request)
     self.assertIsNone(response.result)
     if platform.python_version() >= '3.0':
         self.assertIsInstance(response.error, str)
     else:
         # noinspection PyUnresolvedReferences
         self.assertIsInstance(response.error, (unicode, str))
     self.assertIn('unbalanced quotes detected', response.error)
示例#4
0
 def test_invald_python3_request(self):
     request = TioRequest(lang='python3', code="I'm a teapot!")
     response = self.tio.send(request)
     self.assertIsNone(response.result)
     if platform.python_version() >= '3.0':
         self.assertIsInstance(response.error, str)
     else:
         # noinspection PyUnresolvedReferences
         self.assertIsInstance(response.error, (unicode, str))
     self.assertIn('EOL while scanning string literal', response.error)
示例#5
0
def run_programming_language(language, input_file):
    with open(input_file, 'r') as f:
        data = f.read()
        tio = Tio()
        request = TioRequest(lang=language, code=data)
        response = tio.send(request)
        if response.error:
            print(response.error)
            sys.exit(1)

        return response.result
示例#6
0
def run_programming_language(language, input_file):
    import click
    from pytio import Tio, TioRequest
    from pathlib import Path

    data = Path(input_file).read_text()
    request = TioRequest(lang=language, code=data)
    response = Tio().send(request)
    if response.error:
        click.echo(response.error)
        return

    not_found = f"The language '{language}' could not be found on the server.\n"
    if response.result == not_found:
        search_languages(language)

    click.echo(response.result)