aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/ipython/py3/patches
diff options
context:
space:
mode:
authorshadchin <shadchin@yandex-team.ru>2022-02-10 16:44:39 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:44:39 +0300
commite9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch)
tree64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/python/ipython/py3/patches
parent2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff)
downloadydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/python/ipython/py3/patches')
-rw-r--r--contrib/python/ipython/py3/patches/01-arcadia.patch342
-rw-r--r--contrib/python/ipython/py3/patches/02-fix-ya.make.patch108
2 files changed, 225 insertions, 225 deletions
diff --git a/contrib/python/ipython/py3/patches/01-arcadia.patch b/contrib/python/ipython/py3/patches/01-arcadia.patch
index 72a1446d0e..335f93f18e 100644
--- a/contrib/python/ipython/py3/patches/01-arcadia.patch
+++ b/contrib/python/ipython/py3/patches/01-arcadia.patch
@@ -1,171 +1,171 @@
---- contrib/python/ipython/py3/IPython/core/completer.py (index)
-+++ contrib/python/ipython/py3/IPython/core/completer.py (working tree)
-@@ -996,6 +996,7 @@ def _make_signature(completion)-> str:
-
- """
-
-+ return '(%s)'% ', '.join([f for f in (_formatparamchildren(p) for p in completion.params) if f])
- # it looks like this might work on jedi 0.17
- if hasattr(completion, 'get_signatures'):
- signatures = completion.get_signatures()
-@@ -1388,7 +1389,7 @@ class IPCompleter(Completer):
- else:
- raise ValueError("Don't understand self.omit__names == {}".format(self.omit__names))
-
-- interpreter = jedi.Interpreter(text[:offset], namespaces)
-+ interpreter = jedi.Interpreter(text[:offset], namespaces, column=cursor_column, line=cursor_line + 1)
- try_jedi = True
-
- try:
-@@ -1415,7 +1416,7 @@ class IPCompleter(Completer):
- if not try_jedi:
- return []
- try:
-- return filter(completion_filter, interpreter.complete(column=cursor_column, line=cursor_line + 1))
-+ return filter(completion_filter, interpreter.completions())
- except Exception as e:
- if self.debug:
- return [_FakeJediCompletion('Oops Jedi has crashed, please report a bug with the following:\n"""\n%s\ns"""' % (e))]
---- contrib/python/ipython/py3/IPython/core/completerlib.py (index)
-+++ contrib/python/ipython/py3/IPython/core/completerlib.py (working tree)
-@@ -18,6 +18,7 @@ These are all loaded by default by IPython.
- # Stdlib imports
- import glob
- import inspect
-+import itertools
- import os
- import re
- import sys
-@@ -39,6 +40,8 @@ from IPython import get_ipython
-
- from typing import List
-
-+from __res import importer
-+
- #-----------------------------------------------------------------------------
- # Globals and constants
- #-----------------------------------------------------------------------------
-@@ -64,6 +67,50 @@ magic_run_re = re.compile(r'.*(\.ipy|\.ipynb|\.py[w]?)$')
- # Local utilities
- #-----------------------------------------------------------------------------
-
-+arcadia_rootmodules_cache = None
-+arcadia_modules_cache = None
-+
-+
-+def arcadia_init_cache():
-+ global arcadia_rootmodules_cache, arcadia_modules_cache
-+ arcadia_rootmodules_cache = set()
-+ arcadia_modules_cache = {}
-+
-+ all_modules = itertools.chain(
-+ sys.builtin_module_names,
-+ importer.memory
-+ )
-+
-+ for name in all_modules:
-+ path = name.split('.')
-+ arcadia_rootmodules_cache.add(path[0])
-+
-+ prefix = path[0]
-+ for element in path[1:]:
-+ if element == '__init__':
-+ continue
-+
-+ arcadia_modules_cache.setdefault(prefix, set()).add(element)
-+ prefix += '.' + element
-+
-+ arcadia_rootmodules_cache = sorted(arcadia_rootmodules_cache)
-+ arcadia_modules_cache = {k: sorted(v) for k, v in arcadia_modules_cache.items()}
-+
-+
-+def arcadia_module_list(mod):
-+ if arcadia_modules_cache is None:
-+ arcadia_init_cache()
-+
-+ return arcadia_modules_cache.get(mod, ())
-+
-+
-+def arcadia_get_root_modules():
-+ if arcadia_rootmodules_cache is None:
-+ arcadia_init_cache()
-+
-+ return arcadia_rootmodules_cache
-+
-+
- def module_list(path):
- """
- Return the list containing the names of the modules available in the given
-@@ -165,7 +212,8 @@ def try_import(mod: str, only_modules=False) -> List[str]:
- except:
- return []
-
-- m_is_init = '__init__' in (getattr(m, '__file__', '') or '')
-+ filename = getattr(m, '__file__', '')
-+ m_is_init = '__init__' in (filename or '') or filename == mod
-
- completions = []
- if (not hasattr(m, '__file__')) or (not only_modules) or m_is_init:
-@@ -174,10 +222,10 @@ def try_import(mod: str, only_modules=False) -> List[str]:
-
- completions.extend(getattr(m, '__all__', []))
- if m_is_init:
-- completions.extend(module_list(os.path.dirname(m.__file__)))
-+ completions.extend(arcadia_module_list(mod))
- completions_set = {c for c in completions if isinstance(c, str)}
- completions_set.discard('__init__')
-- return list(completions_set)
-+ return sorted(completions_set)
-
-
- #-----------------------------------------------------------------------------
-@@ -226,10 +274,10 @@ def module_completion(line):
- # 'from xy<tab>' or 'import xy<tab>'
- if nwords < 3 and (words[0] in {'%aimport', 'import', 'from'}) :
- if nwords == 1:
-- return get_root_modules()
-+ return arcadia_get_root_modules()
- mod = words[1].split('.')
- if len(mod) < 2:
-- return get_root_modules()
-+ return arcadia_get_root_modules()
- completion_list = try_import('.'.join(mod[:-1]), True)
- return ['.'.join(mod[:-1] + [el]) for el in completion_list]
-
---- contrib/python/ipython/py3/IPython/core/extensions.py (index)
-+++ contrib/python/ipython/py3/IPython/core/extensions.py (working tree)
-@@ -72,11 +72,11 @@ class ExtensionManager(Configurable):
- if module_str in self.loaded:
- return "already loaded"
-
-- from IPython.utils.syspathcontext import prepended_to_syspath
--
- with self.shell.builtin_trap:
- if module_str not in sys.modules:
-- with prepended_to_syspath(self.ipython_extension_dir):
-+ try:
-+ sys.modules[module_str] = __import__('IPython.extensions.' + module_str)
-+ except ImportError:
- mod = import_module(module_str)
- if mod.__file__.startswith(self.ipython_extension_dir):
- print(("Loading extensions from {dir} is deprecated. "
---- contrib/python/ipython/py3/IPython/core/profiledir.py (index)
-+++ contrib/python/ipython/py3/IPython/core/profiledir.py (working tree)
-@@ -111,13 +111,11 @@ class ProfileDir(LoggingConfigurable):
- self._mkdir(self.startup_dir)
-
- readme = os.path.join(self.startup_dir, 'README')
-- src = os.path.join(get_ipython_package_dir(), u'core', u'profile', u'README_STARTUP')
-
-- if not os.path.exists(src):
-- self.log.warning("Could not copy README_STARTUP to startup dir. Source file %s does not exist.", src)
--
-- if os.path.exists(src) and not os.path.exists(readme):
-- shutil.copy(src, readme)
-+ if not os.path.exists(readme):
-+ import pkgutil
-+ with open(readme, 'wb') as f:
-+ f.write(pkgutil.get_data(__name__, 'profile/README_STARTUP'))
-
- @observe('security_dir')
- def check_security_dir(self, change=None):
+--- contrib/python/ipython/py3/IPython/core/completer.py (index)
++++ contrib/python/ipython/py3/IPython/core/completer.py (working tree)
+@@ -996,6 +996,7 @@ def _make_signature(completion)-> str:
+
+ """
+
++ return '(%s)'% ', '.join([f for f in (_formatparamchildren(p) for p in completion.params) if f])
+ # it looks like this might work on jedi 0.17
+ if hasattr(completion, 'get_signatures'):
+ signatures = completion.get_signatures()
+@@ -1388,7 +1389,7 @@ class IPCompleter(Completer):
+ else:
+ raise ValueError("Don't understand self.omit__names == {}".format(self.omit__names))
+
+- interpreter = jedi.Interpreter(text[:offset], namespaces)
++ interpreter = jedi.Interpreter(text[:offset], namespaces, column=cursor_column, line=cursor_line + 1)
+ try_jedi = True
+
+ try:
+@@ -1415,7 +1416,7 @@ class IPCompleter(Completer):
+ if not try_jedi:
+ return []
+ try:
+- return filter(completion_filter, interpreter.complete(column=cursor_column, line=cursor_line + 1))
++ return filter(completion_filter, interpreter.completions())
+ except Exception as e:
+ if self.debug:
+ return [_FakeJediCompletion('Oops Jedi has crashed, please report a bug with the following:\n"""\n%s\ns"""' % (e))]
+--- contrib/python/ipython/py3/IPython/core/completerlib.py (index)
++++ contrib/python/ipython/py3/IPython/core/completerlib.py (working tree)
+@@ -18,6 +18,7 @@ These are all loaded by default by IPython.
+ # Stdlib imports
+ import glob
+ import inspect
++import itertools
+ import os
+ import re
+ import sys
+@@ -39,6 +40,8 @@ from IPython import get_ipython
+
+ from typing import List
+
++from __res import importer
++
+ #-----------------------------------------------------------------------------
+ # Globals and constants
+ #-----------------------------------------------------------------------------
+@@ -64,6 +67,50 @@ magic_run_re = re.compile(r'.*(\.ipy|\.ipynb|\.py[w]?)$')
+ # Local utilities
+ #-----------------------------------------------------------------------------
+
++arcadia_rootmodules_cache = None
++arcadia_modules_cache = None
++
++
++def arcadia_init_cache():
++ global arcadia_rootmodules_cache, arcadia_modules_cache
++ arcadia_rootmodules_cache = set()
++ arcadia_modules_cache = {}
++
++ all_modules = itertools.chain(
++ sys.builtin_module_names,
++ importer.memory
++ )
++
++ for name in all_modules:
++ path = name.split('.')
++ arcadia_rootmodules_cache.add(path[0])
++
++ prefix = path[0]
++ for element in path[1:]:
++ if element == '__init__':
++ continue
++
++ arcadia_modules_cache.setdefault(prefix, set()).add(element)
++ prefix += '.' + element
++
++ arcadia_rootmodules_cache = sorted(arcadia_rootmodules_cache)
++ arcadia_modules_cache = {k: sorted(v) for k, v in arcadia_modules_cache.items()}
++
++
++def arcadia_module_list(mod):
++ if arcadia_modules_cache is None:
++ arcadia_init_cache()
++
++ return arcadia_modules_cache.get(mod, ())
++
++
++def arcadia_get_root_modules():
++ if arcadia_rootmodules_cache is None:
++ arcadia_init_cache()
++
++ return arcadia_rootmodules_cache
++
++
+ def module_list(path):
+ """
+ Return the list containing the names of the modules available in the given
+@@ -165,7 +212,8 @@ def try_import(mod: str, only_modules=False) -> List[str]:
+ except:
+ return []
+
+- m_is_init = '__init__' in (getattr(m, '__file__', '') or '')
++ filename = getattr(m, '__file__', '')
++ m_is_init = '__init__' in (filename or '') or filename == mod
+
+ completions = []
+ if (not hasattr(m, '__file__')) or (not only_modules) or m_is_init:
+@@ -174,10 +222,10 @@ def try_import(mod: str, only_modules=False) -> List[str]:
+
+ completions.extend(getattr(m, '__all__', []))
+ if m_is_init:
+- completions.extend(module_list(os.path.dirname(m.__file__)))
++ completions.extend(arcadia_module_list(mod))
+ completions_set = {c for c in completions if isinstance(c, str)}
+ completions_set.discard('__init__')
+- return list(completions_set)
++ return sorted(completions_set)
+
+
+ #-----------------------------------------------------------------------------
+@@ -226,10 +274,10 @@ def module_completion(line):
+ # 'from xy<tab>' or 'import xy<tab>'
+ if nwords < 3 and (words[0] in {'%aimport', 'import', 'from'}) :
+ if nwords == 1:
+- return get_root_modules()
++ return arcadia_get_root_modules()
+ mod = words[1].split('.')
+ if len(mod) < 2:
+- return get_root_modules()
++ return arcadia_get_root_modules()
+ completion_list = try_import('.'.join(mod[:-1]), True)
+ return ['.'.join(mod[:-1] + [el]) for el in completion_list]
+
+--- contrib/python/ipython/py3/IPython/core/extensions.py (index)
++++ contrib/python/ipython/py3/IPython/core/extensions.py (working tree)
+@@ -72,11 +72,11 @@ class ExtensionManager(Configurable):
+ if module_str in self.loaded:
+ return "already loaded"
+
+- from IPython.utils.syspathcontext import prepended_to_syspath
+-
+ with self.shell.builtin_trap:
+ if module_str not in sys.modules:
+- with prepended_to_syspath(self.ipython_extension_dir):
++ try:
++ sys.modules[module_str] = __import__('IPython.extensions.' + module_str)
++ except ImportError:
+ mod = import_module(module_str)
+ if mod.__file__.startswith(self.ipython_extension_dir):
+ print(("Loading extensions from {dir} is deprecated. "
+--- contrib/python/ipython/py3/IPython/core/profiledir.py (index)
++++ contrib/python/ipython/py3/IPython/core/profiledir.py (working tree)
+@@ -111,13 +111,11 @@ class ProfileDir(LoggingConfigurable):
+ self._mkdir(self.startup_dir)
+
+ readme = os.path.join(self.startup_dir, 'README')
+- src = os.path.join(get_ipython_package_dir(), u'core', u'profile', u'README_STARTUP')
+
+- if not os.path.exists(src):
+- self.log.warning("Could not copy README_STARTUP to startup dir. Source file %s does not exist.", src)
+-
+- if os.path.exists(src) and not os.path.exists(readme):
+- shutil.copy(src, readme)
++ if not os.path.exists(readme):
++ import pkgutil
++ with open(readme, 'wb') as f:
++ f.write(pkgutil.get_data(__name__, 'profile/README_STARTUP'))
+
+ @observe('security_dir')
+ def check_security_dir(self, change=None):
diff --git a/contrib/python/ipython/py3/patches/02-fix-ya.make.patch b/contrib/python/ipython/py3/patches/02-fix-ya.make.patch
index 7fbd38be92..bfec2cb498 100644
--- a/contrib/python/ipython/py3/patches/02-fix-ya.make.patch
+++ b/contrib/python/ipython/py3/patches/02-fix-ya.make.patch
@@ -1,54 +1,54 @@
---- contrib/python/ipython/py3/.dist-info/METADATA (index)
-+++ contrib/python/ipython/py3/.dist-info/METADATA (working tree)
-@@ -24,7 +24,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
- Classifier: Topic :: System :: Shells
- Requires-Python: >=3.7
- Requires-Dist: setuptools (>=18.5)
--Requires-Dist: jedi (>=0.16)
-+Requires-Dist: jedi (>=0.13)
- Requires-Dist: decorator
- Requires-Dist: pickleshare
- Requires-Dist: traitlets (>=4.2)
---- contrib/python/ipython/py3/ya.make (index)
-+++ contrib/python/ipython/py3/ya.make (working tree)
-@@ -14,13 +14,28 @@ PEERDIR(
- contrib/python/decorator
- contrib/python/jedi
- contrib/python/matplotlib-inline
-- contrib/python/pexpect
- contrib/python/pickleshare
- contrib/python/prompt-toolkit
- contrib/python/setuptools
- contrib/python/traitlets
- )
-
-+IF (OS_WINDOWS)
-+ PEERDIR(
-+ contrib/python/colorama
-+ )
-+ELSE()
-+ PEERDIR(
-+ contrib/python/pexpect
-+ )
-+ENDIF()
-+
-+IF (OS_DARWIN)
-+ PEERDIR(
-+ contrib/python/appnope
-+ )
-+ENDIF()
-+
- NO_LINT()
-
- NO_CHECK_IMPORTS(
-@@ -255,10 +269,6 @@ RESOURCE_FILES(
- .dist-info/entry_points.txt
- .dist-info/top_level.txt
- IPython/core/profile/README_STARTUP
-- IPython/testing/plugin/README.txt
-- IPython/testing/plugin/test_combo.txt
-- IPython/testing/plugin/test_example.txt
-- IPython/testing/plugin/test_exampleip.txt
- )
-
- END()
+--- contrib/python/ipython/py3/.dist-info/METADATA (index)
++++ contrib/python/ipython/py3/.dist-info/METADATA (working tree)
+@@ -24,7 +24,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
+ Classifier: Topic :: System :: Shells
+ Requires-Python: >=3.7
+ Requires-Dist: setuptools (>=18.5)
+-Requires-Dist: jedi (>=0.16)
++Requires-Dist: jedi (>=0.13)
+ Requires-Dist: decorator
+ Requires-Dist: pickleshare
+ Requires-Dist: traitlets (>=4.2)
+--- contrib/python/ipython/py3/ya.make (index)
++++ contrib/python/ipython/py3/ya.make (working tree)
+@@ -14,13 +14,28 @@ PEERDIR(
+ contrib/python/decorator
+ contrib/python/jedi
+ contrib/python/matplotlib-inline
+- contrib/python/pexpect
+ contrib/python/pickleshare
+ contrib/python/prompt-toolkit
+ contrib/python/setuptools
+ contrib/python/traitlets
+ )
+
++IF (OS_WINDOWS)
++ PEERDIR(
++ contrib/python/colorama
++ )
++ELSE()
++ PEERDIR(
++ contrib/python/pexpect
++ )
++ENDIF()
++
++IF (OS_DARWIN)
++ PEERDIR(
++ contrib/python/appnope
++ )
++ENDIF()
++
+ NO_LINT()
+
+ NO_CHECK_IMPORTS(
+@@ -255,10 +269,6 @@ RESOURCE_FILES(
+ .dist-info/entry_points.txt
+ .dist-info/top_level.txt
+ IPython/core/profile/README_STARTUP
+- IPython/testing/plugin/README.txt
+- IPython/testing/plugin/test_combo.txt
+- IPython/testing/plugin/test_example.txt
+- IPython/testing/plugin/test_exampleip.txt
+ )
+
+ END()