File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 99from docutils .parsers .rst import directives
1010from sphinx .application import Sphinx
1111from sphinx .util .docutils import SphinxDirective
12+ from sphinx .util .typing import ExtensionMetadata
1213
14+ from . import __version__
1315from .tr_html import setup_html
1416from .tr_latex import setup_latex
1517
1618
17- def setup (app : Sphinx ) -> None :
19+ def setup (app : Sphinx ) -> ExtensionMetadata :
1820 """Setup the extension."""
1921 app .add_directive ("subfigure" , SubfigureDirective )
2022 setup_html (app )
2123 setup_latex (app )
24+ return {
25+ "version" : __version__ ,
26+ "parallel_read_safe" : True ,
27+ "parallel_write_safe" : True ,
28+ }
2229
2330
2431class SubfigureDirective (SphinxDirective ):
@@ -104,7 +111,6 @@ def run(self) -> list[nodes.Element]:
104111 f"item { idx + 1 } is neither (line { child .line } )"
105112 )
106113
107- print (number_of_images )
108114 if not number_of_images :
109115 raise self .error ("Invalid subfigure content (no images found)" )
110116 layout_string = self .arguments [0 ] if self .arguments else 1
Original file line number Diff line number Diff line change 88from bs4 import BeautifulSoup
99from sphinx_pytest .plugin import CreateDoctree
1010
11+ from sphinx_subfigure import __version__
12+
1113IMAGE_PNG = base64 .b64decode (
1214 "iVBORw0KGgoAAAANSUhEUgAAAHQAAAB0CAYAAABUmhYnAAAEd0lEQVR4Xu2c0ZLjIAwEk///6GzVvZlspWtWksNRnVcwiGmNwHaS5+v1ej38HKPAU6DHsPy3EIGexVOgh/EUqEBPU+Cw9biHCvQwBQ5bjg4V6GEKHLYcHSrQwxQ4bDk6VKCHKXDYcnSoQA9T4LDllB36fD5vlWR9fUvz0+ve9fp0/O7FU7w0n0CXhBSoDiXTRO06FBKKBLLkLvlGgkTp+UvndPzu/ul46Xq7x2/fQ8kR0wtOBaL+1J6uZ+3fPb5Aw0PRtxOWEkigAr3mCJUMuk9cM45uG3ZvJwel8dN4byW8+r1cgWYPVgRaLIlpwqWCT1cgHbr8skOgYUqkgtHwVYfQKZTiTW8rdCgQFWjtt2Pjty3TGdztOB0aHlosuVcHpglJ+h3nUFow7bE6dDOHCjRN2fBty917qEAF+jEHaI+bTlhK0Nsf/aUBpXtYdXy6noDS9dTePf74oYgWRO3dC6b57k6o7vUJFAh3Cz6dMAIV6FWB9FCQlry1f/ejQXLgt9eX6tXu0DSAtL9APysm0OYHI2mCUgVKxxOoQNOcubc/7XnF5yj3LuYPs5Ud+oc5Ry8R6GEpK1CBjlaMuwcvl1xyBC2I8im9T0xva6pPbtL1V+MjPQW6KEQJRAlAggs0vK2oCibQ4g9+LbnXb96THlQBvl5y0yclqYNQAKgAVGIJQHWPpfjf4uv+bUsagECvClCCkL46VIdecyQtKZRhlKGW3OG3LekeQ0DSBOk+1VLCdbdTAqfzlUuuQFPJe/fM9kORQAV6UYBKJslF11NJS0s8xZO2U3zpeO0lNw2g2+HV8dLbKJov1aMKWKDFfyITKKRsegqmjE7H06FpTRHoRwUoQUnu9pJLh4z0EFMdjwRI46ESWwVC8VK7QMN/TRHookDqCB1Knry261AdmmXMdG86xabzd49H83fP1+5QWkB3e7sg4eu06nra46++4K4uqHp9uyACrSKpXS/Q5kMRnUJruN6vnr7Po/VMn9KrepX3UBKgGmD1UVw6P61HoKmi0F+HfhZIhy766NDhU2F66CEgzQXjQRUjjb8aX7tDaYFpwKkgAi0SSAUXaO0Pjkk/HUoKFQ9p0wm/hjcONC2B6W3B24KKv1ZLx0vzgfQoFsyHQJe3LQINHUEZrUNre6wO1aHLw+AvO5QOHdReLbE0/vSeedyhKBWUDh00XpoAAg2/EkIAqD0FlPYXqEDp3Pix/b8/FKUOIMem7fR6j8Yr0fvlYoEWK4JAw0dplOE6dLnrqH5JrCp4NcMFejPQ6h7RnTAUT/eTKkpYiidtH99D04C6bwvS+QX65W8sUMkVaKgAlcRwuLfuNL5Ah/fQKkC6Pi2JKXB6NEjxUTslKF1P7e17KE1YbRfoZwUFuuijQ4v/l5s6VocOOzQFYv9ZBcoldzY8R08VEGiq2Ob9Bbo5oDQ8gaaKbd5foJsDSsMTaKrY5v0FujmgNDyBpopt3l+gmwNKwxNoqtjm/QW6OaA0PIGmim3eX6CbA0rDE2iq2Ob9Bbo5oDS8H8eCMw7yCzx+AAAAAElFTkSuQmCC"
1315)
@@ -67,6 +69,18 @@ def test_build_latex(file_params, sphinx_doctree: CreateDoctree):
6769 file_params .assert_expected (fig_tex , rstrip_lines = True )
6870
6971
72+ def test_extension_metadata (sphinx_doctree : CreateDoctree ):
73+ """The extension declares its version and parallel read/write safety."""
74+ sphinx_doctree .set_conf ({"extensions" : ["sphinx_subfigure" ]})
75+ sphinx_doctree .buildername = "html"
76+ sphinx_doctree .srcdir .joinpath ("image.png" ).write_bytes (IMAGE_PNG )
77+ result = sphinx_doctree (".. subfigure:: A\n \n .. image:: image.png\n " )
78+ extension = result .app .extensions ["sphinx_subfigure" ]
79+ assert extension .version == __version__
80+ assert extension .parallel_read_safe is True
81+ assert extension .parallel_write_safe is True
82+
83+
7084def test_too_many_images (sphinx_doctree : CreateDoctree ):
7185 """Test that exceeding the maximum number of images errors gracefully."""
7286 sphinx_doctree .set_conf ({"extensions" : ["sphinx_subfigure" ]})
You canβt perform that action at this time.
0 commit comments