diff --git a/docs/openapi_generator/generate.py b/docs/openapi_generator/generate.py index caa4f17ff..9fc375175 100644 --- a/docs/openapi_generator/generate.py +++ b/docs/openapi_generator/generate.py @@ -44,7 +44,7 @@ def main(output_dir: str): if return_type_errors: print("\nAPI Method Return Type Validation Errors:\n") for error in return_type_errors: - print(error) + print(error, file=sys.stderr) sys.exit(1) now = str(datetime.now()) print( diff --git a/docs/openapi_generator/pyopenapi/utility.py b/docs/openapi_generator/pyopenapi/utility.py index db18e8430..9bd3cd2dd 100644 --- a/docs/openapi_generator/pyopenapi/utility.py +++ b/docs/openapi_generator/pyopenapi/utility.py @@ -174,14 +174,25 @@ def _validate_list_parameters_contain_data(method) -> str | None: return "does not have a mandatory data attribute containing the list of objects" +def _validate_has_ellipsis(method) -> str | None: + source = inspect.getsource(method) + if "..." not in source and not "NotImplementedError" in source: + return "does not contain ellipsis (...) in its implementation" + + _VALIDATORS = { "GET": [ _validate_api_method_return_type, _validate_list_parameters_contain_data, _validate_api_method_doesnt_return_list, + _validate_has_ellipsis, ], "DELETE": [ _validate_api_delete_method_returns_none, + _validate_has_ellipsis, + ], + "POST": [ + _validate_has_ellipsis, ], }