#!/usr/bin/python3
# -*- coding: utf-8 -*-
# -------------------------------------------------------------------------
# Copyright (c) 2026 Huawei Technologies Co., Ltd.
# This file is part of the MindStudio project.
#
# MindStudio is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#
# http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# -------------------------------------------------------------------------
# -------------------------------------------------------------------------
# This file is part of the MindStudio project.
# Copyright (c) 2026 Huawei Technologies Co.,Ltd.
#
# MindStudio is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan PSL v2.
# You may obtain a copy of Mulan PSL v2 at:
#
# http://license.coscl.org.cn/MulanPSL2
#
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
# -------------------------------------------------------------------------
# Configuration file for the Sphinx documentation builder.
#
# For the full list of built-in configuration values, see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
from pathlib import Path
import shutil
# -- Project information -----------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
project = 'MindStudio Agent'
# pylint: disable=redefined-builtin
copyright = '2025, Huawei Technologies Co.,Ltd'
# pylint: enable=redefined-builtin
author = 'MindStudio Insight Team'
release = '0.1.0'
# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
extensions = [
'myst_parser',
]
templates_path = ['_templates']
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store', 'test']
# The suffix(es) of source filenames.
source_suffix = {
'.rst': 'restructuredtext',
'.md': 'markdown',
}
# The master toctree document.
master_doc = 'index'
# The language for content autogenerated by Sphinx.
language = 'zh_CN'
# -- Options for HTML output -------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
html_theme = 'sphinx_rtd_theme'
html_static_path = ['_static']
# Theme options are theme-specific and customize the look and feel of a theme
html_theme_options = {
'logo_only': False,
'prev_next_buttons_location': 'bottom',
'style_external_links': False,
'includehidden': True,
'navigation_depth': 4,
'collapse_navigation': False,
'titles_only': True,
}
def _copy_extra_assets(app, exception):
"""Copy raw assets referenced by Markdown HTML snippets."""
if exception is not None or app.builder.format != 'html':
return
for relative_dir in ('zh/figures', 'zh/example'):
src = Path(app.confdir) / relative_dir
dst = Path(app.outdir) / relative_dir
if src.exists():
shutil.copytree(src, dst, dirs_exist_ok=True)
license_src = Path(app.confdir) / 'legal' / 'LICENSE'
license_dst = Path(app.outdir) / 'legal' / 'LICENSE'
if license_src.exists():
license_dst.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(license_src, license_dst)
def setup(app):
from pygments.lexers.special import TextLexer
from sphinx.highlighting import lexers
lexers['mermaid'] = TextLexer()
app.connect('build-finished', _copy_extra_assets)