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

Function _populate_form

src/openrouter/utils/forms.py:24–87  ·  view source on GitHub ↗
(
    field_name: str,
    explode: bool,
    obj: Any,
    delimiter: str,
    form: Dict[str, List[str]],
)

Source from the content-addressed store, hash-verified

22
23
24def _populate_form(
25 field_name: str,
26 explode: bool,
27 obj: Any,
28 delimiter: str,
29 form: Dict[str, List[str]],
30):
31 if not _is_set(obj):
32 return form
33
34 if isinstance(obj, BaseModel):
35 items = []
36
37 obj_fields: Dict[str, FieldInfo] = obj.__class__.model_fields
38 for name in obj_fields:
39 obj_field = obj_fields[name]
40 obj_field_name = obj_field.alias if obj_field.alias is not None else name
41 if obj_field_name == "":
42 continue
43
44 val = getattr(obj, name)
45 if not _is_set(val):
46 continue
47
48 if explode:
49 form[obj_field_name] = [_val_to_string(val)]
50 else:
51 items.append(f"{obj_field_name}{delimiter}{_val_to_string(val)}")
52
53 if len(items) > 0:
54 form[field_name] = [delimiter.join(items)]
55 elif isinstance(obj, Dict):
56 items = []
57 for key, value in obj.items():
58 if not _is_set(value):
59 continue
60
61 if explode:
62 form[key] = [_val_to_string(value)]
63 else:
64 items.append(f"{key}{delimiter}{_val_to_string(value)}")
65
66 if len(items) > 0:
67 form[field_name] = [delimiter.join(items)]
68 elif isinstance(obj, List):
69 items = []
70
71 for value in obj:
72 if not _is_set(value):
73 continue
74
75 if explode:
76 if not field_name in form:
77 form[field_name] = []
78 form[field_name].append(_val_to_string(value))
79 else:
80 items.append(_val_to_string(value))
81

Callers 2

serialize_form_dataFunction · 0.85

Calls 2

_is_setFunction · 0.85
_val_to_stringFunction · 0.85

Tested by

no test coverage detected