Skip to content

Commit ad0aa3e

Browse files
authored
Merge pull request #533 from yukinarit/fix-completion-for-lsp
Fix broken code completion for LSP and jedi
2 parents 858d658 + 912feda commit ad0aa3e

File tree

3 files changed

+27
-3
lines changed

3 files changed

+27
-3
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ pytest-xdist = "^3.5.0"
6767
types-PyYAML = "^6.0.9"
6868
msgpack-types = "^0.3"
6969
envclasses = "^0.3.1"
70+
jedi = "*"
7071

7172
[tool.poetry.extras]
7273
msgpack = ["msgpack"]

serde/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
from dataclasses import dataclass
2525
from collections.abc import Callable
26-
from typing import Optional, overload, Any
26+
from typing import Optional, overload, Any, Type
2727

2828
from typing_extensions import dataclass_transform
2929

@@ -113,7 +113,7 @@
113113

114114
@overload
115115
def serde(
116-
_cls: type[T],
116+
_cls: Type[T],
117117
rename_all: Optional[str] = None,
118118
reuse_instances_default: bool = True,
119119
convert_sets_default: bool = False,
@@ -124,7 +124,7 @@ def serde(
124124
serialize_class_var: bool = False,
125125
class_serializer: Optional[ClassSerializer] = None,
126126
class_deserializer: Optional[ClassDeserializer] = None,
127-
) -> type[T]: ...
127+
) -> Type[T]: ...
128128

129129

130130
@overload

tests/test_code_completion.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import jedi
2+
3+
4+
def test_jedi() -> None:
5+
source = """
6+
from serde import serde
7+
8+
@serde
9+
class Foo:
10+
a: int
11+
b: float
12+
c: str
13+
baz: bool
14+
15+
foo = Foo(10, 100.0, "foo", True)
16+
"""
17+
source_completion = source + "\n" + "foo."
18+
jedi_script = jedi.Script(source_completion, path="foo.py")
19+
completions = jedi_script.complete(9, len("foo."))
20+
completions = [comp.name for comp in completions]
21+
assert "a" in completions
22+
assert "b" in completions
23+
assert "c" in completions

0 commit comments

Comments
 (0)