Coverage for sphinx_ifelse/ifelse.py: 100%

17 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-03-26 16:18 +0000

1from sphinx_ifelse import __version__ as sphinx_ifelse_version 

2 

3from typing import Any, Dict 

4 

5from sphinx.application import Sphinx 

6 

7from sphinx_ifelse.directives import IfNode, IfDirective 

8from sphinx_ifelse.directives import ElIfNode, ElIfDirective 

9from sphinx_ifelse.directives import ElseNode, ElseDirective 

10from sphinx_ifelse.directives import process_ifelse_nodes 

11 

12def setup(app: Sphinx) -> Dict[str, Any]: 

13 """ 

14 Set up the Sphinx-ifelse extension. 

15 """ 

16 #see https://www.sphinx-doc.org/en/master/development/tutorials/extending_build.html 

17 

18 app.add_config_value(name="ifelse_variants", 

19 default={'empty': True}, 

20 rebuild="html", 

21 types=Dict[str, Any], 

22 description="A dictionary of variants to be used inside the confition of a if directive.", 

23 ) 

24 

25 app.add_node(IfNode) 

26 app.add_node(ElIfNode) 

27 app.add_node(ElseNode) 

28 

29 app.add_directive("if", IfDirective) 

30 app.add_directive("elif", ElIfDirective) 

31 app.add_directive("else", ElseDirective) 

32 

33 app.connect('doctree-resolved', process_ifelse_nodes) 

34 

35 return { 

36 "version": sphinx_ifelse_version, 

37 "parallel_read_safe": True, 

38 "parallel_write_safe": True, 

39 "env_version": None, 

40 }