Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDILab开源决策智能平台
treevalue
提交
cc927e72
T
treevalue
项目概览
OpenDILab开源决策智能平台
/
treevalue
大约 1 年 前同步成功
通知
3
Star
213
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
treevalue
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cc927e72
编写于
12月 05, 2022
作者:
HansBug
😆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dev(feat): add pickle for constraints in TreeValue
上级
7a54f047
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
30 addition
and
3 deletion
+30
-3
test/tree/tree/base.py
test/tree/tree/base.py
+27
-0
treevalue/tree/tree/tree.pyx
treevalue/tree/tree/tree.pyx
+3
-3
未找到文件。
test/tree/tree/base.py
浏览文件 @
cc927e72
...
...
@@ -701,4 +701,31 @@ def get_treevalue_test(treevalue_class: Type[TreeValue]):
t3
=
t1
.
with_constraints
([
GreaterThanConstraint
(
10
),
int
],
clear
=
True
)
assert
t3
.
constraint
.
equiv
([
int
,
GreaterThanConstraint
(
10
)])
def
test_pickle_constraints
(
self
):
t1
=
get_demo_constraint_tree
()
assert
t1
.
a
==
21
assert
t1
.
b
.
x
==
'f-49'
assert
t1
.
b
.
y
==
pytest
.
approx
(
7.7
)
assert
t1
.
constraint
.
equiv
([
object
,
{
'a'
:
[
int
,
GreaterThanConstraint
(
3
)],
'b'
:
{
'x'
:
[
cleaf
(),
str
],
'y'
:
float
}
}
])
binary
=
pickle
.
dumps
(
t1
)
newt1
=
pickle
.
loads
(
binary
)
assert
newt1
.
a
==
21
assert
newt1
.
b
.
x
==
'f-49'
assert
newt1
.
b
.
y
==
pytest
.
approx
(
7.7
)
assert
newt1
.
constraint
.
equiv
([
object
,
{
'a'
:
[
int
,
GreaterThanConstraint
(
3
)],
'b'
:
{
'x'
:
[
cleaf
(),
str
],
'y'
:
float
}
}
])
assert
newt1
==
t1
assert
newt1
.
constraint
==
t1
.
constraint
return
_TestClass
treevalue/tree/tree/tree.pyx
浏览文件 @
cc927e72
...
...
@@ -792,7 +792,7 @@ cdef class TreeValue:
return
False
@
cython
.
binding
(
True
)
def
__setstate__
(
self
,
TreeStorag
e
state
):
def
__setstate__
(
self
,
tupl
e
state
):
"""
Deserialize operation, can support `pickle.loads`.
...
...
@@ -807,7 +807,7 @@ cdef class TreeValue:
>>> bin_ = pickle.dumps(t) # dump it to binary
>>> pickle.loads(bin_) # TreeValue({'a': 1, 'b': 2, 'x': {'c': 3}})
"""
self
.
_st
=
state
self
.
_st
,
self
.
constraint
=
state
@
cython
.
binding
(
True
)
def
__getstate__
(
self
):
...
...
@@ -824,7 +824,7 @@ cdef class TreeValue:
>>> bin_ = pickle.dumps(t) # dump it to binary
>>> pickle.loads(bin_) # TreeValue({'a': 1, 'b': 2, 'x': {'c': 3}})
"""
return
self
.
_st
return
self
.
_st
,
self
.
constraint
@
cython
.
binding
(
True
)
cpdef
treevalue_keys
keys
(
self
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录