0

我希望 Dagster 接受 config.yaml 中的空参数并将它们视为具有无值。

当我启动 dagit 时,我可以看到参数为空。这是有道理的,因为我在 config.yaml 中将参数的值留空。 Dagit 将参数显示为 null

但是,当我执行管道时,出现以下错误: 错误表明它需要一个字符串类型

当我在可靠配置中指定 Noneable(str) 类型时,我不确定为什么它期望类 str 的值。有趣的是,当我在 dagit 中为example_parameter传递一个非空值时,管道执行得非常好。

下面是我用于实体的配置

@solid(
    description="Example solid",
    config={
        "example_parameter": Field(
                 Noneable(str),
                 is_required=False
        )
    }
)
def example_solid(context):
"""an example solid"""
   etc...

如何让 dagster 接受空值并将它们解析为 None?

4

1 回答 1

0

我试图重现,但管道使用您共享的代码片段和以下配置成功运行。您使用的是什么版本的 dagster/您可以尝试升级到最新版本(0.8.3)吗?

@solid(
    description="Example solid",
    config={
        "example_parameter": Field(
                 Noneable(str),
                 is_required=False
        )
    }
)
def example_solid(context):
    context.log.info(str(context.solid_config['example_parameter']))
    pass

@pipeline
def example_pipeline():
    example_solid()

带配置

solids:
  example_solid:
    config:
      example_parameter: null
于 2020-06-19T17:40:40.517 回答