1840b1e01SJuraj Linkeš# SPDX-License-Identifier: BSD-3-Clause 2840b1e01SJuraj Linkeš# Copyright(c) 2023 PANTHEON.tech s.r.o. 3840b1e01SJuraj Linkeš 4*6ef07151SJuraj Linkeš"""Python interactive shell. 5*6ef07151SJuraj Linkeš 6*6ef07151SJuraj LinkešTypical usage example in a TestSuite:: 7*6ef07151SJuraj Linkeš 8*6ef07151SJuraj Linkeš from framework.remote_session import PythonShell 9*6ef07151SJuraj Linkeš python_shell = self.tg_node.create_interactive_shell( 10*6ef07151SJuraj Linkeš PythonShell, timeout=5, privileged=True 11*6ef07151SJuraj Linkeš ) 12*6ef07151SJuraj Linkeš python_shell.send_command("print('Hello World')") 13*6ef07151SJuraj Linkeš python_shell.close() 14*6ef07151SJuraj Linkeš""" 15*6ef07151SJuraj Linkeš 16840b1e01SJuraj Linkešfrom pathlib import PurePath 17*6ef07151SJuraj Linkešfrom typing import ClassVar 18840b1e01SJuraj Linkeš 19840b1e01SJuraj Linkešfrom .interactive_shell import InteractiveShell 20840b1e01SJuraj Linkeš 21840b1e01SJuraj Linkeš 22840b1e01SJuraj Linkešclass PythonShell(InteractiveShell): 23*6ef07151SJuraj Linkeš """Python interactive shell.""" 24*6ef07151SJuraj Linkeš 25*6ef07151SJuraj Linkeš #: Python's prompt. 26*6ef07151SJuraj Linkeš _default_prompt: ClassVar[str] = ">>>" 27*6ef07151SJuraj Linkeš 28*6ef07151SJuraj Linkeš #: This forces the prompt to appear after sending a command. 29*6ef07151SJuraj Linkeš _command_extra_chars: ClassVar[str] = "\n" 30*6ef07151SJuraj Linkeš 31*6ef07151SJuraj Linkeš #: The Python executable. 32*6ef07151SJuraj Linkeš path: ClassVar[PurePath] = PurePath("python3") 33