diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:17 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:17 +0300 |
commit | d3a398281c6fd1d3672036cb2d63f842d2cb28c5 (patch) | |
tree | dd4bd3ca0f36b817e96812825ffaf10d645803f2 /library/python/symbols/module | |
parent | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (diff) | |
download | ydb-d3a398281c6fd1d3672036cb2d63f842d2cb28c5.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 2 of 2.
Diffstat (limited to 'library/python/symbols/module')
-rw-r--r-- | library/python/symbols/module/__init__.py | 96 | ||||
-rw-r--r-- | library/python/symbols/module/module.cpp | 90 | ||||
-rw-r--r-- | library/python/symbols/module/ya.make | 36 |
3 files changed, 111 insertions, 111 deletions
diff --git a/library/python/symbols/module/__init__.py b/library/python/symbols/module/__init__.py index 2472775377..0061b9e598 100644 --- a/library/python/symbols/module/__init__.py +++ b/library/python/symbols/module/__init__.py @@ -1,48 +1,48 @@ -import subprocess - -from collections import defaultdict - -from .syms import syms - - -def gen_builtin(): - res = defaultdict(dict) - - for k, v in syms.items(): - mod, sym = k.split('|') - - res[mod][sym] = v - - return res - - -builtin_symbols = gen_builtin() -caps = builtin_symbols['_capability'] - - -def find_library(name, find_next): - subst = { - 'rt': 'c', - 'pthread': 'c', - 'm': 'c', - } - - builtin = builtin_symbols.get(subst.get(name, name)) - - if builtin: - return { - 'name': name, - 'symbols': builtin, - } - - if 'musl' in caps: - return None - - try: - subprocess.Popen.__patched__ - - return None - except Exception: - pass - - return find_next(name) +import subprocess + +from collections import defaultdict + +from .syms import syms + + +def gen_builtin(): + res = defaultdict(dict) + + for k, v in syms.items(): + mod, sym = k.split('|') + + res[mod][sym] = v + + return res + + +builtin_symbols = gen_builtin() +caps = builtin_symbols['_capability'] + + +def find_library(name, find_next): + subst = { + 'rt': 'c', + 'pthread': 'c', + 'm': 'c', + } + + builtin = builtin_symbols.get(subst.get(name, name)) + + if builtin: + return { + 'name': name, + 'symbols': builtin, + } + + if 'musl' in caps: + return None + + try: + subprocess.Popen.__patched__ + + return None + except Exception: + pass + + return find_next(name) diff --git a/library/python/symbols/module/module.cpp b/library/python/symbols/module/module.cpp index fc3fd8dc0f..92bc7f4d67 100644 --- a/library/python/symbols/module/module.cpp +++ b/library/python/symbols/module/module.cpp @@ -1,62 +1,62 @@ #include <Python.h> -#include <library/python/symbols/registry/syms.h> - +#include <library/python/symbols/registry/syms.h> + #include <util/generic/string.h> -#define CAP(x) SYM_2(x, x) - -BEGIN_SYMS("_capability") -#if defined(_musl_) -CAP("musl") -#endif -#if defined(_linux_) -CAP("linux") -#endif -#if defined(_darwin_) -CAP("darwin") -#endif -CAP("_sentinel") -END_SYMS() - -#undef CAP - -using namespace NPrivate; - -namespace { - template <class T> - struct TCB: public ICB { - inline TCB(T& t) - : CB(&t) - { - } - - void Apply(const char* mod, const char* name, void* sym) override { - (*CB)(mod, name, sym); - } - - T* CB; - }; - - template <class T> - static inline TCB<T> MakeTCB(T& t) { - return t; - } -} - +#define CAP(x) SYM_2(x, x) + +BEGIN_SYMS("_capability") +#if defined(_musl_) +CAP("musl") +#endif +#if defined(_linux_) +CAP("linux") +#endif +#if defined(_darwin_) +CAP("darwin") +#endif +CAP("_sentinel") +END_SYMS() + +#undef CAP + +using namespace NPrivate; + +namespace { + template <class T> + struct TCB: public ICB { + inline TCB(T& t) + : CB(&t) + { + } + + void Apply(const char* mod, const char* name, void* sym) override { + (*CB)(mod, name, sym); + } + + T* CB; + }; + + template <class T> + static inline TCB<T> MakeTCB(T& t) { + return t; + } +} + static void DictSetStringPtr(PyObject* dict, const char* name, void* value) { PyObject* p = PyLong_FromVoidPtr(value); PyDict_SetItemString(dict, name, p); Py_DECREF(p); } - + static PyObject* InitSyms(PyObject* m) { if (!m) return NULL; PyObject* d = PyDict_New(); if (!d) return NULL; - + auto f = [&](const char* mod, const char* name, void* sym) { DictSetStringPtr(d, (TString(mod) + "|" + TString(name)).c_str(), sym); }; @@ -69,7 +69,7 @@ static PyObject* InitSyms(PyObject* m) { m = NULL; Py_DECREF(d); return m; -} +} #if PY_MAJOR_VERSION >= 3 static struct PyModuleDef module = { diff --git a/library/python/symbols/module/ya.make b/library/python/symbols/module/ya.make index 2385c35fe0..78e30f2547 100644 --- a/library/python/symbols/module/ya.make +++ b/library/python/symbols/module/ya.make @@ -1,23 +1,23 @@ PY23_LIBRARY() - -OWNER(pg orivej) - + +OWNER(pg orivej) + NO_PYTHON_INCLUDES() -PEERDIR( +PEERDIR( contrib/libs/python/Include -) - -SRCS( - module.cpp -) - -PY_REGISTER( +) + +SRCS( + module.cpp +) + +PY_REGISTER( library.python.symbols.module.syms -) - -PY_SRCS( - __init__.py -) - -END() +) + +PY_SRCS( + __init__.py +) + +END() |