def _dictionary_to_column_paths(dictionary, prefix=tuple()):
    """Convert a dictionary to the column paths within this dictionary

    For example, if the argument is
    {
      1 : {
            'a' : True,
            'b' : False
          },
      (10, 'blah') : SomeObject()
    }

    The result would be
    [
      (1, 'a'),
      (1, 'b'),
      ((10, 'blah'))
    ]
    """
    paths = set()
    for key, val in dictionary.items():
        if isinstance(val, dict):
            paths.update(_dictionary_to_column_paths(val, prefix + (key,)))
        else:
            paths.add(prefix + (key,))
    return paths