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

Function _serialize_header

src/openrouter/utils/headers.py:69–126  ·  view source on GitHub ↗
(explode: bool, obj: Any)

Source from the content-addressed store, hash-verified

67
68
69def _serialize_header(explode: bool, obj: Any) -> str:
70 if not _is_set(obj):
71 return ""
72
73 if isinstance(obj, BaseModel):
74 items = []
75 obj_fields: Dict[str, FieldInfo] = obj.__class__.model_fields
76 for name in obj_fields:
77 obj_field = obj_fields[name]
78 obj_param_metadata = find_field_metadata(obj_field, HeaderMetadata)
79
80 if not obj_param_metadata:
81 continue
82
83 f_name = obj_field.alias if obj_field.alias is not None else name
84
85 val = getattr(obj, name)
86 if not _is_set(val):
87 continue
88
89 if explode:
90 items.append(f"{f_name}={_val_to_string(val)}")
91 else:
92 items.append(f_name)
93 items.append(_val_to_string(val))
94
95 if len(items) > 0:
96 return ",".join(items)
97 elif isinstance(obj, Dict):
98 items = []
99
100 for key, value in obj.items():
101 if not _is_set(value):
102 continue
103
104 if explode:
105 items.append(f"{key}={_val_to_string(value)}")
106 else:
107 items.append(key)
108 items.append(_val_to_string(value))
109
110 if len(items) > 0:
111 return ",".join([str(item) for item in items])
112 elif isinstance(obj, List):
113 items = []
114
115 for value in obj:
116 if not _is_set(value):
117 continue
118
119 items.append(_val_to_string(value))
120
121 if len(items) > 0:
122 return ",".join(items)
123 elif _is_set(obj):
124 return f"{_val_to_string(obj)}"
125
126 return ""

Callers 1

_populate_headersFunction · 0.85

Calls 3

_is_setFunction · 0.85
find_field_metadataFunction · 0.85
_val_to_stringFunction · 0.85

Tested by

no test coverage detected