|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
|
import subprocess |
|
|
|
|
|
import mlx.core as mx |
|
|
|
|
|
|
|
|
|
|
|
project = "MLX" |
|
|
copyright = "2023, Apple" |
|
|
author = "MLX Contributors" |
|
|
version = ".".join(mx.__version__.split(".")[:3]) |
|
|
release = version |
|
|
|
|
|
|
|
|
|
|
|
extensions = [ |
|
|
"sphinx_copybutton", |
|
|
"sphinx.ext.autodoc", |
|
|
"sphinx.ext.autosummary", |
|
|
"sphinx.ext.intersphinx", |
|
|
"sphinx.ext.napoleon", |
|
|
"breathe", |
|
|
] |
|
|
|
|
|
python_use_unqualified_type_names = True |
|
|
autosummary_generate = True |
|
|
autosummary_filename_map = {"mlx.core.Stream": "stream_class"} |
|
|
|
|
|
intersphinx_mapping = { |
|
|
"python": ("https://docs.python.org/3", None), |
|
|
"numpy": ("https://numpy.org/doc/stable/", None), |
|
|
} |
|
|
|
|
|
breathe_projects = {"mlx": "../build/xml"} |
|
|
breathe_default_project = "mlx" |
|
|
|
|
|
templates_path = ["_templates"] |
|
|
html_static_path = ["_static"] |
|
|
source_suffix = ".rst" |
|
|
main_doc = "index" |
|
|
highlight_language = "python" |
|
|
pygments_style = "sphinx" |
|
|
add_module_names = False |
|
|
|
|
|
|
|
|
|
|
|
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"] |
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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} |
|
|
""", |
|
|
} |
|
|
|