Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
蜕变的菜鸟
glances
提交
4b712674
G
glances
项目概览
蜕变的菜鸟
/
glances
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
glances
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
4b712674
编写于
11月 13, 2014
作者:
D
desbma
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix tree to text function and make it non recursive
上级
7dd097b9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
33 deletion
+20
-33
glances/core/glances_processes.py
glances/core/glances_processes.py
+20
-33
未找到文件。
glances/core/glances_processes.py
浏览文件 @
4b712674
...
...
@@ -48,40 +48,27 @@ class ProcessTreeNode(object):
self
.
is_root
=
root
def
__str__
(
self
):
"""
Return the tree as a string for debugging.
Indentation is currently buggy (often off by a few chars).
"""
""" Return the tree as a string for debugging. """
lines
=
[]
if
self
.
is_root
:
lines
.
append
(
"#"
)
else
:
lines
.
append
(
"[%s]"
%
(
self
.
process
.
name
()))
indent_str
=
" "
*
len
(
lines
[
-
1
])
child_lines
=
[]
for
child
in
self
.
children
:
for
i
,
line
in
enumerate
(
str
(
child
).
splitlines
()):
if
i
==
0
:
if
child
is
self
.
children
[
0
]:
if
len
(
self
.
children
)
==
1
:
tree_char
=
"─"
else
:
tree_char
=
"┌"
elif
child
is
self
.
children
[
-
1
]:
tree_char
=
"└"
else
:
tree_char
=
"├"
child_lines
.
append
(
tree_char
+
"─ "
+
line
)
nodes_to_print
=
collections
.
deque
([
collections
.
deque
([(
"#"
,
self
)])])
while
nodes_to_print
:
indent_str
,
current_node
=
nodes_to_print
[
-
1
].
pop
()
if
not
nodes_to_print
[
-
1
]:
nodes_to_print
.
pop
()
if
current_node
.
is_root
:
lines
.
append
(
indent_str
)
else
:
lines
.
append
(
"%s[%s]"
%
(
indent_str
,
current_node
.
process
.
name
()))
indent_str
=
" "
*
(
len
(
lines
[
-
1
])
-
1
)
children_nodes_to_print
=
collections
.
deque
()
for
child
in
current_node
.
children
:
if
child
is
current_node
.
children
[
-
1
]:
tree_char
=
"└─"
else
:
if
self
.
is_root
:
child_lines
.
append
(
"│ "
+
indent_str
+
line
)
else
:
child_lines
.
append
(
indent_str
+
line
)
if
child_lines
:
lines
[
-
1
]
+=
child_lines
[
0
]
for
child_line
in
child_lines
[
1
:]:
lines
.
append
(
indent_str
+
child_line
)
tree_char
=
"├─"
children_nodes_to_print
.
appendleft
((
indent_str
+
tree_char
,
child
))
if
children_nodes_to_print
:
nodes_to_print
.
append
(
children_nodes_to_print
)
return
"
\n
"
.
join
(
lines
)
def
setSorting
(
self
,
key
,
reverse
):
...
...
@@ -107,7 +94,7 @@ class ProcessTreeNode(object):
return
total
def
__len__
(
self
):
"""Return the number of nodes in the tree
starting from this node
."""
"""Return the number of nodes in the tree."""
total
=
0
nodes_to_sum
=
collections
.
deque
([
self
])
while
nodes_to_sum
:
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录