pappasam/jedi-language-server

Language servers exits

Opened this issue · 3 comments

Hi,

I'm trying to use jedi-language-serveralong with lsp-jedi.

I have jedi-language-serverinstalled under a virtualenv and activate it within Python (via pyvenv-workon) and then try opening a .pyfile. Unfortunately it exits with the message....

Server jedi:12920/starting exited with status exit(check corresponding stderr buffer for details). Do you want to restart it? (y or n)

And I can't ever get it to start. *jedi::stderr* shows the following...

Process jedi stderr finished
Traceback (most recent call last):
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/pygls/protocol.py", line 152, in deserialize_message
    deserialize_params(data, get_params_type)
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/pygls/protocol.py", line 138, in deserialize_params
    data['params'] = params_type(**params)
  File "pydantic/main.py", line 406, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for InitializeParams
processId
  value is not a valid integer (type=type_error.integer)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/neil/.virtualenvs/default/bin/jedi-language-server", line 8, in <module>
    sys.exit(cli())
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/jedi_language_server/cli.py", line 125, in cli
    SERVER.start_io()
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/pygls/server.py", line 204, in start_io
    self.loop.run_until_complete(
  File "/usr/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/pygls/server.py", line 75, in aio_readline
    proxy(b''.join(message))
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/pygls/protocol.py", line 456, in data_received
    json.loads(body.decode(self.CHARSET),
  File "/usr/lib/python3.9/json/__init__.py", line 359, in loads
    return cls(**kw).decode(s)
  File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.9/json/decoder.py", line 353, in raw_decode
    obj, end = self.scan_once(s, idx)
  File "/home/neil/.virtualenvs/default/lib/python3.9/site-packages/pygls/protocol.py", line 154, in deserialize_message
    raise JsonRpcInvalidParams()
pygls.exceptions.JsonRpcInvalidParams: Invalid Params

I've reinstalled pyglsundet the virtualenv and its on 0.11.3 with pydantic pegged at 1.8.2 (since pygls requires < pydantic-1.9.0).

(default) ❱ pip show pygls
Name: pygls
Version: 0.11.3
Summary: a pythonic generic language server (pronounced like "pie glass").
Home-page: https://github.com/openlawlibrary/pygls/tree/master/
Author: Open Law Library
Author-email: info@openlawlib.org
License: Apache 2.0
Location: /home/neil/.virtualenvs/default/lib/python3.9/site-packages
Requires: pydantic, typeguard
Required-by: jedi-language-server
(default) ❱ pip show pydantic
Name: pydantic
Version: 1.8.2
Summary: Data validation and settings management using python 3.6 type hinting
Home-page: https://github.com/samuelcolvin/pydantic
Author: Samuel Colvin
Author-email: s@muelcolvin.com
License: MIT
Location: /home/neil/.virtualenvs/default/lib/python3.9/site-packages
Requires: typing-extensions
Required-by: jedi-language-server, pygls
(default) ❱ pip show jedi-language-server            
Name: jedi-language-server
Version: 0.36.0
Summary: A language server for Jedi!
Home-page: https://github.com/pappasam/jedi-language-server
Author: Sam Roeca
Author-email: samuel.roeca@gmail.com
License: MIT
Location: /home/neil/.virtualenvs/default/lib/python3.9/site-packages
Requires: docstring-to-markdown, jedi, pydantic, pygls
Required-by: 

I have no problem starting jedi-language-serverat the command line under the same virtualenv.

Any advice on how to solve this would be very gratefully received and if I can supply any more information to help debug please let me know.

Thanks.

You should open this issue with https://github.com/fredcamps/lsp-jedi. I don't personally use that client and we haven't yet ruled out whether the issue is with your configuration of that client

Apologies will post there and see if it can be resolved, thanks for the pointer @pappasam

As suggested I opened an issue for this with lsp-jedi and as suggested installed jedi-language-server outside of the virtualenv but with the same result.

Kindly redirected back to jedi-language-server.

Is there anything I can do to investigate if it is my configuration of jedi-language-server that might be causing this problem?

Also, as it seems to stem from a typing error in pygls I'm wondering if this should be reported up-stream to them.