
    #0j                        d Z ddlmZ ddlmZ ddlmZ ddlZddlm	Z	 ddl
mZ  e	e      j                         j                  Zedz  Zd	 Zed
k(  r e        yy)u  Tool esplorativo: ranking delle 9 keyword per volume di ricerca relativo.

SerpApi Compare limit = 5 keyword/call. Per rankare 9, faccio 2 call con Dementia
come ANCHOR comune in entrambe → normalizzo i risultati su Dementia.

Output: lista ordinata desc per "average score normalizzato".
Costa 2 chiamate SerpApi.

Run:
    cd ~/agents && uv run python -m projects.symetrics_trends.betterbrain.rank_keywords
    )annotations)mean)AnyN)Path)serpapi_trendszconfig.yamlc                 \   t        t              5 } t        j                  |       }d d d        d   }|d   dt	        dt        |       d       t	        d| d       d}||vrt	        d	| d
       y |D cg c]
  }||k7  s	| }}|g|d d z   }|g|dd  z   }t	        d|        t	        d| d       fd}t	        d        ||      }	t	        d        ||      }
|	|   dkD  r|
|   dkD  r|	|   |
|   z  }nd}i }|	j                         D ]
  \  }}|||<    |
j                         D ]  \  }}||k7  s||z  ||<    t        |j                         d d      }t	        d| d|	|   dd       t        |d      D ]D  \  }\  }}|dk(  rdn|dk(  rdn|dk(  rdnd }|d!k  rd"nd#}t	        d | d$|d%d |d&d'|d(| 	       F |d d! D cg c]  \  }}|	 }}}t	        d)       t	        d*       |D ]  }t	        d+| d,        y # 1 sw Y   xY wc c}w c c}}w )-Nkeywordsgeoz	today 3-mzRanking z keyword US su ultimi 3 mesi...z
Keywords: 
DementiazERROR: anchor 'z' deve essere in keywords   zBatch 1 (compare): zBatch 2 (compare): c                   t        j                  |       }|j                  dg       }|s| D ci c]  }|d c}S i }| D ]3  }|D cg c]  }|j                  |d       }}|rt        |      nd||<   5 |S c c}w c c}w )Nrowsg        r   )r   fetch_comparegetr   )	batchresultr   kwavgrvaluesr
   	timeframes	          K/Users/sandro/agents/projects/symetrics_trends/betterbrain/rank_keywords.pyfetch_and_avgzmain.<locals>.fetch_and_avg3   s    --eS)Dzz&"%&+,eBGe,,B,01DqaeeBlDF1&,d6l#CG  
 - 2s   
A:	A?zFetching batch 1...zFetching batch 2...r   g      ?c                    | d   S )N    )xs    r   <lambda>zmain.<locals>.<lambda>P   s    AaD    T)keyreversez(
=== RANKING (avg score normalizzato su =z.1fz) ===r   u   🥇   u   🥈   u   🥉z     u
    ← TOP 5 z #z>230sz	  score: z6.1fz
=== SUGGESTED compare_set ===zcompare_set:z  - "")	openCONFIG_PATHyaml	safe_loadprintlenitemssorted	enumerate)fcfgr	   anchorkothersbatch1batch2r   avg1avg2scalecombinedr   vrankediscoremarkermarker_in_top5_top5r
   r   s                         @@r   mainrF      s   	k	annQ 
:H
e*CI	HS]O#B
CD	Jxj
#$FXx'@AB "1AQ&[aF1Xr
"FXqr
"F	x
()	xr
*+	 

  D	
  D F|aDL1,VtF|+HA A<u9HRL  HNN$.$GF	5fXQtF|C>PPU
VW#FA.;B6!q&avUY)*aR6("QrF"RHIeD\.AQRS /
 #2AJ'J52qBJD'	+-	.bTm } 
	 2X (s   H=
H#H#H(H __main__)__doc__
__future__r   
statisticsr   typingr   r,   pathlibr   projects.symetrics_trends.libr   __file__resolveparentHEREr+   rF   __name__r   r    r   <module>rS      s]   
 #     8 H~&&]"@F zF r    