Source code for utils.datasets

import json
from typing import Any


[docs] def find_dataset_id_in_dict(dictionary: dict) -> str | None: """Find dataset_id in a dictionary.""" dataset_id = dictionary.get("dataset_id") if dataset_id is None: dataset_id = dictionary.get("datasetId") if dataset_id is None: dataset_id = dictionary.get("study_id") if dataset_id is None: dataset_id = dictionary.get("studyId") if dataset_id is None: dataset_id = dictionary.get("common_report_id") if dataset_id is None: dataset_id = dictionary.get("commonReportId") if dataset_id is None: query_data = dictionary.get("queryData") if query_data: if isinstance(query_data, str): query_data = json.loads(query_data) dataset_id = find_dataset_id_in_dict(query_data) return dataset_id
[docs] def find_dataset_id_in_request(request: Any) -> str | None: """Find dataset_id in a DRF request.""" dataset_id = find_dataset_id_in_dict(request.query_params) if dataset_id is None: dataset_id = find_dataset_id_in_dict(request.data) if dataset_id is None: dataset_id = find_dataset_id_in_dict(request.resolver_match.kwargs) if dataset_id is None: dataset_id = request.parser_context.get("kwargs", {}).get( "common_report_id", None, ) return dataset_id