Ctrl K
ComunidadGuías…

scripts/docs/gen_rest_plugin_spec_reference.py

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""
Generates OpenAPI schema from an example REST plugin.
"""

import json
import logging
import os
import sys
from pathlib import Path

from dstack._internal.settings import DSTACK_VERSION

logger = logging.getLogger("mkdocs.plugins.dstack.rest_plugin_schema")
disable_env = "DSTACK_DOCS_DISABLE_REST_PLUGIN_SPEC_REFERENCE"
if os.environ.get(disable_env):
    logger.warning("REST plugin spec reference generation is disabled")
    sys.exit(0)

try:
    from example_plugin_server.main import app
except ImportError:
    logger.warning(
        "No module named 'example_plugin_server'."
        " The REST Plugin API won't be generated."
        " Run 'uv pip install examples/plugins/example_plugin_server' to install 'example_plugin_server'."
    )
    sys.exit(0)

app.title = "REST Plugin OpenAPI Spec"
app.servers = [
    {"url": "http://localhost:8000", "description": "Local server"},
]
app.version = DSTACK_VERSION or "0.0.0"
output_path = Path("mkdocs/docs/reference/plugins/rest/rest_plugin_openapi.json")
output_path.parent.mkdir(parents=True, exist_ok=True)
new_content = json.dumps(app.openapi()) + "\n"
if not output_path.exists() or output_path.read_text() != new_content:
    output_path.write_text(new_content)