问题标签 [pyright]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - VScode 在 scipy stats 中找不到模块规范
有一个名为的 scipy.stats
模块,norm
但 VScode 似乎没有找到它。
我知道这个非常相似的问题,但我无法根据那里给出的答案解决我的问题。
Scipy 安装在 Conda 环境中。
使用 VScode 1.61.2 和 Conda 4.10.3。
python - Python Typing:如何处理子类中具有不同元素类型的列表类型提示?
我试图了解类型提示在 Python 中是如何工作的——尤其是在儿童类中。我在处理一个项目时遇到了这个问题,并且能够在一个示例中重新创建该问题,如下所示。
环境:
- 蟒蛇:3.9.7
- 我的:0.910
- 操作系统:Ubuntu 20.04
示例代码:
我不明白如何解决这个问题:
BList
我在课堂上收到以下 Pyright 错误super().__init__(elements)
:
我还在 mypy 中收到以下错误消息:
将继续努力,但任何建议/反馈将不胜感激。感谢您的时间!
python - 解包对象属性时是否可以维护类型信息?
想象一下,我有一个对象,它是一个类的实例,如下所示:
我使用dataclasses
是为了方便,但在这个问题的上下文中,没有要求类是dataclass
.
通常,如果我想解包这样一个对象的属性,我必须实现__iter__
,例如如下:
但是,从像pyright这样的静态类型检查器的角度来看,我现在已经丢失了 and 的任何类型信息bar
,baz
它只能推断是 type Any
。iter
我可以通过手动创建元组参数来稍微改进:
但是我仍然没有特定的类型bar
and baz
。我可以注释bar
然后直接baz
使用dataclasses.astuple
如下:
但这需要可读性较差的多级列表理解,例如
也把我绑在dataclasses
.
显然,这一切都不是不可克服的。如果我想使用类型检查器,我不能使用解包语法,但如果有一种干净的方法可以做到这一点,我真的很想这样做。
如果当前无法使用通用方法,则可以接受特定于dataclasses
或更好的答案。attrs
python - Pyright 严格的类型检查模式在 Sublime Text 4.0 中不起作用
我已经在 Sublime Text 4 中安装了 LSP 和 LSP-pyright 并包含"python.analysis.typeCheckingMode": "strict"
在LSP-pyright.sublime-settings
文件中,但是Pyright
当我编写以下代码时仍然不会引发任何类型错误:
补充一点,似乎基本的类型检查模式仍然有效,因为代码
让 Pyright 加注reportMissingImports
。那么问题似乎是什么?
neovim - Neovim 内置 LSP 显示没有可用于 Python 文件的代码操作
当我打开一个 python 文件时,诊断似乎工作正常。然后我导航到出现诊断错误的行,按快捷方式调用代码操作(在我的情况下为“<space>ca”),我收到一条消息“没有可用的代码操作”。我尝试针对不同的错误运行它,例如以下错误:
到目前为止,我已经尝试了两个 LSP 服务器:pyright 和 pylsp,它们都给了我相同的“没有可用的代码操作”
我看到了一个类似的问题,但是 JavaScript在这里问,它建议安装一个插件,但这对我不起作用。
python - 为什么 Python 泛型类型别名对此类型检查函数无效?
我有一个 Python 函数用作运行时检查,以确保对象是元组中至少一个类的实例。它有效,我的类型检查器(pyright)正确地从参数推断返回类型:
但是,当我尝试将模式Union[Type[T], Tuple[T, ...]]
分解为类型别名时,它会破坏类型推断:
为什么我不能在这里使用类型别名?
python - Python 类型检查:Literal[False]、重载和 NoReturn
我有以下(键入)Python 函数:
Pyright 类型检查器抱怨:
我对此感到困惑——Pyright 显然无法确定check
如果条件为False
. 我怎样才能按摩它以使其发挥作用?
python - Pyright 为实现类型的自定义类提供“关键”建议。映射
在编写如下所示的简单 python 程序时,pyright
可以检测到我的地图中有键 1、2、3,以及后来使用[ ]
符号添加的 10、11。
我可以为自定义类型实现相同类型的推断,例如以下?
我知道这pyright
实际上不会运行我的代码,但我想知道上述是否可行,或者是否也为自定义类公开了与内置映射中相同的技巧。
python-typing - Python类型:存根优先于库源吗?
我将我的代码分成多个包,这些包可以通过 PyPI 安装。为了进行完整的类型检查,我想在本地和 CI 中使用 pyright / pylance。
为 python 库记录类型的推荐方法是什么?我目前在源代码中部分注释类型。我必须提供存根吗?我收到类似Stub file not found
vscode 的警告。此外,我不太确定如何将 pyright 指向 CI 中依赖项的代码/环境。
具体问题:
- 如果我希望用户能够访问打字,那么 python 库是否必须使用存根?
- 如果两者都有类型,存根是否优先于库的源代码?
python - `pyright` LSP 可以导航到不同的模块吗?
pyright
goto 定义命令应该跳转到不同的模块吗?
我像这样导入python类from a.b.c import Foo
。
当我的光标打开a = Foo()
并且我调用lua vim.lsp.buf.definition()
nvim 时,它只会跳转到文件的顶部,但不会按照定义进入另一个模块。在顶部导入上执行相同的命令无济于事。
我在我的 init.vim 中使用以下脚本来设置root_dir