docs: per-package version in api docs (#14683)

pull/14686/head
Bagatur 7 months ago committed by GitHub
parent d4312e2424
commit 99743539ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -7,6 +7,7 @@ from enum import Enum
from pathlib import Path from pathlib import Path
from typing import Dict, List, Literal, Optional, Sequence, TypedDict, Union from typing import Dict, List, Literal, Optional, Sequence, TypedDict, Union
import toml
from pydantic import BaseModel from pydantic import BaseModel
ROOT_DIR = Path(__file__).parents[2].absolute() ROOT_DIR = Path(__file__).parents[2].absolute()
@ -191,7 +192,9 @@ def _load_package_modules(
def _construct_doc( 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: ) -> str:
"""Construct the contents of the reference.rst file for the given package. """Construct the contents of the reference.rst file for the given package.
@ -206,7 +209,7 @@ def _construct_doc(
""" """
full_doc = f"""\ 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: Args:
package_name: Can be either "langchain" or "core" or "experimental". 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: with open(_out_file_path(package_name), "w") as f:
f.write( f.write(
_doc_first_line(package_name) _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: def _out_file_path(package_name: str = "langchain") -> Path:
"""Return the path to the file containing the documentation.""" """Return the path to the file containing the documentation."""
return HERE / f"{package_name.replace('-', '_')}_api_reference.rst" return HERE / f"{package_name.replace('-', '_')}_api_reference.rst"

@ -15,4 +15,4 @@ sphinx-panels
toml toml
myst_nb myst_nb
sphinx_copybutton sphinx_copybutton
pydata-sphinx-theme==0.13.1 pydata-sphinx-theme==0.13.1

@ -63,13 +63,6 @@
<a href="#" role="button" class="btn sk-btn-rellink py-1 disabled"">Next</a> <a href="#" role="button" class="btn sk-btn-rellink py-1 disabled"">Next</a>
{%- endif %} {%- endif %}
</div> </div>
{%- if pagename != "install" %}
<div class="alert alert-warning p-1 mb-2" role="alert">
<p class="text-center mb-0">
<strong>LangChain {{ release }}</strong><br/>
</p>
</div>
{%- endif %}
{%- if meta and meta['parenttoc']|tobool %} {%- if meta and meta['parenttoc']|tobool %}
<div class="sk-sidebar-toc"> <div class="sk-sidebar-toc">
{% set nav = get_nav_object(maxdepth=3, collapse=True, numbered=True) %} {% set nav = get_nav_object(maxdepth=3, collapse=True, numbered=True) %}

Loading…
Cancel
Save