Loading...
Searching...
No Matches
PythonScript Class Reference

The PythonScript class implements a interface for calling short-lived python utility scripts.

`#include <pythonscript.h>`

Inheritance diagram for PythonScript:

## Public Slots

void | setDebug (bool d)
void | processFinished (int exitCode, QProcess::ExitStatus exitStatus)

## Signals

void | finished ()

## Public Member Functions

bool | debug () const
QString | scriptFilePath () const
void | setScriptFilePath (const QString &scriptFile)
void | setPackageInfo (const QString &packageDir, const QString &command, const QString &identifier, const QString &displayName=QString())
bool | isPackageMode () const
QString | packageDir () const
QString | packageCommand () const
QString | packageIdentifier () const
QString | packageDisplayName () const
bool | hasErrors () const
void | clearErrors ()
QStringList | errorList () const
void | setDefaultPythonInterpreter ()
QByteArray | execute (const QStringList &args, const QByteArray &scriptStdin=QByteArray())
void | asyncExecute (const QStringList &args, const QByteArray &scriptStdin=QByteArray(), bool mergedChannels=true, bool closeWriteChannel=true)
QByteArray | asyncWriteAndResponse (QByteArray input)
QByteArray | asyncWriteAndResponseRaw (const QByteArray &input, int timeoutMs=5000)
void | asyncTerminate ()
QByteArray | asyncResponse ()
| PythonScript (const QString &scriptFilePath_, QObject *parent_=nullptr)
| PythonScript (QObject *parent_=nullptr)

## Protected Attributes

bool | m_debug
bool | m_packageMode = false
QString | m_pythonInterpreter
QString | m_pixi
QString | m_scriptFilePath
QString | m_packageDir
QString | m_packageCommand
QString | m_packageIdentifier
QString | m_packageDisplayName
QStringList | m_errors
QProcess * | m_process

## Constructor & Destructor Documentation

## PythonScript() [1/2]

PythonScript | ( | const QString & | scriptFilePath_,
|  | QObject * | parent_ = nullptr )

explicit

Constructors

Parameters

  scriptFilePath_ | Absolute path to python script.

## PythonScript() [2/2]

PythonScript | ( | QObject * | parent_ = nullptr | ) |

explicit

Constructors

Parameters

  scriptFilePath_ | Absolute path to python script.

## Member Function Documentation

## debug()

bool debug | ( |  | ) | const

Returns
  True if debugging of python I/O is enabled.

## scriptFilePath()

QString scriptFilePath | ( |  | ) | const

Returns
  The path to the generator file.

## setScriptFilePath()

void setScriptFilePath | ( | const QString & | scriptFile | ) |

Set the path to the input generator script file. This will reset any cached data held by this class.

## setPackageInfo()

void setPackageInfo | ( | const QString & | packageDir,
|  | const QString & | command,
|  | const QString & | identifier,
|  | const QString & | displayName = QString() )

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.

## isPackageMode()

bool isPackageMode | ( |  | ) | const

Returns
  True if this script is in package mode.

## packageDir()

QString packageDir | ( |  | ) | const

Returns
  The package directory (only meaningful in package mode).

## packageCommand()

QString packageCommand | ( |  | ) | const

Returns
  The package command (only meaningful in package mode).

## packageIdentifier()

QString packageIdentifier | ( |  | ) | const

Returns
  The package identifier (only meaningful in package mode).

## packageDisplayName()

QString packageDisplayName | ( |  | ) | const

Returns
  The package display name from metadata, if one was provided.

## hasErrors()

bool hasErrors | ( |  | ) | const

Returns
  True if an error is set.

## clearErrors()

void clearErrors | ( |  | ) |

Reset the error counter.

## errorList()

QStringList errorList | ( |  | ) | const

Returns
  A QStringList containing all errors that occurred in the last call to the input generator script.

## setDefaultPythonInterpreter()

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.

## execute()

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.

## asyncExecute()

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 `closeWriteChannel` is false, stdin remains open for follow-up writes.

Will send asyncFinished() signal when finished

## asyncWriteAndResponse()

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

## asyncWriteAndResponseRaw()

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.

## asyncTerminate()

void asyncTerminate | ( |  | ) |

Terminate the asynchronous process.

## asyncResponse()

QByteArray asyncResponse | ( |  | ) |

Returns the standard output of the asynchronous process when finished.

## finished

void finished | ( |  | ) |

signal

The asynchronous execution is finished or timed out

## setDebug

void setDebug | ( | bool | d | ) |

slot

Enable/disable debugging.

## processFinished

void processFinished | ( | int | exitCode,
|  | QProcess::ExitStatus | exitStatus )

slot

Handle a finished process;

The documentation for this class was generated from the following file:

- pythonscript.h