首页 > 解决方案 > Apache Beam ValueProvider 的 Python 类型提示

问题描述

如何对传递给 PTransform 和 DoFn 类的 ValueProvider 值类型使用类型提示?

class MyPTransform(beam.PTransform):
  def __init__(self, my_value_provider: ValueProvider):
     # How do I enforce my_value_provider has value_type of str
     self.my_value_provider = my_value_provider

我可以将其设为RuntimeValueProviderorStaticValueProvider并明确测试:

 type(my_value_provider.type) == str

其他人如何做到这一点?我在这里什么都没看到:https ://beam.apache.org/documentation/sdks/python-type-safety

标签: apache-beamapache-beam-io

解决方案


我认为没有办法通过 python 的类型检查来强制执行此操作,尽管您始终可以添加自己的运行时类型检查以潜在地改善错误消息。

或者,您可以通过使用Flex 模板来完全避免使用 ValueProvider 。


推荐阅读