flyte icon indicating copy to clipboard operation
flyte copied to clipboard

[BUG] Boolean values within pydantic base model being casted to scalar value

Open jiwidi opened this issue 2 months ago • 1 comments

Describe the bug

Describe the bug

Trying to pass a pydantic model between task but its converting bool variables to int. Is there a way to make flyte work with pydantic models?

Expected behavior

For bool types to stay as bool types

Additional context to reproduce

I have this main.py file containing my workflow:

from flytekit import task, workflow
from pydantic import BaseModel

class Config(BaseModel):
    bool_var: bool

@task
def create_config() -> Config:
    return Config(bool_var=True)

@task
def check_bool(x: bool) -> bool:
    return x

@workflow
def workflow() -> bool:
    config = create_config()
    return check_bool(x=config['bool_var'])

When I run this with the command

pyflyte run issue.py workflow

I get the error:

TypeTransformerFailedError: Failed to convert inputs of task 'issue.check_bool':
  Error converting input 'x' at position 0:
  Cannot convert literal <FlyteLiteral(Literal) scalar { blob { metadata { type { format: "PythonPickle" } } uri:
"/var/folders/zr/72m6cw8x66b4g3q_s8dmy5c00000gn/T/flyte-bgc4g0zt/raw/d8a7be6139519884010995bc2aa7ddd9/cd165a40ea1442ca1acb6fbd4b3700f4" } }> to <class 'bool'>

The bool property in the Config object is converted to a scalar.

Screenshots

No response

Are you sure this issue hasn't been raised already?

  • [X] Yes

Have you read the Code of Conduct?

  • [X] Yes

jiwidi avatar May 22 '24 14:05 jiwidi