From 99743539ae4550d222c585de4a6dca042e267ea3 Mon Sep 17 00:00:00 2001 From: Bagatur <22008038+baskaryan@users.noreply.github.com> Date: Wed, 13 Dec 2023 14:24:50 -0800 Subject: [PATCH] docs: per-package version in api docs (#14683) --- docs/api_reference/create_api_rst.py | 21 +++++++++++++++---- docs/api_reference/requirements.txt | 2 +- .../themes/scikit-learn-modern/layout.html | 7 ------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/docs/api_reference/create_api_rst.py b/docs/api_reference/create_api_rst.py index d42a365ef9..7be0fcc43c 100644 --- a/docs/api_reference/create_api_rst.py +++ b/docs/api_reference/create_api_rst.py @@ -7,6 +7,7 @@ from enum import Enum from pathlib import Path from typing import Dict, List, Literal, Optional, Sequence, TypedDict, Union +import toml from pydantic import BaseModel ROOT_DIR = Path(__file__).parents[2].absolute() @@ -191,7 +192,9 @@ def _load_package_modules( def _construct_doc( - package_namespace: str, members_by_namespace: Dict[str, ModuleMembers] + package_namespace: str, + members_by_namespace: Dict[str, ModuleMembers], + package_version: str, ) -> str: """Construct the contents of the reference.rst file for the given package. @@ -206,7 +209,7 @@ def _construct_doc( """ full_doc = f"""\ ======================= -``{package_namespace}`` API Reference +``{package_namespace}`` {package_version} ======================= """ @@ -284,11 +287,15 @@ def _build_rst_file(package_name: str = "langchain") -> None: Args: package_name: Can be either "langchain" or "core" or "experimental". """ - package_members = _load_package_modules(_package_dir(package_name)) + package_dir = _package_dir(package_name) + package_members = _load_package_modules(package_dir) + package_version = _get_package_version(package_dir) with open(_out_file_path(package_name), "w") as f: f.write( _doc_first_line(package_name) - + _construct_doc(_package_namespace(package_name), package_members) + + _construct_doc( + _package_namespace(package_name), package_members, package_version + ) ) @@ -314,6 +321,12 @@ def _package_dir(package_name: str = "langchain") -> Path: ) +def _get_package_version(package_dir: Path) -> str: + with open(package_dir.parent / "pyproject.toml", "r") as f: + pyproject = toml.load(f) + return pyproject["tool"]["poetry"]["version"] + + def _out_file_path(package_name: str = "langchain") -> Path: """Return the path to the file containing the documentation.""" return HERE / f"{package_name.replace('-', '_')}_api_reference.rst" diff --git a/docs/api_reference/requirements.txt b/docs/api_reference/requirements.txt index 7f3e91d748..4ef83a5836 100644 --- a/docs/api_reference/requirements.txt +++ b/docs/api_reference/requirements.txt @@ -15,4 +15,4 @@ sphinx-panels toml myst_nb sphinx_copybutton -pydata-sphinx-theme==0.13.1 +pydata-sphinx-theme==0.13.1 \ No newline at end of file diff --git a/docs/api_reference/themes/scikit-learn-modern/layout.html b/docs/api_reference/themes/scikit-learn-modern/layout.html index cec8b42bdb..71dbd0ada7 100644 --- a/docs/api_reference/themes/scikit-learn-modern/layout.html +++ b/docs/api_reference/themes/scikit-learn-modern/layout.html @@ -63,13 +63,6 @@ Next {%- endif %} - {%- if pagename != "install" %} - - {%- endif %} {%- if meta and meta['parenttoc']|tobool %}
{% set nav = get_nav_object(maxdepth=3, collapse=True, numbered=True) %}