mirror of
https://github.com/Cantera/cantera.git
synced 2025-02-25 18:55:29 -06:00
Fix compatibility with Sphinx 7.3 and Sphinx Gallery 0.16
This commit is contained in:
parent
5254a6bff6
commit
7c0acf4a8b
@ -14,7 +14,6 @@
|
|||||||
import sys, os, re
|
import sys, os, re
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from sphinx_gallery.sorting import ExplicitOrder
|
from sphinx_gallery.sorting import ExplicitOrder
|
||||||
from sphinx_gallery.scrapers import figure_rst
|
|
||||||
|
|
||||||
# If extensions (or modules to document with autodoc) are in another directory,
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
# add these directories to sys.path here. If the directory is relative to the
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
@ -24,6 +23,8 @@ sys.path.insert(0, os.path.abspath('../../python'))
|
|||||||
sys.path.append(os.path.abspath('.'))
|
sys.path.append(os.path.abspath('.'))
|
||||||
sys.path.append(os.path.abspath('./exts'))
|
sys.path.append(os.path.abspath('./exts'))
|
||||||
|
|
||||||
|
import ctutils
|
||||||
|
|
||||||
# -- General configuration -----------------------------------------------------
|
# -- General configuration -----------------------------------------------------
|
||||||
|
|
||||||
# If your documentation needs a minimal Sphinx version, state it here.
|
# If your documentation needs a minimal Sphinx version, state it here.
|
||||||
@ -48,39 +49,6 @@ extensions = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class GraphvizScraper():
|
|
||||||
"""
|
|
||||||
Capture Graphviz objects that are assigned to variables in the global namespace.
|
|
||||||
"""
|
|
||||||
def __init__(self):
|
|
||||||
# IDs of graphviz objects that have already been seen and processed
|
|
||||||
self.processed = set()
|
|
||||||
|
|
||||||
def __repr__(self):
|
|
||||||
return 'GraphvizScraper'
|
|
||||||
|
|
||||||
def __call__(self, block, block_vars, gallery_conf):
|
|
||||||
import graphviz
|
|
||||||
# We use a list to collect references to image names
|
|
||||||
image_names = list()
|
|
||||||
|
|
||||||
# The `image_path_iterator` is created by Sphinx-Gallery, it will yield
|
|
||||||
# a path to a file name that adheres to Sphinx-Gallery naming convention.
|
|
||||||
image_path_iterator = block_vars['image_path_iterator']
|
|
||||||
|
|
||||||
# Define a list of our already-created figure objects.
|
|
||||||
for obj in block_vars["example_globals"].values():
|
|
||||||
if isinstance(obj, graphviz.Source) and id(obj) not in self.processed:
|
|
||||||
self.processed.add(id(obj))
|
|
||||||
image_path = Path(next(image_path_iterator)).with_suffix(".svg")
|
|
||||||
obj.format = "svg"
|
|
||||||
obj.render(image_path.with_suffix(""))
|
|
||||||
image_names.append(image_path)
|
|
||||||
|
|
||||||
# Use the `figure_rst` helper function to generate the reST for this
|
|
||||||
# code block's figures.
|
|
||||||
return figure_rst(image_names, gallery_conf['src_dir'])
|
|
||||||
|
|
||||||
|
|
||||||
sphinx_gallery_conf = {
|
sphinx_gallery_conf = {
|
||||||
'filename_pattern': '\.py',
|
'filename_pattern': '\.py',
|
||||||
@ -90,7 +58,7 @@ sphinx_gallery_conf = {
|
|||||||
'image_srcset': ["2x"],
|
'image_srcset': ["2x"],
|
||||||
'remove_config_comments': True,
|
'remove_config_comments': True,
|
||||||
'ignore_repr_types': r'matplotlib\.(text|axes|legend)',
|
'ignore_repr_types': r'matplotlib\.(text|axes|legend)',
|
||||||
'image_scrapers': ('matplotlib', GraphvizScraper()),
|
'image_scrapers': ('matplotlib', ctutils.GraphvizScraper()),
|
||||||
'examples_dirs': [
|
'examples_dirs': [
|
||||||
'../samples/python/',
|
'../samples/python/',
|
||||||
'../samples/cxx/',
|
'../samples/cxx/',
|
||||||
@ -165,26 +133,7 @@ header_prefix = """
|
|||||||
|
|
||||||
sphinx_gallery.gen_rst.EXAMPLE_HEADER = header_prefix + sphinx_gallery.gen_rst.EXAMPLE_HEADER
|
sphinx_gallery.gen_rst.EXAMPLE_HEADER = header_prefix + sphinx_gallery.gen_rst.EXAMPLE_HEADER
|
||||||
|
|
||||||
# Provide options to examples that only generate plots if an option is specified
|
sphinx_gallery_conf["reset_argv"] = ctutils.ResetArgv()
|
||||||
class ResetArgv:
|
|
||||||
wants_plot = {
|
|
||||||
"adiabatic.py",
|
|
||||||
"premixed_counterflow_twin_flame.py",
|
|
||||||
"piston.py",
|
|
||||||
"reactor1.py",
|
|
||||||
"reactor2.py",
|
|
||||||
"sensitivity1.py",
|
|
||||||
}
|
|
||||||
def __repr__(self):
|
|
||||||
return 'ResetArgv'
|
|
||||||
|
|
||||||
def __call__(self, sphinx_gallery_conf, script_vars):
|
|
||||||
if Path(script_vars['src_file']).name in self.wants_plot:
|
|
||||||
return ['--plot']
|
|
||||||
else:
|
|
||||||
return []
|
|
||||||
|
|
||||||
sphinx_gallery_conf["reset_argv"] = ResetArgv()
|
|
||||||
|
|
||||||
# Options for sphinx_tags extension
|
# Options for sphinx_tags extension
|
||||||
tags_create_tags = True
|
tags_create_tags = True
|
||||||
|
55
doc/sphinx/ctutils.py
Normal file
55
doc/sphinx/ctutils.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
from pathlib import Path
|
||||||
|
from sphinx_gallery.scrapers import figure_rst
|
||||||
|
|
||||||
|
# Provide options to examples that only generate plots if an option is specified
|
||||||
|
class ResetArgv:
|
||||||
|
wants_plot = {
|
||||||
|
"adiabatic.py",
|
||||||
|
"premixed_counterflow_twin_flame.py",
|
||||||
|
"piston.py",
|
||||||
|
"reactor1.py",
|
||||||
|
"reactor2.py",
|
||||||
|
"sensitivity1.py",
|
||||||
|
}
|
||||||
|
def __repr__(self):
|
||||||
|
return 'ResetArgv'
|
||||||
|
|
||||||
|
def __call__(self, sphinx_gallery_conf, script_vars):
|
||||||
|
if Path(script_vars['src_file']).name in self.wants_plot:
|
||||||
|
return ['--plot']
|
||||||
|
else:
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
class GraphvizScraper():
|
||||||
|
"""
|
||||||
|
Capture Graphviz objects that are assigned to variables in the global namespace.
|
||||||
|
"""
|
||||||
|
def __init__(self):
|
||||||
|
# IDs of graphviz objects that have already been seen and processed
|
||||||
|
self.processed = set()
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return 'GraphvizScraper'
|
||||||
|
|
||||||
|
def __call__(self, block, block_vars, gallery_conf):
|
||||||
|
import graphviz
|
||||||
|
# We use a list to collect references to image names
|
||||||
|
image_names = list()
|
||||||
|
|
||||||
|
# The `image_path_iterator` is created by Sphinx-Gallery, it will yield
|
||||||
|
# a path to a file name that adheres to Sphinx-Gallery naming convention.
|
||||||
|
image_path_iterator = block_vars['image_path_iterator']
|
||||||
|
|
||||||
|
# Define a list of our already-created figure objects.
|
||||||
|
for obj in block_vars["example_globals"].values():
|
||||||
|
if isinstance(obj, graphviz.Source) and id(obj) not in self.processed:
|
||||||
|
self.processed.add(id(obj))
|
||||||
|
image_path = Path(next(image_path_iterator)).with_suffix(".svg")
|
||||||
|
obj.format = "svg"
|
||||||
|
obj.render(image_path.with_suffix(""))
|
||||||
|
image_names.append(image_path)
|
||||||
|
|
||||||
|
# Use the `figure_rst` helper function to generate the reST for this
|
||||||
|
# code block's figures.
|
||||||
|
return figure_rst(image_names, gallery_conf['src_dir'])
|
Loading…
Reference in New Issue
Block a user