Skip to content

Commit 4d05a48

Browse files
authored
[Doc] Check invok only diff mapping (#7575)
* 修改第二类api获取逻辑,同时增加api_difference与pytorch_api_mapping一致性校验功能 * 修改第二类api获取逻辑,同时增加api_difference与pytorch_api_mapping一致性校验功能
1 parent 195dd29 commit 4d05a48

File tree

4 files changed

+257
-50
lines changed

4 files changed

+257
-50
lines changed

docs/guides/model_convert/convert_from_pytorch/tools/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ unique_warnings.txt
2626
link_warnings.txt
2727
url_warnings.txt
2828
api_difference_error.txt
29+
diff_doc_warnings.txt

docs/guides/model_convert/convert_from_pytorch/tools/generate_pytorch_api_mapping.py

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,20 +167,47 @@ def generate_category2_table(
167167
rows = [] # 存储表格行数据的列表
168168
used_apis = set() # 用于记录已处理的API,避免重复
169169

170+
invok_diff_matchers = {
171+
"ChangeAPIMatcher",
172+
"NumelMatcher",
173+
"Is_InferenceMatcher",
174+
}
175+
176+
special_matchers = {
177+
"TensorFunc2PaddleFunc",
178+
"Func2Attribute",
179+
"Attribute2Func",
180+
}
181+
170182
# 处理api_mapping中Matcher为"UnchangeMatcher"且不在no_need_convert_list中的API
171183
for src_api, mapping_info in api_mapping_data.items():
172184
if src_api in whitelist_skip or src_api in no_need_convert_list:
173185
continue
174186
matcher = mapping_info.get("Matcher", "")
187+
valid = False
175188
# ChangeAPIMatcher、TensorFunc2PaddleFunc、Func2Attribute、Attribute2Func类别
176-
if matcher in [
177-
"ChangeAPIMatcher",
178-
"TensorFunc2PaddleFunc",
179-
"Func2Attribute",
180-
"Attribute2Func",
181-
"NumelMatcher",
182-
"Is_InferenceMatcher",
183-
]:
189+
if matcher in special_matchers:
190+
has_unsupport_args = "unsupport_args" in mapping_info
191+
has_kwargs_change = "kwargs_change" in mapping_info
192+
has_paddle_default_kwargs = "paddle_default_kwargs" in mapping_info
193+
if has_unsupport_args:
194+
print(
195+
f"[torch_more_args] {src_api} -> {mapping_info.get('paddle_api', 'N/A')}"
196+
)
197+
continue
198+
elif has_kwargs_change:
199+
print(
200+
f"[args_name_diff] {src_api} -> {mapping_info.get('paddle_api', 'N/A')}"
201+
)
202+
continue
203+
elif has_paddle_default_kwargs:
204+
print(
205+
f"[paddle_more_args_or_default_diff] {src_api} -> {mapping_info.get('paddle_api', 'N/A')}"
206+
)
207+
continue
208+
valid = True
209+
210+
if matcher in invok_diff_matchers or valid:
184211
# 在docs_mapping中查找当前src_api对应的信息
185212
docs_mapping_info = docs_mapping.get(src_api, {})
186213
src_url = docs_mapping_info.get("src_api_url")

0 commit comments

Comments
 (0)