|
|
|
|
|
|
|
|
|
|
| import contextlib
|
| from datetime import timedelta
|
| from typing import Optional
|
|
|
| from dinov3.configs import exit_job, setup_job
|
|
|
|
|
| @contextlib.contextmanager
|
| def job_context(
|
| output_dir: Optional[str] = None,
|
| distributed_enabled: bool = True,
|
| logging_enabled: bool = True,
|
| seed: Optional[int] = 0,
|
| restrict_print_to_main_process: bool = True,
|
| distributed_timeout: timedelta | None = None,
|
| ):
|
| setup_job(
|
| output_dir=output_dir,
|
| distributed_enabled=distributed_enabled,
|
| logging_enabled=logging_enabled,
|
| seed=seed,
|
| restrict_print_to_main_process=restrict_print_to_main_process,
|
| distributed_timeout=distributed_timeout,
|
| )
|
| try:
|
| yield
|
| finally:
|
| exit_job(distributed_enabled=distributed_enabled, logging_enabled=logging_enabled)
|
|
|