MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / _check_compatible

Function _check_compatible

tools/check_api_compatible.py:35–68  ·  view source on GitHub ↗
(args_o, args_n, defaults_o, defaults_n)

Source from the content-addressed store, hash-verified

33
34
35def _check_compatible(args_o, args_n, defaults_o, defaults_n):
36 # 如果参数减少了,需要提醒关注
37 if len(args_o) > len(args_n):
38 logger.debug("args num less then previous: %s vs %s", args_o, args_n)
39 return False
40 # 参数改名了,也要提醒关注
41 for idx in range(min(len(args_o), len(args_n))):
42 if args_o[idx] != args_n[idx]:
43 logger.debug(
44 "args's %d parameter diff with previous: %s vs %s",
45 idx,
46 args_o,
47 args_n,
48 )
49 return False
50 # 新增加了参数,必须提供默认值。以及不能减少默认值数量
51 if (len(args_n) - len(defaults_n)) > (len(args_o) - len(defaults_o)):
52 logger.debug(
53 "defaults num less then previous: %s vs %s", defaults_o, defaults_n
54 )
55 return False
56 # 默认值必须相等
57 for idx in range(min(len(defaults_o), len(defaults_n))):
58 nidx_o = -1 - idx
59 nidx_n = -1 - idx - (len(args_n) - len(args_o))
60 if defaults_o[nidx_o] != defaults_n[nidx_n]:
61 logger.debug(
62 "defaults's %d value diff with previous: %s vs %s",
63 nidx_n,
64 defaults_o,
65 defaults_n,
66 )
67 return False
68 return True
69
70
71def check_compatible(old_api_spec, new_api_spec):

Callers 2

check_compatibleFunction · 0.85
check_compatible_strFunction · 0.85

Calls 3

rangeFunction · 0.85
minFunction · 0.50
debugMethod · 0.45

Tested by

no test coverage detected