diff options
| author | thegeorg <[email protected]> | 2022-06-01 19:39:20 +0300 | 
|---|---|---|
| committer | thegeorg <[email protected]> | 2022-06-01 19:39:20 +0300 | 
| commit | adef74076d4daf7d6eecf0d25f61a5a6a4e05c38 (patch) | |
| tree | f1d3124baaee91acb7a06264278a01f171985073 /library/cpp | |
| parent | a77c3752fb223f4240e311c235514db1eef0292e (diff) | |
Move library/cpp/yson/node/pytbind to library/python/yson_node
ref:61c7ceff963203b0d2e3ac34c5624d029622c9ba
Diffstat (limited to 'library/cpp')
| -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 79beba36471..00000000000 --- 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 65f7236de68..00000000000 --- 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); -} | 
