old_contents: import csv
  import imp
  import io
  import os
  import sys
  
  from retriever.lib.defaults import  ENCODING
  
  
  def open_fr(file_name, encoding=ENCODING, encode=True):
      """Open file for reading respecting Python version and OS differences.
  
      Sets newline to Linux line endings on Windows and Python 3
      When encode=False does not set encoding on nix and Python 3 to keep as bytes
      """
      if sys.version_info >= (3, 0, 0):
          if os.name == 'nt':
              file_obj = io.open(file_name, 'r', newline='', encoding=encoding)
          else:
              if encode:
                  file_obj = io.open(file_name, "r", encoding=encoding)
              else:
                  file_obj = io.open(file_name, "r")
      else:
          file_obj = io.open(file_name, "r", encoding=encoding)
      return file_obj
  
  
  def open_fw(file_name, encoding=ENCODING, encode=True):
      """Open file for writing respecting Python version and OS differences.
  
      Sets newline to Linux line endings on Python 3
      When encode=False does not set encoding on nix and Python 3 to keep as bytes
      """
      if sys.version_info >= (3, 0, 0):
          if encode:
              file_obj = io.open(file_name, 'w', newline='', encoding=encoding)
          else:
              file_obj = io.open(file_name, 'w', newline='')
      else:
          file_obj = io.open(file_name, 'wb')
      return file_obj
  
  
  def open_csvw(csv_file, encode=True):
      """Open a csv writer forcing the use of Linux line endings on Windows.
  
      Also sets dialect to 'excel' and escape characters to '\\'
      """
      if os.name == 'nt':
          csv_writer = csv.writer(csv_file, dialect='excel', escapechar='\\', lineterminator='\n')
      else:
          csv_writer = csv.writer(csv_file, dialect='excel', escapechar='\\')
      return csv_writer
  
  
  def to_str(object, object_encoding=sys.stdout):
      if sys.version_info >= (3, 0, 0):
          enc = object_encoding.encoding
          return str(object).encode(enc, errors='backslashreplace').decode("latin-1")
      return object   
new_contents: import csv
  import io
  import os
  import sys
  
  from retriever.lib.defaults import ENCODING
  
  
  def open_fr(file_name, encoding=ENCODING, encode=True):
      """Open file for reading respecting Python version and OS differences.
  
      Sets newline to Linux line endings on Windows and Python 3
      When encode=False does not set encoding on nix and Python 3 to keep as bytes
      """
      if sys.version_info >= (3, 0, 0):
          if os.name == 'nt':
              file_obj = io.open(file_name, 'r', newline='', encoding=encoding)
          else:
              if encode:
                  file_obj = io.open(file_name, "r", encoding=encoding)
              else:
                  file_obj = io.open(file_name, "r")
      else:
          file_obj = io.open(file_name, "r", encoding=encoding)
      return file_obj
  
  
  def open_fw(file_name, encoding=ENCODING, encode=True):
      """Open file for writing respecting Python version and OS differences.
  
      Sets newline to Linux line endings on Python 3
      When encode=False does not set encoding on nix and Python 3 to keep as bytes
      """
      if sys.version_info >= (3, 0, 0):
          if encode:
              file_obj = io.open(file_name, 'w', newline='', encoding=encoding)
          else:
              file_obj = io.open(file_name, 'w', newline='')
      else:
          file_obj = io.open(file_name, 'wb')
      return file_obj
  
  
  def open_csvw(csv_file, encode=True):
      """Open a csv writer forcing the use of Linux line endings on Windows.
  
      Also sets dialect to 'excel' and escape characters to '\\'
      """
      if os.name == 'nt':
          csv_writer = csv.writer(csv_file, dialect='excel', escapechar='\\', lineterminator='\n')
      else:
          csv_writer = csv.writer(csv_file, dialect='excel', escapechar='\\')
      return csv_writer
  
  
  def to_str(object, object_encoding=sys.stdout):
      if sys.version_info >= (3, 0, 0):
          enc = object_encoding.encoding
          return str(object).encode(enc, errors='backslashreplace').decode("latin-1")
      return object
  
  
  def walk_relative_path(dir_name):
      """Return relative paths of files in the directory"""
      return [os.path.join(os.path.relpath(dir_, dir_name), file_name)
              for dir_, _, files in os.walk(dir_name, topdown=False)
              for file_name in files]
  
subject: Add function walk_relative_path.