class KindMixin:
@classmethod
def field(
cls,
default=dataclasses.MISSING,
*,
node: bool,
default_factory=dataclasses.MISSING,
init: bool = True,
repr: bool = True,
hash: tp.Optional[bool] = None,
compare: bool = True,
opaque: tp.Union[bool, utils.OpaquePredicate] = False,
) -> tp.Any:
return utils.field(
default=default,
node=node,
kind=cls,
default_factory=default_factory,
init=init,
repr=repr,
hash=hash,
compare=compare,
opaque=opaque,
)
@classmethod
def node(
cls,
default=dataclasses.MISSING,
*,
default_factory=dataclasses.MISSING,
init: bool = True,
repr: bool = True,
hash: tp.Optional[bool] = None,
compare: bool = True,
opaque: tp.Union[bool, utils.OpaquePredicate] = False,
) -> tp.Any:
return utils.node(
default=default,
kind=cls,
default_factory=default_factory,
init=init,
repr=repr,
hash=hash,
compare=compare,
opaque=opaque,
)
@classmethod
def static(
cls,
default=dataclasses.MISSING,
default_factory=dataclasses.MISSING,
init: bool = True,
repr: bool = True,
hash: tp.Optional[bool] = None,
compare: bool = True,
opaque: tp.Union[bool, utils.OpaquePredicate] = False,
) -> tp.Any:
return cls.field(
default=default,
node=False,
default_factory=default_factory,
init=init,
repr=repr,
hash=hash,
compare=compare,
opaque=opaque,
)