File size: 1,087 Bytes
5ac1897
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from pathlib import Path
from .monitor import TimeMonitor, TimeMonitorDisabled

class ProjManager():
    root = Path(__file__).parent.parent.parent # root / lib / utils / path_manager.py
    assert (root.exists()), 'Can\'t find the path of project root.'

    configs = root / 'configs'  # Generally, you are not supposed to access deep config through path.
    inputs  = root / 'data_inputs'
    outputs = root / 'data_outputs'
    assert (configs.exists()), 'Make sure you have a \'configs\' folder in the root directory.'
    assert (inputs.exists()), 'Make sure you have a \'data_inputs\' folder in the root directory.'
    assert (outputs.exists()), 'Make sure you have a \'data_outputs\' folder in the root directory.'

    # Default values.
    cfg = None
    time_monitor = TimeMonitorDisabled()

    @staticmethod
    def init_with_cfg(cfg):
        ProjManager.cfg = cfg
        ProjManager.exp_outputs = Path(cfg.output_dir)
        if cfg.get('enable_time_monitor', False):
            ProjManager.time_monitor = TimeMonitor(ProjManager.exp_outputs, record_birth_block=False)