in yourbench/utils/dataset_engine.py [0:0]
def _serialize_config_for_card(config: dict[str, Any]) -> str:
"""
Sanitize and serialize pipeline config to YAML for inclusion in dataset card.
"""
try:
import yaml
except ImportError:
raise ImportError("PyYAML is required for config serialization")
from copy import deepcopy
def _sanitize(obj, key=None):
if isinstance(obj, dict):
return {k: _sanitize(v, k) for k, v in obj.items()}
if isinstance(obj, list):
return [_sanitize(v) for v in obj]
if isinstance(obj, str):
# Keep placeholders
if obj.startswith("$"):
return obj
# Mask only api_key arguments
if key and "api_key" in key.lower():
return "$API_KEY"
# Mask OpenAI API keys
if obj.startswith("sk-"):
return "$OPENAI_API_KEY"
# Mask HuggingFace tokens
if obj.startswith("hf_"):
return "$HF_TOKEN"
return obj
# Explicitly return boolean, integer, float, and None values unchanged
if obj is None or isinstance(obj, (bool, int, float)):
return obj
return obj
sanitized = _sanitize(deepcopy(config))
return yaml.safe_dump(sanitized, sort_keys=False, default_flow_style=False)