From d06ed34d3b8a0dcbd09af3dfca1aedfba651f6bb Mon Sep 17 00:00:00 2001 From: vermeul <swen@ethz.ch> Date: Thu, 22 Jun 2017 11:05:34 +0200 Subject: [PATCH] bugfix withChildren using permIds --- src/python/PyBis/pybis/pybis.py | 41 +++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/python/PyBis/pybis/pybis.py b/src/python/PyBis/pybis/pybis.py index 8750b2c2d9b..1fb4b213e12 100644 --- a/src/python/PyBis/pybis/pybis.py +++ b/src/python/PyBis/pybis/pybis.py @@ -431,26 +431,33 @@ def _gen_search_criteria(req): sreq["criteria"] = [_common_search( "as.dto.common.search.CodeSearchCriteria", val.upper() )] - elif key == "permid": - sreq["criteria"] = [_common_search( - "as.dto.common.search.PermIdSearchCriteria", val - )] elif key == "identifier": - si = split_identifier(val) - sreq["criteria"] = [] - if "space" in si: - sreq["criteria"].append( - _gen_search_criteria({"space": "Space", "code": si["space"]}) - ) - if "experiment" in si: - pass + if is_identifier(val): + # if we have an identifier, we need to search in Space and Code separately + si = split_identifier(val) + sreq["criteria"] = [] + if "space" in si: + sreq["criteria"].append( + _gen_search_criteria({"space": "Space", "code": si["space"]}) + ) + if "experiment" in si: + pass - if "code" in si: - sreq["criteria"].append( - _common_search( - "as.dto.common.search.CodeSearchCriteria", si["code"].upper() + if "code" in si: + sreq["criteria"].append( + _common_search( + "as.dto.common.search.CodeSearchCriteria", si["code"].upper() + ) ) - ) + elif is_permid(val): + sreq["criteria"] = [_common_search( + "as.dto.common.search.PermIdSearchCriteria", val + )] + else: + # we assume we just got a code + sreq["criteria"] = [_common_search( + "as.dto.common.search.CodeSearchCriteria", val.upper() + )] elif key == "operator": sreq["operator"] = val.upper() -- GitLab