def read_path(source, path, separator='/'):
    """Read a value from a dict supporting a deep path as a key.

    :param source: a dict to read data from
    :param path: a key or path to a key (path is delimited by `separator`)
    :keyword separator: the separator used in the path (ex. Could be "." for a
        json/mongodb type of value)
    """
    parts = path.strip(separator).split(separator)
    current = source
    for part in parts[:-1]:
        if part not in current:
            return
        current = current[part]
        if not isinstance(current, dict):
            return
    return current.get(parts[-1])
