Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDILab开源决策智能平台
treevalue
提交
ed296667
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,发现更多精彩内容 >>
提交
ed296667
编写于
8月 08, 2021
作者:
HansBug
😆
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
optimize output configuration
上级
f7bff955
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
42 addition
and
5 deletion
+42
-5
treevalue/entry/cli/graph.py
treevalue/entry/cli/graph.py
+15
-5
treevalue/entry/cli/utils.py
treevalue/entry/cli/utils.py
+27
-0
未找到文件。
treevalue/entry/cli/graph.py
浏览文件 @
ed296667
...
...
@@ -4,6 +4,7 @@ import os
import
pickle
import
shutil
import
tempfile
import
warnings
from
functools
import
partial
from
itertools
import
chain
from
string
import
Template
...
...
@@ -14,7 +15,7 @@ import dill
from
graphviz
import
Digraph
from
.base
import
CONTEXT_SETTINGS
from
.utils
import
_multiple_validator
,
_EXPECTED_TREE_ERRORS
from
.utils
import
_multiple_validator
,
_EXPECTED_TREE_ERRORS
,
_click_pending
from
...tree
import
TreeValue
,
load
,
graphics
from
...utils
import
dynamic_call
,
post_process
...
...
@@ -139,13 +140,16 @@ def _save_image(g: Digraph, path: str, fmt: str):
_IMAGE_FMTS
=
{
'svg'
,
'png'
}
def
_save_graph
(
g
:
Digraph
,
path
:
str
,
fmt
:
Optional
[
str
]
=
None
):
path
=
os
.
path
.
abspath
(
path
)
def
_save_graph_fmt_infer
(
path
:
str
,
fmt
:
Optional
[
str
]
=
None
):
if
not
fmt
:
_basename
,
_extname
=
os
.
path
.
splitext
(
path
)
if
_extname
:
fmt
=
_extname
[
1
:]
return
fmt
if
fmt
else
None
def
_save_graph
(
g
:
Digraph
,
path
:
str
,
fmt
:
str
):
path
=
os
.
path
.
abspath
(
path
)
_saver
=
partial
(
_save_image
,
fmt
=
fmt
)
if
fmt
in
_IMAGE_FMTS
else
_save_source_code
return
_saver
(
g
,
path
)
...
...
@@ -195,8 +199,14 @@ def _graph_cli(cli: click.Group):
)
if
print_to_stdout
:
if
outputs
:
warnings
.
warn
(
RuntimeWarning
(
'The output destinations in -o options '
'will be ignored due to the enablement of -O option.'
))
click
.
echo
(
g
.
source
)
for
output
in
outputs
:
_save_graph
(
g
,
output
,
fmt
)
else
:
for
output
in
outputs
:
_fmt
=
_save_graph_fmt_infer
(
output
,
fmt
)
with
_click_pending
(
f
'Exporting graph to
{
repr
(
output
)
}
as format
{
repr
(
_fmt
)
}
... '
):
_save_graph
(
g
,
output
,
_fmt
)
return
cli
treevalue/entry/cli/utils.py
浏览文件 @
ed296667
from
contextlib
import
contextmanager
from
functools
import
wraps
from
typing
import
Callable
,
Union
import
click
...
...
@@ -47,3 +49,28 @@ def _build_cli(base_cli, *wrappers):
for
wrapper
in
wrappers
:
_cli
=
wrapper
(
_cli
or
base_cli
)
return
_cli
@
contextmanager
def
_click_pending
(
text
:
str
,
ok
:
Union
[
Callable
,
str
]
=
'OK'
,
error
:
Union
[
Callable
,
str
]
=
'ERROR'
):
if
not
hasattr
(
ok
,
'__call__'
):
_okay_text
=
str
(
ok
)
ok
=
lambda
:
_okay_text
ok
=
dynamic_call
(
ok
)
if
not
hasattr
(
error
,
'__call__'
):
_error_text
=
str
(
error
)
error
=
lambda
:
_error_text
error
=
dynamic_call
(
error
)
click
.
echo
(
text
,
nl
=
False
)
try
:
yield
except
BaseException
as
err
:
click
.
secho
(
click
.
style
(
error
(
err
),
fg
=
'red'
),
nl
=
False
)
raise
err
else
:
click
.
secho
(
click
.
style
(
ok
(),
fg
=
'green'
),
nl
=
False
)
finally
:
click
.
echo
(
'.'
,
nl
=
True
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录