Skip to main content
Glama
conftest.py1.71 kB
import pytest def _recursive_extract(current_value, key_path, path_index): """Recursively extract values based on the key path.""" if path_index >= len(key_path): if isinstance(current_value, list): yield from current_value else: yield current_value else: k = key_path[path_index] if isinstance(current_value, dict): next_value = current_value.get(k) if next_value is not None: yield from _recursive_extract( next_value, key_path, path_index + 1, ) elif isinstance(current_value, list): for item in current_value: if isinstance(item, dict): next_value = item.get(k) if next_value is not None: yield from _recursive_extract( next_value, key_path, path_index + 1, ) def iter_value(field_map: dict, data: dict | list, key: str): """Iterates through a nested structure, yielding all values encountered.""" if isinstance(data, dict): # Handle new format with cBioPortal summary hits = data["variants"] if "variants" in data else data.get("hits", []) else: hits = data key_path = field_map.get(key, [key]) # num = variant number for tracking each individual variant for num, hit in enumerate(hits, 1): for value in _recursive_extract(hit, key_path, 0): yield num, value @pytest.fixture(scope="module") def it() -> callable: return iter_value

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/genomoncology/biomcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server