Computer Assisted Medical Intervention Tool Kit version 6.0
 
Loading...
Searching...
No Matches
PythonHotPlugActionExtension.h
Go to the documentation of this file.
1/*****************************************************************************
2 * $CAMITK_LICENCE_BEGIN$
3 *
4 * CamiTK - Computer Assisted Medical Intervention ToolKit
5 * (c) 2001-2025 Univ. Grenoble Alpes, CNRS, Grenoble INP - UGA, TIMC, 38000 Grenoble, France
6 *
7 * Visit http://camitk.imag.fr for more information
8 *
9 * This file is part of CamiTK.
10 *
11 * CamiTK is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * CamiTK is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details.
19 *
20 * You should have received a copy of the GNU Lesser General Public License
21 * version 3 along with CamiTK. If not, see <http://www.gnu.org/licenses/>.
22 *
23 * $CAMITK_LICENCE_END$
24 ****************************************************************************/
25
26#ifdef PYTHON_BINDING
27
28#ifndef __PYTHON_HOTPLUG_ACTION_EXTENSION__
29#define __PYTHON_HOTPLUG_ACTION_EXTENSION__
30
32#include "InterfaceLogger.h"
33
34#include <QDir>
35
36namespace camitk {
37
38class PythonHotPlugAction;
39
54class CAMITK_API PythonHotPlugActionExtension : public HotPlugActionExtension {
55 Q_OBJECT
56
57public:
59 PythonHotPlugActionExtension(const QString& camitkFilePath, bool verifyVirtualEnv = false);
60
62 ~PythonHotPlugActionExtension() override;
63
66 enum class PythonCallStatus {
67 ALREADY_IN_CALL, // the method is already running, nothing was done
68 MODULE_NOT_LOADED, // python module was not loaded properly (i.e. lockContext failed)
69 MISSING_FUNCTION, // python function is missing in the script
70 NOT_A_FUNCTION, // python function is a symbol but is not callable
71 RETURNED_FALSE, // python function returned false
72 EXCEPTION_RAISED, // python code raised an exception
73 SUCCESS // everything went well
74 };
75
77 virtual QString getProgrammingLanguage() const override {
78 return "Python";
79 }
80
86 virtual bool initActions(int progressMinimum = 0, int progressMaximum = 100) override;
87
97 PythonHotPlugActionExtension::PythonCallStatus callPython(PythonHotPlugAction* action, QString methodName, QString param = QString());
98
99private:
101 QDir extensionDir;
102
104 bool verifyVirtualEnvRequested;
105};
106
107} // namespace camitk
108
109#endif // __PYTHON_HOTPLUG_ACTION_EXTENSION__
110#endif // PYTHON_BINDING
#define CAMITK_API
Definition CamiTKAPI.h:66
Definition action.py:1
Definition Action.cpp:40