简体   繁体   中英

Pydantic autocompletion in VS Code

When i use pydantic in VS Code, the code snippet shows User(**data: Any) . Is there any way for VS Code to show correct documentation? like User(name: str, email: str)

在此处输入图像描述

As of today, the problem persists, both for pydantic's BaseModel classes, as well as the pydantic version of @dataclass decorator.

In case of BaseModel , add the following piece of code to your imports:

from typing import TYPE_CHECKING
from pydantic import BaseModel


if TYPE_CHECKING:
    from dataclasses import dataclass as _basemodel_decorator
else:
    _basemodel_decorator = lambda x: x

Then, decorate all classes as follows:

@_basemodel_decorator
class MyClass(BaseModel):
    foo: int
    bar: str

Alternatively, if you are using pydantic's version of the dataclass decorator boilerplate code is simpler:

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from dataclasses import dataclass
else:
    from pydantic.dataclasses import dataclass

Then continue as usual:

@dataclass
class MyClass2:
    foo: int
    bar: str

Result: 构造函数参数的提示显示在 VS Code 中

More info:

Make sure that you've selected a python interpreter, that has pydantic installed.

VS code python extension will give you ability of syntax highlighting, as well as loading an interpreter.

In right down corner of VS code you will find python interpreter selection
(in my case 3.9.12 version)
在此处输入图像描述

Working example:
工作示例

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM