Avogadro::QtGui::PythonScript#
-
class PythonScript : public QObject#
The PythonScript class implements a interface for calling short-lived python utility scripts.
Unnamed Group
-
explicit PythonScript(const QString &scriptFilePath_, QObject *parent_ = nullptr)#
Constructors
- Parameters:
scriptFilePath_ – Absolute path to python script.
-
explicit PythonScript(QObject *parent_ = nullptr)#
Constructors
- Parameters:
scriptFilePath_ – Absolute path to python script.
Public Functions
-
~PythonScript() override#
-
inline bool debug() const#
- Returns:
True if debugging of python I/O is enabled.
-
inline QString scriptFilePath() const#
- Returns:
The path to the generator file.
-
void setScriptFilePath(const QString &scriptFile)#
Set the path to the input generator script file. This will reset any cached data held by this class.
-
void setPackageInfo(const QString &packageDir, const QString &command, const QString &identifier)#
Enable package mode. In this mode, execute() runs “pixi run <command> <identifier> [args]” with packageDir as the working directory, instead of launching a script file via python.
-
inline bool isPackageMode() const#
- Returns:
True if this script is in package mode.
-
inline QString packageDir() const#
- Returns:
The package directory (only meaningful in package mode).
-
inline QString packageCommand() const#
- Returns:
The package command (only meaningful in package mode).
-
inline QString packageIdentifier() const#
- Returns:
The package identifier (only meaningful in package mode).
-
inline bool hasErrors() const#
- Returns:
True if an error is set.
-
inline void clearErrors()#
Reset the error counter.
-
inline QStringList errorList() const#
- Returns:
A QStringList containing all errors that occurred in the last call to the input generator script.
-
void setDefaultPythonInterpreter()#
Reset the python interpretor path. The following are checked, in order:
The AVO_PYTHON_INTERPRETER environment variable
The “interpreters/python” QSettings value
The path specified in avogadropython.h.
-
QByteArray execute(const QStringList &args, const QByteArray &scriptStdin = QByteArray())#
Start a new process to execute: “<m_pythonInterpreter> <scriptFilePath()> [args …]”, optionally passing scriptStdin to the processes standard input. Returns the standard output of the process when finished.
-
void asyncExecute(const QStringList &args, const QByteArray &scriptStdin = QByteArray(), bool mergedChannels = true, bool closeWriteChannel = true)#
Start a new process to execute asynchronously “<m_pythonInterpreter> <scriptFilePath()> [args …]”, optionally passing scriptStdin to the processes standard input. If
closeWriteChannelis false, stdin remains open for follow-up writes.Will send asyncFinished() signal when finished
-
QByteArray asyncWriteAndResponse(QByteArray input)#
Write input to the asynchronous process’ standard input and return the standard output when ready. Does not wait for the process to terminate before returning (e.g. “server mode”).
- Parameters:
input – The input to write to the process’ standard input
- Returns:
The standard output of the process
-
QByteArray asyncWriteAndResponseRaw(const QByteArray &input, int timeoutMs = 5000)#
Write input to the asynchronous process’ standard input and return raw bytes from stdout. Unlike asyncWriteAndResponse(), this does not require line-oriented output and is suitable for framed binary protocols.
-
void asyncTerminate()#
Terminate the asynchronous process.
-
QByteArray asyncResponse()#
Returns the standard output of the asynchronous process when finished.
Public Slots
-
inline void setDebug(bool d)#
Enable/disable debugging.
-
void processFinished(int exitCode, QProcess::ExitStatus exitStatus)#
Handle a finished process;
Signals
-
void finished()#
The asynchronous execution is finished or timed out
-
explicit PythonScript(const QString &scriptFilePath_, QObject *parent_ = nullptr)#