parameters: (paths)
return_statement: return reduced_paths
docstring: Return a list of normalized paths with duplicates removed.
  
      The current order of paths is maintained.
docstring_summary: Return a list of normalized paths with duplicates removed.
docstring_tokens: Return a list of normalized paths with duplicates removed .
function: def normalize_and_reduce_paths(paths):
      """Return a list of normalized paths with duplicates removed.
  
      The current order of paths is maintained.
      """
      # Paths are normalized so things like:  /a and /a/ aren't both preserved.
      reduced_paths = []
      for p in paths:
          np = os.path.normpath(p)
          # XXX(nnorwitz): O(n**2), if reduced_paths gets long perhaps use a set.
          if np not in reduced_paths:
              reduced_paths.append(np)
      return reduced_paths
function_tokens: def normalize_and_reduce_paths ( paths ) : # Paths are normalized so things like:  /a and /a/ aren't both preserved. reduced_paths = [ ] for p in paths : np = os . path . normpath ( p ) # XXX(nnorwitz): O(n**2), if reduced_paths gets long perhaps use a set. if np not in reduced_paths : reduced_paths . append ( np ) return reduced_paths