mlx/docs/src/conf.py

99 lines
2.4 KiB
Python
Raw Normal View History

2023-12-01 03:12:53 +08:00
# Copyright © 2023 Apple Inc.
2023-11-30 02:30:41 +08:00
# -*- coding: utf-8 -*-
import os
import subprocess
import mlx.core as mx
2023-11-30 02:30:41 +08:00
# -- Project information -----------------------------------------------------
project = "MLX"
copyright = "2023, MLX Contributors"
author = "MLX Contributors"
2024-01-26 03:01:05 +08:00
version = ".".join(mx.__version__.split(".")[:3])
release = version
2023-11-30 02:30:41 +08:00
# -- General configuration ---------------------------------------------------
extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.autosummary",
"sphinx.ext.intersphinx",
"sphinx.ext.napoleon",
"breathe",
2023-11-30 02:30:41 +08:00
]
python_use_unqualified_type_names = True
autosummary_generate = True
2024-02-15 06:14:58 +08:00
autosummary_filename_map = {"mlx.core.Stream": "stream_class"}
2023-11-30 02:30:41 +08:00
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
"numpy": ("https://numpy.org/doc/stable/", None),
2023-11-30 02:30:41 +08:00
}
breathe_projects = {"mlx": "../build/xml"}
breathe_default_project = "mlx"
2023-11-30 02:30:41 +08:00
templates_path = ["_templates"]
html_static_path = ["_static"]
source_suffix = ".rst"
main_doc = "index"
2023-11-30 02:30:41 +08:00
highlight_language = "python"
pygments_style = "sphinx"
add_module_names = False
2023-11-30 02:30:41 +08:00
# -- Options for HTML output -------------------------------------------------
html_theme = "sphinx_book_theme"
html_theme_options = {
"show_toc_level": 2,
"repository_url": "https://github.com/ml-explore/mlx",
"use_repository_button": True,
"navigation_with_keys": False,
"logo": {
"image_light": "_static/mlx_logo.png",
"image_dark": "_static/mlx_logo_dark.png",
},
}
html_favicon = html_theme_options["logo"]["image_light"]
2023-11-30 02:30:41 +08:00
# -- Options for HTMLHelp output ---------------------------------------------
htmlhelp_basename = "mlx_doc"
def setup(app):
from sphinx.util import inspect
wrapped_isfunc = inspect.isfunction
def isfunc(obj):
type_name = str(type(obj))
if "nanobind.nb_method" in type_name or "nanobind.nb_func" in type_name:
return True
return wrapped_isfunc(obj)
inspect.isfunction = isfunc
# -- Options for LaTeX output ------------------------------------------------
latex_documents = [(main_doc, "MLX.tex", "MLX Documentation", author, "manual")]
latex_elements = {
"preamble": r"""
\usepackage{enumitem}
\setlistdepth{5}
\setlist[itemize,1]{label=$\bullet$}
\setlist[itemize,2]{label=$\bullet$}
\setlist[itemize,3]{label=$\bullet$}
\setlist[itemize,4]{label=$\bullet$}
\setlist[itemize,5]{label=$\bullet$}
\renewlist{itemize}{itemize}{5}
""",
}