-
Notifications
You must be signed in to change notification settings - Fork 64
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Resolved by
- [Stacked PR] Introduce
@tvm_ffi.dataclasses.c_class#477 - [Stacked PR] Introduce
@tvm_ffi.dataclasses.py_class#499
-
Init: generates
__init__(we implemented some of the logics in @c_class)- flag
init=Truein@dataclass - flag
init=Trueindataclasses.field - ✅ run
__post_init__if presents done - ✅ default=MISSING, default_factory=MISSING in
dataclasses.field - InitVar
- ClassVar
- ✅
kw_only=Falsein@dataclassfeat: add kw_only support for dataclass init generation #384 - ✅
kw_only=MISSINGindataclasses.fieldfeat: add kw_only support for dataclass init generation #384 - ✅ dataclasses.KW_ONLY feat: add kw_only support for dataclass init generation #384
- flag
-
Repr: generates
__repr__feat: add DFS-based ffi.ReprPrint for unified object repr #454- ✅ flag
repr=Truein@dataclass - ✅ flag
repr=Trueindataclasses.field
- ✅ flag
-
Copy: Generate copy interface feat: add
__copy__,__deepcopy__, and__replace__for FFI objects #438def __copy__(self)def __deepcopy__(self, memo)def __replace__(self, **changes)and dataclasses.replace
-
Equality
eq=Truein@dataclass: generates__eq__and__ne__
-
Comparison
order=Falsein@dataclass: generates__lt__,__le__,__gt__, and__ge__,compare=Trueindataclasses.field
-
Mutability and extra slots:
- ✅
slots: feat: Restrict__slots__=()for subclasses oftvm_ffi.Objectby default #364 - ❌
frozen=False: mutability - ❌
weakref_slot=False
- ✅
-
Hashing
unsafe_hash=False- hash=None
Misc
-
match_args=Truein@dataclass - metadata=None in
dataclasses.field - doc=None in
dataclasses.field - dataclasses.fields
- dataclasses.asdict
- dataclasses.astuple
- dataclasses.make_dataclass
- dataclasses.is_dataclass
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request