Applying the chex.dataclass wrapper to a class yields the following error:
import chex
@chex.dataclass(frozen=True)
class Class:
x: int
Class(4)
$ pyright --version
pyright 1.1.337
$ python3 --version
Python 3.11.6
$ python3 -c "import chex; print(chex.__version__)"
0.1.85
$ pyright test.py
/Users/user/Desktop/test.py
/Users/user/Desktop/test.py:7:1 - error: Expected no arguments to "Class" constructor (reportGeneralTypeIssues)
1 error, 0 warnings, 0 informations
microsoft/pyright#6536 (comment)
This is a bug in the chex library. The chex.dataclass decorator has no type annotations despite the fact that the package contains a "py.typed" marker file.
microsoft/pyright#6536 (comment)
I recommend looking at the stdlib dataclass class in the typeshed dataclass.pyi stub.
https://github.com/python/typeshed/blob/main/stdlib/dataclasses.pyi