code: def _cache_normalize_path(path):
      
      # _module_file calls abspath on every path in sys.path every time it's
      # called; on a larger codebase this easily adds up to half a second just
      # assembling path components. This cache alleviates that.
      try:
          return _NORM_PATH_CACHE[path]
      except KeyError:
          if not path:  # don't cache result for ''
              return _normalize_path(path)
          result = _NORM_PATH_CACHE[path] = _normalize_path(path)
          return result
docs: abspath with caching