explicit-frozen-dataclass

Requires dataclass mutability to be explicit.

Message

Dataclass mutability must be explicit. Add frozen=True for immutable value objects or frozen=False when instances are intentionally mutable.

Valid examples

@some_other_decorator
class Cls: pass
from dataclasses import dataclass
@dataclass(frozen=False)
class Cls: pass
Show more
import dataclasses
@dataclasses.dataclass(frozen=False)
class Cls: pass
import dataclasses as dc
@dc.dataclass(frozen=False)
class Cls: pass
from dataclasses import dataclass as dc
@dc(frozen=False)
class Cls: pass

Invalid examples

from dataclasses import dataclass
@some_unrelated_decorator
@dataclass  # not called as a function
@another_unrelated_decorator
class Cls: pass
Show more
from dataclasses import dataclass
@dataclass()  # called as a function, no kwargs
class Cls: pass
from dataclasses import dataclass
@dataclass(other_kwarg=False)
class Cls: pass
import dataclasses
@dataclasses.dataclass
class Cls: pass
import dataclasses
@dataclasses.dataclass()
class Cls: pass
import dataclasses
@dataclasses.dataclass(other_kwarg=False)
class Cls: pass
from dataclasses import dataclass as dc
@dc
class Cls: pass
from dataclasses import dataclass as dc
@dc()
class Cls: pass
from dataclasses import dataclass as dc
@dc(other_kwarg=False)
class Cls: pass
import dataclasses as dc
@dc.dataclass
class Cls: pass
import dataclasses as dc
@dc.dataclass()
class Cls: pass
import dataclasses as dc
@dc.dataclass(other_kwarg=False)
class Cls: pass