Open
Description
Hi, I just noticed a typing problem when using factory classmethods as converters. The following code works properly with mypy when calling the constructor directly, but causes problems when calling the equivalent factory method. Perhaps some type hints are too strict?
from __future__ import annotations
from attrs import define, field
@define
class LeContainer:
attr: int
@classmethod
def make(cls, a: int) -> LeContainer:
return LeContainer(a)
@define
class LeClass:
# x: LeContainer = field(converter=LeContainer) <-- This works
x: LeContainer = field(converter=LeContainer.make) # <-- This makes mypy complain
Error message:
error: Unsupported converter, only named functions, types and lambdas are currently supported [misc]
Metadata
Metadata
Assignees
Labels
No labels