Skip to content

Frozen Pydantic BaseModel's and frozen dataclasses don't work together #1886

Open
@DanielNoord

Description

@DanielNoord

Steps to reproduce

from dataclasses import dataclass

from pydantic import BaseModel


class FrozenPydanticModel(BaseModel):
    class Config:
        frozen = True


@dataclass(frozen=True)
class FrozenDataclass:
    pass


class CombinedDataclassModel(FrozenPydanticModel, FrozenDataclass):
    attr: int


CombinedDataclassModel(attr=1)

This raises an unexpected keyword argument in pylint for attr. This is because astroid doesn't build the __init__ of CombinedDataclassModel correctly.

Expected behavior

Set attr as an expected argument in the __init__ of CombinedDataclassModel. This is because the frozen BaseModel allows this pattern.

Version: 2.12.x

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