diff --git a/DataProcessingTools/levels.py b/DataProcessingTools/levels.py index 86ebe49..beb8907 100644 --- a/DataProcessingTools/levels.py +++ b/DataProcessingTools/levels.py @@ -57,3 +57,22 @@ def get_level_dirs(target_level, cwd=None): patterns = level_patterns_s[this_idx+1:target_idx+1] dirs = glob.glob(os.path.join(cwd, *patterns)) return dirs + + +def get_level_name(target_level, cwd=None): + """ + Return the name of the requested level + """ + if cwd is None: + cwd = os.getwd() + + this_level = level(cwd) + this_idx = levels.index(this_level) + target_idx = levels.index(target_level) + i = this_idx + cw = cwd + pp = "" + while i >= target_idx: + cw, pp = os.path.split(cw) + i -= 1 + return pp diff --git a/tests/test_levels.py b/tests/test_levels.py index 32878a8..72dd2e6 100644 --- a/tests/test_levels.py +++ b/tests/test_levels.py @@ -30,3 +30,7 @@ def test_level(): assert dirs[0] == "Pancake/20130923/session01/array02/./../array02" os.chdir(cwd) + + dir1 = "Pancake/20130923/session01/array02/channel33" + ln = DPT.levels.get_level_name("session", dir1) + assert ln == "session01"