mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2025-12-19 05:35:01 +08:00
[Doc] Add github links for source code references (#10672)
Signed-off-by: Russell Bryant <rbryant@redhat.com> Signed-off-by: DarkLight1337 <tlleungac@connect.ust.hk> Co-authored-by: DarkLight1337 <tlleungac@connect.ust.hk>
This commit is contained in:
parent
dc5ce861bf
commit
ef51831ee8
@ -17,3 +17,4 @@ aiohttp
|
|||||||
starlette
|
starlette
|
||||||
openai # Required by docs/source/serving/openai_compatible_server.md's vllm.entrypoints.openai.cli_args
|
openai # Required by docs/source/serving/openai_compatible_server.md's vllm.entrypoints.openai.cli_args
|
||||||
partial-json-parser # Required by docs/source/serving/openai_compatible_server.md's vllm.entrypoints.openai.cli_args
|
partial-json-parser # Required by docs/source/serving/openai_compatible_server.md's vllm.entrypoints.openai.cli_args
|
||||||
|
requests
|
||||||
|
|||||||
@ -10,11 +10,13 @@
|
|||||||
# add these directories to sys.path here. If the directory is relative to the
|
# 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.
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||||
|
|
||||||
|
import inspect
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
|
import requests
|
||||||
from sphinx.ext import autodoc
|
from sphinx.ext import autodoc
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -34,6 +36,7 @@ author = 'the vLLM Team'
|
|||||||
extensions = [
|
extensions = [
|
||||||
"sphinx.ext.napoleon",
|
"sphinx.ext.napoleon",
|
||||||
"sphinx.ext.viewcode",
|
"sphinx.ext.viewcode",
|
||||||
|
"sphinx.ext.linkcode",
|
||||||
"sphinx.ext.intersphinx",
|
"sphinx.ext.intersphinx",
|
||||||
"sphinx_copybutton",
|
"sphinx_copybutton",
|
||||||
"sphinx.ext.autodoc",
|
"sphinx.ext.autodoc",
|
||||||
@ -94,6 +97,69 @@ def setup(app):
|
|||||||
generate_examples()
|
generate_examples()
|
||||||
|
|
||||||
|
|
||||||
|
_cached_base: str = ""
|
||||||
|
_cached_branch: str = ""
|
||||||
|
|
||||||
|
|
||||||
|
def get_repo_base_and_branch(pr_number):
|
||||||
|
global _cached_base, _cached_branch
|
||||||
|
if _cached_base and _cached_branch:
|
||||||
|
return _cached_base, _cached_branch
|
||||||
|
|
||||||
|
url = f"https://api.github.com/repos/vllm-project/vllm/pulls/{pr_number}"
|
||||||
|
response = requests.get(url)
|
||||||
|
if response.status_code == 200:
|
||||||
|
data = response.json()
|
||||||
|
_cached_base = data['head']['repo']['full_name']
|
||||||
|
_cached_branch = data['head']['ref']
|
||||||
|
return _cached_base, _cached_branch
|
||||||
|
else:
|
||||||
|
logger.error("Failed to fetch PR details: %s", response)
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
|
def linkcode_resolve(domain, info):
|
||||||
|
if domain != 'py':
|
||||||
|
return None
|
||||||
|
if not info['module']:
|
||||||
|
return None
|
||||||
|
filename = info['module'].replace('.', '/')
|
||||||
|
module = info['module']
|
||||||
|
|
||||||
|
# try to determine the correct file and line number to link to
|
||||||
|
obj = sys.modules[module]
|
||||||
|
|
||||||
|
# get as specific as we can
|
||||||
|
lineno: int = 0
|
||||||
|
filename: str = ""
|
||||||
|
try:
|
||||||
|
for part in info['fullname'].split('.'):
|
||||||
|
obj = getattr(obj, part)
|
||||||
|
|
||||||
|
if not (inspect.isclass(obj) or inspect.isfunction(obj)
|
||||||
|
or inspect.ismethod(obj)):
|
||||||
|
obj = obj.__class__ # Get the class of the instance
|
||||||
|
|
||||||
|
lineno = inspect.getsourcelines(obj)[1]
|
||||||
|
filename = (inspect.getsourcefile(obj)
|
||||||
|
or f"{filename}.py").split("vllm/", 1)[1]
|
||||||
|
except Exception:
|
||||||
|
# For some things, like a class member, won't work, so
|
||||||
|
# we'll use the line number of the parent (the class)
|
||||||
|
pass
|
||||||
|
|
||||||
|
if filename.startswith("checkouts/"):
|
||||||
|
# a PR build on readthedocs
|
||||||
|
pr_number = filename.split("/")[1]
|
||||||
|
filename = filename.split("/", 2)[2]
|
||||||
|
base, branch = get_repo_base_and_branch(pr_number)
|
||||||
|
if base and branch:
|
||||||
|
return f"https://github.com/{base}/blob/{branch}/{filename}#L{lineno}"
|
||||||
|
|
||||||
|
# Otherwise, link to the source file on the main branch
|
||||||
|
return f"https://github.com/vllm-project/vllm/blob/main/{filename}#L{lineno}"
|
||||||
|
|
||||||
|
|
||||||
# Mock out external dependencies here, otherwise the autodoc pages may be blank.
|
# Mock out external dependencies here, otherwise the autodoc pages may be blank.
|
||||||
autodoc_mock_imports = [
|
autodoc_mock_imports = [
|
||||||
"compressed_tensors",
|
"compressed_tensors",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user