diff --git a/app/cmdparse/extractors.py b/app/cmdparse/extractors.py new file mode 100644 index 0000000..6710b39 --- /dev/null +++ b/app/cmdparse/extractors.py @@ -0,0 +1,25 @@ +"""Field extraction utilities.""" + +from typing import Any, Dict, List + + +def extract_fields(data: List[Dict[str, Any]], fields: List[str]) -> List[Dict[str, Any]]: + """Extract specified fields from parsed data.""" + result = [] + for item in data: + extracted = {} + for field in fields: + if '.' in field: + parts = field.split('.') + value = item + for part in parts: + if isinstance(value, dict): + value = value.get(part) + else: + value = None + break + extracted[field] = value + else: + extracted[field] = item.get(field) + result.append(extracted) + return result