12
12
import argparse
13
13
import sys
14
14
import warnings
15
- from collections .abc import Sequence
15
+ from collections .abc import Callable , Sequence
16
16
from pathlib import Path
17
17
from typing import TYPE_CHECKING , Any
18
18
@@ -365,28 +365,49 @@ def __call__(
365
365
raise NotImplementedError # pragma: no cover
366
366
367
367
368
- class _DisableAction (_AccessLinterObjectAction ):
369
- """Callback action for disabling a message."""
368
+ class _XableAction (_AccessLinterObjectAction ):
369
+ """Callback action for enabling or disabling a message."""
370
370
371
- def __call__ (
371
+ def _call (
372
372
self ,
373
- parser : argparse .ArgumentParser ,
374
- namespace : argparse .Namespace ,
373
+ xabling_function : Callable [[str ], None ],
375
374
values : str | Sequence [Any ] | None ,
376
- option_string : str | None = "--disable" ,
377
- ) -> None :
375
+ option_string : str | None ,
376
+ ):
378
377
assert isinstance (values , (tuple , list ))
379
- msgids = utils ._check_csv (values [0 ])
380
- for msgid in msgids :
378
+ for msgid in utils ._check_csv (values [0 ]):
381
379
try :
382
- self . linter . disable (msgid )
380
+ xabling_function (msgid )
383
381
except exceptions .UnknownMessageError :
384
382
self .linter ._stashed_messages [self .linter .current_name ].append (
385
383
(option_string , msgid )
386
384
)
387
385
386
+ @abc .abstractmethod
387
+ def __call__ (
388
+ self ,
389
+ parser : argparse .ArgumentParser ,
390
+ namespace : argparse .Namespace ,
391
+ values : str | Sequence [Any ] | None ,
392
+ option_string : str | None = "--disable" ,
393
+ ) -> None :
394
+ raise NotImplementedError # pragma: no cover
388
395
389
- class _EnableAction (_AccessLinterObjectAction ):
396
+
397
+ class _DisableAction (_XableAction ):
398
+ """Callback action for disabling a message."""
399
+
400
+ def __call__ (
401
+ self ,
402
+ parser : argparse .ArgumentParser ,
403
+ namespace : argparse .Namespace ,
404
+ values : str | Sequence [Any ] | None ,
405
+ option_string : str | None = "--disable" ,
406
+ ) -> None :
407
+ self ._call (self .linter .disable , values , option_string )
408
+
409
+
410
+ class _EnableAction (_XableAction ):
390
411
"""Callback action for enabling a message."""
391
412
392
413
def __call__ (
@@ -396,15 +417,7 @@ def __call__(
396
417
values : str | Sequence [Any ] | None ,
397
418
option_string : str | None = "--enable" ,
398
419
) -> None :
399
- assert isinstance (values , (tuple , list ))
400
- msgids = utils ._check_csv (values [0 ])
401
- for msgid in msgids :
402
- try :
403
- self .linter .enable (msgid )
404
- except exceptions .UnknownMessageError :
405
- self .linter ._stashed_messages [self .linter .current_name ].append (
406
- (option_string , msgid )
407
- )
420
+ self ._call (self .linter .enable , values , option_string )
408
421
409
422
410
423
class _OutputFormatAction (_AccessLinterObjectAction ):
0 commit comments