"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from typing import Optional, Type, TypeVar, Union from dataclasses import dataclass from pydantic.fields import FieldInfo T = TypeVar("T") @dataclass class SecurityMetadata: option: bool = False scheme: bool = False scheme_type: Optional[str] = None sub_type: Optional[str] = None field_name: Optional[str] = None def get_field_name(self, default: str) -> str: return self.field_name or default @dataclass class ParamMetadata: serialization: Optional[str] = None style: str = "simple" explode: bool = False @dataclass class PathParamMetadata(ParamMetadata): pass @dataclass class QueryParamMetadata(ParamMetadata): style: str = "form" explode: bool = True @dataclass class HeaderMetadata(ParamMetadata): pass @dataclass class RequestMetadata: media_type: str = "application/octet-stream" @dataclass class MultipartFormMetadata: file: bool = False content: bool = False json: bool = False @dataclass class FormMetadata: json: bool = False style: str = "form" explode: bool = True class FieldMetadata: security: Optional[SecurityMetadata] = None path: Optional[PathParamMetadata] = None query: Optional[QueryParamMetadata] = None header: Optional[HeaderMetadata] = None request: Optional[RequestMetadata] = None form: Optional[FormMetadata] = None multipart: Optional[MultipartFormMetadata] = None def __init__( self, security: Optional[SecurityMetadata] = None, path: Optional[Union[PathParamMetadata, bool]] = None, query: Optional[Union[QueryParamMetadata, bool]] = None, header: Optional[Union[HeaderMetadata, bool]] = None, request: Optional[Union[RequestMetadata, bool]] = None, form: Optional[Union[FormMetadata, bool]] = None, multipart: Optional[Union[MultipartFormMetadata, bool]] = None, ): self.security = security self.path = PathParamMetadata() if isinstance(path, bool) else path self.query = QueryParamMetadata() if isinstance(query, bool) else query self.header = HeaderMetadata() if isinstance(header, bool) else header self.request = RequestMetadata() if isinstance(request, bool) else request self.form = FormMetadata() if isinstance(form, bool) else form self.multipart = ( MultipartFormMetadata() if isinstance(multipart, bool) else multipart ) def find_field_metadata(field_info: FieldInfo, metadata_type: Type[T]) -> Optional[T]: metadata = find_metadata(field_info, FieldMetadata) if not metadata: return None fields = metadata.__dict__ for field in fields: if isinstance(fields[field], metadata_type): return fields[field] return None def find_metadata(field_info: FieldInfo, metadata_type: Type[T]) -> Optional[T]: metadata = field_info.metadata if not metadata: return None for md in metadata: if isinstance(md, metadata_type): return md return None
Memory