other
- Location
scripts/dataset_search.py:738- Finding
Dataset Briefs Are Transmitted to Multiple External Services by Default
- Content
View full analysis
dict[str, Any]: if not path: return {} with open(path, "r", encoding="utf-8") as f: value = json.load(f) if not isinstance(value, dict): raise SystemExit("--brief must point to a JSON object") return value def build_query(args: argparse.Namespace, brief: dict[str, Any]) -> str: parts: list[str] = [] if args.query: parts.append(args.query) for key in ("question", "domain", "task", "geography", "period", "granularity", "modality", "format", "license"): value = brief.get(key) if isinstance(value, str): parts.append(value) for key in ("must_have", "keywords", "entities"): values = brief.get(key) if isinstance(values, list): parts.extend(str(v) for v in values) if args.region: parts.append(args.region) profile = PROFILES.get(args.profile or "general", PROFILES["general"]) parts.extend(profile.get("terms", [])) query = " ".join(p for p in parts if p) query = re.sub(r"\s+", " ", query).strip() if not query: raise SystemExit("Provide QUERY or --brief with enough fields to build a query") return query ``` The assembled query is subsequently sent to each selected source: ```python def make_search_payload(args: argparse.Namespace) -> dict[str, Any]: brief = load_brief(args.brief) query = build_query(args, brief) sources = select_sources(args.source, args.profile, brief) client = HttpClient(args.timeout) all_results: list[SearchResult] = [] statuses: list[dict[str, Any]] = [] for source in sources: results, status = search_source(source, query, args.limit, client, args.offline) statuses.append(status) ``` ### Technical Analysis The script ...[truncated 2222 chars]- Remediation
View remediation
