L ioddlmZddlmZddlmZddlZddlmZddlmZddl Z ddl Z ddl Z ddl mZddl mZdd l mZdd lmZdd lmZdd lmZdd lmZdgZe j4j7eZddZer$ddlZ e jBjDjFZ$ ddZ%ddZ&ddZ'ddZ( ddZ) d ddZ*d dZ+d!dZ,d"dZ-y)#) annotations)Callable)SequenceN)Any)cast)CategoricalDistribution)FloatDistribution)IntDistribution)Study)StudyDirection) FrozenTrial)_plotly_imports is_availablec>tjjS)aReturns whether visualization with plotly is available or not. .. note:: :mod:`~optuna.visualization` module depends on plotly version 4.0.0 or higher. If a supported version of plotly isn't installed in your environment, this function will return :obj:`False`. In such case, please execute ``$ pip install -U plotly>=4.0.0`` to install plotly. Returns: :obj:`True` if visualization with plotly is available, :obj:`False` otherwise. )r_imports is_successfula/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/optuna/visualization/_utils.pyrrs  # # 1 1 33rct|tr|g}n|}|td|Dr td||dk(rt j dyyy)Nc3<K|]}|jywN)_is_multi_objective).0studys r z#_check_plot_args..<sOee779Osz[If the `study` is being used for multi-objective optimization, please specify the `target`.zObjective ValuezQ`target` is specified, but `target_name` is the default value, 'Objective Value'.) isinstancer any ValueErrorwarningswarn)rtarget target_namestudiess r_check_plot_argsr%1se %' ~#OwOO +  k->> _ ?rc|D]E}||jvr|j|}t|ttfxr |j cSy)NF)params distributionsrr r logtrialsparamtrialdists r _is_log_scaler/HsSS  $ ""5)$!2O DER$((R S rc|D]l}||jvr|j|}t|ttfryt|t rt d|jDcSJdy)NTc3nK|]-}t|ttfxrt|t /ywr)rintfloatbool)rvs rrz _is_numerical..Zs2LM 1sEl+GJq$4G0GGs35zShould not reach.)r'r(rr r rallchoicesr*s r _is_numericalr8Qs .  $ ""5) d_.?@ A 5 6QUQ]Q]  .- -5 . rc|Dcgc] }||jvs|j|"}}t||r|Sttt|Scc}wr)r'r8listmapstr)r+p_nametvaluess r_get_param_valuesr@bsP(. E1&AHH2Dahhv EF EVV$ C !!Fs AAct}|D]B}|D];}||jjvs |j|jBD|S)aUtility function for ``plot_parallel_coordinate``. If trial's parameters do not contain a parameter in ``used_param_names``, ``plot_parallel_coordinate`` methods do not use such trials. Args: trials: List of ``FrozenTrial``s. used_param_names: The parameter names used in ``plot_parallel_coordinate``. Returns: A set of invalid trial numbers. )setr'keysaddnumber)r+used_param_namesskipped_trial_numbersr- used_params r_get_skipped_trial_numbersrIis\$ E* J!2!2!44%))%,,7  ! rc p|dd}|}g}|D]c}||} t|}tj|s'|s/tjd|j dS|j|e|S#ttf$r1tjd|j dt |dwxYw)Nc6tt|jSr)rr3value)r>s r_targetz"_filter_nonfinite.._targetsqww' 'rTrialz's target value z could not be cast to float.zTrial zG is omitted in visualization because its objective value is inf or nan.)r>r returnr3) r3r TypeErrorr r!rEreprnpisfinite_loggerwarningappend)r+r" with_messagerMfiltered_trialsr-rLs r_filter_nonfiniterYs~ ()+O*u  %LE{{5!U\\N+AA  " "5 )-*0 %     MM ~%5d5k]B^_   s A55AB5cH|duxs|jtjk(Sr) directionr MINIMIZE)rr"s r_is_reverse_scaler]s!   KN4K4K!KKrcf tj||S#t$rt|cYSwxYwr)jsondumpsrPr<)rLs r_make_json_compatibleras1 5 5zs 00c$|jjDcic]\}}|t|}}}|rd|ini}tj|j |j |jd|d}|jddScc}}w)N user_attrs)rEr?r')indent z
) rcitemsrar_r`rEr?r'replace)r-keyrLrcuser_attrs_dicttexts r_make_hovertextrlsFKFVFVF\F\F^_ U#,U33_J_4>|Z0BO ::llllll    D <<f %%`sB )rOr4)rzStudy | Sequence[Study]r"%Callable[[FrozenTrial], float] | Noner#r<rONone)r+list[FrozenTrial]r,r<rOr4)r+ror=r<rOz list[Any])r+rorFz Sequence[str]rOzset[int])NT)r+ror"rmrWr4rOro)rr r"rmrOr4)rLrrOr)r-r rOr<). __future__rcollections.abcrrr_typingrrr numpyrRoptunaoptuna.distributionsrr r optuna.studyr optuna.study._study_directionr optuna.trialr optuna.visualizationr__all__logging get_logger__name__rTr plotly.colorsplotlycolors sequentialBlues COLOR_SCALEr%r/r8r@rIrYr]rarlrrrrs"$$  8208$0   .. # #H -4">--**00K " 1    .""! !1>! !:59) ) 1)) )XL &r