AvogadroLibs 2.0.0
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
inputThe 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: