如何避免链式when/then赋值中的Mypy不兼容类型警告?

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

我有以下代码

expr = pl.when(False).then(None)

for pattern, replacement in replacement_rules.items():
    expr = expr.when(pl.col("data").str.contains(pattern))
    expr = expr.then(pl.lit(replacement))
   
expr = expr.when(pl.col("ISO_codes").str.len_chars() > 0)
expr = expr.then(            
    pl.col("ISO_codes")
      .replace(iso_translation, default="Unknown ISO Code")
)

代码按预期工作,但 Mypy 对此不太满意:

我无法理解如何在不丢失所有“不兼容类型”警告的情况下消除警告,或重写代码以使其消失。

python mypy python-typing python-polars
1个回答
0
投票

显式类型提示

expr
Any
:

expr: Any = pl.when(False).then(None)

...或工会,无论哪个适合您:

expr: ChainedWhen | Then = pl.when(False).then(None)
© www.soinside.com 2019 - 2024. All rights reserved.