code: def iter_path_splits(path):
      
      split_path = path.split('.')
      for i in range(len(split_path)):
          p1 = join_paths(*split_path[:i])
          p2 = join_paths(*split_path[i:])
          yield p1, p2
docs: Iterate over possible splits of a dotted path.
  
      The first part can be empty the second should not be.
  
      Example:
      >>> list(iter_path_splits('foo.bar.baz'))
      [('',        'foo.bar.baz'),
       ('foo',     'bar.baz'),
       ('foo.bar', 'baz')]