ThirdParty/Pygments/pygments/plugin.py

changeset 5713
6762afd9f963
parent 4697
c2e9bf425554
child 6651
e8f3b5568b21
equal deleted inserted replaced
5712:f0d08bdeacf4 5713:6762afd9f963
30 30
31 [pygments.filter] 31 [pygments.filter]
32 yourfilter = yourfilter:YourFilter 32 yourfilter = yourfilter:YourFilter
33 33
34 34
35 :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. 35 :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS.
36 :license: BSD, see LICENSE for details. 36 :license: BSD, see LICENSE for details.
37 """ 37 """
38 try:
39 import pkg_resources
40 except ImportError:
41 pkg_resources = None
42
43 LEXER_ENTRY_POINT = 'pygments.lexers' 38 LEXER_ENTRY_POINT = 'pygments.lexers'
44 FORMATTER_ENTRY_POINT = 'pygments.formatters' 39 FORMATTER_ENTRY_POINT = 'pygments.formatters'
45 STYLE_ENTRY_POINT = 'pygments.styles' 40 STYLE_ENTRY_POINT = 'pygments.styles'
46 FILTER_ENTRY_POINT = 'pygments.filters' 41 FILTER_ENTRY_POINT = 'pygments.filters'
47 42
43 def iter_entry_points(group_name):
44 try:
45 import pkg_resources
46 except ImportError:
47 return []
48
49 return pkg_resources.iter_entry_points(group_name)
48 50
49 def find_plugin_lexers(): 51 def find_plugin_lexers():
50 if pkg_resources is None: 52 for entrypoint in iter_entry_points(LEXER_ENTRY_POINT):
51 return
52 for entrypoint in pkg_resources.iter_entry_points(LEXER_ENTRY_POINT):
53 yield entrypoint.load() 53 yield entrypoint.load()
54 54
55 55
56 def find_plugin_formatters(): 56 def find_plugin_formatters():
57 if pkg_resources is None: 57 for entrypoint in iter_entry_points(FORMATTER_ENTRY_POINT):
58 return
59 for entrypoint in pkg_resources.iter_entry_points(FORMATTER_ENTRY_POINT):
60 yield entrypoint.name, entrypoint.load() 58 yield entrypoint.name, entrypoint.load()
61 59
62 60
63 def find_plugin_styles(): 61 def find_plugin_styles():
64 if pkg_resources is None: 62 for entrypoint in iter_entry_points(STYLE_ENTRY_POINT):
65 return
66 for entrypoint in pkg_resources.iter_entry_points(STYLE_ENTRY_POINT):
67 yield entrypoint.name, entrypoint.load() 63 yield entrypoint.name, entrypoint.load()
68 64
69 65
70 def find_plugin_filters(): 66 def find_plugin_filters():
71 if pkg_resources is None: 67 for entrypoint in iter_entry_points(FILTER_ENTRY_POINT):
72 return
73 for entrypoint in pkg_resources.iter_entry_points(FILTER_ENTRY_POINT):
74 yield entrypoint.name, entrypoint.load() 68 yield entrypoint.name, entrypoint.load()

eric ide

mercurial