L iUddlmZddlZddlZddlmZddlmZeje Z er ddlm Z ddl m Z GddZerdd lmZeed Zd ed <yy) ) annotationsN) TYPE_CHECKING)ArtifactNotFound)BinaryIO) ArtifactStorecZeZdZdZddddd d dZddZdd Zdd Zdd Zy )BackoffaAn artifact store's middleware for exponential backoff. Example: .. code-block:: python import optuna from optuna.artifacts import upload_artifact from optuna.artifacts import Boto3ArtifactStore from optuna.artifacts import Backoff artifact_store = Backoff(Boto3ArtifactStore("my-bucket")) def objective(trial: optuna.Trial) -> float: ... = trial.suggest_float("x", -10, 10) file_path = generate_example(...) upload_artifact( artifact_store=artifact_store, file_path=file_path, study_or_trial=trial, ) return ... g?) max_retries multiplier min_delay max_delayc||_|dkDsJ|dkDsJ|dkDsJ||kDsJ||_||_||_||_y)Nr)_backend _max_retries _multiplier _min_delay _max_delay)selfbackendr rrrs _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/optuna/artifacts/_backoff.py__init__zBackoff.__init__-s[  QA~~1}}9$$$'%##cbt|j|j|zz|jS)N)minrrr)rn_retrys r_get_sleep_secszBackoff._get_sleep_secsBs'4??T%5%5w%>>PPrcft|jD]} |jj|cSJd#t$rt $r:}||jdz k(rt jd|d||Yd}~nd}~wwxYwtj|j|)NFailed to open artifact= n_retry=exc_infozmust not reach here) rangerr open_readerr Exception_loggererrortimesleeprr artifact_idies rr'zBackoff.open_readerEst(() 0A d}}00== 0 ,++u$  d))A--MM$<[MSTRU"VabMcc  d JJt++A. /s?B 0BB c~t|jD] } |jj||yy#t$rt $r:}||jdz k(rt jd|d||Yd}~nd}~wwxYw|jdtj|j|)Nr!r"r#r$r) r&rrwriterr(r)r*seekr+r,r)rr. content_bodyr/r0s rr2z Backoff.writeSst(() 0A d ##K> 0$  d))A--MM$<[MSTRU"VabMcc  d   a JJt++A. /s:B 0BBcPt|jD]B} |jj|tj|j|Dy#t$rt $r7}||jdz k(rt jd||Yd}~kd}~wwxYw)Nr!zFailed to delete artifact=r$) r&rrremoverr(r)r*r+r,rr-s rr6zBackoff.removebst(() 0A Z $$[1 JJt++A. / 0$  Z))A--MM$>{m"LWXMYY  ZsAB%.-B  B%N) rrr intrfloatrr8rr8returnNone)rr7r9r8)r.strr9r)r.r;r4rr9r:)r.r;r9r:) __name__ __module__ __qualname____doc__rrr'r2r6rrr r si:$$ $  $  $$ $*Q , 0 0rr )FileSystemArtifactStore.r_) __future__rloggingr+typingroptuna.artifacts.exceptionsr getLoggerr<r)roptuna.artifacts._protocolrr optuna.artifactsrArC__annotations__r@rrrLsd" 8 '  H %8Z0Z0z96s;