diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:30 +0300 |
commit | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (patch) | |
tree | 012bb94d777798f1f56ac1cec429509766d05181 /contrib/python/ipython/py3/patches | |
parent | 6751af0b0c1b952fede40b19b71da8025b5d8bcf (diff) | |
download | ydb-2598ef1d0aee359b4b6d5fdd1758916d5907d04f.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/python/ipython/py3/patches')
-rw-r--r-- | contrib/python/ipython/py3/patches/01-arcadia.patch | 342 | ||||
-rw-r--r-- | contrib/python/ipython/py3/patches/02-fix-ya.make.patch | 108 |
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 335f93f18e..72a1446d0e 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 bfec2cb498..7fbd38be92 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() |