File indexing completed on 2023-05-30 09:03:12
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