MCPcopy Index your code
hub / github.com/github/spec-kit / normalize_integration_state

Function normalize_integration_state

src/specify_cli/integration_state.py:166–194  ·  view source on GitHub ↗

Normalize legacy and multi-install integration metadata.

(data: dict[str, Any])

Source from the content-addressed store, hash-verified

164
165
166def normalize_integration_state(data: dict[str, Any]) -> dict[str, Any]:
167 """Normalize legacy and multi-install integration metadata."""
168 legacy_key = clean_integration_key(data.get("integration"))
169 default_key = clean_integration_key(data.get("default_integration")) or legacy_key
170
171 installed = data.get("installed_integrations")
172 installed_keys = dedupe_integration_keys(installed if isinstance(installed, list) else [])
173 if not default_key and installed_keys:
174 default_key = installed_keys[0]
175 if default_key and default_key not in installed_keys:
176 installed_keys.insert(0, default_key)
177
178 settings = normalize_integration_settings(data.get("integration_settings"))
179
180 normalized = dict(data)
181 normalized["integration_state_schema"] = _normalized_integration_state_schema(
182 data.get("integration_state_schema")
183 )
184 if default_key:
185 normalized["integration"] = default_key
186 normalized["default_integration"] = default_key
187 else:
188 normalized.pop("integration", None)
189 normalized.pop("default_integration", None)
190 normalized["installed_integrations"] = installed_keys
191 normalized["integration_settings"] = {
192 key: settings[key] for key in installed_keys if key in settings
193 }
194 return normalized
195
196
197def default_integration_key(state: dict[str, Any]) -> str | None:

Calls 5

clean_integration_keyFunction · 0.85
dedupe_integration_keysFunction · 0.85
getMethod · 0.45