summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@riseup.net>2021-04-18 10:46:11 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2021-05-19 20:41:59 +0200
commit2bd56688ccc7b929cb7b466dc8c558acf320ac95 (patch)
tree6156bd515cd2f5e71516e3447654952d1d960e1b /dev-python/python-lsp-server/files
parentdev-python/python-lsp-jsonrpc: add spyder fork of python-jsonrpc-server (diff)
downloadgentoo-2bd56688ccc7b929cb7b466dc8c558acf320ac95.tar.gz
gentoo-2bd56688ccc7b929cb7b466dc8c558acf320ac95.tar.bz2
gentoo-2bd56688ccc7b929cb7b466dc8c558acf320ac95.zip
dev-python/python-lsp-server: add spyder fork of python-language-server
Bug: https://bugs.gentoo.org/783618 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'dev-python/python-lsp-server/files')
-rw-r--r--dev-python/python-lsp-server/files/pyls-fix-test-with-pylint28.patch237
-rw-r--r--dev-python/python-lsp-server/files/pyls-fix-test_folding.patch14
2 files changed, 251 insertions, 0 deletions
diff --git a/dev-python/python-lsp-server/files/pyls-fix-test-with-pylint28.patch b/dev-python/python-lsp-server/files/pyls-fix-test-with-pylint28.patch
new file mode 100644
index 000000000000..99790b6baed9
--- /dev/null
+++ b/dev-python/python-lsp-server/files/pyls-fix-test-with-pylint28.patch
@@ -0,0 +1,237 @@
+From f6d9041b81d142657985b696d8da82cebdbe00bb Mon Sep 17 00:00:00 2001
+From: krassowski <krassowski.michal@gmail.com>
+Date: Sun, 25 Apr 2021 21:06:28 +0100
+Subject: [PATCH 1/2] Address pylint's "consider-using-with" warnings
+
+---
+ pylsp/plugins/flake8_lint.py | 25 +++++++++++++++----------
+ pylsp/plugins/pylint_lint.py | 28 ++++++++++++++++------------
+ test/plugins/test_flake8_lint.py | 7 +++----
+ test/plugins/test_pylint_lint.py | 7 +++----
+ 4 files changed, 37 insertions(+), 30 deletions(-)
+
+diff --git a/pylsp/plugins/flake8_lint.py b/pylsp/plugins/flake8_lint.py
+index d632395..dfee5b4 100644
+--- a/pylsp/plugins/flake8_lint.py
++++ b/pylsp/plugins/flake8_lint.py
+@@ -5,6 +5,7 @@
+ import logging
+ import os.path
+ import re
++from contextlib import ExitStack
+ from subprocess import Popen, PIPE
+ from pylsp import hookimpl, lsp
+
+@@ -65,16 +66,20 @@ def run_flake8(flake8_executable, args, document):
+ )
+
+ log.debug("Calling %s with args: '%s'", flake8_executable, args)
+- try:
+- cmd = [flake8_executable]
+- cmd.extend(args)
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+- except IOError:
+- log.debug("Can't execute %s. Trying with 'python -m flake8'", flake8_executable)
+- cmd = ['python', '-m', 'flake8']
+- cmd.extend(args)
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+- (stdout, stderr) = p.communicate(document.source.encode())
++ with ExitStack() as stack:
++ try:
++ cmd = [flake8_executable]
++ cmd.extend(args)
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ stack.enter_context(p)
++ except IOError:
++ log.debug("Can't execute %s. Trying with 'python -m flake8'", flake8_executable)
++ cmd = ['python', '-m', 'flake8']
++ cmd.extend(args)
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ stack.enter_context(p)
++ # exit stack ensures that even if an exception happens, the process `p` will be properly terminated
++ (stdout, stderr) = p.communicate(document.source.encode())
+ if stderr:
+ log.error("Error while running flake8 '%s'", stderr.decode())
+ return stdout.decode()
+diff --git a/pylsp/plugins/pylint_lint.py b/pylsp/plugins/pylint_lint.py
+index 5491787..6449cda 100644
+--- a/pylsp/plugins/pylint_lint.py
++++ b/pylsp/plugins/pylint_lint.py
+@@ -7,6 +7,7 @@
+ import logging
+ import sys
+ import re
++from contextlib import ExitStack
+ from subprocess import Popen, PIPE
+
+ from pylint.epylint import py_run
+@@ -232,18 +233,21 @@ def _run_pylint_stdio(pylint_executable, document, flags):
+ :rtype: string
+ """
+ log.debug("Calling %s with args: '%s'", pylint_executable, flags)
+- try:
+- cmd = [pylint_executable]
+- cmd.extend(flags)
+- cmd.extend(['--from-stdin', document.path])
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+- except IOError:
+- log.debug("Can't execute %s. Trying with 'python -m pylint'", pylint_executable)
+- cmd = ['python', '-m', 'pylint']
+- cmd.extend(flags)
+- cmd.extend(['--from-stdin', document.path])
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE)
+- (stdout, stderr) = p.communicate(document.source.encode())
++ with ExitStack() as stack:
++ try:
++ cmd = [pylint_executable]
++ cmd.extend(flags)
++ cmd.extend(['--from-stdin', document.path])
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ stack.enter_context(p)
++ except IOError:
++ log.debug("Can't execute %s. Trying with 'python -m pylint'", pylint_executable)
++ cmd = ['python', '-m', 'pylint']
++ cmd.extend(flags)
++ cmd.extend(['--from-stdin', document.path])
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ stack.enter_context(p)
++ (stdout, stderr) = p.communicate(document.source.encode())
+ if stderr:
+ log.error("Error while running pylint '%s'", stderr.decode())
+ return stdout.decode()
+diff --git a/test/plugins/test_flake8_lint.py b/test/plugins/test_flake8_lint.py
+index eaabd40..4faf0dd 100644
+--- a/test/plugins/test_flake8_lint.py
++++ b/test/plugins/test_flake8_lint.py
+@@ -21,10 +21,9 @@ def using_const():
+
+
+ def temp_document(doc_text, workspace):
+- temp_file = tempfile.NamedTemporaryFile(mode='w', delete=False)
+- name = temp_file.name
+- temp_file.write(doc_text)
+- temp_file.close()
++ with tempfile.NamedTemporaryFile(mode='w', delete=False) as temp_file:
++ name = temp_file.name
++ temp_file.write(doc_text)
+ doc = Document(uris.from_fs_path(name), workspace)
+
+ return name, doc
+diff --git a/test/plugins/test_pylint_lint.py b/test/plugins/test_pylint_lint.py
+index f83e754..cf7a7e4 100644
+--- a/test/plugins/test_pylint_lint.py
++++ b/test/plugins/test_pylint_lint.py
+@@ -28,10 +28,9 @@ def hello():
+ @contextlib.contextmanager
+ def temp_document(doc_text, workspace):
+ try:
+- temp_file = tempfile.NamedTemporaryFile(mode='w', delete=False)
+- name = temp_file.name
+- temp_file.write(doc_text)
+- temp_file.close()
++ with tempfile.NamedTemporaryFile(mode='w', delete=False) as temp_file:
++ name = temp_file.name
++ temp_file.write(doc_text)
+ yield Document(uris.from_fs_path(name), workspace)
+ finally:
+ os.remove(name)
+
+From 2d980b6d99b06de827d6589a48a75c6b196b32f4 Mon Sep 17 00:00:00 2001
+From: krassowski <krassowski.michal@gmail.com>
+Date: Sun, 25 Apr 2021 22:14:53 +0100
+Subject: [PATCH 2/2] Revert the use of ExitStack, as requested
+
+---
+ pylsp/plugins/flake8_lint.py | 25 ++++++++++---------------
+ pylsp/plugins/pylint_lint.py | 28 ++++++++++++----------------
+ 2 files changed, 22 insertions(+), 31 deletions(-)
+
+diff --git a/pylsp/plugins/flake8_lint.py b/pylsp/plugins/flake8_lint.py
+index dfee5b4..03504ef 100644
+--- a/pylsp/plugins/flake8_lint.py
++++ b/pylsp/plugins/flake8_lint.py
+@@ -5,7 +5,6 @@
+ import logging
+ import os.path
+ import re
+-from contextlib import ExitStack
+ from subprocess import Popen, PIPE
+ from pylsp import hookimpl, lsp
+
+@@ -66,20 +65,16 @@ def run_flake8(flake8_executable, args, document):
+ )
+
+ log.debug("Calling %s with args: '%s'", flake8_executable, args)
+- with ExitStack() as stack:
+- try:
+- cmd = [flake8_executable]
+- cmd.extend(args)
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
+- stack.enter_context(p)
+- except IOError:
+- log.debug("Can't execute %s. Trying with 'python -m flake8'", flake8_executable)
+- cmd = ['python', '-m', 'flake8']
+- cmd.extend(args)
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
+- stack.enter_context(p)
+- # exit stack ensures that even if an exception happens, the process `p` will be properly terminated
+- (stdout, stderr) = p.communicate(document.source.encode())
++ try:
++ cmd = [flake8_executable]
++ cmd.extend(args)
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ except IOError:
++ log.debug("Can't execute %s. Trying with 'python -m flake8'", flake8_executable)
++ cmd = ['python', '-m', 'flake8']
++ cmd.extend(args)
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ (stdout, stderr) = p.communicate(document.source.encode())
+ if stderr:
+ log.error("Error while running flake8 '%s'", stderr.decode())
+ return stdout.decode()
+diff --git a/pylsp/plugins/pylint_lint.py b/pylsp/plugins/pylint_lint.py
+index 6449cda..d5ff3db 100644
+--- a/pylsp/plugins/pylint_lint.py
++++ b/pylsp/plugins/pylint_lint.py
+@@ -7,7 +7,6 @@
+ import logging
+ import sys
+ import re
+-from contextlib import ExitStack
+ from subprocess import Popen, PIPE
+
+ from pylint.epylint import py_run
+@@ -233,21 +232,18 @@ def _run_pylint_stdio(pylint_executable, document, flags):
+ :rtype: string
+ """
+ log.debug("Calling %s with args: '%s'", pylint_executable, flags)
+- with ExitStack() as stack:
+- try:
+- cmd = [pylint_executable]
+- cmd.extend(flags)
+- cmd.extend(['--from-stdin', document.path])
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
+- stack.enter_context(p)
+- except IOError:
+- log.debug("Can't execute %s. Trying with 'python -m pylint'", pylint_executable)
+- cmd = ['python', '-m', 'pylint']
+- cmd.extend(flags)
+- cmd.extend(['--from-stdin', document.path])
+- p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
+- stack.enter_context(p)
+- (stdout, stderr) = p.communicate(document.source.encode())
++ try:
++ cmd = [pylint_executable]
++ cmd.extend(flags)
++ cmd.extend(['--from-stdin', document.path])
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ except IOError:
++ log.debug("Can't execute %s. Trying with 'python -m pylint'", pylint_executable)
++ cmd = ['python', '-m', 'pylint']
++ cmd.extend(flags)
++ cmd.extend(['--from-stdin', document.path])
++ p = Popen(cmd, stdin=PIPE, stdout=PIPE, stderr=PIPE) # pylint: disable=consider-using-with
++ (stdout, stderr) = p.communicate(document.source.encode())
+ if stderr:
+ log.error("Error while running pylint '%s'", stderr.decode())
+ return stdout.decode()
diff --git a/dev-python/python-lsp-server/files/pyls-fix-test_folding.patch b/dev-python/python-lsp-server/files/pyls-fix-test_folding.patch
new file mode 100644
index 000000000000..d70f2b23d4be
--- /dev/null
+++ b/dev-python/python-lsp-server/files/pyls-fix-test_folding.patch
@@ -0,0 +1,14 @@
+diff --git a/test/plugins/test_folding.py b/test/plugins/test_folding.py
+index 57d6e2e..cef4583 100644
+--- a/test/plugins/test_folding.py
++++ b/test/plugins/test_folding.py
+@@ -147,9 +147,6 @@ def test_folding(workspace):
+ {'startLine': 62, 'endLine': 63},
+ {'startLine': 64, 'endLine': 65},
+ {'startLine': 67, 'endLine': 68}]
+- if sys.version_info[:2] >= (3, 9):
+- # the argument list of the decorator is also folded in Python >= 3.9
+- expected.insert(4, {'startLine': 9, 'endLine': 10})
+
+ assert ranges == expected
+