Skip to content

[Feature Request]: Add library stubs or py.typed marker #27906

@davidcavazos

Description

@davidcavazos

What would you like to happen?

Support running mypy on my own Beam pipeline code by adding type stubs.

Simply importing apache_beam fails with mypy.

#-- main.py
import apache_beam as beam

Install and run mypy.

pip install mypy apache-beam

mypy main.py

Gives the following output:

main.py:1: error: Skipping analyzing "apache_beam": module is installed, but missing library stubs or py.typed marker  [import]
main.py:1: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 1 error in 1 file (checked 1 source file)

They can be automatically generated with stubgen, it would be nice to make that part of the release process on each new version. Since Beam already has type hints, I don't think there is too much tweaking needed.

I did try to generate them, but it failed trying to parse some complex type hint.

Issue Priority

Priority: 2 (default / most feature requests should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions