diff options
author | say <say@yandex-team.com> | 2023-02-14 17:24:43 +0300 |
---|---|---|
committer | say <say@yandex-team.com> | 2023-02-14 17:24:43 +0300 |
commit | e0094c4ad6964e11564777bc0d859c68d8aa9de2 (patch) | |
tree | 5d2ad1a4df88da1f74385888891a2a5f9fbbc3ef /library/cpp/pybind/embedding.cpp | |
parent | 65a08c9fdece8dba50da8beb4d7c81447211dd45 (diff) | |
download | ydb-e0094c4ad6964e11564777bc0d859c68d8aa9de2.tar.gz |
Migrate black linter on custom_lint pipeline
Diffstat (limited to 'library/cpp/pybind/embedding.cpp')
-rw-r--r-- | library/cpp/pybind/embedding.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/library/cpp/pybind/embedding.cpp b/library/cpp/pybind/embedding.cpp new file mode 100644 index 0000000000..78b608715e --- /dev/null +++ b/library/cpp/pybind/embedding.cpp @@ -0,0 +1,41 @@ +#define PY_SSIZE_T_CLEAN +#include <Python.h> + +#include "embedding.h" + +#include <util/generic/ptr.h> +#include <util/generic/yexception.h> + +namespace NPyBind { + TEmbedding::TEmbedding(char* argv0) { +#if PY_MAJOR_VERSION < 3 + Py_SetProgramName(argv0); + Py_Initialize(); +#else + PyStatus status; + + PyConfig config; + PyConfig_InitPythonConfig(&config); + // Disable parsing command line arguments + config.parse_argv = 0; + + status = PyConfig_SetBytesString(&config, &config.program_name, argv0); + if (PyStatus_Exception(status)) { + PyConfig_Clear(&config); + Py_ExitStatusException(status); + } + + status = Py_InitializeFromConfig(&config); + if (PyStatus_Exception(status)) { + PyConfig_Clear(&config); + Py_ExitStatusException(status); + } + + PyConfig_Clear(&config); +#endif + } + + TEmbedding::~TEmbedding() { + Py_Finalize(); + } +} |