Skip to content

[Feature Request]: Support Type Inference on Python 3.12 #31047

@tvalentyn

Description

@tvalentyn

What would you like to happen?

Part of #29149

Beam type inference tests currently fail under Python 3.12:

Repro:

  1. Clone: Add Python 3.12 support #30828
  2. Install Beam + test dependencies
  3. Run: pytest apache_beam/typehints/

Several tests fail:

FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testAlwaysReturnsEarly - AssertionError: <class 'int'> != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testBuildTupleUnpack - AssertionError: Tuple[Union[<class 'int'>, <class 'str'>], ...] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testBuildTupleUnpackWithCall - AssertionError: Tuple[Union[<class 'float'>, <class 'int'[67 chars]r'>]] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testCallFunctionOnAny - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testCallNestedLambda - AssertionError: Tuple[63 chars]ferenceTest.testCallNestedLambda.<locals>.Foo'>, <class 'int'>] != Tuple[63 chars]ferenceTest.testCallNe...
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testCallNullaryMethod - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testDepthMethod - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testDictComprehension - AssertionError: Dict[Any, Any] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testDictComprehensionSimple - AssertionError: Dict[<class 'str'>, <class 'int'>] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testGenerator - AssertionError: Iterable[<class 'int'>] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testGeneratorComprehension - AssertionError
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testGetAttr - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testGetItemSlice - AssertionError: List[<class 'str'>] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testJumpOffsets - AssertionError: List[<class 'int'>] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testListComprehension - AssertionError: List[<class 'int'>] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testMethod - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testNoneReturn - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testRow - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testSet - AssertionError: Set[Union[]] != Any
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testSetAttr - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testSetDeleteGlobal - IndexError: tuple index out of range
FAILED apache_beam/typehints/trivial_inference_test.py::TrivialInferenceTest::testTupleListComprehension - AssertionError: List[<class 'int'>] != Any

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 YAML
  • 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

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions