File indexing completed on 2024-04-28 11:20:36

0001 /*
0002     SPDX-License-Identifier: GPL-2.0-or-later
0003     SPDX-FileCopyrightText: 2013 Filipe Saraiva <filipe@kde.org>
0004 */
0005 
0006 #ifndef PYTHONEXTENSIONS_H
0007 #define PYTHONEXTENSIONS_H
0008 
0009 #include <extension.h>
0010 
0011 #define PYTHON_EXT_CDTOR_DECL(name) Python##name##Extension(QObject* parent); \
0012                                     ~Python##name##Extension();
0013 
0014 class PythonLinearAlgebraExtension : public Cantor::LinearAlgebraExtension
0015 {
0016     public:
0017     PYTHON_EXT_CDTOR_DECL(LinearAlgebra)
0018     QString createVector(const QStringList& entries, VectorType type) override;
0019     QString nullVector(int size, VectorType type) override;
0020     QString createMatrix(const Cantor::LinearAlgebraExtension::Matrix& matrix) override;
0021     QString identityMatrix(int size) override;
0022     QString nullMatrix(int rows, int columns) override;
0023     QString rank(const QString& matrix) override;
0024     QString invertMatrix(const QString& matrix) override;
0025     QString charPoly(const QString& matrix) override;
0026     QString eigenVectors(const QString& matrix) override;
0027     QString eigenValues(const QString& matrix) override;
0028 };
0029 
0030 class PythonPackagingExtension : public Cantor::PackagingExtension
0031 {
0032     public:
0033     PYTHON_EXT_CDTOR_DECL(Packaging)
0034     QString importPackage(const QString& module) override;
0035 };
0036 
0037 class PythonPlotExtension : public Cantor::PlotExtension
0038 {
0039     public:
0040     PYTHON_EXT_CDTOR_DECL(Plot)
0041     QString plotFunction2d(const QString& function, const QString& variable, const QString& left, const QString& right) override;
0042     QString plotFunction3d(const QString& function, const VariableParameter& var1, const VariableParameter& var2) override;
0043 };
0044 
0045 class PythonScriptExtension : public Cantor::ScriptExtension
0046 {
0047     public:
0048         PYTHON_EXT_CDTOR_DECL(Script)
0049         QString scriptFileFilter() override;
0050         QString highlightingMode() override;
0051         QString runExternalScript(const QString& path) override;
0052 };
0053 
0054 class PythonVariableManagementExtension : public Cantor::VariableManagementExtension
0055 {
0056     public:
0057     PYTHON_EXT_CDTOR_DECL(VariableManagement)
0058     QString addVariable(const QString& name, const QString& value) override;
0059     QString setValue(const QString& name, const QString& value) override;
0060     QString removeVariable(const QString& name) override;
0061     QString saveVariables(const QString& fileName) override;
0062     QString loadVariables(const QString& fileName) override;
0063     QString clearVariables() override;
0064 };
0065 
0066 #endif // PYTHONEXTENSIONS_H