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

Function _populate_path_params

src/openrouter/utils/url.py:49–138  ·  view source on GitHub ↗
(
    path_params: Any,
    gbls: Any,
    path_param_values: Dict[str, str],
    skip_fields: List[str],
)

Source from the content-addressed store, hash-verified

47
48
49def _populate_path_params(
50 path_params: Any,
51 gbls: Any,
52 path_param_values: Dict[str, str],
53 skip_fields: List[str],
54) -> List[str]:
55 globals_already_populated: List[str] = []
56
57 if not isinstance(path_params, BaseModel):
58 return globals_already_populated
59
60 path_param_fields: Dict[str, FieldInfo] = path_params.__class__.model_fields
61 path_param_field_types = get_type_hints(path_params.__class__)
62 for name in path_param_fields:
63 if name in skip_fields:
64 continue
65
66 field = path_param_fields[name]
67
68 param_metadata = find_field_metadata(field, PathParamMetadata)
69 if param_metadata is None:
70 continue
71
72 param = getattr(path_params, name) if _is_set(path_params) else None
73 param, global_found = _populate_from_globals(
74 name, param, PathParamMetadata, gbls
75 )
76 if global_found:
77 globals_already_populated.append(name)
78
79 if not _is_set(param):
80 continue
81
82 f_name = field.alias if field.alias is not None else name
83 serialization = param_metadata.serialization
84 if serialization is not None:
85 serialized_params = _get_serialized_params(
86 param_metadata, f_name, param, path_param_field_types[name]
87 )
88 for key, value in serialized_params.items():
89 path_param_values[key] = value
90 else:
91 pp_vals: List[str] = []
92 if param_metadata.style == "simple":
93 if isinstance(param, List):
94 for pp_val in param:
95 if not _is_set(pp_val):
96 continue
97 pp_vals.append(_val_to_string(pp_val))
98 path_param_values[f_name] = ",".join(pp_vals)
99 elif isinstance(param, Dict):
100 for pp_key in param:
101 if not _is_set(param[pp_key]):
102 continue
103 if param_metadata.explode:
104 pp_vals.append(f"{pp_key}={_val_to_string(param[pp_key])}")
105 else:
106 pp_vals.append(f"{pp_key},{_val_to_string(param[pp_key])}")

Callers 1

generate_urlFunction · 0.85

Calls 5

find_field_metadataFunction · 0.85
_is_setFunction · 0.85
_populate_from_globalsFunction · 0.85
_get_serialized_paramsFunction · 0.85
_val_to_stringFunction · 0.85

Tested by

no test coverage detected