def __descend_sections(self, key, create=False):
        """Traverse the nested mappings down to the last layer
        """
        if self.base is None:
            raise KeyError("Cannot access key in empty mapping")
        try:
            split_name = key.split(self.SECTION_SEPARATOR)
        except __HOLE__ as err:
            raise TypeError("Key must be a string ('%s')" % err)
        level = 0
        section = self.base
        # Iterate through the sections
        while level < len(split_name) - 1:
            try:
                section = section[split_name[level]]
                level += 1
            except KeyError as err:
                if not create:
                    raise KeyError(
                        "Section '%s' does not exist in '%s'" % (
                            split_name[level],
                            self.SECTION_SEPARATOR.join(split_name[:level])))
                else:
                    section[split_name[level]] = self._new_section(section,
                                                                   level)
                    section = section[split_name[level]]
                    level += 1

        subkey = split_name[level]
        return section, subkey
dataset/ETHPy150Open duerrp/pyexperiment/pyexperiment/utils/HierarchicalMapping.py/HierarchicalMapping.__descend_sections