1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3# Copyright (c) 2023 Huawei Device Co., Ltd. 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15 16import enum 17 18operation_mark_dict = { 19 'ADD_FILE': '新增文件', 20 'REDUCE_FILE': '删除文件', 21 'ADD_API': '新增API', 22 'REDUCE_API': '删除API', 23 'ADD_DOC': '增加doc', 24 'REDUCE_DOC': '删除doc', 25 'ADD_DOC_TAG': '增加注释标签', 26 'REDUCE_DOC_TAG': '删除注释标签', 27 'FUNCTION_PARAM_POS_CHANGE': '函数参数位置改变', 28 29 'DEFINE_NAME_CHANGE': '修改宏名', 30 'DEFINE_TEXT_CHANGE': '修改宏文本', 31 32 'FUNCTION_NAME_CHANGE': '修改函数名', 33 'FUNCTION_RETURN_CHANGE': '修改函数返回值', 34 'FUNCTION_PARAM_NAME_CHANGE': '修改函数参数名', 35 'FUNCTION_PARAM_TYPE_CHANGE': '修改函数参数类型', 36 'FUNCTION_PARAM_ADD': '增加函数参数', 37 'FUNCTION_PARAM_REDUCE': '删除函数参数', 38 39 'STRUCT_NAME_CHANGE': '修改结构体名', 40 'STRUCT_MEMBER_NAME_CHANGE': '修改结构体成员名', 41 'STRUCT_MEMBER_TYPE_CHANGE': '修改结构体成员类型', 42 'STRUCT_MEMBER_ADD': '增加结构体成员', 43 'STRUCT_MEMBER_REDUCE': '删除结构体成员', 44 45 'UNION_NAME_CHANGE': '修改联合体名', 46 'UNION_MEMBER_NAME_CHANGE': '修改联合体成员名', 47 'UNION_MEMBER_TYPE_CHANGE': '修改联合体成员类型', 48 'UNION_MEMBER_ADD': '增加联合体成员', 49 'UNION_MEMBER_REDUCE': '删除联合体成员', 50 51 'ENUM_NAME_CHANGE': '修改枚举名', 52 'ENUM_MEMBER_NAME_CHANGE': '修改枚举成员名', 53 'ENUM_MEMBER_VALUE_CHANGE': '修改枚举值', 54 'ENUM_MEMBER_ADD': '增加枚举成员', 55 'ENUM_MEMBER_REDUCE': '删除枚举成员', 56 57 'VARIABLE_NAME_CHANGE': '修改变量名', 58 'VARIABLE_TYPE_CHANGE': '修改变量类型', 59 'VARIABLE_VALUE_CHANGE': '修改变量值', 60 'VARIABLE_CHANGE_TO_CONSTANT': '修改变量为常量', 61 62 'CONSTANT_NAME_CHANGE': '修改常量名', 63 'CONSTANT_TYPE_CHANGE': '修改常量类型', 64 'CONSTANT_VALUE_CHANGE': '修改常量值', 65 'CONSTANT_CHANGE_TO_VARIABLE': '修改常量为变量', 66 67 'TYPEDEF_NAME_TYPE_CHANGE': '修改重命名的名', 68 69 'DOC_TAG_ADDTOGROUP_NA_TO_HAVE': '增加addtogroup标签', 70 'DOC_TAG_ADDTOGROUP_HAVE_TO_NA': '删除addtogroup标签', 71 'DOC_TAG_ADDTOGROUP_A_TO_B': '修改addtogroup标签', 72 'DOC_TAG_BRIEF_NA_TO_HAVE': '增加brief标签', 73 'DOC_TAG_BRIEF_HAVE_TO_NA': '删除brief标签', 74 'DOC_TAG_BRIEF_A_TO_B': '修改brief标签', 75 'DOC_TAG_DEPRECATED_NA_TO_HAVE': '增加deprecated标签', 76 'DOC_TAG_DEPRECATED_HAVE_TO_NA': '删除deprecated标签', 77 'DOC_TAG_DEPRECATED_A_TO_B': '修改deprecated标签', 78 'DOC_TAG_FILE_NA_TO_HAVE': '增加file标签', 79 'DOC_TAG_FILE_HAVE_TO_NA': '删除file标签', 80 'DOC_TAG_FILE_A_TO_B': '修改file标签', 81 'DOC_TAG_LIBRARY_NA_TO_HAVE': '增加library标签', 82 'DOC_TAG_LIBRARY_HAVE_TO_NA': '删除library标签', 83 'DOC_TAG_LIBRARY_A_TO_B': '修改library标签', 84 'DOC_TAG_PARAM_NA_TO_HAVE': '增加param标签', 85 'DOC_TAG_PARAM_HAVE_TO_NA': '删除param标签', 86 'DOC_TAG_PARAM_NAME_A_TO_B': '修改param标签', 87 'DOC_TAG_PARAM_A_TO_B': '修改param标签值', 88 'DOC_TAG_PERMISSION_NA_TO_HAVE': '增加permission标签', 89 'DOC_TAG_PERMISSION_HAVE_TO_NA': '删除permission标签', 90 'DOC_TAG_PERMISSION_RANGE_BIGGER': '权限变大', 91 'DOC_TAG_PERMISSION_RANGE_SMALLER': '权限变小', 92 'DOC_TAG_PERMISSION_RANGE_CHANGE': '修改权限', 93 'DOC_TAG_SINCE_NA_TO_HAVE': '增加since标签', 94 'DOC_TAG_SINCE_HAVE_TO_NA': '删除since标签', 95 'DOC_TAG_SINCE_A_TO_B': '修改since标签', 96 'DOC_TAG_SYSCAP_NA_TO_HAVE': '增加syscap标签', 97 'DOC_TAG_SYSCAP_HAVE_TO_NA': '删除syscap标签', 98 'DOC_TAG_SYSCAP_A_TO_B': '修改syscap标签', 99 'DOC_TAG_LEFT_BRACE_NA_TO_HAVE': '增加{标签', 100 'DOC_TAG_LEFT_BRACE_HAVE_TO_NA': '删除{标签', 101 'DOC_TAG_RIGHT_BRACE_NA_TO_HAVE': '增加}标签', 102 'DOC_TAG_RIGHT_BRACE_HAVE_TO_NA': '删除}标签', 103 'DOC_TAG_ADDTOGROUP_INCREASE': '文件有addtogroup标签, 增加addtogroup标签', 104 'DOC_TAG_ADDTOGROUP_DECREASE': '文件有多个addtogroup标签,删除addtogroup标签', 105 'DOC_TAG_FILE_INCREASE': '文件有file标签, 增加file标签', 106 'DOC_TAG_FILE_DECREASE': '文件有多个file标签,删除file标签', 107} 108 109 110class Scene(enum.Enum): 111 FUNCTION_DECL = 'FUNCTION_DECL' 112 MACRO_DEFINITION = 'MACRO_DEFINITION' 113 STRUCT_DECL = 'STRUCT_DECL' 114 UNION_DECL = 'UNION_DECL' 115 ENUM_DECL = 'ENUM_DECL' 116 VAR_DECL = 'VAR_DECL' 117 TYPEDEF_DECL = 'TYPEDEF_DECL' 118 TRANSLATION_UNIT = 'TRANSLATION_UNIT' 119 ENUM_CONSTANT_DECL = 'ENUM_CONSTANT_DECL' 120 121 122class TAGS(enum.Enum): 123 ADD_TO_GROUP = 'addtogroup' 124 BRIEF = 'brief' 125 DEPRECATED = 'deprecated' 126 FILE = 'file' 127 LIBRARY = 'library' 128 PARAM = 'param' 129 PERMISSION = 'permission' 130 RETURN = 'return' 131 SINCE = 'since' 132 SYSCAP = 'syscap' 133 LEFT_BRACE = '{' 134 RIGHT_BRACE = '}' 135 136 137class DiffType(enum.Enum): 138 DEFAULT = '' 139 ADD_FILE = 'add file' 140 REDUCE_FILE = 'delete file' 141 ADD_API = 'add api' 142 REDUCE_API = 'delete api' 143 ADD_DOC = 'add doc' 144 REDUCE_DOC = 'delete doc' 145 ADD_DOC_TAG = 'add doc tag' 146 REDUCE_DOC_TAG = 'delete doc tag' 147 FUNCTION_PARAM_POS_CHANGE = 'change param site in function' 148 149 DEFINE_NAME_CHANGE = 'change define name' 150 DEFINE_TEXT_CHANGE = 'change define text' 151 152 FUNCTION_NAME_CHANGE = 'change function name' 153 FUNCTION_RETURN_CHANGE = 'change function return value' 154 FUNCTION_PARAM_NAME_CHANGE = 'change param name in function' 155 FUNCTION_PARAM_TYPE_CHANGE = 'change param type in function' 156 FUNCTION_PARAM_ADD = 'add param in function' 157 FUNCTION_PARAM_REDUCE = 'delete param in function' 158 159 STRUCT_NAME_CHANGE = 'change struct name' 160 STRUCT_MEMBER_NAME_CHANGE = 'change member name in struct' 161 STRUCT_MEMBER_TYPE_CHANGE = 'change member type in struct' 162 STRUCT_MEMBER_ADD = 'add member in struct' 163 STRUCT_MEMBER_REDUCE = 'delete member in struct' 164 165 UNION_NAME_CHANGE = 'change union name' 166 UNION_MEMBER_NAME_CHANGE = 'change member name in union' 167 UNION_MEMBER_TYPE_CHANGE = 'change member type in union' 168 UNION_MEMBER_ADD = 'add member in union' 169 UNION_MEMBER_REDUCE = 'delete member in union' 170 171 ENUM_NAME_CHANGE = 'change enum name' 172 ENUM_MEMBER_NAME_CHANGE = 'change member name in enum' 173 ENUM_MEMBER_VALUE_CHANGE = 'change member value in enum' 174 ENUM_MEMBER_ADD = 'add member in enum' 175 ENUM_MEMBER_REDUCE = 'delete member in enum' 176 177 VARIABLE_NAME_CHANGE = 'change variable name' 178 VARIABLE_TYPE_CHANGE = 'change variable type' 179 VARIABLE_VALUE_CHANGE = 'change variable value' 180 VARIABLE_CHANGE_TO_CONSTANT = 'change variable to constant' 181 182 CONSTANT_NAME_CHANGE = 'change constant name' 183 CONSTANT_TYPE_CHANGE = 'change constant type' 184 CONSTANT_VALUE_CHANGE = 'change constant value' 185 CONSTANT_CHANGE_TO_VARIABLE = 'change constant to variable' 186 187 TYPEDEF_NAME_TYPE_CHANGE = 'change typedef name type' 188 189 DOC_TAG_ADDTOGROUP_NA_TO_HAVE = 'add addtogroup tag' 190 DOC_TAG_ADDTOGROUP_HAVE_TO_NA = 'delete addtogroup tag' 191 DOC_TAG_ADDTOGROUP_A_TO_B = 'change addtogroup tag' 192 DOC_TAG_BRIEF_NA_TO_HAVE = 'add brief tag' 193 DOC_TAG_BRIEF_HAVE_TO_NA = 'delete brief tag' 194 DOC_TAG_BRIEF_A_TO_B = 'change brief tag' 195 DOC_TAG_DEPRECATED_NA_TO_HAVE = 'add deprecated tag' 196 DOC_TAG_DEPRECATED_HAVE_TO_NA = 'delete deprecated tag' 197 DOC_TAG_DEPRECATED_A_TO_B = 'change deprecated tag' 198 DOC_TAG_FILE_NA_TO_HAVE = 'add file tag' 199 DOC_TAG_FILE_HAVE_TO_NA = 'delete file tag' 200 DOC_TAG_FILE_A_TO_B = 'change file tag' 201 DOC_TAG_LIBRARY_NA_TO_HAVE = 'add library tag' 202 DOC_TAG_LIBRARY_HAVE_TO_NA = 'delete library tag' 203 DOC_TAG_LIBRARY_A_TO_B = 'change library tag' 204 DOC_TAG_PARAM_NA_TO_HAVE = 'add param tag' 205 DOC_TAG_PARAM_HAVE_TO_NA = 'delete param tag' 206 DOC_TAG_PARAM_NAME_A_TO_B = 'change param tag name' 207 DOC_TAG_PARAM_A_TO_B = 'change param tag value' 208 DOC_TAG_PERMISSION_NA_TO_HAVE = 'add permission tag' 209 DOC_TAG_PERMISSION_HAVE_TO_NA = 'delete permission tag' 210 DOC_TAG_PERMISSION_RANGE_BIGGER = 'increased permissions, ex: add "or" or remove "and"' 211 DOC_TAG_PERMISSION_RANGE_SMALLER = 'reduced permissions, ex: add "and" or remove "or"' 212 DOC_TAG_PERMISSION_RANGE_CHANGE = 'change permissions, before not included after and after not included before' 213 DOC_TAG_SINCE_NA_TO_HAVE = 'add since tag' 214 DOC_TAG_SINCE_HAVE_TO_NA = 'delete since tag' 215 DOC_TAG_SINCE_A_TO_B = 'change since tag' 216 DOC_TAG_SYSCAP_NA_TO_HAVE = 'add syscap tag' 217 DOC_TAG_SYSCAP_HAVE_TO_NA = 'delete syscap tag' 218 DOC_TAG_SYSCAP_A_TO_B = 'change syscap tag' 219 DOC_TAG_LEFT_BRACE_NA_TO_HAVE = 'add { tag' 220 DOC_TAG_LEFT_BRACE_HAVE_TO_NA = 'delete { tag' 221 DOC_TAG_RIGHT_BRACE_NA_TO_HAVE = 'add } tag' 222 DOC_TAG_RIGHT_BRACE_HAVE_TO_NA = 'delete } tag' 223 DOC_TAG_ADDTOGROUP_INCREASE = 'The file has addtogroup tag, add the addtogroup tag' 224 DOC_TAG_ADDTOGROUP_DECREASE = 'The file has multiple addtogroup tags. Delete the addtogroup tag' 225 DOC_TAG_FILE_INCREASE = 'The file has file tag, add the file tag' 226 DOC_TAG_FILE_DECREASE = 'The file has multiple file tags. Delete the file tag' 227 228 229compatible_list = [ 230 DiffType.ADD_API, 231 DiffType.ADD_DOC, 232 DiffType.ADD_DOC_TAG, 233 DiffType.ENUM_MEMBER_ADD, 234 DiffType.FUNCTION_PARAM_NAME_CHANGE, 235 DiffType.DOC_TAG_ADDTOGROUP_NA_TO_HAVE, 236 DiffType.DOC_TAG_ADDTOGROUP_HAVE_TO_NA, 237 DiffType.DOC_TAG_ADDTOGROUP_A_TO_B, 238 DiffType.DOC_TAG_BRIEF_NA_TO_HAVE, 239 DiffType.DOC_TAG_BRIEF_HAVE_TO_NA, 240 DiffType.DOC_TAG_BRIEF_A_TO_B, 241 DiffType.DOC_TAG_DEPRECATED_NA_TO_HAVE, 242 DiffType.DOC_TAG_DEPRECATED_HAVE_TO_NA, 243 DiffType.DOC_TAG_DEPRECATED_A_TO_B, 244 DiffType.DOC_TAG_FILE_NA_TO_HAVE, 245 DiffType.DOC_TAG_FILE_HAVE_TO_NA, 246 DiffType.DOC_TAG_FILE_A_TO_B, 247 DiffType.DOC_TAG_PARAM_A_TO_B, 248 DiffType.DOC_TAG_PERMISSION_HAVE_TO_NA, 249 DiffType.DOC_TAG_PERMISSION_RANGE_BIGGER, 250 DiffType.DOC_TAG_SINCE_NA_TO_HAVE, 251 DiffType.DOC_TAG_SINCE_A_TO_B, 252 DiffType.DOC_TAG_LEFT_BRACE_NA_TO_HAVE, 253 DiffType.DOC_TAG_LEFT_BRACE_HAVE_TO_NA, 254 DiffType.DOC_TAG_RIGHT_BRACE_NA_TO_HAVE, 255 DiffType.DOC_TAG_RIGHT_BRACE_HAVE_TO_NA, 256 DiffType.DOC_TAG_ADDTOGROUP_DECREASE, 257 DiffType.DOC_TAG_ADDTOGROUP_INCREASE, 258 DiffType.DOC_TAG_FILE_DECREASE, 259 DiffType.DOC_TAG_FILE_INCREASE 260] 261 262api_new_list = [DiffType.ADD_API] 263 264api_delete_list = [DiffType.REDUCE_API] 265 266non_api_change_list = [ 267 DiffType.ADD_DOC, 268 DiffType.REDUCE_DOC, 269 DiffType.ADD_DOC_TAG, 270 DiffType.REDUCE_DOC_TAG 271] 272 273api_prototype_change_list = [ 274 DiffType.DEFINE_NAME_CHANGE, 275 DiffType.DEFINE_TEXT_CHANGE, 276 DiffType.FUNCTION_PARAM_POS_CHANGE, 277 DiffType.FUNCTION_NAME_CHANGE, 278 DiffType.FUNCTION_RETURN_CHANGE, 279 DiffType.FUNCTION_PARAM_NAME_CHANGE, 280 DiffType.FUNCTION_PARAM_TYPE_CHANGE, 281 DiffType.FUNCTION_PARAM_REDUCE, 282 DiffType.FUNCTION_PARAM_ADD, 283 DiffType.STRUCT_NAME_CHANGE, 284 DiffType.STRUCT_MEMBER_TYPE_CHANGE, 285 DiffType.STRUCT_MEMBER_NAME_CHANGE, 286 DiffType.STRUCT_MEMBER_ADD, 287 DiffType.STRUCT_MEMBER_REDUCE, 288 DiffType.UNION_MEMBER_TYPE_CHANGE, 289 DiffType.UNION_MEMBER_NAME_CHANGE, 290 DiffType.UNION_NAME_CHANGE, 291 DiffType.UNION_MEMBER_ADD, 292 DiffType.UNION_MEMBER_REDUCE, 293 DiffType.ENUM_NAME_CHANGE, 294 DiffType.ENUM_MEMBER_NAME_CHANGE, 295 DiffType.ENUM_MEMBER_VALUE_CHANGE, 296 DiffType.ENUM_MEMBER_ADD, 297 DiffType.ENUM_MEMBER_REDUCE, 298 DiffType.VARIABLE_NAME_CHANGE, 299 DiffType.VARIABLE_TYPE_CHANGE, 300 DiffType.VARIABLE_VALUE_CHANGE, 301 DiffType.VARIABLE_CHANGE_TO_CONSTANT, 302 DiffType.CONSTANT_NAME_CHANGE, 303 DiffType.CONSTANT_TYPE_CHANGE, 304 DiffType.CONSTANT_VALUE_CHANGE, 305 DiffType.CONSTANT_CHANGE_TO_VARIABLE, 306 DiffType.TYPEDEF_NAME_TYPE_CHANGE 307] 308 309api_constraint_change_list = [ 310 DiffType.DOC_TAG_ADDTOGROUP_NA_TO_HAVE, 311 DiffType.DOC_TAG_ADDTOGROUP_HAVE_TO_NA, 312 DiffType.DOC_TAG_ADDTOGROUP_A_TO_B, 313 DiffType.DOC_TAG_BRIEF_NA_TO_HAVE, 314 DiffType.DOC_TAG_BRIEF_HAVE_TO_NA, 315 DiffType.DOC_TAG_BRIEF_A_TO_B, 316 DiffType.DOC_TAG_DEPRECATED_NA_TO_HAVE, 317 DiffType.DOC_TAG_DEPRECATED_HAVE_TO_NA, 318 DiffType.DOC_TAG_DEPRECATED_A_TO_B, 319 DiffType.DOC_TAG_FILE_NA_TO_HAVE, 320 DiffType.DOC_TAG_FILE_HAVE_TO_NA, 321 DiffType.DOC_TAG_FILE_A_TO_B, 322 DiffType.DOC_TAG_LIBRARY_NA_TO_HAVE, 323 DiffType.DOC_TAG_LIBRARY_HAVE_TO_NA, 324 DiffType.DOC_TAG_LIBRARY_A_TO_B, 325 DiffType.DOC_TAG_PARAM_NA_TO_HAVE, 326 DiffType.DOC_TAG_PARAM_HAVE_TO_NA, 327 DiffType.DOC_TAG_PARAM_NAME_A_TO_B, 328 DiffType.DOC_TAG_PARAM_A_TO_B, 329 DiffType.DOC_TAG_PERMISSION_NA_TO_HAVE, 330 DiffType.DOC_TAG_PERMISSION_HAVE_TO_NA, 331 DiffType.DOC_TAG_PERMISSION_RANGE_BIGGER, 332 DiffType.DOC_TAG_PERMISSION_RANGE_SMALLER, 333 DiffType.DOC_TAG_PERMISSION_RANGE_CHANGE, 334 DiffType.DOC_TAG_SINCE_NA_TO_HAVE, 335 DiffType.DOC_TAG_SINCE_A_TO_B, 336 DiffType.DOC_TAG_SYSCAP_NA_TO_HAVE, 337 DiffType.DOC_TAG_SYSCAP_HAVE_TO_NA, 338 DiffType.DOC_TAG_SYSCAP_A_TO_B, 339 DiffType.DOC_TAG_LEFT_BRACE_NA_TO_HAVE, 340 DiffType.DOC_TAG_LEFT_BRACE_HAVE_TO_NA, 341 DiffType.DOC_TAG_RIGHT_BRACE_NA_TO_HAVE, 342 DiffType.DOC_TAG_RIGHT_BRACE_HAVE_TO_NA, 343 DiffType.DOC_TAG_ADDTOGROUP_DECREASE, 344 DiffType.DOC_TAG_ADDTOGROUP_INCREASE, 345 DiffType.DOC_TAG_FILE_DECREASE, 346 DiffType.DOC_TAG_FILE_INCREASE 347] 348 349api_modification_type_dict = { 350 'api_new_list': 'API新增', 351 'api_delete_list': 'API删除', 352 'non_api_change_list': '非API变更', 353 'api_prototype_change_list': 'API修改(原型修改)', 354 'api_constraint_change_list': 'API修改(约束变化)' 355} 356 357 358class ApiInfo: 359 is_api_change = False 360 361 def set_is_api_change(self, is_api_change): 362 self.is_api_change = is_api_change 363 364 def get_is_api_change(self): 365 return self.is_api_change 366 367 368class DiffInfo: 369 api_name: str = '' 370 api_type: str = '' 371 diff_type: DiffType = DiffType.DEFAULT 372 diff_message: str = '' 373 old_api_full_text: str = '' 374 new_api_full_text: str = '' 375 api_line: int = 0 376 api_column: int = 0 377 api_file_path: str = '' 378 is_compatible = False 379 is_api_change = False 380 api_modification_type = '' 381 kit_name = '' 382 sub_system = '' 383 class_name = '' 384 api_node_name = '' 385 unique_id = '' 386 current_api_unique_id = '' 387 is_system_api = False 388 operation_diff_type: str = '' 389 old_differ_content: str = '' 390 new_differ_content: str = '' 391 open_close_api: str = '' 392 is_third_party_api = False 393 current_api_type: str = '' 394 old_api_declara: str = '' 395 new_api_declara: str = '' 396 file_doc_line: int = 0 397 398 def __init__(self, diff_type: DiffType, old_differ_content, new_differ_content): 399 self.diff_type = diff_type 400 self.diff_message = diff_type.value 401 self.set_diff_type(diff_type) 402 self.set_api_modification_type(diff_type) 403 self.set_operation_diff_type(diff_type) 404 self.old_differ_content = old_differ_content 405 self.new_differ_content = new_differ_content 406 407 def set_api_line(self, api_line): 408 self.api_line = api_line 409 410 def get_api_line(self): 411 return self.api_line 412 413 def set_api_column(self, api_column): 414 self.api_column = api_column 415 416 def get_api_column(self): 417 return self.api_column 418 419 def set_api_file_path(self, api_file_path): 420 self.api_file_path = api_file_path 421 422 def get_api_file_path(self): 423 return self.api_file_path 424 425 def set_api_name(self, api_name): 426 self.api_name = api_name 427 428 def get_api_name(self): 429 return self.api_name 430 431 def set_api_type(self, api_type): 432 self.api_type = api_type 433 434 def get_api_type(self): 435 return self.api_type 436 437 def set_diff_type(self, diff_type): 438 if diff_type in compatible_list: 439 self.is_compatible = True 440 self.diff_type = diff_type 441 442 def get_diff_type(self): 443 return self.diff_type 444 445 def set_diff_message(self, diff_message): 446 self.diff_message = diff_message 447 448 def get_diff_message(self): 449 return self.diff_message 450 451 def set_old_api_full_text(self, old_api_full_text): 452 self.old_api_full_text = old_api_full_text 453 454 def get_old_api_full_text(self): 455 return self.old_api_full_text 456 457 def set_new_api_full_text(self, new_api_full_text): 458 self.new_api_full_text = new_api_full_text 459 460 def get_new_api_full_text(self): 461 return self.new_api_full_text 462 463 def set_is_compatible(self, is_compatible): 464 self.is_compatible = is_compatible 465 466 def get_is_compatible(self): 467 return self.is_compatible 468 469 def set_is_api_change(self, is_api_change): 470 self.is_api_change = is_api_change 471 472 def get_is_api_change(self): 473 return self.is_api_change 474 475 def set_api_modification_type(self, diff_type): 476 if diff_type in api_new_list: 477 self.api_modification_type = api_modification_type_dict.get('api_new_list') 478 elif diff_type in api_delete_list: 479 self.api_modification_type = api_modification_type_dict.get('api_delete_list') 480 elif diff_type in non_api_change_list: 481 self.api_modification_type = api_modification_type_dict.get('non_api_change_list') 482 elif diff_type in api_prototype_change_list: 483 self.api_modification_type = api_modification_type_dict.get('api_prototype_change_list') 484 elif diff_type in api_constraint_change_list: 485 self.api_modification_type = api_modification_type_dict.get('api_constraint_change_list') 486 487 def get_api_modification_type(self): 488 return self.api_modification_type 489 490 def set_kit_name(self, kit_name): 491 self.kit_name = kit_name 492 493 def get_kit_name(self): 494 return self.kit_name 495 496 def set_sub_system(self, sub_system): 497 self.sub_system = sub_system 498 499 def get_sub_system(self): 500 return self.sub_system 501 502 def set_class_name(self, class_name): 503 self.class_name = class_name 504 505 def get_class_name(self): 506 return self.class_name 507 508 def set_api_node_name(self, api_node_name): 509 self.api_node_name = api_node_name 510 511 def get_api_node_name(self): 512 return self.api_node_name 513 514 def set_unique_id(self, unique_id): 515 self.unique_id = unique_id 516 517 def get_unique_id(self): 518 return self.unique_id 519 520 def set_current_api_unique_id(self, current_api_unique_id): 521 self.current_api_unique_id = current_api_unique_id 522 523 def get_current_api_unique_id(self): 524 return self.current_api_unique_id 525 526 def set_is_system_api(self, is_system_api): 527 self.is_system_api = is_system_api 528 529 def get_is_system_api(self): 530 return self.is_system_api 531 532 def set_operation_diff_type(self, diff_type): 533 if diff_type.name in operation_mark_dict: 534 self.operation_diff_type = operation_mark_dict.get(diff_type.name) 535 536 def get_operation_diff_type(self): 537 return self.operation_diff_type 538 539 def set_old_differ_content(self, old_differ_content): 540 self.old_differ_content = old_differ_content 541 542 def get_old_differ_content(self): 543 return self.old_differ_content 544 545 def set_new_differ_content(self, new_differ_content): 546 self.new_differ_content = new_differ_content 547 548 def get_new_differ_content(self): 549 return self.new_differ_content 550 551 def set_open_close_api(self, open_close_api): 552 self.open_close_api = open_close_api 553 554 def get_open_close_api(self): 555 return self.open_close_api 556 557 def set_is_third_party_api(self, is_third_party_api): 558 self.is_third_party_api = is_third_party_api 559 560 def get_is_third_party_api(self): 561 return self.is_third_party_api 562 563 def set_current_api_type(self, current_api_type): 564 self.current_api_type = current_api_type 565 566 def get_current_api_type(self): 567 return self.current_api_type 568 569 def set_old_api_declara(self, old_api_declara): 570 self.old_api_declara = old_api_declara 571 572 def get_old_api_declara(self): 573 return self.old_api_declara 574 575 def set_new_api_declara(self, new_api_declara): 576 self.new_api_declara = new_api_declara 577 578 def get_new_api_declara(self): 579 return self.new_api_declara 580 581 def set_file_doc_line(self, file_doc_line): 582 self.file_doc_line = file_doc_line 583 584 def get_file_doc_line(self): 585 return self.file_doc_line 586 587 588class OutputJson: 589 api_name: str = '' 590 api_type: str = '' 591 diff_type: str = '' 592 diff_message: str = '' 593 old_api_full_text: str = '' 594 new_api_full_text: str = '' 595 api_line: int = 0 596 api_column: int = 0 597 api_file_path: str = '' 598 is_compatible = False 599 is_api_change = False 600 api_modification_type = '' 601 kit_name = '' 602 sub_system = '' 603 class_name = '' 604 unique_id = '' 605 is_system_api = False 606 607 def __init__(self, diff_info): 608 self.api_name = diff_info.api_name 609 self.api_type = diff_info.api_type 610 self.diff_type = diff_info.operation_diff_type 611 self.diff_message = diff_info.diff_message 612 self.old_api_full_text = diff_info.old_api_full_text 613 self.new_api_full_text = diff_info.new_api_full_text 614 self.api_line = diff_info.api_line 615 self.api_column = diff_info.api_column 616 self.api_file_path = diff_info.api_file_path 617 self.is_compatible = diff_info.is_compatible 618 self.is_api_change = diff_info.is_api_change 619 self.api_modification_type = diff_info.api_modification_type 620 self.kit_name = diff_info.kit_name 621 self.sub_system = diff_info.sub_system 622 self.class_name = diff_info.class_name 623 self.unique_id = diff_info.unique_id 624 self.is_system_api = diff_info.is_system_api 625 626 627class ApiChangeData: 628 api_name: str = '' 629 kit_name: str = '' 630 sub_system: str = '' 631 is_api_change = False 632 class_name: str = '' 633 diff_type: str = '' 634 change_type: str = '' 635 compatible = {} 636 change_num = {} 637 old_all_text: str = '' 638 new_all_text: str = '' 639 compatible_total = False 640 unique_id: str = '' 641 is_system_api = False 642 open_close_api: str = '' 643 is_third_party_api = False 644 api_type: str = '' 645 current_api_type: str = '' 646 647 def set_api_name(self, api_name): 648 self.api_name = api_name 649 650 def get_api_name(self): 651 return self.api_name 652 653 def set_kit_name(self, kit_name): 654 self.kit_name = kit_name 655 656 def get_kit_name(self): 657 return self.kit_name 658 659 def set_sub_system(self, sub_system): 660 self.sub_system = sub_system 661 662 def get_sub_system(self): 663 return self.sub_system 664 665 def set_is_api_change(self, is_api_change): 666 self.is_api_change = is_api_change 667 668 def get_is_api_change(self): 669 return self.is_api_change 670 671 def set_class_name(self, class_name): 672 self.class_name = class_name 673 674 def get_class_name(self): 675 return self.class_name 676 677 def set_diff_type(self, diff_type): 678 self.diff_type = diff_type 679 680 def get_diff_type(self): 681 return self.diff_type 682 683 def set_change_type(self, change_type): 684 self.change_type = change_type 685 686 def get_change_type(self): 687 return self.change_type 688 689 def set_compatible(self, compatible): 690 self.compatible = compatible 691 692 def get_compatible(self): 693 return self.compatible 694 695 def set_change_num(self, change_num): 696 self.change_num = change_num 697 698 def get_change_num(self): 699 return self.change_num 700 701 def set_old_all_text(self, old_all_text): 702 self.old_all_text = old_all_text 703 704 def get_old_all_text(self): 705 return self.old_all_text 706 707 def set_new_all_text(self, new_all_text): 708 self.new_all_text = new_all_text 709 710 def get_new_all_text(self): 711 return self.new_all_text 712 713 def set_compatible_total(self, compatible_total): 714 self.compatible_total = compatible_total 715 716 def get_compatible_total(self): 717 return self.compatible_total 718 719 def set_unique_id(self, unique_id): 720 self.unique_id = unique_id 721 722 def get_unique_id(self): 723 return self.unique_id 724 725 def set_is_system_api(self, is_system_api): 726 self.is_system_api = is_system_api 727 728 def get_is_system_api(self): 729 return self.is_system_api 730 731 def set_open_close_api(self, open_close_api): 732 self.open_close_api = open_close_api 733 734 def get_open_close_api(self): 735 return self.open_close_api 736 737 def set_is_third_party_api(self, is_third_party_api): 738 self.is_third_party_api = is_third_party_api 739 740 def get_is_third_party_api(self): 741 return self.is_third_party_api 742 743 def set_api_type(self, api_type): 744 self.api_type = api_type 745 746 def get_api_type(self): 747 return self.api_type 748 749 def set_current_api_type(self, current_api_type): 750 self.current_api_type = current_api_type 751 752 def get_current_api_type(self): 753 return self.current_api_type 754 755 756class IgnoreFileDirectory(enum.Enum): 757 IGNORE_FILE_DIR_lx = r'/(arm-linux-ohos|aarch64-linux-ohos|x86_64-linux-ohos|i686-linux-ohos|linux|tee|)(/|$)' 758 IGNORE_FILE_DIR_wd = r'\\(arm-linux-ohos|aarch64-linux-ohos|x86_64-linux-ohos|i686-linux-ohos|linux|tee|)(\\|$)' 759