Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDILab开源决策智能平台
treevalue
提交
2252ba3b
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,发现更多精彩内容 >>
提交
2252ba3b
编写于
7月 06, 2022
作者:
HansBug
😆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dev(hansbug): add popitem in TreeStorage
上级
17cdc03f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
34 addition
and
0 deletion
+34
-0
test/tree/common/test_storage.py
test/tree/common/test_storage.py
+27
-0
treevalue/tree/common/storage.pxd
treevalue/tree/common/storage.pxd
+1
-0
treevalue/tree/common/storage.pyx
treevalue/tree/common/storage.pyx
+6
-0
未找到文件。
test/tree/common/test_storage.py
浏览文件 @
2252ba3b
...
...
@@ -208,6 +208,33 @@ class TestTreeStorage:
assert
t1
.
pop_or_default
(
'fff'
,
delayed_partial
(
lambda
:
2345
))
==
2345
assert
not
t1
.
contains
(
'fff'
)
def
test_popitem
(
self
):
t
=
create_storage
({})
with
pytest
.
raises
(
KeyError
):
t
.
popitem
()
t1
=
create_storage
({
'a'
:
1
,
'b'
:
2
,
'c'
:
{
'x'
:
2
}})
assert
sorted
([
t1
.
popitem
()
for
_
in
range
(
t1
.
size
())])
==
[
(
'a'
,
1
),
(
'b'
,
2
),
(
'c'
,
create_storage
({
'x'
:
2
}))
]
t2
=
create_storage
({
'a'
:
delayed_partial
(
lambda
:
1
),
'b'
:
delayed_partial
(
lambda
:
2
),
})
assert
sorted
([
t2
.
popitem
()
for
_
in
range
(
t2
.
size
())])
==
[
(
'a'
,
1
),
(
'b'
,
2
)
]
d1
=
delayed_partial
(
lambda
:
1
)
d2
=
delayed_partial
(
lambda
x
:
x
+
1
,
d1
)
t3
=
create_storage
({
'a'
:
d1
,
'b'
:
d2
,
'c'
:
d1
,
})
assert
sorted
([
t3
.
popitem
()
for
_
in
range
(
t3
.
size
())])
==
[
(
'a'
,
1
),
(
'b'
,
2
),
(
'c'
,
1
)
]
def
test_set
(
self
):
t
=
create_storage
({})
t
.
set
(
'a'
,
1
)
...
...
treevalue/tree/common/storage.pxd
浏览文件 @
2252ba3b
...
...
@@ -14,6 +14,7 @@ cdef class TreeStorage:
cpdef
public
object
get_or_default
(
self
,
str
key
,
object
default
)
cpdef
public
object
pop
(
self
,
str
key
)
cpdef
public
object
pop_or_default
(
self
,
str
key
,
object
default
)
cpdef
public
tuple
popitem
(
self
)
cpdef
public
void
del_
(
self
,
str
key
)
except
*
cpdef
public
boolean
contains
(
self
,
str
key
)
cpdef
public
uint
size
(
self
)
...
...
treevalue/tree/common/storage.pyx
浏览文件 @
2252ba3b
...
...
@@ -55,6 +55,12 @@ cdef class TreeStorage:
del
self
.
map
[
key
]
return
res
cpdef
public
tuple
popitem
(
self
):
cdef
str
k
cdef
object
v
k
,
v
=
self
.
map
.
popitem
()
return
k
,
undelay
(
v
)
cpdef
public
void
del_
(
self
,
str
key
)
except
*
:
try
:
del
self
.
map
[
key
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录