11"""Module to handle logging submit job requests"""
22
33import logging
4+ from datetime import datetime
45from enum import Enum
56from typing import Any
67
8+ from aind_data_schema_models .data_name_patterns import build_data_name
9+
710
811class EventType (str , Enum ):
912 """Enum for event types in structured logging"""
@@ -13,6 +16,22 @@ class EventType(str, Enum):
1316 STAGE_FAILURE = "stage_failure"
1417
1518
19+ def compute_label (upload_job : dict ) -> str :
20+ """Hack to compute acquisition_name from raw user input. This can be
21+ cleaned up in the next major release."""
22+ subject_id = upload_job .get ("subject_id" )
23+ acq_datetime = datetime .fromisoformat (upload_job .get ("acq_datetime" ))
24+ platform = upload_job .get ("platform" )
25+ if platform is not None :
26+ label = f"{ platform ['abbreviation' ]} _{ subject_id } "
27+ else :
28+ label = subject_id
29+ return build_data_name (
30+ label = label ,
31+ creation_datetime = acq_datetime ,
32+ )
33+
34+
1635def log_submit_job_request (
1736 content : Any , event_type : EventType | None = None
1837) -> None :
@@ -35,7 +54,7 @@ def log_submit_job_request(
3554 ):
3655 for row in upload_jobs :
3756 subject_id = row .get ("subject_id" )
38- acquisition_name = row . get ( "s3_prefix" )
57+ acquisition_name = compute_label ( row )
3958 extra_info = {
4059 "subject_id" : subject_id ,
4160 "acquisition_name" : acquisition_name ,
0 commit comments