-
-
Notifications
You must be signed in to change notification settings - Fork 315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pydantic compatibility issue #1677
Comments
Here is my real hacky workaround (no idea if it is right): import pandas as pd
import pandera as pa
from pandera.typing import DataFrame as _DataFrame, Series
from pydantic_core import core_schema, CoreSchema
from pydantic import GetCoreSchemaHandler, BaseModel
from typing import TypeVar, Generic, Any
T = TypeVar("T")
class DataFrame(_DataFrame, Generic[T]):
@classmethod
def __get_pydantic_core_schema__(
cls, source_type: Any, handler: GetCoreSchemaHandler
) -> CoreSchema:
schema = source_type().__orig_class__.__args__[0].to_schema()
type_map = {
"str": core_schema.str_schema(),
"int64": core_schema.int_schema(),
"float64": core_schema.float_schema(),
"bool": core_schema.bool_schema(),
"datetime64[ns]": core_schema.datetime_schema()
}
return core_schema.list_schema(
core_schema.typed_dict_schema(
{
i:core_schema.typed_dict_field(type_map[str(j.dtype)]) for i,j in schema.columns.items()
},
)
)
class SimpleSchema(pa.DataFrameModel):
str_col: Series[str]
class PydanticModel(BaseModel):
x: int
df: DataFrame[SimpleSchema] |
@riziles @cosmicBboy any update on this pydantic compatibility issue with json schema and a possible fix in pandera? I am running into this same error in pandera 0.22.1. Looks like the fix PR did not get merged. |
Looks like #1704 addresses this, but it still has CI test errors |
any update on this. This issue blocks generating docs page for fastapi. |
@ragrawal , you're welcome to take a swing at figuring out why some tests are failing. I don't have the bandwidth to work on this right now. |
I believe that the latest versions of Pydantic and Pandera are not fully compatible.
This relates to #1395 which was closed, but I think should still be open
This code throws an error:
error message:
I have tried various config options to get around this error to no avail.
The text was updated successfully, but these errors were encountered: