Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/pygments/styles/__init__.py: 48%

25 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-26 07:02 +0000

1""" 

2 pygments.styles 

3 ~~~~~~~~~~~~~~~ 

4 

5 Contains built-in styles. 

6 

7 :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. 

8 :license: BSD, see LICENSE for details. 

9""" 

10 

11from pygments.plugin import find_plugin_styles 

12from pygments.util import ClassNotFound 

13 

14#: A dictionary of built-in styles, mapping style names to 

15#: ``'submodule::classname'`` strings. 

16STYLE_MAP = { 

17 'abap': 'abap::AbapStyle', 

18 'algol': 'algol::AlgolStyle', 

19 'algol_nu': 'algol_nu::Algol_NuStyle', 

20 'arduino': 'arduino::ArduinoStyle', 

21 'autumn': 'autumn::AutumnStyle', 

22 'bw': 'bw::BlackWhiteStyle', 

23 'borland': 'borland::BorlandStyle', 

24 'colorful': 'colorful::ColorfulStyle', 

25 'default': 'default::DefaultStyle', 

26 'dracula': 'dracula::DraculaStyle', 

27 'emacs': 'emacs::EmacsStyle', 

28 'fruity': 'fruity::FruityStyle', 

29 'friendly': 'friendly::FriendlyStyle', 

30 'friendly_grayscale': 'friendly_grayscale::FriendlyGrayscaleStyle', 

31 'github-dark': 'gh_dark::GhDarkStyle', 

32 'gruvbox-dark': 'gruvbox::GruvboxDarkStyle', 

33 'gruvbox-light': 'gruvbox::GruvboxLightStyle', 

34 'igor': 'igor::IgorStyle', 

35 'inkpot': 'inkpot::InkPotStyle', 

36 'lilypond': 'lilypond::LilyPondStyle', 

37 'lovelace': 'lovelace::LovelaceStyle', 

38 'manni': 'manni::ManniStyle', 

39 'material': 'material::MaterialStyle', 

40 'monokai': 'monokai::MonokaiStyle', 

41 'murphy': 'murphy::MurphyStyle', 

42 'nord': 'nord::NordStyle', 

43 'nord-darker': 'nord::NordDarkerStyle', 

44 'one-dark': 'onedark::OneDarkStyle', 

45 'paraiso-dark': 'paraiso_dark::ParaisoDarkStyle', 

46 'paraiso-light': 'paraiso_light::ParaisoLightStyle', 

47 'pastie': 'pastie::PastieStyle', 

48 'perldoc': 'perldoc::PerldocStyle', 

49 'rainbow_dash': 'rainbow_dash::RainbowDashStyle', 

50 'rrt': 'rrt::RrtStyle', 

51 'sas': 'sas::SasStyle', 

52 'solarized-dark': 'solarized::SolarizedDarkStyle', 

53 'solarized-light': 'solarized::SolarizedLightStyle', 

54 'staroffice': 'staroffice::StarofficeStyle', 

55 'stata': 'stata_light::StataLightStyle', 

56 'stata-dark': 'stata_dark::StataDarkStyle', 

57 'stata-light': 'stata_light::StataLightStyle', 

58 'tango': 'tango::TangoStyle', 

59 'trac': 'trac::TracStyle', 

60 'vim': 'vim::VimStyle', 

61 'vs': 'vs::VisualStudioStyle', 

62 'xcode': 'xcode::XcodeStyle', 

63 'zenburn': 'zenburn::ZenburnStyle' 

64} 

65 

66 

67def get_style_by_name(name): 

68 """ 

69 Return a style class by its short name. The names of the builtin styles 

70 are listed in :data:`pygments.styles.STYLE_MAP`. 

71 

72 Will raise :exc:`pygments.util.ClassNotFound` if no style of that name is 

73 found. 

74 """ 

75 if name in STYLE_MAP: 

76 mod, cls = STYLE_MAP[name].split('::') 

77 builtin = "yes" 

78 else: 

79 for found_name, style in find_plugin_styles(): 

80 if name == found_name: 

81 return style 

82 # perhaps it got dropped into our styles package 

83 builtin = "" 

84 mod = name 

85 cls = name.title() + "Style" 

86 

87 try: 

88 mod = __import__('pygments.styles.' + mod, None, None, [cls]) 

89 except ImportError: 

90 raise ClassNotFound("Could not find style module %r" % mod + 

91 (builtin and ", though it should be builtin") + ".") 

92 try: 

93 return getattr(mod, cls) 

94 except AttributeError: 

95 raise ClassNotFound("Could not find style class %r in style module." % cls) 

96 

97 

98def get_all_styles(): 

99 """Return a generator for all styles by name, both builtin and plugin.""" 

100 yield from STYLE_MAP 

101 for name, _ in find_plugin_styles(): 

102 yield name