old_contents: """Notebook related utilities
  
  Authors:
  
  * Brian Granger
  """
  
  #-----------------------------------------------------------------------------
  #  Copyright (C) 2011  The IPython Development Team
  #
  #  Distributed under the terms of the BSD License.  The full license is in
  #  the file COPYING, distributed as part of this software.
  #-----------------------------------------------------------------------------
  
  import os
  from urllib import quote, unquote
  
  from IPython.utils import py3compat
  
  #-----------------------------------------------------------------------------
  # Imports
  #-----------------------------------------------------------------------------
  
  def url_path_join(*pieces):
      """Join components of url into a relative url
  
      Use to prevent double slash when joining subpath. This will leave the
      initial and final / in place
      """
      initial = pieces[0].startswith('/')
      final = pieces[-1].endswith('/')
      stripped = [s.strip('/') for s in pieces]
      result = '/'.join(s for s in stripped if s)
      if initial: result = '/' + result
      if final: result = result + '/'
      if result == '//': result = '/'
      return result
  
  def path2url(path):
      """Convert a local file path to a URL"""
      pieces = [ quote(p) for p in path.split(os.sep) ]
      # preserve trailing /
      if pieces[-1] == '':
          pieces[-1] = '/'
      url = url_path_join(*pieces)
      return url
  
  def url2path(url):
      """Convert a URL to a local file path"""
      pieces = [ unquote(p) for p in url.split('/') ]
      path = os.path.join(*pieces)
      return path
      
  def url_escape(path):
      """Escape special characters in a URL path
      
      Turns '/foo bar/' into '/foo%20bar/'
      """
      parts = py3compat.unicode_to_str(path).split('/')
      return u'/'.join([quote(p) for p in parts])
  
  def url_unescape(path):
      """Unescape special characters in a URL path
      
      Turns '/foo%20bar/' into '/foo bar/'
      """
      return u'/'.join([
          py3compat.str_to_unicode(unquote(p))
          for p in py3compat.unicode_to_str(path).split('/')
      ])
  
  
new_contents: """Notebook related utilities
  
  Authors:
  
  * Brian Granger
  """
  
  #-----------------------------------------------------------------------------
  #  Copyright (C) 2011  The IPython Development Team
  #
  #  Distributed under the terms of the BSD License.  The full license is in
  #  the file COPYING, distributed as part of this software.
  #-----------------------------------------------------------------------------
  
  import os
  try:
      from urllib.parse import quote, unquote
  except ImportError:
      from urllib import quote, unquote
  
  from IPython.utils import py3compat
  
  #-----------------------------------------------------------------------------
  # Imports
  #-----------------------------------------------------------------------------
  
  def url_path_join(*pieces):
      """Join components of url into a relative url
  
      Use to prevent double slash when joining subpath. This will leave the
      initial and final / in place
      """
      initial = pieces[0].startswith('/')
      final = pieces[-1].endswith('/')
      stripped = [s.strip('/') for s in pieces]
      result = '/'.join(s for s in stripped if s)
      if initial: result = '/' + result
      if final: result = result + '/'
      if result == '//': result = '/'
      return result
  
  def path2url(path):
      """Convert a local file path to a URL"""
      pieces = [ quote(p) for p in path.split(os.sep) ]
      # preserve trailing /
      if pieces[-1] == '':
          pieces[-1] = '/'
      url = url_path_join(*pieces)
      return url
  
  def url2path(url):
      """Convert a URL to a local file path"""
      pieces = [ unquote(p) for p in url.split('/') ]
      path = os.path.join(*pieces)
      return path
      
  def url_escape(path):
      """Escape special characters in a URL path
      
      Turns '/foo bar/' into '/foo%20bar/'
      """
      parts = py3compat.unicode_to_str(path).split('/')
      return u'/'.join([quote(p) for p in parts])
  
  def url_unescape(path):
      """Unescape special characters in a URL path
      
      Turns '/foo%20bar/' into '/foo bar/'
      """
      return u'/'.join([
          py3compat.str_to_unicode(unquote(p))
          for p in py3compat.unicode_to_str(path).split('/')
      ])
  
  
subject: Fix imports in IPython.html.utils