diff options
author | thegeorg <thegeorg@yandex-team.ru> | 2022-06-01 19:39:20 +0300 |
---|---|---|
committer | thegeorg <thegeorg@yandex-team.ru> | 2022-06-01 19:39:20 +0300 |
commit | adef74076d4daf7d6eecf0d25f61a5a6a4e05c38 (patch) | |
tree | f1d3124baaee91acb7a06264278a01f171985073 | |
parent | a77c3752fb223f4240e311c235514db1eef0292e (diff) | |
download | ydb-adef74076d4daf7d6eecf0d25f61a5a6a4e05c38.tar.gz |
Move library/cpp/yson/node/pytbind to library/python/yson_node
ref:61c7ceff963203b0d2e3ac34c5624d029622c9ba
-rw-r--r-- | library/cpp/yson/node/pybind/node.cpp | 105 | ||||
-rw-r--r-- | library/cpp/yson/node/pybind/node.h | 9 |
2 files changed, 0 insertions, 114 deletions
diff --git a/library/cpp/yson/node/pybind/node.cpp b/library/cpp/yson/node/pybind/node.cpp deleted file mode 100644 index 79beba3647..0000000000 --- a/library/cpp/yson/node/pybind/node.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#include "node.h" - -#include <library/cpp/yson/node/node.h> - -#include <library/cpp/pybind/cast.h> - -#include <Python.h> - -namespace NYT { - - PyObject* BuildPyObject(const TNode& node) { - switch (node.GetType()) { - case TNode::Bool: - return NPyBind::BuildPyObject(node.AsBool()); - case TNode::Int64: - return NPyBind::BuildPyObject(node.AsInt64()); - case TNode::Uint64: - return NPyBind::BuildPyObject(node.AsUint64()); - case TNode::Double: - return NPyBind::BuildPyObject(node.AsDouble()); - case TNode::String: - return NPyBind::BuildPyObject(node.AsString()); - case TNode::List: - return NPyBind::BuildPyObject(node.AsList()); - case TNode::Map: - return NPyBind::BuildPyObject(node.AsMap()); - case TNode::Null: - Py_RETURN_NONE; - case TNode::Undefined: - ythrow TNode::TTypeError() << "BuildPyObject called for undefined TNode"; - } - } - -} // namespace NYT - -namespace NPyBind { - - template <> - bool FromPyObject(PyObject* obj, NYT::TNode& res) { - if (obj == Py_None) { - res = NYT::TNode::CreateEntity(); - return true; - } - if (PyBool_Check(obj)) { - res = false; - return FromPyObject(obj, res.As<bool>()); - } - if (PyFloat_Check(obj)) { - res = 0.0; - return FromPyObject(obj, res.As<double>()); - } -#if PY_MAJOR_VERSION < 3 - if (PyString_Check(obj)) { - res = TString(); - return FromPyObject(obj, res.As<TString>()); - } -#else - if (PyUnicode_Check(obj)) { - res = TString(); - return FromPyObject(obj, res.As<TString>()); - } - if (PyBytes_Check(obj)) { - res = TString(); - return FromPyObject(obj, res.As<TString>()); - } -#endif - if (PyList_Check(obj)) { - res = NYT::TNode::CreateList(); - return FromPyObject(obj, res.AsList()); - } - if (PyDict_Check(obj)) { - res = NYT::TNode::CreateMap(); - return FromPyObject(obj, res.AsMap()); - } -#if PY_MAJOR_VERSION < 3 - if (PyInt_Check(obj)) { - auto valAsLong = PyInt_AsLong(obj); - if (valAsLong == -1 && PyErr_Occurred()) { - return false; - } - res = valAsLong; - return true; - } -#endif - if (PyLong_Check(obj)) { - int overflow = 0; - auto valAsLong = PyLong_AsLongAndOverflow(obj, &overflow); - if (!overflow) { - if (valAsLong == -1 && PyErr_Occurred()) { - return false; - } - res = valAsLong; - return true; - } - auto valAsULong = PyLong_AsUnsignedLong(obj); - if (valAsULong == static_cast<decltype(valAsULong)>(-1) && PyErr_Occurred()) { - return false; - } - res = valAsULong; - return true; - } - return false; - } - -} // namespace NPyBind diff --git a/library/cpp/yson/node/pybind/node.h b/library/cpp/yson/node/pybind/node.h deleted file mode 100644 index 65f7236de6..0000000000 --- a/library/cpp/yson/node/pybind/node.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#include <Python.h> - -#include <library/cpp/yson/node/node.h> - -namespace NYT { - PyObject* BuildPyObject(const TNode& val); -} |