BIH-CEI / phenopacket_mapper

A Python library to map from any bespoke tabular data format to the GA4GH Phenopacket schema.
https://bih-cei.github.io/phenopacket_mapper/latest/
MIT License
0 stars 0 forks source link

update recursive get #188

Open frehburg opened 5 hours ago

frehburg commented 5 hours ago
def recursive_dict_call(d: Dict, keys: List, default=None):
    def index_get(key):
        if '[' in key:
            key = key.split('[')[0]
            id_ = int(key.split('[')[1].split(']')[0])
            return d.get(key, default)[id_]
        return d.get(key, default)

    if not isinstance(d, dict):
        return d
    elif len(keys) == 1:
        return index_get(keys[0])
    else:
        return recursive_dict_call(index_get(keys[0]), keys[1:])
frehburg commented 5 hours ago
def recursive_dict_call(d: Dict, keys: List, default=None):
    print(keys[0], '[' in keys[0], keys)

    def index_get(key):
        if '[' in key:
            key = key.split('[')[0]
            id_ = int(key.split('[')[1].split(']')[0])
            return d.get(key, default)[id_]
        return d.get(key, default)

    if not isinstance(d, dict):
        return d
    elif len(keys) == 1:
        return index_get(keys[0])
    else:
        return recursive_dict_call(index_get(keys[0]), keys[1:])