
    vh                        S r SSKrSSKrSSKJr  SSKJr   " S S5      r\S:X  GaF  \	" S5        \" 5       r
\	" S	5        \
R                  / S
QS5      r\S   (       aS  \S   r\	" S\S    35        \	" S\S    35        \	" S\S    35        \	" S\;   a  S\R                  SS5      S 3OS5        \	" S5        \
R                  / SQ5      r\S   (       a  \	" S\S    35        \	" S\S    35        \	" S5        \
R!                  / S Q/ S!QS"S#5      r\S   (       a"  \	" S$\S%   S&    35        \	" S'\S%   S(    35        \	" S)5        \	" S*5        \	" S+5        \	" S,5        \	" S-5        \	" S.5        gg)/z9
Data Analyzer - Eden can analyze data and find insights
    N)Counter)Pathc                   :    \ rS rSrS rS	S jrS rS
S jrS rSr	g)DataAnalyzer	   c                     / U l         g )Nanalyses)selfs    C/home/james-whalen/eden-agi-project/core/reasoning/data_analyzer.py__init__DataAnalyzer.__init__
   s	        c           
         U(       d  SSS.$  U[        U5      [        R                  " U5      [        R                  " U5      [	        U5      [        U5      [        U5      [	        U5      -
  S.n[        U5      S:  a2  [        R                  " U5      US'   [        R                  " U5      US'   U R                  R                  U5        SUS	.$ ! [         a  nS[        U5      S.s S
nA$ S
nAff = f)z.Analyze numeric data - mean, median, std, etc.FzNo data providedsuccesserror)labelcountmeanmedianminmaxrange   stdevvarianceT)r   analysisN)len
statisticsr   r   r   r   r   r   r
   append	Exceptionstr)r   datar   r   es        r   analyze_numeric_data!DataAnalyzer.analyze_numeric_data   s    $/ABB	7T"-$++D14y4yTSY.H 4y1}$.$4$4T$:!'1':':4'@$MM  *#:: 	7$s1v66	7s   CC 
C3C.(C3.C3c                     U(       d  SSS.$ [        U5      nUR                  S5      nS[        U5      U[        U5      S.$ )z%Find patterns and frequencies in dataFzNo datar      T)r   unique_valuesmost_commontotal_items)r   r+   r   )r   r$   counterr+   s       r   find_patternsDataAnalyzer.find_patterns'   sI    $y99$-))!,  \&t9	
 	
r   c                 L    U R                  X5      nU R                  X$5      nUS   (       a
  US   (       d  SSS.$ US   nUS   nUS   US   -
  US   US   -
  US   US   :  a  UOUUS   US   :  a  UOUS	.n	S
U	S.$ ! [         a  n
S[        U
5      S.s Sn
A
$ Sn
A
ff = f)zCompare two numeric datasetsr   FzAnalysis failedr   r   r   r   r   )mean_differencemedian_differencelarger_meanlarger_rangeT)r   
comparisonN)r&   r"   r#   )r   data1data2label1label2	analysis1	analysis2a1a2r5   r%   s              r   compare_datasetsDataAnalyzer.compare_datasets6   s    	711%@I11%@Ii(Yy-A#(3DEE:&B:&B $&f:6
#:%'\BxL%@)+Fbj)@vf*,W+7*C	J  $:>> 	7$s1v66	7s#   :B AB 
B#BB#B#c                 n   [        U5      nUR                  5       (       d  SSS.$  UR                  S:X  aa  [        US5       n[        R
                  " U5      nSSS5        SS[        W[        5      (       a  [        UR                  5       5      S
.$ S	S
.$ UR                  S:X  aC  [        US5       nUR                  5       nSSS5        SS[        W5      U(       a  US   S.$ SS.$ SSS.$ ! , (       d  f       N= f! , (       d  f       NB= f! [         a  nS[        U5      S.s SnA$ SnAff = f)z"Analyze data from CSV or JSON fileFzFile not foundr   z.jsonrNTjsonlist)r   typekeysz.csvcsvr    )r   rD   rowspreviewzUnsupported file type)r   existssuffixopenrB   load
isinstancedictrC   rE   	readlinesr   r"   r#   )r   	file_pathpathfr$   linesr%   s          r   analyze_fileDataAnalyzer.analyze_fileN   s   I{{}}$/?@@	7{{g%$_99Q<D %#'V`aegkVlVldiikARyyrxyy&$_KKME %#'E
chW\]^W_qqnpqq $)3JKK %_
 %_  	7$s1v66	7se   D C09D D D 4D!D 'D +D 0
C>:D 
DD 
D4D/)D4/D4r	   N)r$   )z	Dataset 1z	Dataset 2)
__name__
__module____qualname____firstlineno__r   r&   r.   r>   rU   __static_attributes__ r   r   r   r   	   s    74
707r   r   __main__zDATA ANALYZER TESTu-   
📊 Analyzing dataset: [10, 20, 30, 40, 50])
         (   2   z	Test Datar   r   z	   Mean: r   z   Median: r   z
   Range: r   r   z   Std Dev: zN/Az.2frG   u9   
🔍 Finding patterns in: ['a', 'b', 'a', 'c', 'a', 'b'])abrc   crc   rd   z   Unique values: r*   z   Most common: r+   u   
⚖️  Comparing datasets:)r^   r_   r`   )      #   zGroup AzGroup Bz   Mean difference: r5   r1   z   Larger mean: r3   u   
📈 Eden can now:z!   - Analyze numeric data (stats)z"   - Find patterns and frequenciesz   - Compare datasetsz   - Process CSV/JSON filesu   
✅ DATA ANALYZER OPERATIONAL)__doc__rB   r    collectionsr   pathlibr   r   rW   printanalyzerr&   resultrc   getr.   r>   r\   r   r   <module>rp      s      [7 [7z z	
~H 

:;**+?MFi:	!F)%&AhK=)*
1W:,'(GqLQUU7E2378bQ 

FG##$BCFi"6/#:";<= !6 789 

)*&&|\9iXFi$VL%9:K%L$MNO !5m!D EFG	
 !	
-.	
./	
!"	
'(	
+,G r   