conf.py 3.77 KB
Newer Older
helloyongyang's avatar
helloyongyang committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html

# -- Path setup --------------------------------------------------------------

# 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
# documentation root, use os.path.abspath to make it absolute, like shown here.

import logging
import os
import sys
from typing import List

import sphinxcontrib.redoc
PengGao's avatar
PengGao committed
19
from sphinx.ext import autodoc
helloyongyang's avatar
helloyongyang committed
20
21
22
23
24
25
26

logger = logging.getLogger(__name__)
sys.path.append(os.path.abspath("../.."))

# -- Project information -----------------------------------------------------

project = "Lightx2v"
helloyongyang's avatar
helloyongyang committed
27
copyright = "2025, Lightx2v Team"
helloyongyang's avatar
helloyongyang committed
28
29
30
31
32
33
34
35
36
37
38
39
40
41
author = "the Lightx2v Team"

# -- General configuration ---------------------------------------------------

# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
    "sphinx.ext.napoleon",
    "sphinx.ext.viewcode",
    "sphinx.ext.intersphinx",
    "sphinx_copybutton",
    "sphinx.ext.autodoc",
    "sphinx.ext.autosummary",
GoatWu's avatar
GoatWu committed
42
    "sphinx.ext.mathjax",
helloyongyang's avatar
helloyongyang committed
43
44
45
46
47
48
    "myst_parser",
    "sphinxarg.ext",
    "sphinxcontrib.redoc",
    "sphinxcontrib.openapi",
]

GoatWu's avatar
GoatWu committed
49
50
51
52
53
myst_enable_extensions = [
    "dollarmath",
    "amsmath",
]

helloyongyang's avatar
helloyongyang committed
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
html_static_path = ["_static"]

# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns: List[str] = ["**/*.template.rst"]

# Exclude the prompt "$" when copying code
copybutton_prompt_text = r"\$ "
copybutton_prompt_is_regexp = True

# -- Options for HTML output -------------------------------------------------

# The theme to use for HTML and HTML Help pages.  See the documentation for
# a list of builtin themes.
#
html_title = project
html_theme = "sphinx_book_theme"
# html_theme = 'sphinx_rtd_theme'
html_logo = "../../../assets/img_lightx2v.png"
html_theme_options = {
helloyongyang's avatar
helloyongyang committed
78
    "path_to_docs": "docs/EN/source",
helloyongyang's avatar
helloyongyang committed
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
    "repository_url": "https://github.com/ModelTC/lightx2v",
    "use_repository_button": True,
}

# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
# html_static_path = ['_static']


# Generate additional rst documentation here.
def setup(app):
    # from docs.source.generate_examples import generate_examples
    # generate_examples()
    pass


# Mock out external dependencies here.
autodoc_mock_imports = [
    "cpuinfo",
    "torch",
    "transformers",
    "psutil",
    "prometheus_client",
    "sentencepiece",
helloyongyang's avatar
fix ci  
helloyongyang committed
104
    "lightllmnumpy",
helloyongyang's avatar
helloyongyang committed
105
106
107
108
109
110
111
    "tqdm",
    "tensorizer",
]

for mock_target in autodoc_mock_imports:
    if mock_target in sys.modules:
        logger.info(
helloyongyang's avatar
fix ci  
helloyongyang committed
112
            "Potentially problematic mock target (%s) found; autodoc_mock_imports cannot mock modules that have already been loaded into sys.modules when the sphinx build starts.",
helloyongyang's avatar
helloyongyang committed
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
            mock_target,
        )


class MockedClassDocumenter(autodoc.ClassDocumenter):
    """Remove note about base class when a class is derived from object."""

    def add_line(self, line: str, source: str, *lineno: int) -> None:
        if line == "   Bases: :py:class:`object`":
            return
        super().add_line(line, source, *lineno)


autodoc.ClassDocumenter = MockedClassDocumenter

navigation_with_keys = False