File size: 1,495 Bytes
e75a247
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# As the data and code is moved frequently between machines, we give the paths (to the data, config file, etc...) in one of the following ways:
#  - either as an absolute path, i.e. /eos/home-g/gkrzmanc/jetclustering/code/config_files/config_jets.yaml
#  - or as a path relative to either the SVJ_CODE_ROOT, SVJ_DATA_ROOT, SVJ_PREPROCESSED_DATA_ROOT, or RESULTS_ROOT directories: config_files/config_jets.yaml
# these env_vars are set in env.sh and this file is not copied between machines, i.e. lxplus and tier3.

import os

def get_path(path, type="code", fallback=False):
    assert type in ["code", "data", "preprocessed_data", "results"]
    path = path.strip()
    if path.startswith("/"):
        return path
    if type == "code":
        return os.path.join(os.environ["SVJ_CODE_ROOT"], path)
    if type == "data":
        return os.path.join(os.environ["SVJ_DATA_ROOT"], path)
    if type == "preprocessed_data":
        print("Getting query for path", path, " | Preproc. data root=", os.environ["SVJ_PREPROCESSED_DATA_ROOT"])
        return os.path.join(os.environ["SVJ_PREPROCESSED_DATA_ROOT"], path)
    if type == "results":
        results = os.path.join(os.environ["SVJ_RESULTS_ROOT"], path)
        print("Checking if", results, "exists")
        if fallback and not os.path.exists(results):
            print("Returning fallback")
            return os.path.join(os.environ["SVJ_RESULTS_ROOT_FALLBACK"], path) # return the record on the Storage Element
        return results