首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成类似于.pyi文件的visual studio代码

生成类似于.pyi文件的visual studio代码
EN

Stack Overflow用户
提问于 2022-03-11 07:29:57
回答 1查看 257关注 0票数 0

在我的示例中,visual studio代码中的.pyi文件(python扩展名)中的_csv.pyi文件提供了更多关于类型提示的详细信息,与mypy生成的.pyi文件相比

例如,在下面的代码中,您可以看到两个.pyi文件

visual代码_csv.pyi:

代码语言:javascript
复制
from typing import Any, Iterable, Iterator, Protocol, Union
from typing_extensions import Literal

__version__: str

QUOTE_ALL: Literal[1]
QUOTE_MINIMAL: Literal[0]
QUOTE_NONE: Literal[3]
QUOTE_NONNUMERIC: Literal[2]

class Error(Exception): ...

class Dialect:
    delimiter: str
    quotechar: str | None
    escapechar: str | None
    doublequote: bool
    skipinitialspace: bool
    lineterminator: str
    quoting: int
    strict: int
    def __init__(self) -> None: ...

_DialectLike = Union[str, Dialect, type[Dialect]]

class _reader(Iterator[list[str]]):
    dialect: Dialect
    line_num: int
    def __next__(self) -> list[str]: ...

class _writer:
    dialect: Dialect
    def writerow(self, row: Iterable[Any]) -> Any: ...
    def writerows(self, rows: Iterable[Iterable[Any]]) -> None: ...

class _Writer(Protocol):
    def write(self, __s: str) -> object: ...

def writer(csvfile: _Writer, dialect: _DialectLike = ..., **fmtparams: Any) -> _writer: ...
def reader(csvfile: Iterable[str], dialect: _DialectLike = ..., **fmtparams: Any) -> _reader: ...
def register_dialect(name: str, dialect: Any = ..., **fmtparams: Any) -> None: ...
def unregister_dialect(name: str) -> None: ...
def get_dialect(name: str) -> Dialect: ...
def list_dialects() -> list[str]: ...
def field_size_limit(new_limit: int = ...) -> int: ...

类型顽固的_csv.pyi:

代码语言:javascript
复制
from typing import Any, ClassVar

QUOTE_ALL: int
QUOTE_MINIMAL: int
QUOTE_NONE: int
QUOTE_NONNUMERIC: int
_dialects: dict

class Dialect:
    delimiter: ClassVar[getset_descriptor] = ...
    doublequote: ClassVar[member_descriptor] = ...
    escapechar: ClassVar[getset_descriptor] = ...
    lineterminator: ClassVar[getset_descriptor] = ...
    quotechar: ClassVar[getset_descriptor] = ...
    quoting: ClassVar[getset_descriptor] = ...
    skipinitialspace: ClassVar[member_descriptor] = ...
    strict: ClassVar[member_descriptor] = ...
    @classmethod
    def __init__(cls, *args, **kwargs) -> None: ...

class Error(Exception): ...

def field_size_limit(*args, **kwargs) -> Any: ...
def get_dialect(name) -> Any: ...
def list_dialects() -> Any: ...
def reader(*args, **kwargs) -> Any: ...
def register_dialect(*args, **kwargs) -> Any: ...
def unregister_dialect(name) -> Any: ...
def writer(*args, **kwargs) -> Any: ...

正如你所看到的,visual代码有一个比mypy强的更精确的类型提示。

,为什么是这种情况?用于生成这些.pyi文件的哪个工具visual studio代码(python扩展精确)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-12 09:58:16

_cvs.pyi是与mypy一起安装的typeshed的一部分。你可以在这里看到它:https://github.com/python/typeshed/blob/master/stdlib/_csv.pyi

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71435038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档