Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
50f885fd
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
50f885fd
编写于
6月 21, 2021
作者:
Z
zhiboniu
提交者:
GitHub
6月 21, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add new api ci check file (#33609)
上级
1681a2dd
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
42 addition
and
132 deletion
+42
-132
python/paddle/__init__.py
python/paddle/__init__.py
+1
-1
python/paddle/vision/datasets/__init__.py
python/paddle/vision/datasets/__init__.py
+1
-1
tools/print_signatures.py
tools/print_signatures.py
+40
-130
未找到文件。
python/paddle/__init__.py
浏览文件 @
50f885fd
...
...
@@ -501,7 +501,7 @@ __all__ = [ # noqa
'log10'
,
'concat'
,
'check_shape'
,
'trunc'
'trunc'
,
'digamma'
,
'standard_normal'
]
python/paddle/vision/datasets/__init__.py
浏览文件 @
50f885fd
...
...
@@ -22,7 +22,7 @@ from .cifar import Cifar100 # noqa: F401
from
.voc2012
import
VOC2012
# noqa: F401
__all__
=
[
#noqa
'DatasetFolder'
'DatasetFolder'
,
'ImageFolder'
,
'MNIST'
,
'FashionMNIST'
,
...
...
tools/print_signatures.py
浏览文件 @
50f885fd
...
...
@@ -62,96 +62,6 @@ def md5(doc):
return
md5sum
def
get_functools_partial_spec
(
func
):
func_str
=
func
.
func
.
__name__
args
=
func
.
args
keywords
=
func
.
keywords
return
'{}(args={}, keywords={})'
.
format
(
func_str
,
args
,
keywords
)
def
format_spec
(
spec
):
args
=
spec
.
args
varargs
=
spec
.
varargs
keywords
=
spec
.
keywords
defaults
=
spec
.
defaults
if
defaults
is
not
None
:
defaults
=
list
(
defaults
)
for
idx
,
item
in
enumerate
(
defaults
):
if
not
isinstance
(
item
,
functools
.
partial
):
continue
defaults
[
idx
]
=
get_functools_partial_spec
(
item
)
defaults
=
tuple
(
defaults
)
return
'ArgSpec(args={}, varargs={}, keywords={}, defaults={})'
.
format
(
args
,
varargs
,
keywords
,
defaults
)
def
queue_dict
(
member
,
cur_name
):
if
cur_name
!=
'paddle'
:
try
:
eval
(
cur_name
)
except
(
AttributeError
,
NameError
,
SyntaxError
)
as
e
:
print
(
"Error({}) occurred when `eval({})`, discard it."
.
format
(
str
(
e
),
cur_name
),
file
=
sys
.
stderr
)
return
if
(
inspect
.
isclass
(
member
)
or
inspect
.
isfunction
(
member
)
or
inspect
.
ismethod
(
member
))
and
hasattr
(
member
,
'__module__'
)
and
hasattr
(
member
,
'__name__'
):
args
=
member
.
__module__
+
"."
+
member
.
__name__
try
:
eval
(
args
)
except
(
AttributeError
,
NameError
,
SyntaxError
)
as
e
:
print
(
"Error({}) occurred when `eval({})`, discard it for {}."
.
format
(
str
(
e
),
args
,
cur_name
),
file
=
sys
.
stderr
)
return
else
:
try
:
args
=
inspect
.
getargspec
(
member
)
has_type_error
=
False
except
TypeError
:
# special for PyBind method
args
=
" "
.
join
([
line
.
strip
()
for
line
in
pydoc
.
render_doc
(
member
).
split
(
'
\n
'
)
if
"->"
in
line
])
has_type_error
=
True
if
not
has_type_error
:
args
=
format_spec
(
args
)
doc_md5
=
md5
(
member
.
__doc__
)
member_dict
[
cur_name
]
=
"({}, ('document', '{}'))"
.
format
(
args
,
doc_md5
)
def
visit_member
(
parent_name
,
member
,
member_name
=
None
):
if
member_name
:
cur_name
=
"."
.
join
([
parent_name
,
member_name
])
else
:
cur_name
=
"."
.
join
([
parent_name
,
member
.
__name__
])
if
inspect
.
isclass
(
member
):
queue_dict
(
member
,
cur_name
)
for
name
,
value
in
inspect
.
getmembers
(
member
):
if
hasattr
(
value
,
'__name__'
)
and
not
name
.
startswith
(
"_"
):
visit_member
(
cur_name
,
value
)
elif
inspect
.
ismethoddescriptor
(
member
):
return
elif
inspect
.
isbuiltin
(
member
):
return
elif
callable
(
member
):
queue_dict
(
member
,
cur_name
)
elif
inspect
.
isgetsetdescriptor
(
member
):
return
else
:
raise
RuntimeError
(
"Unsupported generate signature of member, type {0}"
.
format
(
str
(
type
(
member
))))
def
is_primitive
(
instance
):
int_types
=
(
int
,
)
pritimitive_types
=
int_types
+
(
float
,
str
)
...
...
@@ -167,6 +77,13 @@ def is_primitive(instance):
return
False
ErrorSet
=
set
()
IdSet
=
set
()
skiplist
=
[
'paddle.vision.datasets.DatasetFolderImageFolder'
,
'paddle.truncdigamma'
]
def
visit_all_module
(
mod
):
mod_name
=
mod
.
__name__
if
mod_name
!=
'paddle'
and
not
mod_name
.
startswith
(
'paddle.'
):
...
...
@@ -177,37 +94,36 @@ def visit_all_module(mod):
if
mod
in
visited_modules
:
return
visited_modules
.
add
(
mod
)
member_names
=
dir
(
mod
)
if
hasattr
(
mod
,
"__all__"
):
member_names
=
(
name
for
name
in
mod
.
__all__
if
not
name
.
startswith
(
"_"
))
elif
mod_name
==
'paddle'
:
member_names
=
dir
(
mod
)
else
:
return
member_names
+=
mod
.
__all__
for
member_name
in
member_names
:
instance
=
getattr
(
mod
,
member_name
,
None
)
if
instance
is
None
:
if
member_name
.
startswith
(
'__'
):
continue
if
is_primitive
(
instance
):
continue
if
not
hasattr
(
instance
,
"__name__"
):
continue
if
inspect
.
ismodule
(
instance
):
visit_all_module
(
instance
)
else
:
if
member_name
!=
instance
.
__name__
:
print
(
"Found alias API, alias name is: {}, original name is: {}"
.
format
(
member_name
,
instance
.
__name__
),
file
=
sys
.
stderr
)
visit_member
(
mod
.
__name__
,
instance
,
member_name
)
cur_name
=
mod_name
+
'.'
+
member_name
try
:
instance
=
getattr
(
mod
,
member_name
)
if
inspect
.
ismodule
(
instance
):
visit_all_module
(
instance
)
else
:
visit_member
(
mod
.
__name__
,
instance
)
doc_md5
=
md5
(
instance
.
__doc__
)
instance_id
=
id
(
instance
)
if
instance_id
in
IdSet
:
continue
IdSet
.
add
(
instance_id
)
member_dict
[
cur_name
]
=
"({}, ('document', '{}'))"
.
format
(
cur_name
,
doc_md5
)
if
hasattr
(
instance
,
'__name__'
)
and
member_name
!=
instance
.
__name__
:
print
(
"Found alias API, alias name is: {}, original name is: {}"
.
format
(
member_name
,
instance
.
__name__
),
file
=
sys
.
stderr
)
except
:
if
not
cur_name
in
ErrorSet
and
not
cur_name
in
skiplist
:
ErrorSet
.
add
(
cur_name
)
# all from gen_doc.py
...
...
@@ -306,17 +222,7 @@ def process_module(m, attr="__all__"):
def
get_all_api_from_modulelist
():
modulelist
=
[
paddle
,
paddle
.
amp
,
paddle
.
nn
,
paddle
.
nn
.
functional
,
paddle
.
nn
.
initializer
,
paddle
.
nn
.
utils
,
paddle
.
static
,
paddle
.
static
.
nn
,
paddle
.
io
,
paddle
.
jit
,
paddle
.
metric
,
paddle
.
distribution
,
paddle
.
optimizer
,
paddle
.
optimizer
.
lr
,
paddle
.
regularizer
,
paddle
.
text
,
paddle
.
utils
,
paddle
.
utils
.
download
,
paddle
.
utils
.
profiler
,
paddle
.
utils
.
cpp_extension
,
paddle
.
sysconfig
,
paddle
.
vision
,
paddle
.
distributed
,
paddle
.
distributed
.
fleet
,
paddle
.
distributed
.
fleet
.
utils
,
paddle
.
distributed
.
parallel
,
paddle
.
distributed
.
utils
,
paddle
.
callbacks
,
paddle
.
hub
,
paddle
.
autograd
]
modulelist
=
[
paddle
]
for
m
in
modulelist
:
visit_all_module
(
m
)
...
...
@@ -324,10 +230,14 @@ def get_all_api_from_modulelist():
if
__name__
==
'__main__'
:
# modules = sys.argv[1].split(",")
# for m in modules:
# visit_all_module(importlib.import_module(m))
get_all_api_from_modulelist
()
for
name
in
member_dict
:
print
(
name
,
member_dict
[
name
])
if
len
(
ErrorSet
)
==
0
:
sys
.
exit
(
0
)
for
erroritem
in
ErrorSet
:
print
(
"Error, new function {} is unreachable"
.
format
(
erroritem
),
file
=
sys
.
stderr
)
sys
.
exit
(
1
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录