diff options
| author | inngonch <[email protected]> | 2022-02-10 16:49:19 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:49:19 +0300 | 
| commit | 7622df751aca736b9e1e20015e6787d5a65643b0 (patch) | |
| tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/yson/node/pybind/node.cpp | |
| parent | 259606d47f0a87d4980322c10899f41f246ad20c (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/yson/node/pybind/node.cpp')
| -rw-r--r-- | library/cpp/yson/node/pybind/node.cpp | 180 | 
1 files changed, 90 insertions, 90 deletions
| diff --git a/library/cpp/yson/node/pybind/node.cpp b/library/cpp/yson/node/pybind/node.cpp index 810815c357a..79beba36471 100644 --- a/library/cpp/yson/node/pybind/node.cpp +++ b/library/cpp/yson/node/pybind/node.cpp @@ -1,59 +1,59 @@ -#include "node.h"  -  +#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>());  -        }  + +#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>());  -        }  +        if (PyString_Check(obj)) { +            res = TString(); +            return FromPyObject(obj, res.As<TString>()); +        }  #else          if (PyUnicode_Check(obj)) {              res = TString(); @@ -64,42 +64,42 @@ namespace NPyBind {              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 (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;  -        }  +        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  +        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 | 
