问题标签 [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.

0 投票
2 回答
6650 浏览

python - 我可以在转换为 dict 时省略的数据类中的可选参数吗?

我希望对某些字典执行静态类型检查( pylancein )。vscode“棘手”部分是我希望某些参数是可选的,并且根本不显示在字典中。我试过使用dataclassesTypedDict但到目前为止没有运气。

这可以实现dataclasses吗?我基本上只希望我的静态类型检查器 ( pylance/ pyright) 来检查我的字典,这就是我使用dataclasses. 我也尝试过,TypedDict但类型检查器的行为似乎不像我。他们总是要求我设置sub_orders

以下代码通过但pylance不满意没有sub_orders.

编辑

我已经添加了一个错误报告pylance因为这实际上可能是pylance/pyright

0 投票
0 回答
910 浏览

python-3.x - “冻结”未定义Pylance(reportUndefinedVariable)

我在 VScode 上使用 pylance 来检查我的 Python 代码。数据类的冻结参数有问题:

Pylance 抱怨这个错误:"frozen" is not definedPylance (reportUndefinedVariable)

当我导航到 时dataclasses.pyi,这是我看到的数据类:

所以看起来它没有选择正确的重载方法。反正要引导吗?

0 投票
1 回答
277 浏览

python - Pyright/mypy:“expr”没有属性“id”

代码:

版权/mypy:

错误:“expr”没有属性“id”

typeshed

0 投票
1 回答
205 浏览

python - 类函数装饰器的正确类型

键入函数装饰器的正确方法是什么print_before,以便包装函数具有正确的类型,但我不能在不起作用的类上使用装饰器?

谢谢你

0 投票
1 回答
276 浏览

python - 过滤器方法行为异常

我正在尝试将类型提示引入现有代码库,但是当我尝试键入查询时遇到了问题。

在我添加类型提示之前,动态过滤只是一个简单的问题:

但是,现在提示我收到此错误:

“无”类型的表达式不能分配给声明的类型“查询”

果然,filter似乎返回None

(方法)过滤器:(*标准:未知)-> 无

我导航到,看来该方法确实没有返回任何内容。

显然某处存在断开连接,因为分配Nonesub_query应该会导致提示警告的错误,但我需要执行分配以使过滤真正起作用:

这是我第一次涉足 Python,希望得到一些关于这里发生了什么的指导!

0 投票
1 回答
4549 浏览

neovim - 如何根据pyenv / virtualenv在neovim中为python语言服务器设置python解释器

我在 neovim (0.5) 中使用 pyright LSP。它可以工作,但似乎只选择标准 python 安装中可用的包。对于不在基本 python 中但在我的 pyenv 环境中的包,它不会自动完成。在 VSCode 中,这很容易通过选择解释器来完成。

如何在 Neovim 中设置 Pyright LSP 使用的虚拟环境或 pyenv 版本?

0 投票
1 回答
638 浏览

python - vim ALE “忽略” pyright

我在设置alepyright.

根据两个 repos 上的文档,一切都应该开箱即用,但对我来说似乎并非如此。我猜这是另一个导致问题的插件,但我不确定。

我遇到的问题是,当我这样做时:ALEInfo,我会看到像这样的“启用”和“忽略”短绒:

我尝试通过执行以下操作为 ALE 使用“显式”模式:

但是,我仍然会得到:

所以,我想知道为什么会pyright被忽略?

0 投票
1 回答
179 浏览

type-alias - Pyright 的递归类型别名

使用 Pyright 检查以下代码:

产生错误:

难道我做错了什么?
还是我误解了Pyright 中支持递归类型的公告

0 投票
1 回答
199 浏览

python - 我可以限制 Python 中子类的类型吗?

假设我想在集合和列表上定义包装类,以添加一些有用的方法,如下所示:

现在我可以打电话了:

但我也想拥有bloviate()自己的实用方法:

所以我也可以这样做:

由于 subclassListGizmo 一个列表,而 subclassSetGizmo 一个集合,所以这个设置在实践中实际上工作得很好。但是静态类型检查器(如 pyright)不知道,所以它们(正确地)在这里显示错误:

有什么方法可以向 Python / pyright 表明,基本上,“所有实例AbstractGizmo都保证在Union[Set, List]”?这种语法逃脱了我。

(注意,当然在这个简单的例子中,我可以只定义bloviate()每个子类来避免这个问题。实际上我有更多的方法和更多的包装子类,所以如果我不能将它们抽象为AbstractGizmo.)

0 投票
0 回答
59 浏览

apache-beam - 如何正确输入 beam.Map 与 pyright

我有像这样的梁代码:

运行pyright它抱怨返回线:

现在 AFAIU 似乎梁没有提供足够的类型提示。作为 beam 的用户,有没有办法解决这个问题,以便 pyright 接受代码(不忽略类型错误)。

编辑

我现在尝试:

好消息是,线路也temp =没有return任何错误。坏消息是它现在在 isinstance 线上抱怨:

不允许使用类型参数的 TypeVar 或泛型类型

编辑 2

现在我解决了

IMO 仍然不是一个解决方案,因为我需要同时指定PCollection[Foo]签名和演员表。