Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
537d3c58
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 2 年 前同步成功
通知
285
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看板
提交
537d3c58
编写于
12月 24, 2019
作者:
W
wuzewu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add runable() decorator
上级
e1a8d5c6
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
64 addition
and
74 deletion
+64
-74
paddlehub/commands/run.py
paddlehub/commands/run.py
+1
-1
paddlehub/module/manager.py
paddlehub/module/manager.py
+33
-66
paddlehub/module/module.py
paddlehub/module/module.py
+30
-7
未找到文件。
paddlehub/commands/run.py
浏览文件 @
537d3c58
...
@@ -241,7 +241,7 @@ class RunCommand(BaseCommand):
...
@@ -241,7 +241,7 @@ class RunCommand(BaseCommand):
return
False
return
False
if
self
.
module
.
code_version
==
"v2"
:
if
self
.
module
.
code_version
==
"v2"
:
results
=
self
.
module
(
argv
[
1
:])
results
=
self
.
module
.
run_func
(
argv
[
1
:])
else
:
else
:
self
.
module
.
check_processor
()
self
.
module
.
check_processor
()
self
.
add_module_config_arg
()
self
.
add_module_config_arg
()
...
...
paddlehub/module/manager.py
浏览文件 @
537d3c58
...
@@ -111,61 +111,6 @@ class LocalModuleManager(object):
...
@@ -111,61 +111,6 @@ class LocalModuleManager(object):
if
not
url
or
(
module_version
is
not
None
if
not
url
or
(
module_version
is
not
None
and
installed_module_version
!=
module_version
)
or
(
and
installed_module_version
!=
module_version
)
or
(
name
!=
module_name
):
name
!=
module_name
):
if
default_hub_server
.
_server_check
()
is
False
:
tips
=
"Request Hub-Server unsuccessfully, please check your network."
else
:
tips
=
"Can't find module %s"
%
module_name
if
module_version
:
tips
+=
" with version %s"
%
module_version
module_tag
=
module_name
if
not
module_version
else
'%s-%s'
%
(
module_name
,
module_version
)
return
False
,
tips
,
None
result
,
tips
,
module_zip_file
=
default_downloader
.
download_file
(
url
=
url
,
save_path
=
hub
.
CACHE_HOME
,
save_name
=
module_name
,
replace
=
True
,
print_progress
=
True
)
result
,
tips
,
module_dir
=
default_downloader
.
uncompress
(
file
=
module_zip_file
,
dirname
=
MODULE_HOME
,
delete_file
=
True
,
print_progress
=
True
)
if
module_package
:
with
tarfile
.
open
(
module_package
,
"r:gz"
)
as
tar
:
file_names
=
tar
.
getnames
()
size
=
len
(
file_names
)
-
1
module_dir
=
os
.
path
.
split
(
file_names
[
0
])[
0
]
module_dir
=
os
.
path
.
join
(
hub
.
CACHE_HOME
,
module_dir
)
# remove cache
if
os
.
path
.
exists
(
module_dir
):
shutil
.
rmtree
(
module_dir
)
for
index
,
file_name
in
enumerate
(
file_names
):
tar
.
extract
(
file_name
,
hub
.
CACHE_HOME
)
if
module_dir
:
if
not
module_name
:
module_name
=
hub
.
Module
(
directory
=
module_dir
).
name
self
.
all_modules
(
update
=
False
)
module_info
=
self
.
modules_dict
.
get
(
module_name
,
None
)
if
module_info
:
module_dir
=
self
.
modules_dict
[
module_name
][
0
]
module_tag
=
module_name
if
not
module_version
else
'%s-%s'
%
(
module_name
,
module_version
)
tips
=
"Module %s already installed in %s"
%
(
module_tag
,
module_dir
)
return
True
,
tips
,
self
.
modules_dict
[
module_name
]
search_result
=
hub
.
default_hub_server
.
get_module_url
(
module_name
,
version
=
module_version
,
extra
=
extra
)
name
=
search_result
.
get
(
'name'
,
None
)
url
=
search_result
.
get
(
'url'
,
None
)
md5_value
=
search_result
.
get
(
'md5'
,
None
)
installed_module_version
=
search_result
.
get
(
'version'
,
None
)
if
not
url
or
(
module_version
is
not
None
and
installed_module_version
!=
module_version
)
or
(
name
!=
module_name
):
if
default_hub_server
.
_server_check
()
is
False
:
if
default_hub_server
.
_server_check
()
is
False
:
tips
=
"Request Hub-Server unsuccessfully, please check your network."
tips
=
"Request Hub-Server unsuccessfully, please check your network."
return
False
,
tips
,
None
return
False
,
tips
,
None
...
@@ -180,7 +125,8 @@ class LocalModuleManager(object):
...
@@ -180,7 +125,8 @@ class LocalModuleManager(object):
placeholders
=
[
30
,
8
,
16
,
16
]
placeholders
=
[
30
,
8
,
16
,
16
]
tp
=
TablePrinter
(
tp
=
TablePrinter
(
titles
=
[
titles
=
[
"ResourceName"
,
"Version"
,
"PaddlePaddle"
,
"PaddleHub"
"ResourceName"
,
"Version"
,
"PaddlePaddle"
,
"PaddleHub"
],
],
placeholders
=
placeholders
)
placeholders
=
placeholders
)
module_versions_info
.
sort
(
module_versions_info
.
sort
(
...
@@ -200,7 +146,6 @@ class LocalModuleManager(object):
...
@@ -200,7 +146,6 @@ class LocalModuleManager(object):
"can not match module, please upgrade your "
\
"can not match module, please upgrade your "
\
"PaddlePaddle or PaddleHub according to the form "
\
"PaddlePaddle or PaddleHub according to the form "
\
"below."
+
tp
.
get_text
()
"below."
+
tp
.
get_text
()
else
:
else
:
tips
=
"Can't find module %s"
%
module_name
tips
=
"Can't find module %s"
%
module_name
if
module_version
:
if
module_version
:
...
@@ -221,10 +166,32 @@ class LocalModuleManager(object):
...
@@ -221,10 +166,32 @@ class LocalModuleManager(object):
delete_file
=
True
,
delete_file
=
True
,
print_progress
=
True
)
print_progress
=
True
)
if
module_package
:
with
tarfile
.
open
(
module_package
,
"r:gz"
)
as
tar
:
file_names
=
tar
.
getnames
()
size
=
len
(
file_names
)
-
1
module_dir
=
os
.
path
.
split
(
file_names
[
0
])[
0
]
module_dir
=
os
.
path
.
join
(
hub
.
CACHE_HOME
,
module_dir
)
# remove cache
if
os
.
path
.
exists
(
module_dir
):
shutil
.
rmtree
(
module_dir
)
for
index
,
file_name
in
enumerate
(
file_names
):
tar
.
extract
(
file_name
,
hub
.
CACHE_HOME
)
if
module_dir
:
if
not
module_name
:
module_name
=
hub
.
Module
(
directory
=
module_dir
).
name
self
.
all_modules
(
update
=
False
)
module_info
=
self
.
modules_dict
.
get
(
module_name
,
None
)
if
module_info
:
module_dir
=
self
.
modules_dict
[
module_name
][
0
]
module_tag
=
module_name
if
not
module_version
else
'%s-%s'
%
(
module_name
,
module_version
)
tips
=
"Module %s already installed in %s"
%
(
module_tag
,
module_dir
)
return
True
,
tips
,
self
.
modules_dict
[
module_name
]
if
module_dir
:
if
module_dir
:
with
open
(
os
.
path
.
join
(
MODULE_HOME
,
module_dir
,
"md5.txt"
),
"w"
)
as
fp
:
fp
.
write
(
md5_value
)
if
md5_value
:
if
md5_value
:
with
open
(
with
open
(
os
.
path
.
join
(
MODULE_HOME
,
module_dir
,
"md5.txt"
),
os
.
path
.
join
(
MODULE_HOME
,
module_dir
,
"md5.txt"
),
...
...
paddlehub/module/module.py
浏览文件 @
537d3c58
...
@@ -24,7 +24,7 @@ import functools
...
@@ -24,7 +24,7 @@ import functools
import
inspect
import
inspect
import
importlib
import
importlib
import
tarfile
import
tarfile
from
collections
import
defaultdict
import
six
from
shutil
import
copyfile
from
shutil
import
copyfile
import
paddle
import
paddle
...
@@ -103,6 +103,23 @@ def create_module(directory, name, author, email, module_type, summary,
...
@@ -103,6 +103,23 @@ def create_module(directory, name, author, email, module_type, summary,
os
.
remove
(
module_init_2
)
os
.
remove
(
module_init_2
)
_module_runable_func
=
{}
def
runable
(
func
):
if
six
.
PY3
:
mod
=
func
.
__qualname__
.
split
(
"."
)[:
-
1
]
mod
=
"."
.
join
(
mod
)
else
:
mod
=
func
.
im_class
.
__name__
_module_runable_func
[
mod
]
=
func
.
__name__
def
_wrapper
(
*
args
,
**
kwargs
):
return
func
(
*
args
,
**
kwargs
)
return
_wrapper
class
Module
(
object
):
class
Module
(
object
):
def
__new__
(
cls
,
name
=
None
,
directory
=
None
,
module_dir
=
None
,
version
=
None
):
def
__new__
(
cls
,
name
=
None
,
directory
=
None
,
module_dir
=
None
,
version
=
None
):
module
=
None
module
=
None
...
@@ -134,6 +151,12 @@ class Module(object):
...
@@ -134,6 +151,12 @@ class Module(object):
version
=
None
):
version
=
None
):
if
not
directory
:
if
not
directory
:
return
return
if
self
.
__class__
.
__name__
in
_module_runable_func
:
_run_func_name
=
_module_runable_func
[
self
.
__class__
.
__name__
]
self
.
_run_func
=
getattr
(
self
,
_run_func_name
)
else
:
self
.
_run_func
=
None
self
.
_code_version
=
"v2"
self
.
_code_version
=
"v2"
self
.
_directory
=
directory
self
.
_directory
=
directory
self
.
module_desc_path
=
os
.
path
.
join
(
self
.
directory
,
MODULE_DESC_PBNAME
)
self
.
module_desc_path
=
os
.
path
.
join
(
self
.
directory
,
MODULE_DESC_PBNAME
)
...
@@ -192,6 +215,10 @@ class Module(object):
...
@@ -192,6 +215,10 @@ class Module(object):
return
pymodule
.
HubModule
(
directory
=
directory
)
return
pymodule
.
HubModule
(
directory
=
directory
)
return
ModuleV1
(
directory
=
directory
)
return
ModuleV1
(
directory
=
directory
)
@
property
def
run_func
(
self
):
return
self
.
_run_func
@
property
@
property
def
desc
(
self
):
def
desc
(
self
):
return
self
.
_desc
return
self
.
_desc
...
@@ -224,17 +251,13 @@ class Module(object):
...
@@ -224,17 +251,13 @@ class Module(object):
def
name
(
self
):
def
name
(
self
):
return
self
.
_name
return
self
.
_name
@
property
def
name_prefix
(
self
):
return
self
.
_name_prefix
@
property
@
property
def
code_version
(
self
):
def
code_version
(
self
):
return
self
.
_code_version
return
self
.
_code_version
@
property
@
property
def
is_runable
(
self
):
def
is_runable
(
self
):
return
Fals
e
return
self
.
_run_func
!=
Non
e
def
_initialize
(
self
):
def
_initialize
(
self
):
pass
pass
...
@@ -631,7 +654,7 @@ class ModuleV1(Module):
...
@@ -631,7 +654,7 @@ class ModuleV1(Module):
return
feed_dict
,
fetch_dict
,
program
return
feed_dict
,
fetch_dict
,
program
def
get_name_prefix
(
self
):
def
get_name_prefix
(
self
):
return
self
.
name_prefix
return
self
.
_
name_prefix
def
get_var_name_with_prefix
(
self
,
var_name
):
def
get_var_name_with_prefix
(
self
,
var_name
):
return
self
.
get_name_prefix
()
+
var_name
return
self
.
get_name_prefix
()
+
var_name
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录