MCPcopy Create free account
hub / github.com/OpenRouterTeam/python-sdk / serialize_form_data

Function serialize_form_data

src/openrouter/utils/forms.py:200–239  ·  view source on GitHub ↗
(data: Any)

Source from the content-addressed store, hash-verified

198
199
200def serialize_form_data(data: Any) -> Dict[str, Any]:
201 form: Dict[str, List[str]] = {}
202
203 if isinstance(data, BaseModel):
204 data_fields: Dict[str, FieldInfo] = data.__class__.model_fields
205 data_field_types = get_type_hints(data.__class__)
206 for name in data_fields:
207 field = data_fields[name]
208
209 val = getattr(data, name)
210 if not _is_set(val):
211 continue
212
213 metadata = find_field_metadata(field, FormMetadata)
214 if metadata is None:
215 continue
216
217 f_name = field.alias if field.alias is not None else name
218
219 if metadata.json:
220 form[f_name] = [marshal_json(val, data_field_types[name])]
221 else:
222 if metadata.style == "form":
223 _populate_form(
224 f_name,
225 metadata.explode,
226 val,
227 ",",
228 form,
229 )
230 else:
231 raise ValueError(f"Invalid form style for field {name}")
232 elif isinstance(data, Dict):
233 for key, value in data.items():
234 if _is_set(value):
235 form[key] = [_val_to_string(value)]
236 else:
237 raise TypeError(f"Invalid request body type {type(data)} for form data")
238
239 return form

Callers 1

serialize_request_bodyFunction · 0.85

Calls 5

_is_setFunction · 0.85
find_field_metadataFunction · 0.85
marshal_jsonFunction · 0.85
_populate_formFunction · 0.85
_val_to_stringFunction · 0.85

Tested by

no test coverage detected