On 11/24/2022 5:05 AM, Robin Becker wrote:
I haven't used dataclasses or typing very much, but while playing about I found this didn't give me an expected error

(.py312) robin@minikat:~/devel/reportlab
$ cat tmp/examples/tdc.py && python tmp/examples/tdc.py && mypy tmp/examples/tdc.py
##################################
from dataclasses import dataclass

@dataclass
class DC:
     a: str
     b: str

def main():
     dc = DC(DC, "B")
     print(dc)

if __name__ == "__main__":
     main()
##################################
DC(a=<class '__main__.DC'>, b='B')
Success: no issues found in 1 source file
(.py312) robin@minikat:~/devel/reportlab

DC.a is supposed to be a str and I expected mypy to indicate a type error

should typing work for this case?
--
Robin Becker


Sounds like a bug.  With Python 3.10:

C:\temp\python>py -V
Python 3.10.4

C:\temp\python>py tdc.py
DC(a=<class '__main__.DC'>, b='B')

C:\temp\python>mypy tdc.py
tdc.py:10: error: Argument 1 to "DC" has incompatible type "Type[DC]"; expected "str" [arg-type]
Found 1 error in 1 file (checked 1 source file)

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to