
    j?                    *    d Z ddlmZ ddlmZ d
dZd	S )u  Helpers that need cross-module job lookup but belong to no single module.

Both ``face`` and ``training`` routes need to resolve a job from multiple
sources (in-memory running state → SQLite persisted state).  Putting this
logic here avoids circular imports between module packages.
    )annotations)Anyjob_idstrreturndict[str, Any] | Nonec                x    ddl m} ddlm} ddlm}  ||           }||S  ||           }||S  ||           S )zLook up a job by *job_id* across all job stores.

    Checks (in order): detection in-memory, upload in-memory, SQLite.
    Returns ``None`` when not found anywhere.
    r   )get_job_snapshot)get_upload_job_snapshot)get_job)&modules.detection.services.job_servicer
   -modules.detection.services.upload_job_servicer   shared.db.sqliter   )r   r
   r   get_saved_jobjob
upload_jobs         3/home/longshao/multi-rider-rag/shared/job_lookup.pyresolve_jobr      s     HGGGGGUUUUUU999999

6
"
"C

((00J=       N)r   r   r   r   )__doc__
__future__r   typingr   r    r   r   <module>r      sS     # " " " " "      ! ! ! ! ! !r   