Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
270e44ab
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 1 年 前同步成功
通知
280
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
270e44ab
编写于
4月 04, 2019
作者:
W
wuzewu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
search command add colorful output
上级
4b4b48ef
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
93 addition
and
119 deletion
+93
-119
paddlehub/commands/search.py
paddlehub/commands/search.py
+18
-9
paddlehub/common/hub_server.py
paddlehub/common/hub_server.py
+75
-110
未找到文件。
paddlehub/commands/search.py
浏览文件 @
270e44ab
...
...
@@ -22,6 +22,7 @@ from paddlehub.common.logger import logger
from
paddlehub.common
import
utils
from
paddlehub.common.hub_server
import
default_hub_server
from
paddlehub.commands.base_command
import
BaseCommand
,
ENTRY
from
paddlehub.commands.cml_utils
import
TablePrinter
class
SearchCommand
(
BaseCommand
):
...
...
@@ -43,15 +44,23 @@ class SearchCommand(BaseCommand):
self
.
help
()
return
False
module_name
=
argv
[
0
]
module_list
=
default_hub_server
.
search_module
(
module_name
)
text
=
"
\n
"
text
+=
color_bold_text
(
"red"
,
" %-20s
\t\t
%s
\n
"
%
(
"ModuleName"
,
"ModuleVersion"
))
text
+=
" %-20s
\t\t
%s
\n
"
%
(
"--"
,
"--"
)
for
module_name
,
module_version
in
module_list
:
text
+=
" %-20s
\t\t
%s
\n
"
%
(
module_name
,
module_version
)
print
(
text
)
resource_name
=
argv
[
0
]
resource_list
=
default_hub_server
.
search_resource
(
resource_name
)
tp
=
TablePrinter
(
titles
=
[
"ResourceName"
,
"Type"
,
"Version"
,
"Summary"
],
placeholders
=
[
25
,
10
,
10
,
35
])
for
resource_name
,
resource_type
,
resource_version
,
resource_summary
in
resource_list
:
if
resource_type
==
"Module"
:
colors
=
[
"yellow"
,
None
,
None
,
None
]
else
:
colors
=
[
"light_red"
,
None
,
None
,
None
]
tp
.
add_line
(
contents
=
[
resource_name
,
resource_version
,
resource_type
,
resource_summary
],
colors
=
colors
)
print
(
tp
.
get_text
())
return
True
...
...
paddlehub/common/hub_server.py
浏览文件 @
270e44ab
...
...
@@ -21,11 +21,10 @@ import time
from
paddlehub.common
import
utils
from
paddlehub.common.downloader
import
default_downloader
from
paddlehub.io.reader
import
csv
_reader
from
paddlehub.io.reader
import
yaml
_reader
import
paddlehub
as
hub
MODULE_LIST_FILE
=
"module_list_file.csv"
MODEL_LIST_FILE
=
"model_list_file.csv"
RESOURCE_LIST_FILE
=
"resource_list_file.yml"
CACHE_TIME
=
60
*
10
...
...
@@ -35,149 +34,115 @@ class HubServer:
server_url
=
"https://paddlehub.bj.bcebos.com/"
utils
.
check_url
(
server_url
)
self
.
server_url
=
server_url
self
.
_load_module_list_file_if_valid
()
self
.
_load_model_list_file_if_valid
()
self
.
_load_resource_list_file_if_valid
()
def
modul
e_list_file_path
(
self
):
return
os
.
path
.
join
(
hub
.
CACHE_HOME
,
MODUL
E_LIST_FILE
)
def
resourc
e_list_file_path
(
self
):
return
os
.
path
.
join
(
hub
.
CACHE_HOME
,
RESOURC
E_LIST_FILE
)
def
model_list_file_path
(
self
):
return
os
.
path
.
join
(
hub
.
CACHE_HOME
,
MODEL_LIST_FILE
)
def
_load_model_list_file_if_valid
(
self
):
self
.
model_list_file
=
{}
if
not
os
.
path
.
exists
(
self
.
model_list_file_path
()):
return
False
file_create_time
=
os
.
path
.
getctime
(
self
.
model_list_file_path
())
now_time
=
time
.
time
()
# if file is out of date, remove it
if
now_time
-
file_create_time
>=
CACHE_TIME
:
os
.
remove
(
self
.
model_list_file_path
())
return
False
self
.
model_list_file
=
csv_reader
.
read
(
self
.
model_list_file_path
())
# if file do not contain necessary data, remove it
if
"version"
not
in
self
.
model_list_file
or
"model_name"
not
in
self
.
model_list_file
:
self
.
model_list_file
=
{}
os
.
remove
(
self
.
model_list_file_path
())
def
_load_resource_list_file_if_valid
(
self
):
self
.
resource_list_file
=
{}
if
not
os
.
path
.
exists
(
self
.
resource_list_file_path
()):
return
False
return
True
def
_load_module_list_file_if_valid
(
self
):
self
.
module_list_file
=
{}
if
not
os
.
path
.
exists
(
self
.
module_list_file_path
()):
return
False
file_create_time
=
os
.
path
.
getctime
(
self
.
module_list_file_path
())
file_create_time
=
os
.
path
.
getctime
(
self
.
resource_list_file_path
())
now_time
=
time
.
time
()
# if file is out of date, remove it
if
now_time
-
file_create_time
>=
CACHE_TIME
:
os
.
remove
(
self
.
modul
e_list_file_path
())
os
.
remove
(
self
.
resourc
e_list_file_path
())
return
False
self
.
module_list_file
=
csv_reader
.
read
(
self
.
module_list_file_path
())
for
resource
in
yaml_reader
.
read
(
self
.
resource_list_file_path
())[
'resource_list'
]:
for
key
in
resource
:
if
key
not
in
self
.
resource_list_file
:
self
.
resource_list_file
[
key
]
=
[]
self
.
resource_list_file
[
key
].
append
(
resource
[
key
])
# if file do not contain necessary data, remove it
if
"version"
not
in
self
.
module_list_file
or
"module_name"
not
in
self
.
modul
e_list_file
:
self
.
modul
e_list_file
=
{}
os
.
remove
(
self
.
modul
e_list_file_path
())
if
"version"
not
in
self
.
resource_list_file
or
"name"
not
in
self
.
resourc
e_list_file
:
self
.
resourc
e_list_file
=
{}
os
.
remove
(
self
.
resourc
e_list_file_path
())
return
False
return
True
def
search_
module
(
self
,
module_key
,
update
=
False
):
if
update
or
not
self
.
modul
e_list_file
:
def
search_
resource
(
self
,
resource_key
,
resource_type
=
None
,
update
=
False
):
if
update
or
not
self
.
resourc
e_list_file
:
self
.
request
()
match_module_index_list
=
[
index
for
index
,
module
in
enumerate
(
self
.
module_list_file
[
'module_name'
])
if
module_key
in
module
]
return
[(
self
.
module_list_file
[
'module_name'
][
index
],
self
.
module_list_file
[
'version'
][
index
])
for
index
in
match_module_index_list
]
def
search_model
(
self
,
model_key
,
update
=
False
):
if
update
or
not
self
.
model_list_file
:
self
.
request_model
()
match_model_index_list
=
[
match_resource_index_list
=
[
index
for
index
,
model
in
enumerate
(
self
.
model_list_file
[
'model_name'
])
if
model_key
in
model
for
index
,
resource
in
enumerate
(
self
.
resource_list_file
[
'name'
])
if
resource_key
in
resource
and
(
resource_type
is
None
or
self
.
resource_list_file
[
'type'
][
index
]
==
resource_type
)
]
return
[(
self
.
model_list_file
[
'model_name'
][
index
],
self
.
model_list_file
[
'version'
][
index
])
for
index
in
match_model_index_list
]
return
[(
self
.
resource_list_file
[
'name'
][
index
],
self
.
resource_list_file
[
'type'
][
index
],
self
.
resource_list_file
[
'version'
][
index
],
self
.
resource_list_file
[
'summary'
][
index
])
for
index
in
match_resource_index_list
]
def
get_module_url
(
self
,
module_name
,
version
=
None
,
update
=
False
):
if
update
or
not
self
.
module_list_file
:
def
search_module
(
self
,
module_key
,
update
=
False
):
self
.
search_resource
(
resource_key
=
module_key
,
resource_type
=
"Module"
,
update
=
update
)
def
search_model
(
self
,
module_key
,
update
=
False
):
self
.
search_resource
(
resource_key
=
module_key
,
resource_type
=
"Model"
,
update
=
update
)
def
get_resource_url
(
self
,
resource_name
,
resource_type
=
None
,
version
=
None
,
update
=
False
):
if
update
or
not
self
.
resource_list_file
:
self
.
request
()
modul
e_index_list
=
[
resourc
e_index_list
=
[
index
for
index
,
module
in
enumerate
(
self
.
module_list_file
[
'module_name'
])
if
module
==
module_name
for
index
,
resource
in
enumerate
(
self
.
resource_list_file
[
'name'
])
if
resource
==
resource_name
and
(
resource_type
is
None
or
self
.
resource_list_file
[
'type'
][
index
]
==
resource_type
)
]
modul
e_version_list
=
[
self
.
modul
e_list_file
[
'version'
][
index
]
for
index
in
modul
e_index_list
resourc
e_version_list
=
[
self
.
resourc
e_list_file
[
'version'
][
index
]
for
index
in
resourc
e_index_list
]
#TODO(wuzewu): version sort method
module_version_list
=
sorted
(
modul
e_version_list
)
resource_version_list
=
sorted
(
resourc
e_version_list
)
if
not
version
:
if
not
modul
e_version_list
:
if
not
resourc
e_version_list
:
return
None
version
=
modul
e_version_list
[
-
1
]
version
=
resourc
e_version_list
[
-
1
]
for
index
in
modul
e_index_list
:
if
self
.
modul
e_list_file
[
'version'
][
index
]
==
version
:
return
self
.
modul
e_list_file
[
'url'
][
index
]
for
index
in
resourc
e_index_list
:
if
self
.
resourc
e_list_file
[
'version'
][
index
]
==
version
:
return
self
.
resourc
e_list_file
[
'url'
][
index
]
return
None
def
get_model_url
(
self
,
model_name
,
version
=
None
,
update
=
False
):
if
update
or
not
self
.
model_list_file
:
self
.
request_model
()
model_index_list
=
[
index
for
index
,
model
in
enumerate
(
self
.
model_list_file
[
'model_name'
])
if
model
==
model_name
]
model_version_list
=
[
self
.
model_list_file
[
'version'
][
index
]
for
index
in
model_index_list
]
#TODO(wuzewu): version sort method
model_version_list
=
sorted
(
model_version_list
)
if
not
version
:
if
not
model_version_list
:
return
None
version
=
model_version_list
[
-
1
]
for
index
in
model_index_list
:
if
self
.
model_list_file
[
'version'
][
index
]
==
version
:
return
self
.
model_list_file
[
'url'
][
index
]
return
None
def
get_module_url
(
self
,
module_name
,
version
=
None
,
update
=
False
):
return
self
.
get_resource_url
(
resource_name
=
module_name
,
resource_type
=
"Module"
,
version
=
version
,
update
=
update
)
def
get_model_url
(
self
,
module_name
,
version
=
None
,
update
=
False
):
return
self
.
get_resource_url
(
resource_name
=
module_name
,
resource_type
=
"Model"
,
version
=
version
,
update
=
update
)
def
request
(
self
):
file_url
=
self
.
server_url
+
MODULE_LIST_FILE
result
,
tips
,
self
.
module_list_file
=
default_downloader
.
download_file
(
file_url
,
save_path
=
hub
.
CACHE_HOME
)
if
not
result
:
return
False
return
self
.
_load_module_list_file_if_valid
()
def
request_model
(
self
):
file_url
=
self
.
server_url
+
MODEL_LIST_FILE
result
,
tips
,
self
.
model_list_file
=
default_downloader
.
download_file
(
file_url
=
self
.
server_url
+
RESOURCE_LIST_FILE
result
,
tips
,
self
.
resource_list_file
=
default_downloader
.
download_file
(
file_url
,
save_path
=
hub
.
CACHE_HOME
)
if
not
result
:
return
False
return
self
.
_load_
model
_list_file_if_valid
()
return
self
.
_load_
resource
_list_file_if_valid
()
default_hub_server
=
HubServer
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录