(
headers_params: Any,
gbls: Any,
header_values: Dict[str, str],
skip_fields: List[str],
)
| 31 | |
| 32 | |
| 33 | def _populate_headers( |
| 34 | headers_params: Any, |
| 35 | gbls: Any, |
| 36 | header_values: Dict[str, str], |
| 37 | skip_fields: List[str], |
| 38 | ) -> List[str]: |
| 39 | globals_already_populated: List[str] = [] |
| 40 | |
| 41 | if not isinstance(headers_params, BaseModel): |
| 42 | return globals_already_populated |
| 43 | |
| 44 | param_fields: Dict[str, FieldInfo] = headers_params.__class__.model_fields |
| 45 | for name in param_fields: |
| 46 | if name in skip_fields: |
| 47 | continue |
| 48 | |
| 49 | field = param_fields[name] |
| 50 | f_name = field.alias if field.alias is not None else name |
| 51 | |
| 52 | metadata = find_field_metadata(field, HeaderMetadata) |
| 53 | if metadata is None: |
| 54 | continue |
| 55 | |
| 56 | value, global_found = _populate_from_globals( |
| 57 | name, getattr(headers_params, name), HeaderMetadata, gbls |
| 58 | ) |
| 59 | if global_found: |
| 60 | globals_already_populated.append(name) |
| 61 | value = _serialize_header(metadata.explode, value) |
| 62 | |
| 63 | if value != "": |
| 64 | header_values[f_name] = value |
| 65 | |
| 66 | return globals_already_populated |
| 67 | |
| 68 | |
| 69 | def _serialize_header(explode: bool, obj: Any) -> str: |
no test coverage detected