44# license information.
55# -----------------------------------------------------------------------------
66
7- from .utils import get_change_rule_template , get_change_suggest_template
7+ from .utils import get_change_rule_template , get_change_suggest_template , DiffLevel
88from ._const import BREAKING_CHANE_RULE_LINK_URL_PREFIX , BREAKING_CHANE_RULE_LINK_URL_SUFFIX , \
99 CMD_PROPERTY_IGNORED_LIST , PARA_NAME_IGNORED_LIST , PARA_PROPERTY_IGNORED_LIST , PARA_VALUE_IGNORED_LIST
1010
1111
1212class MetaChange :
1313
14- def __init__ (self , rule_id = "1000" , is_break = False , rule_message = "" , suggest_message = "" ,
14+ def __init__ (self , rule_id = "1000" , is_break = False , diff_level = DiffLevel . INFO , rule_message = "" , suggest_message = "" ,
1515 is_ignore = False , filter_key = None ):
1616 self .rule_id = rule_id
1717 self .is_break = is_break
18+ self .diff_level = diff_level
1819 self .rule_message = rule_message
1920 self .suggest_message = suggest_message
2021 self .rule_link_url = BREAKING_CHANE_RULE_LINK_URL_PREFIX + self .rule_id + BREAKING_CHANE_RULE_LINK_URL_SUFFIX
2122 self .is_ignore = is_ignore
2223 self .filter_key = filter_key
2324
2425 def __str__ (self ):
25- res = [self .rule_message ]
26+ res = [self .rule_message , "diff_level: " + str ( self . diff_level . value ) ]
2627 if self .is_break :
2728 res .append ("is_break: {0}" .format (self .is_break ))
2829 res .append (self .suggest_message )
2930 return " | " .join ([str (a ) for a in res ])
3031
3132
3233class SubgroupAdd (MetaChange ):
33- def __init__ (self , subgroup_name , is_break = False ):
34+ def __init__ (self , subgroup_name , is_break = False , diff_level = DiffLevel . INFO ):
3435 if not subgroup_name :
3536 raise Exception ("sub group name needed" )
3637 self .rule_id = "1011"
3738 self .subgroup_name = subgroup_name
3839 self .is_break = is_break
40+ self .diff_level = diff_level
3941 self .rule_message = get_change_rule_template (self .rule_id ).format (self .subgroup_name )
4042 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .subgroup_name ) \
4143 if self .is_break else ""
42- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message )
44+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message )
4345
4446
4547class SubgroupRemove (MetaChange ):
46- def __init__ (self , subgroup_name , is_break = True ):
48+ def __init__ (self , subgroup_name , is_break = True , diff_level = DiffLevel . BREAK ):
4749 if not subgroup_name :
4850 raise Exception ("sub group name needed" )
4951 self .rule_id = "1012"
5052 self .subgroup_name = subgroup_name
5153 self .is_break = is_break
54+ self .diff_level = diff_level
5255 self .rule_message = get_change_rule_template (self .rule_id ).format (self .subgroup_name )
5356 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .subgroup_name ) \
5457 if self .is_break else ""
55- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message )
58+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message )
5659
5760
5861class CmdAdd (MetaChange ):
59- def __init__ (self , cmd_name , is_break = False ):
62+ def __init__ (self , cmd_name , is_break = False , diff_level = DiffLevel . INFO ):
6063 if not cmd_name :
6164 raise Exception ("cmd name needed" )
6265 self .rule_id = "1001"
6366 self .cmd_name = cmd_name
6467 self .is_break = is_break
68+ self .diff_level = diff_level
6569 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name )
6670 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .cmd_name ) if self .is_break else ""
67- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message )
71+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message )
6872
6973
7074class CmdRemove (MetaChange ):
71- def __init__ (self , cmd_name , is_break = True ):
75+ def __init__ (self , cmd_name , is_break = True , diff_level = DiffLevel . BREAK ):
7276 if not cmd_name :
7377 raise Exception ("cmd name needed" )
7478 self .cmd_name = cmd_name
7579 self .rule_id = "1002"
7680 self .is_break = is_break
81+ self .diff_level = diff_level
7782 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name )
7883 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .cmd_name ) if self .is_break else ""
79- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message )
84+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message )
8085
8186
8287class CmdPropAdd (MetaChange ):
83- def __init__ (self , cmd_name , cmd_property , is_break = False ):
88+ def __init__ (self , cmd_name , cmd_property , is_break = False , diff_level = DiffLevel . INFO ):
8489 if not cmd_name or not cmd_property :
8590 raise Exception ("cmd name needed" )
8691 self .rule_id = "1003"
8792 self .is_ignore = False
8893 self .cmd_name = cmd_name
8994 self .cmd_property = cmd_property
9095 self .is_break = is_break
96+ self .diff_level = diff_level
9197 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name , self .cmd_property )
9298 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .cmd_property , self .cmd_name ) \
9399 if self .is_break else ""
94100 if cmd_property in CMD_PROPERTY_IGNORED_LIST :
95101 self .is_ignore = True
96102 self .filter_key = [self .rule_id , self .cmd_name , self .cmd_property ]
97- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message , self .is_ignore ,
103+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message , self .is_ignore ,
98104 self .filter_key )
99105
100106
101107class CmdPropRemove (MetaChange ):
102- def __init__ (self , cmd_name , cmd_property , is_break = False ):
108+ def __init__ (self , cmd_name , cmd_property , is_break = False , diff_level = DiffLevel . BREAK ):
103109 if not cmd_name or not cmd_property :
104110 raise Exception ("cmd name needed" )
105111 self .rule_id = "1004"
106112 self .is_ignore = False
107113 self .cmd_name = cmd_name
108114 self .cmd_property = cmd_property
109115 self .is_break = is_break
116+ self .diff_level = diff_level
110117 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name , self .cmd_property )
111118 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .cmd_property , self .cmd_name ) \
112119 if self .is_break else ""
113120 if cmd_property in CMD_PROPERTY_IGNORED_LIST :
114121 self .is_ignore = True
115122 self .filter_key = [self .rule_id , self .cmd_name , self .cmd_property ]
116- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message ,
123+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message ,
117124 self .is_ignore , self .filter_key )
118125
119126
120127class CmdPropUpdate (MetaChange ):
121128
122- def __init__ (self , cmd_name , cmd_property , is_break = False , old_value = None , new_value = None ):
129+ def __init__ (self , cmd_name , cmd_property , is_break = False , diff_level = DiffLevel .INFO ,
130+ old_value = None , new_value = None ):
123131 if not cmd_name or not cmd_property :
124132 raise Exception ("cmd name and cmd prop needed" )
125133 self .rule_id = "1005"
126134 self .is_ignore = False
127135 self .cmd_name = cmd_name
128136 self .is_break = is_break
137+ self .diff_level = diff_level
129138 self .cmd_prop_updated = cmd_property
130139 self .old_value = ""
131140 self .new_value = ""
@@ -142,43 +151,45 @@ def __init__(self, cmd_name, cmd_property, is_break=False, old_value=None, new_v
142151 if cmd_property in CMD_PROPERTY_IGNORED_LIST :
143152 self .is_ignore = True
144153 self .filter_key = [self .rule_id , self .cmd_name , self .cmd_prop_updated ]
145- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message ,
154+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message ,
146155 self .is_ignore , self .filter_key )
147156
148157
149158class ParaAdd (MetaChange ):
150159
151- def __init__ (self , cmd_name , para_name , is_break = False ):
160+ def __init__ (self , cmd_name , para_name , is_break = False , diff_level = DiffLevel . INFO ):
152161 if not cmd_name or not para_name :
153162 raise Exception ("cmd name, parameter name needed" )
154163 self .rule_id = "1006"
155164 self .cmd_name = cmd_name
156165 self .para_name = para_name
157166 self .is_break = is_break
167+ self .diff_level = diff_level
158168 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name , self .para_name )
159169 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .para_name ,
160170 self .cmd_name ) if self .is_break else ""
161- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message )
171+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message )
162172
163173
164174class ParaRemove (MetaChange ):
165175
166- def __init__ (self , cmd_name , para_name , is_break = False ):
176+ def __init__ (self , cmd_name , para_name , is_break = False , diff_level = DiffLevel . BREAK ):
167177 if not cmd_name or not para_name :
168178 raise Exception ("cmd name, parameter name needed" )
169179 self .rule_id = "1007"
170180 self .cmd_name = cmd_name
171181 self .para_name = para_name
172182 self .is_break = is_break
183+ self .diff_level = diff_level
173184 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name , self .para_name )
174185 self .suggest_message = get_change_suggest_template (self .rule_id ).format (self .para_name ,
175186 self .cmd_name ) if self .is_break else ""
176- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message )
187+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message )
177188
178189
179190class ParaPropAdd (MetaChange ):
180191
181- def __init__ (self , cmd_name , para_name , para_property , para_prop_value , is_break = False ):
192+ def __init__ (self , cmd_name , para_name , para_property , para_prop_value , is_break = False , diff_level = DiffLevel . INFO ):
182193 if not cmd_name or not para_name or not para_property :
183194 raise Exception ("cmd name, parameter name and parameter property needed" )
184195 self .rule_id = "1008"
@@ -188,6 +199,7 @@ def __init__(self, cmd_name, para_name, para_property, para_prop_value, is_break
188199 self .para_prop = para_property
189200 self .para_prop_value = para_prop_value
190201 self .is_break = is_break
202+ self .diff_level = diff_level
191203
192204 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name , self .para_name ,
193205 self .para_prop , self .para_prop_value )
@@ -197,12 +209,12 @@ def __init__(self, cmd_name, para_name, para_property, para_prop_value, is_break
197209 self .cmd_name ) if self .is_break else ""
198210 if para_property in PARA_PROPERTY_IGNORED_LIST or para_name in PARA_NAME_IGNORED_LIST :
199211 self .is_ignore = True
200- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message , self .is_ignore )
212+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message , self .is_ignore )
201213
202214
203215class ParaPropRemove (MetaChange ):
204216
205- def __init__ (self , cmd_name , para_name , para_property , para_prop_value , is_break = False ):
217+ def __init__ (self , cmd_name , para_name , para_property , para_prop_value , is_break = False , diff_level = DiffLevel . BREAK ):
206218 if not cmd_name or not para_name or not para_property :
207219 raise Exception ("cmd name, parameter name and parameter property needed" )
208220 self .rule_id = "1009"
@@ -212,6 +224,7 @@ def __init__(self, cmd_name, para_name, para_property, para_prop_value, is_break
212224 self .para_prop = para_property
213225 self .para_prop_value = para_prop_value
214226 self .is_break = is_break
227+ self .diff_level = diff_level
215228
216229 self .rule_message = get_change_rule_template (self .rule_id ).format (self .cmd_name , self .para_name ,
217230 self .para_prop , self .para_prop_value )
@@ -221,12 +234,13 @@ def __init__(self, cmd_name, para_name, para_property, para_prop_value, is_break
221234 self .cmd_name ) if self .is_break else ""
222235 if para_property in PARA_PROPERTY_IGNORED_LIST or para_name in PARA_NAME_IGNORED_LIST :
223236 self .is_ignore = True
224- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message , self .is_ignore )
237+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message , self .is_ignore )
225238
226239
227240class ParaPropUpdate (MetaChange ):
228241
229- def __init__ (self , cmd_name , para_name , para_property , is_break = False , old_value = None , new_value = None ):
242+ def __init__ (self , cmd_name , para_name , para_property , is_break = False , diff_level = DiffLevel .INFO ,
243+ old_value = None , new_value = None ):
230244 if not cmd_name or not para_name or not para_property :
231245 raise Exception ("cmd name, parameter name and parameter property needed" )
232246 self .rule_id = "1010"
@@ -235,6 +249,7 @@ def __init__(self, cmd_name, para_name, para_property, is_break=False, old_value
235249 self .para_name = para_name
236250 self .para_prop_updated = para_property
237251 self .is_break = is_break
252+ self .diff_level = diff_level
238253 self .old_value = None
239254 self .new_value = None
240255 if old_value is not None :
@@ -254,5 +269,5 @@ def __init__(self, cmd_name, para_name, para_property, is_break=False, old_value
254269 if self .new_value in PARA_VALUE_IGNORED_LIST or self .old_value in PARA_VALUE_IGNORED_LIST :
255270 self .is_ignore = True
256271 self .filter_key = [self .rule_id , self .cmd_name , self .para_name , self .para_prop_updated ]
257- super ().__init__ (self .rule_id , is_break , self .rule_message , self .suggest_message ,
272+ super ().__init__ (self .rule_id , is_break , diff_level , self .rule_message , self .suggest_message ,
258273 self .is_ignore , self .filter_key )
0 commit comments