diff options
author | AlexSm <alex@ydb.tech> | 2024-03-05 10:40:59 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-05 12:40:59 +0300 |
commit | 1ac13c847b5358faba44dbb638a828e24369467b (patch) | |
tree | 07672b4dd3604ad3dee540a02c6494cb7d10dc3d /library/python/runtime_py3 | |
parent | ffcca3e7f7958ddc6487b91d3df8c01054bd0638 (diff) | |
download | ydb-1ac13c847b5358faba44dbb638a828e24369467b.tar.gz |
Library import 16 (#2433)
Co-authored-by: robot-piglet <robot-piglet@yandex-team.com>
Co-authored-by: deshevoy <deshevoy@yandex-team.com>
Co-authored-by: robot-contrib <robot-contrib@yandex-team.com>
Co-authored-by: thegeorg <thegeorg@yandex-team.com>
Co-authored-by: robot-ya-builder <robot-ya-builder@yandex-team.com>
Co-authored-by: svidyuk <svidyuk@yandex-team.com>
Co-authored-by: shadchin <shadchin@yandex-team.com>
Co-authored-by: robot-ratatosk <robot-ratatosk@yandex-team.com>
Co-authored-by: innokentii <innokentii@yandex-team.com>
Co-authored-by: arkady-e1ppa <arkady-e1ppa@yandex-team.com>
Co-authored-by: snermolaev <snermolaev@yandex-team.com>
Co-authored-by: dimdim11 <dimdim11@yandex-team.com>
Co-authored-by: kickbutt <kickbutt@yandex-team.com>
Co-authored-by: abdullinsaid <abdullinsaid@yandex-team.com>
Co-authored-by: korsunandrei <korsunandrei@yandex-team.com>
Co-authored-by: petrk <petrk@yandex-team.com>
Co-authored-by: miroslav2 <miroslav2@yandex-team.com>
Co-authored-by: serjflint <serjflint@yandex-team.com>
Co-authored-by: akhropov <akhropov@yandex-team.com>
Co-authored-by: prettyboy <prettyboy@yandex-team.com>
Co-authored-by: ilikepugs <ilikepugs@yandex-team.com>
Co-authored-by: hiddenpath <hiddenpath@yandex-team.com>
Co-authored-by: mikhnenko <mikhnenko@yandex-team.com>
Co-authored-by: spreis <spreis@yandex-team.com>
Co-authored-by: andreyshspb <andreyshspb@yandex-team.com>
Co-authored-by: dimaandreev <dimaandreev@yandex-team.com>
Co-authored-by: rashid <rashid@yandex-team.com>
Co-authored-by: robot-ydb-importer <robot-ydb-importer@yandex-team.com>
Co-authored-by: r-vetrov <r-vetrov@yandex-team.com>
Co-authored-by: ypodlesov <ypodlesov@yandex-team.com>
Co-authored-by: zaverden <zaverden@yandex-team.com>
Co-authored-by: vpozdyayev <vpozdyayev@yandex-team.com>
Co-authored-by: robot-cozmo <robot-cozmo@yandex-team.com>
Co-authored-by: v-korovin <v-korovin@yandex-team.com>
Co-authored-by: arikon <arikon@yandex-team.com>
Co-authored-by: khoden <khoden@yandex-team.com>
Co-authored-by: psydmm <psydmm@yandex-team.com>
Co-authored-by: robot-javacom <robot-javacom@yandex-team.com>
Co-authored-by: dtorilov <dtorilov@yandex-team.com>
Co-authored-by: sennikovmv <sennikovmv@yandex-team.com>
Co-authored-by: hcpp <hcpp@ydb.tech>
Diffstat (limited to 'library/python/runtime_py3')
-rw-r--r-- | library/python/runtime_py3/importer.pxi | 23 | ||||
-rw-r--r-- | library/python/runtime_py3/main/main.c | 2 | ||||
-rw-r--r-- | library/python/runtime_py3/main/ya.make | 4 | ||||
-rw-r--r-- | library/python/runtime_py3/ya.make | 4 |
4 files changed, 24 insertions, 9 deletions
diff --git a/library/python/runtime_py3/importer.pxi b/library/python/runtime_py3/importer.pxi index 0a194308c3..493c17204d 100644 --- a/library/python/runtime_py3/importer.pxi +++ b/library/python/runtime_py3/importer.pxi @@ -9,7 +9,6 @@ import __res as __resource _b = lambda x: x if isinstance(x, bytes) else utf_8_encode(x)[0] _s = lambda x: x if isinstance(x, str) else utf_8_decode(x)[0] -env_entry_point = b'Y_PYTHON_ENTRY_POINT' env_source_root = b'Y_PYTHON_SOURCE_ROOT' cfg_source_root = b'arcadia-source-root' env_extended_source_search = b'Y_PYTHON_EXTENDED_SOURCE_SEARCH' @@ -17,12 +16,28 @@ res_ya_ide_venv = b'YA_IDE_VENV' executable = sys.executable or 'Y_PYTHON' sys.modules['run_import_hook'] = __resource -# This is the prefix in contrib/tools/python3/src/Lib/ya.make. +def _probe(environ_dict, key, default_value=None): + """ Probe bytes and str variants for environ. + This is because in python3: + * _os (nt) on windows returns str, + * _os (posix) on linux return bytes + For more information check: + * https://github.com/python/cpython/blob/main/Lib/importlib/_bootstrap_external.py#L34 + * YA-1700 + """ + keys = [_b(key), _s(key)] + for key in keys: + if key in environ_dict: + return _b(environ_dict[key]) + + return _b(default_value) if isinstance(default_value, str) else default_value + +# This is the prefix in contrib/tools/python3/Lib/ya.make. py_prefix = b'py/' py_prefix_len = len(py_prefix) YA_IDE_VENV = __resource.find(res_ya_ide_venv) -Y_PYTHON_EXTENDED_SOURCE_SEARCH = _os.environ.get(env_extended_source_search) or YA_IDE_VENV +Y_PYTHON_EXTENDED_SOURCE_SEARCH = _probe(_os.environ, env_extended_source_search) or YA_IDE_VENV def _init_venv(): @@ -64,7 +79,7 @@ def _init_venv(): def _get_source_root(): - env_value = _os.environ.get(env_source_root) + env_value = _probe(_os.environ, env_source_root) if env_value or not YA_IDE_VENV: return env_value diff --git a/library/python/runtime_py3/main/main.c b/library/python/runtime_py3/main/main.c index bf80678d26..896ab0b21d 100644 --- a/library/python/runtime_py3/main/main.c +++ b/library/python/runtime_py3/main/main.c @@ -1,5 +1,5 @@ #include <Python.h> -#include <contrib/tools/python3/src/Include/internal/pycore_runtime.h> // _PyRuntime_Initialize() +#include <contrib/tools/python3/Include/internal/pycore_runtime.h> // _PyRuntime_Initialize() #include <stdlib.h> #include <string.h> diff --git a/library/python/runtime_py3/main/ya.make b/library/python/runtime_py3/main/ya.make index bfd0955b0f..13449602a9 100644 --- a/library/python/runtime_py3/main/ya.make +++ b/library/python/runtime_py3/main/ya.make @@ -1,12 +1,12 @@ LIBRARY() PEERDIR( - contrib/tools/python3/src + contrib/tools/python3 library/cpp/resource ) ADDINCL( - contrib/tools/python3/src/Include + contrib/tools/python3/Include ) CFLAGS( diff --git a/library/python/runtime_py3/ya.make b/library/python/runtime_py3/ya.make index 58e05a7295..05687fdd8f 100644 --- a/library/python/runtime_py3/ya.make +++ b/library/python/runtime_py3/ya.make @@ -3,8 +3,8 @@ PY3_LIBRARY() STYLE_PYTHON() PEERDIR( - contrib/tools/python3/src - contrib/tools/python3/lib/py + contrib/tools/python3 + contrib/tools/python3/lib2/py library/cpp/resource ) |