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() |