
    -ji{                        S SK Jr  S SKrS SKJr  S SKrS SKJr  S SKJ	r	  \" 5        r
S SKrSSS5        \
R                  5       (       d  \rS/r      S
S jrSS jr        SS	 jrg! , (       d  f       NF= f)    )annotationsN)Any)
try_import)
TrialStatepdc                >  ^ 0 nU H%  nUR                  S5      (       a  USS  nOUnXBU'   M'     [        R                  " [        5      mSnU R                  n/ nU R                  SS9 GH  n0 n	UR                  5        GHm  u  p4[        X5      n
[        U
[        5      (       a  U
R                  n
[        U
[        5      (       a5  U
R                  5        H  u  pXXK4'   TU   R                  XK45        M!     M|  US:X  a^  U
c  S /[        U R                  5      -  OU
nUc  [        U5      O
[!        Xm5      nU H  u  pXXK4'   TU   R                  XK45        M!     M  [        U
["        5      (       a1  [        U
5       H  u  pXXK4'   TU   R                  XK45        M!     GM&  US:X  a'  Uc  UOUS   nXXK4'   TU   R                  XK45        GMS  XXE4'   TU   R                  XE45        GMp     UR%                  U	5        GM     ['        U4S	 jU 5       / 5      nX4$ )
N_    Fdeepcopyvaluesvaluer   c              3  N   >#    U  H  oT;   d  M
  [        TU   5      v   M     g 7fN)sorted).0k
column_aggs     Q/home/james-whalen/.local/lib/python3.13/site-packages/optuna/study/_dataframe.py	<genexpr>7_create_records_and_aggregate_column.<locals>.<genexpr>P   s$     A1j	
1		s   	%%)
startswithcollectionsdefaultdictsetmetric_names
get_trialsitemsgetattr
isinstancer   namedictaddlen
directions	enumerateziplistappendsum)studyattrsattrs_to_df_columnsattr	df_columnnon_nested_attrr   recordstrialrecordr   nested_attrnested_valuetrial_valuesiteratorcolumnsr   s                   @r   $_create_records_and_aggregate_columnr:      sC    +-??3QRII$-D!  5@4K4KC4PJO%%LG!!5!1288:ODE(E%,,

%&&16-K7CI34t$(())AB 2? ! BGvE,<,<(==TY $+ l+\8 
 2:-K7CI34t$(())AB 2: E4((1:51A-K7CI34t$(())AB 2B 1=1Eo<XY?38	/04 $$i%=>7<	344 $$i%AB=  ;@ 	vE 2H &)AA2&G     c                |    U  Vs/ s H*  nSR                  [        S [        S U5      5      5      PM,     sn$ s  snf )Nr	   c                    U $ r    cs    r   <lambda>"_flatten_columns.<locals>.<lambda>Y   s    ar;   c                    [        U 5      $ r   )strr?   s    r   rA   rB   Y   s    s1vr;   )joinfiltermap)r9   cols     r   _flatten_columnsrI   V   s8     RYYQX#CHHVK-=s)CDEQXYYYs   19c                   [         R                  5         [        U R                  SS95      S:X  a  [        R
                  " 5       $ SU;   a'  U R                  5       (       a  [        S U 5       5      n[        X5      u  p4[        R
                  " U[        R                  R                  U5      S9nU(       d  [        U5      Ul        U$ )NFr   r   r   c              3  4   #    U  H  oS :X  a  SOUv   M     g7f)r   r   Nr>   )r   r/   s     r   r   $_trials_dataframe.<locals>.<genexpr>f   s     N'/ht;s   )r9   )_importscheckr%   r   r   	DataFrame_is_multi_objectivetupler:   
MultiIndexfrom_tuplesrI   r9   )r,   r-   multi_indexr2   r9   dfs         r   _trials_dataframerV   \   s     NN 5U+,1||~%E5577NNN;EIG	gr}}'@'@'I	JB%g.
Ir;   )r,   'optuna.Study'r-   tuple[str, ...]returnz>tuple[list[dict[tuple[str, str], Any]], list[tuple[str, str]]])r9   zlist[tuple[str, str]]rY   z	list[str])r,   rW   r-   rX   rT   boolrY   z'pd.DataFrame')
__future__r   r   typingr   optunaoptuna._importsr   optuna.trial._stater   rM   pandasr   is_successfulobject__all__r:   rI   rV   r>   r;   r   <module>rd      s    "    & * \X 
 	B&=="1=C=@Z"1@Dc \s   A--
A;