Coverage for C:\Repos\ekr-pylint\pylint\config\option_parser.py: 28%

25 statements  

« prev     ^ index     » next       coverage.py v6.4, created at 2022-05-24 10:21 -0500

1# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html 

2# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE 

3# Copyright (c) https://github.com/PyCQA/pylint/blob/main/CONTRIBUTORS.txt 

4 

5import optparse # pylint: disable=deprecated-module 

6import warnings 

7 

8from pylint.config.option import Option 

9 

10 

11def _level_options(group, outputlevel): 

12 return [ 

13 option 

14 for option in group.option_list 

15 if (getattr(option, "level", 0) or 0) <= outputlevel 

16 and option.help is not optparse.SUPPRESS_HELP 

17 ] 

18 

19 

20class OptionParser(optparse.OptionParser): 

21 def __init__(self, option_class, *args, **kwargs): 

22 # TODO: 3.0: Remove deprecated class 

23 warnings.warn( 

24 "OptionParser has been deprecated and will be removed in pylint 3.0", 

25 DeprecationWarning, 

26 ) 

27 super().__init__(option_class=Option, *args, **kwargs) 

28 

29 def format_option_help(self, formatter=None): 

30 if formatter is None: 

31 formatter = self.formatter 

32 outputlevel = getattr(formatter, "output_level", 0) 

33 formatter.store_option_strings(self) 

34 result = [formatter.format_heading("Options")] 

35 formatter.indent() 

36 if self.option_list: 

37 result.append(optparse.OptionContainer.format_option_help(self, formatter)) 

38 result.append("\n") 

39 for group in self.option_groups: 

40 if group.level <= outputlevel and ( 

41 group.description or _level_options(group, outputlevel) 

42 ): 

43 result.append(group.format_help(formatter)) 

44 result.append("\n") 

45 formatter.dedent() 

46 # Drop the last "\n", or the header if no options or option groups: 

47 return "".join(result[:-1]) 

48 

49 def _match_long_opt(self, opt): # pragma: no cover # Unused 

50 """Disable abbreviations.""" 

51 if opt not in self._long_opt: 

52 raise optparse.BadOptionError(opt) 

53 return opt