mirror of
https://github.com/wassname/ray.git
synced 2026-06-29 22:51:19 +08:00
Add regression tests for dataclass serialization (#3984)
This commit is contained in:
committed by
Robert Nishihara
parent
f31a79f3f7
commit
b3f72e8a75
@@ -187,6 +187,31 @@ CUSTOM_OBJECTS = [
|
||||
NamedTupleExample(1, 1.0, "hi", np.zeros([3, 5]), [1, 2, 3])
|
||||
]
|
||||
|
||||
# Test dataclasses in Python 3.7.
|
||||
if sys.version_info >= (3, 7):
|
||||
from dataclasses import make_dataclass
|
||||
|
||||
DataClass0 = make_dataclass("DataClass0", [("number", int)])
|
||||
|
||||
CUSTOM_OBJECTS.append(DataClass0(number=3))
|
||||
|
||||
class CustomClass(object):
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
|
||||
DataClass1 = make_dataclass("DataClass1", [("custom", CustomClass)])
|
||||
|
||||
class DataClass2(DataClass1):
|
||||
@classmethod
|
||||
def from_custom(cls, data):
|
||||
custom = CustomClass(data)
|
||||
return cls(custom)
|
||||
|
||||
def __reduce__(self):
|
||||
return (self.from_custom, (self.custom.value, ))
|
||||
|
||||
CUSTOM_OBJECTS.append(DataClass2(custom=CustomClass(43)))
|
||||
|
||||
BASE_OBJECTS = PRIMITIVE_OBJECTS + COMPLEX_OBJECTS + CUSTOM_OBJECTS
|
||||
|
||||
LIST_OBJECTS = [[obj] for obj in BASE_OBJECTS]
|
||||
|
||||
Reference in New Issue
Block a user