parameters: (path)
return_statement: return path or dot
docstring: Normalize path, eliminating double slashes, etc.
docstring_summary: Normalize path, eliminating double slashes, etc.
docstring_tokens: Normalize path eliminating double slashes etc .
function: def normpath(path):
      """Normalize path, eliminating double slashes, etc."""
      # Preserve unicode (if path is unicode)
      slash, dot = (u'/', u'.') if isinstance(path, unicode) else ('/', '.')
      if path == '':
          return dot
      initial_slashes = path.startswith('/')
      # POSIX allows one or two initial slashes, but treats three or more
      # as single slash.
      if (initial_slashes and
          path.startswith('//') and not path.startswith('///')):
          initial_slashes = 2
      comps = path.split('/')
      new_comps = []
      for comp in comps:
          if comp in ('', '.'):
              continue
          if (comp != '..' or (not initial_slashes and not new_comps) or
               (new_comps and new_comps[-1] == '..')):
              new_comps.append(comp)
          elif new_comps:
              new_comps.pop()
      comps = new_comps
      path = slash.join(comps)
      if initial_slashes:
          path = slash*initial_slashes + path
      return path or dot
function_tokens: def normpath ( path ) : # Preserve unicode (if path is unicode) slash , dot = ( u'/' , u'.' ) if isinstance ( path , unicode ) else ( '/' , '.' ) if path == '' : return dot initial_slashes = path . startswith ( '/' ) # POSIX allows one or two initial slashes, but treats three or more # as single slash. if ( initial_slashes and path . startswith ( '//' ) and not path . startswith ( '///' ) ) : initial_slashes = 2 comps = path . split ( '/' ) new_comps = [ ] for comp in comps : if comp in ( '' , '.' ) : continue if ( comp != '..' or ( not initial_slashes and not new_comps ) or ( new_comps and new_comps [ - 1 ] == '..' ) ) : new_comps . append ( comp ) elif new_comps : new_comps . pop ( ) comps = new_comps path = slash . join ( comps ) if initial_slashes : path = slash * initial_slashes + path return path or dot