Python:未定义的变量:“snakemake”,忽略警告,或者理想情况下自动完成真正的

问题描述 投票:0回答:4

我正在使用 Snakemake,它相当令人愉快,但如果 VSCode 停止抱怨

Undefined variable: 'snakemake'
,我会很高兴。问题是 Snakemake 运行作业的方式是将这个全局变量注入到你的 python 作用域中,但 IDE 不知道它真的被定义了。我想知道是否有办法让它做两件事:

至少停止抱怨
  1. 自动完成——它应该根据
  2. Snakefile
  3. 中定义的规则(输入、输出、参数等)及其自己的API自动完成。
    
    
    

Snakemake 的 VSCode 扩展仅与 Snakefile 语法相关。 VSCode 在其他地方使用 pylint。

有什么想法吗?

python snakemake
4个回答
2
投票
另一个答案

稍微好一点就是: smk = snakemake # type: ignore mlp = load_python_obj(smk.input.mlp_model_filename)

这会将排除内联到该行(其中 
snakemake

未定义),但允许定义

smk
,以便当您引用
smk
时不会有任何抱怨。这允许仍然识别未定义变量的其他相关情况,而不是排除所有情况。
    


1
投票

在脚本文件顶部您可以添加

# pyright: reportUndefinedVariable=false

这将删除警告(以及所有其他未定义的变量警告)。如果您也有 flake8,则还必须在每行上使用 
# noqa: F821

    


0
投票
disable error messages

。单击它,它们将完全消失(但它不会修复错误)

    


0
投票
here

我在 pylint 设置中添加了以下参数:

"--dummy-variables-rgx='(_+[a-zA-Z0-9]*?$)|dummy|snakemake'"

为此,您可以使用 
ctr

+ , 访问您的设置,搜索“pylint:Args”并单击 Add Item

基本上,“(_+[a-zA-Z0-9]*?$)|dummy”是虚拟变量的默认正则表达式(被 pylint 忽略),并且通过向其中添加“snakemake”,该变量名称不会不再产生 pylint 警告。

© www.soinside.com 2019 - 2024. All rights reserved.