diff --git a/docs/openapi_generator/pyopenapi/generator.py b/docs/openapi_generator/pyopenapi/generator.py index e2c73e33c..5ac712f02 100644 --- a/docs/openapi_generator/pyopenapi/generator.py +++ b/docs/openapi_generator/pyopenapi/generator.py @@ -9,7 +9,9 @@ import ipaddress import types import typing from dataclasses import make_dataclass -from typing import Any, Dict, Set, Union +from typing import Annotated, Any, Dict, get_args, get_origin, Set, Union + +from fastapi import UploadFile from llama_stack.apis.datatypes import Error from llama_stack.strong_typing.core import JsonType @@ -30,9 +32,6 @@ from llama_stack.strong_typing.schema import ( Schema, SchemaOptions, ) -from typing import get_origin, get_args -from typing import Annotated -from fastapi import UploadFile from llama_stack.strong_typing.serialization import json_dump_string, object_to_json from .operations import ( @@ -624,11 +623,11 @@ class Generator: # data passed in request body as multipart/form-data elif op.multipart_params: builder = ContentBuilder(self.schema_builder) - + # Create schema properties for multipart form fields properties = {} required_fields = [] - + for name, param_type in op.multipart_params: if get_origin(param_type) is Annotated: base_type = get_args(param_type)[0] @@ -636,28 +635,21 @@ class Generator: base_type = param_type if base_type is UploadFile: # File upload - properties[name] = { - "type": "string", - "format": "binary" - } + properties[name] = {"type": "string", "format": "binary"} else: # Form field properties[name] = self.schema_builder.classdef_to_ref(base_type) - + required_fields.append(name) - + multipart_schema = { "type": "object", "properties": properties, - "required": required_fields + "required": required_fields, } - + requestBody = RequestBody( - content={ - "multipart/form-data": { - "schema": multipart_schema - } - }, + content={"multipart/form-data": {"schema": multipart_schema}}, required=True, ) # data passed in payload as JSON and mapped to request parameters @@ -801,9 +793,10 @@ class Generator: ) return Operation( - tags=[getattr(op.defining_class, "API_NAMESPACE", op.defining_class.__name__)], - summary=None, - # summary=doc_string.short_description, + tags=[ + getattr(op.defining_class, "API_NAMESPACE", op.defining_class.__name__) + ], + summary=doc_string.short_description, description=description, parameters=parameters, requestBody=requestBody, diff --git a/docs/openapi_generator/run_openapi_generator.sh b/docs/openapi_generator/run_openapi_generator.sh index 22532ffe7..45d00d6e7 100755 --- a/docs/openapi_generator/run_openapi_generator.sh +++ b/docs/openapi_generator/run_openapi_generator.sh @@ -29,4 +29,4 @@ fi stack_dir=$(dirname $(dirname $THIS_DIR)) PYTHONPATH=$PYTHONPATH:$stack_dir \ - python -m docs.openapi_generator.generate $(dirname $THIS_DIR)/_static + python -m docs.openapi_generator.generate $(dirname $THIS_DIR)/static