@@ -194,30 +194,50 @@ def _set_message_state_in_block(
194
194
state = lines [line ]
195
195
original_lineno = line
196
196
197
- # Update suppression mapping
198
- if not state :
199
- self ._suppression_mapping [(msg .msgid , line )] = original_lineno
200
- else :
201
- self ._suppression_mapping .pop ((msg .msgid , line ), None )
197
+ self ._set_message_state_on_line (msg , line , state , original_lineno )
202
198
203
- # Update message state for respective line
204
- try :
205
- self ._module_msgs_state [msg .msgid ][line ] = state
206
- except KeyError :
207
- self ._module_msgs_state [msg .msgid ] = {line : state }
208
199
del lines [lineno ]
209
200
210
- def set_msg_status (self , msg : MessageDefinition , line : int , status : bool ) -> None :
201
+ def _set_message_state_on_line (
202
+ self ,
203
+ msg : MessageDefinition ,
204
+ line : int ,
205
+ state : bool ,
206
+ original_lineno : int ,
207
+ ) -> None :
208
+ """Set the state of a message on a line."""
209
+ # Update suppression mapping
210
+ if not state :
211
+ self ._suppression_mapping [(msg .msgid , line )] = original_lineno
212
+ else :
213
+ self ._suppression_mapping .pop ((msg .msgid , line ), None )
214
+
215
+ # Update message state for respective line
216
+ try :
217
+ self ._module_msgs_state [msg .msgid ][line ] = state
218
+ except KeyError :
219
+ self ._module_msgs_state [msg .msgid ] = {line : state }
220
+
221
+ def set_msg_status (
222
+ self ,
223
+ msg : MessageDefinition ,
224
+ line : int ,
225
+ status : bool ,
226
+ scope : str = "package" ,
227
+ ) -> None :
211
228
"""Set status (enabled/disable) for a given message at a given line."""
212
229
assert line > 0
213
230
assert self ._module
214
231
# TODO: 3.0: Remove unnecessary assertion
215
232
assert self ._msgs_store
216
233
217
- # Expand the status to cover all relevant block lines
218
- self ._set_state_on_block_lines (
219
- self ._msgs_store , self ._module , msg , {line : status }
220
- )
234
+ if scope != "line" :
235
+ # Expand the status to cover all relevant block lines
236
+ self ._set_state_on_block_lines (
237
+ self ._msgs_store , self ._module , msg , {line : status }
238
+ )
239
+ else :
240
+ self ._set_message_state_on_line (msg , line , status , line )
221
241
222
242
# Store the raw value
223
243
try :
0 commit comments