
    j                    b    d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 h dZ
ddZddZddZdS )z9Validation helpers for AutoShortsBot growth test batches.    )annotationsN)Counter)Path)Any>   idctahooktitlepillarcaptionquality_scorescript_outlinevisual_conceptplatform_targetduration_secondspathr   returndict[str, Any]c                    |                      dd          5 }t          j        |          cddd           S # 1 swxY w Y   dS )z!Load a JSON test batch from disk.rzutf-8)encodingN)openjsonload)r   handles     P/home/agent/jarvis_runtime/autoshortsbot/AutoShortsBot/autoshorts/growth_plan.pyload_testbatchr      s    	3	)	) !Vy  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   9= =secondsintstrc                    | dk    rdS dS )zCClassify duration for growth testing and TikTok rewards candidates.<   tiktok_rewards_candidategrowth )r   s    r   duration_bucketr&       s    "}}))8    batchc                ~   |                      dg           }t          d |D                       }t          d |D                       }g }|D ]T}t          t          t	          |          z
            }|r,|                    |                     dd          |d           Ud |D             }|                      d          t          |          t          t          |                                                    |                     d	d
          |                     dd
          d||rt          |          nd
dS )zBReturn a compact validation summary for Telegram review and tests.ideasc              3  @   K   | ]}|                     d           V  dS )r   N)get.0ideas     r   	<genexpr>z%validate_testbatch.<locals>.<genexpr>*   s.      AA4DHHX..AAAAAAr'   c           	   3  v   K   | ]4}t          t          |                    d d                              V  5dS )r   r   N)r&   r   r,   r-   s     r   r0   z%validate_testbatch.<locals>.<genexpr>+   sB      ffX\oc$((;Mq2Q2Q.R.RSSffffffr'   r   z<missing-id>)r   missingc                T    g | ]%}t          |                    d d                    &S )r   r   )r   r,   r-   s     r   
<listcomp>z&validate_testbatch.<locals>.<listcomp>3   s.    JJJDc$((?A6677JJJr'   namer$   r   r#   )r$   r#   )r5   total_ideaspillarsduration_bucketsmissing_fieldsminimum_quality_score)
r,   r   sortedREQUIRED_IDEA_FIELDSsetappendlendictitemsmin)r(   r*   pillar_countsduration_countsr9   r/   r2   quality_scoress           r   validate_testbatchrF   '   sY   IIgr""EAA5AAAAAMff`efffffO+-N ^ ^-D		9:: 	^!!$)G)GT["\"\]]]JJEJJJN 		&!!5zz}22445566%))(A66(7(;(;<VXY(Z(Z
 
 )8F!M^!4!4!4A
 
 
r'   )r   r   r   r   )r   r   r   r    )r(   r   r   r   )__doc__
__future__r   r   collectionsr   pathlibr   typingr   r<   r   r&   rF   r%   r'   r   <module>rL      s    ? ? " " " " " "                       ! ! ! !        r'   