summaryrefslogtreecommitdiffstats
path: root/library/cpp/pybind/typedesc.cpp
diff options
context:
space:
mode:
authorsay <[email protected]>2023-03-31 10:07:15 +0300
committersay <[email protected]>2023-03-31 10:07:15 +0300
commite163b69a87c70baac07bd99142916735e0c283fa (patch)
tree73e22c0f9e975ff6dc70f38534ec84588587d25c /library/cpp/pybind/typedesc.cpp
parent6be8bf780352147bcac5afec43505883b69229a0 (diff)
Swith flake8 to custom lint schema
Diffstat (limited to 'library/cpp/pybind/typedesc.cpp')
-rw-r--r--library/cpp/pybind/typedesc.cpp79
1 files changed, 0 insertions, 79 deletions
diff --git a/library/cpp/pybind/typedesc.cpp b/library/cpp/pybind/typedesc.cpp
deleted file mode 100644
index 75f39fd1260..00000000000
--- a/library/cpp/pybind/typedesc.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#include "typedesc.h"
-
-#include <util/generic/singleton.h>
-
-static void RegisterJSONBridgeImpl() {
- PyRun_SimpleString("import json\n"
- "class PyBindEncoder(json.JSONEncoder):\n"
- " def default(self, obj):\n"
- " if isinstance(obj, bytes):\n"
- " try:\n"
- " return obj.decode()\n"
- " except UnicodeDecodeError:\n"
- " return obj.hex()\n"
- " dct = None\n"
- " if hasattr(obj, '__getstate__'):\n"
- " dct = obj.__getstate__()\n"
- " elif hasattr(obj, '__dict__'):\n"
- " dct = obj.__dict__\n"
- " if dct is None:\n"
- " return json.JSONEncoder.default(self, obj)\n"
- " if hasattr(obj, '__class__'):\n"
- " if hasattr(obj.__class__, '__name__'):\n"
- " dct['__name__'] = obj.__class__.__name__\n"
- " if hasattr(obj.__class__, '__module__'):\n"
- " dct['__module__'] = obj.__class__.__module__\n"
- " if hasattr(obj, 'GetPropertiesNames'):\n"
- " dct['__properties__'] = obj.GetPropertiesNames()\n"
- " return dct");
-
- PyRun_SimpleString("def PyBindObjectHook(dct):\n"
- " if '__name__' in dct:\n"
- " name = dct['__name__']\n"
- " module = dct['__module__']\n"
- " del dct['__name__']\n"
- " del dct['__module__']\n"
- " cls = getattr(__import__(module), name)\n"
- " if '__properties__' in dct:\n"
- " props = dct['__properties__']\n"
- " del dct['__properties__']\n"
- " if len(props) == 0:\n"
- " return dct\n"
- " instance = cls(__properties__ = props)\n"
- " else:\n"
- " instance = cls()\n"
- " if hasattr(instance, '__setstate__'):\n"
- " instance.__setstate__(dct)\n"
- " elif hasattr(instance, '__dict__'):\n"
- " instance.__dict__ = dct\n"
- " else:\n"
- " return dct\n"
- " return instance\n"
- " return dct");
-
- PyRun_SimpleString("def json_dump(*args, **kwargs):\n"
- " kwargs['cls'] = PyBindEncoder\n"
- " return json.dump(*args, **kwargs)\n"
- "def json_dumps(*args, **kwargs):\n"
- " kwargs['cls'] = PyBindEncoder\n"
- " return json.dumps(*args, **kwargs)");
-
- PyRun_SimpleString("def json_load(*args, **kwargs):\n"
- " kwargs['object_hook'] = PyBindObjectHook\n"
- " return json.load(*args, **kwargs)\n"
- "def json_loads(*args, **kwargs):\n"
- " kwargs['object_hook'] = PyBindObjectHook\n"
- " return json.loads(*args, **kwargs)");
-}
-
-namespace {
- struct TJSONBridge {
- TJSONBridge() {
- RegisterJSONBridgeImpl();
- }
- };
-}
-
-void NPyBind::RegisterJSONBridge() {
- Singleton<TJSONBridge>();
-}