27#include <SimoxUtility/meta/EnumNames.hpp>
30#include <ArmarXCore/interface/components/PythonApplicationManagerInterface.h>
52 virtual public armarx::PythonApplicationManagerInterface
70 return "PythonApplicationManager";
110 const std::string& prefix =
"");
116 using path = std::filesystem::path;
143 static std::optional<path>
146 std::function<
bool(
path)> existsFn);
154 bool inputOk =
false;
Executes a given application and keeps track if it is still running.
Abstract PropertyUser class.
Replaces some parts of the ExternalApplicationManager to be more suitable for python scripts.
static const simox::meta::EnumNames< VenvType > VenvTypeNames
void onInitComponent() override
std::string deriveApplicationPath() const override
void onDisconnectComponent() override
std::string deriveWorkingDir() const override
void onConnectComponent() override
armarx::ExternalApplicationManager Base
armarx::PropertyDefinitionsPtr createPropertyDefinitions() override
void onExitComponent() override
void addApplicationArguments(Ice::StringSeq &args) override
std::string getDefaultName() const override
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
static std::optional< path > checkCandidatePaths(const std::vector< path > &candidates, std::function< bool(path)> existsFn)
path findArmarXPackagePath(const Properties &properties) const
path getSharedVenvPath(const Properties &properties) const
friend std::ostream & operator<<(std::ostream &os, const Paths &rhs)
static std::optional< path > checkCandidateDirectories(const std::vector< path > &candidates)
void derive(const Properties &properties)
std::filesystem::path path
path findVenvPath(const Properties &properties) const
path findPythonPackagePath(const Properties &properties) const
path findPythonBinaryPath(const Properties &properties) const
std::string sharedVenvsDir
static std::optional< path > checkCandidateFiles(const std::vector< path > &candidates)
path getDedicatedVenvPath(const Properties &properties) const
path findPythonScriptPath(const Properties &properties) const
std::string pythonPathEntriesString
void read(PropertyUser &props, const std::string &prefix="")
std::string armarxPythonPackagesDir
std::string pythonPackageName
std::string armarxPackageName
std::vector< std::string > pythonScriptArgumentsVector
std::vector< std::string > pythonPathEntriesVector
std::string pythonScriptPath
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string &prefix="")
std::string pythonScriptArgumentsString
Whitespace separated list of arguments.