async def evaluation(client, message): if len(message.text.split()) == 1: await message.edit("Usage: `eval 1000-7`") return q = message.text.split(None, 1)[1] try: ev = str(eval(q)) if ev: if len(ev) >= 4096: file = open("nana/cache/output.txt", "w+") file.write(ev) file.close() await client.send_document(message.chat.id, "nana/cache/output.txt", caption="`Output too large, sending as file`") os.remove("nana/cache/output.txt") else: await message.edit("**Query:**\n{}\n\n**Result:**\n`{}`".format(q, ev)) else: await message.edit("**Query:**\n{}\n\n**Result:**\n`None`".format(q)) return except Exception as e: print(e) exc_type, exc_obj, exc_tb = sys.exc_info() errors = traceback.format_exception(etype=exc_type, value=exc_obj, tb=exc_tb) await message.edit("Error: `{}`".format(errors)) logging.exception("Evaluation error")
async def executor(client, message): if len(message.text.split()) == 1: await message.edit("Usage: `exec message.edit('edited!')`") return args = message.text.split(None, 1) code = args[1] try: await aexec(client, message, code) except: exc_type, exc_obj, exc_tb = sys.exc_info() errors = traceback.format_exception(etype=exc_type, value=exc_obj, tb=exc_tb) await message.edit("**Execute**\n`{}`\n\n**Failed:**\n```{}```".format(code, "".join(errors))) logging.exception("Execution error")