+
    }i                    6   R t ^ RIHt ^ RIt^ RIt^ RIHt ^ RIHt ]! ]	4      P                  4       P                  ^,          t]R,          t]P                  P                  ^ ]! ]4      4       ^ RIHt ^ RIHt ^ RIHtHt R	 R
 lt]R8X  d
   ]! 4        R# R# )u  Baseline ref-count snapshot — current ImageAsset reference state per entity.

PID/EID 의 ImageAsset (asset_type='reference') 를 entity short_id + type 별로
집계해 stdout 에 출력. fix 전 baseline 으로 기록 (uncommitted /tmp 권장).

스크립트 본문에 시나리오 의존 0건 — PID/EID 만 CLI 입력.

사용:

    backend/.venv/bin/python scripts/g4_6_baseline_refs.py       --pid <project_id> --eid <episode_id> > /tmp/g4_6_baseline_refs.txt
)annotationsN)defaultdict)Pathbackend)func)SessionLocal)EntityCanon
ImageAssetc                   V ^8  d   QhRR/# )   returnNone )formats   "scripts/g4_6_baseline_refs.py__annotate__r      s     1 1d 1    c                    \         P                  ! \        R 7      p V P                  RRR7       V P                  RRR7       V P	                  4       p\        4       p VP                  \        P                  \        P                  \        P                  \        P                  ! \        P                  4      P                  R4      \        P                   ! \        P"                  4      P                  R4      4      P%                  \        \        P&                  \        P                  8H  \        P(                  R8H  ,          \        P*                  VP,                  8H  ,          4      P/                  \        P0                  VP2                  8H  4      P5                  \        P                  \        P                  \        P                  4      P7                  \        P                  \        P                  4      P9                  4       p\;        \<        4      pV F.  pYEP                  ;'       g    R,          P?                  V4       K0  	  \A        R	VP2                   R
VP,                   24       \A        R\C        V4       24       \A        4        \E        VPG                  4       4       EF   pWF,          p\!        R V 4       4      p\!        R V 4       4      p	\A        RV R\C        V4       RV RV	 R2	4       \A        RR RRR RRR RRR 24       V F  pVP                  ;'       g    Rp
VP                  ;'       g    RR,          pVPH                  ;'       g    ^ p\K        VPL                  ;'       g    ^ 4      p\A        V
R RVR RVR RVR 24       K  	  \A        4        EK  	  VPO                  4        R#   TPO                  4        i ; i) )descriptionz--pidT)requiredz--eid	ref_countprimary_count	referenceunknownu    # baseline ref snapshot — pid=z eid=z# total entities: c              3  ^   "   T F#  qP                   ;'       g    ^ ^ 8  g   K  ^x  K%  	  R# 5i    N)r   .0rs   & r   	<genexpr>main.<locals>.<genexpr>C   s#     Hg++2B2Ba1G11g   --
-c              3  ^   "   T F#  qP                   ;'       g    ^ ^ 8  g   K  ^x  K%  	  R# 5ir   )r   r   s   & r   r    r!   D   s#     P'Qoo6J6Ja5Oqq'r"   z## u    — z entities, z with ref, z with primaryshort_idz<10 namez<30refz>5primaryz>8z(null) :N   NN)(argparseArgumentParser__doc__add_argument
parse_argsr   queryr   r$   entity_typer&   r   countr	   idlabelsum
is_primary	outerjoin	entity_id
asset_type
episode_ideidfilter
project_idpidgroup_byorder_byallr   listappendprintlensortedkeysr   intr   close)parserargsdbrowsper_typer   etypeentrieswith_refwith_primaryshortr&   r'   r(   s                 r   mainrT      s   $$9F
$/
$/D	B*HH$$''  

:==)//<../55oF Y%%7((K79((DHH46 VK**dhh67Xk**K,C,C[EUEUVXk--{/C/CDSU# 	( ,7t+<A]]//i077:  	0
%zJK"3t9+./HMMO,EoGHgHHHP'PPLCweCL>XJkR^Q__lmnZ$AfS\5*Ai^LM

..h"c*kk&&Qaoo223s1T#JaBxqEF  G - 	

s,   GO 1C=O /O O "O =4O O__main__)r-   
__future__r   r+   syscollectionsr   pathlibr   __file__resolveparents	REPO_ROOTBACKENDpathinsertstr
sqlalchemyr   app.core.databaser   app.models.projectr   r	   rT   __name__r   r   r   <module>rf      s{    #  
 # N""$,,Q/	
i
 3w<    * 61h zF r   