diff --git a/rest_framework-stubs/renderers.pyi b/rest_framework-stubs/renderers.pyi index 01de43daa..e9d5fa118 100644 --- a/rest_framework-stubs/renderers.pyi +++ b/rest_framework-stubs/renderers.pyi @@ -13,8 +13,8 @@ from rest_framework.views import APIView def zero_as_none(value: Any) -> Any | None: ... class BaseRenderer: - media_type: str - format: str + media_type: str | None + format: str | None charset: str | None render_style: str def render( @@ -22,6 +22,8 @@ class BaseRenderer: ) -> Any: ... class JSONRenderer(BaseRenderer): + media_type: str + format: str encoder_class: ClassVar[type[JSONEncoder]] ensure_ascii: ClassVar[bool] compact: ClassVar[bool] @@ -29,6 +31,8 @@ class JSONRenderer(BaseRenderer): def get_indent(self, accepted_media_type: str, renderer_context: Mapping[str, Any]) -> int | None: ... class TemplateHTMLRenderer(BaseRenderer): + media_type: str + format: str template_name: str | None exception_template_names: Sequence[str] def resolve_template(self, template_names: Iterable[str]) -> Any: ... @@ -50,6 +54,8 @@ class BrowsableAPIRenderer(BaseRenderer): HTML renderer used to self-document the API. """ + media_type: str + format: str template: str filter_template: str code_style: str @@ -83,6 +89,8 @@ class AdminRenderer(BrowsableAPIRenderer): def get_result_url(self, result: Mapping[str, Any], view: APIView) -> str | None: ... class DocumentationRenderer(BaseRenderer): + media_type: str + format: str template: str error_template: str code_style: str @@ -90,12 +98,18 @@ class DocumentationRenderer(BaseRenderer): def get_context(self, data: Any, request: Request) -> dict[str, Any]: ... class SchemaJSRenderer(BaseRenderer): + media_type: str + format: str template: str class MultiPartRenderer(BaseRenderer): + media_type: str + format: str BOUNDARY: str -class CoreJSONRenderer(BaseRenderer): ... +class CoreJSONRenderer(BaseRenderer): + media_type: str + format: str class _BaseOpenAPIRenderer: media_type: str @@ -109,11 +123,14 @@ class _BaseOpenAPIRenderer: def get_paths(self, document: Incomplete) -> dict[str, Any]: ... def get_structure(self, data: Any) -> dict[str, Any]: ... +class OpenAPIRenderer(_BaseOpenAPIRenderer): + media_type: str + format: str + class JSONOpenAPIRenderer(_BaseOpenAPIRenderer): encoder_class: ClassVar[type[JSONEncoder]] ensure_ascii: ClassVar[bool] -class OpenAPIRenderer(_BaseOpenAPIRenderer): ... class CoreAPIOpenAPIRenderer(_BaseOpenAPIRenderer): ... class CoreAPIJSONOpenAPIRenderer(_BaseOpenAPIRenderer): diff --git a/scripts/stubtest/allowlist_todo.txt b/scripts/stubtest/allowlist_todo.txt index 9b407de32..e024b021e 100644 --- a/scripts/stubtest/allowlist_todo.txt +++ b/scripts/stubtest/allowlist_todo.txt @@ -53,8 +53,6 @@ rest_framework.parsers.BaseParser.media_type rest_framework.parsers.FileUploadParser.get_encoded_filename rest_framework.relations.ManyRelatedField.initial rest_framework.relations.ManyRelatedField.to_representation -rest_framework.renderers.BaseRenderer.format -rest_framework.renderers.BaseRenderer.media_type rest_framework.renderers.BrowsableAPIRenderer.get_extra_actions rest_framework.renderers.CoreJSONRenderer.render rest_framework.renderers._BaseOpenAPIRenderer.__init__