new_contents: from __future__ import with_statement
  import os
  
  file_contents = {}
  file_imports = {}
  
  def get_file(file_name):
      if file_name[-2:] != '.v': file_name += '.v'
      if file_name not in file_contents.keys():
          print(file_name)
          try:
              with open(file_name, 'r', encoding='UTF-8') as f:
                  file_contents[file_name] = f.read()
          except TypeError:
              with open(file_name, 'r') as f:
                  file_contents[file_name] = f.read()
      return file_contents[file_name]
  
  def get_imports(file_name):
      if file_name[-2:] != '.v': file_name += '.v'
      if file_name not in file_imports.keys():
          lines = get_file(file_name).split('\n')
          import_lines = [i.strip('. ') for i in lines if
                          i.strip()[:len('Require ')] == 'Require ' or
                          i.strip()[:len('Import ')] == 'Import ']
          imports = set((' ' + ' '.join(import_lines)).replace(' Require ', ' ').replace(' Import ', ' ').replace(' Export ', ' ').strip().split(' '))
          file_imports[file_name] = tuple(sorted(imports))
      return file_imports[file_name]
  
  def merge_imports(*imports):
      rtn = []
      for import_list in imports:
          for i in import_list:
              if i not in rtn:
                  rtn.append(i)
      return rtn
  
  def recursively_get_imports(file_name):
      if file_name[-2:] != '.v': file_name += '.v'
      if os.path.exists(file_name):
          imports = get_imports(file_name)
          imports_list = [recursively_get_imports(i) for i in imports]
          return merge_imports(*imports_list) + [file_name[:-2]]
      return [file_name[:-2]]
  
  def contents_without_imports(file_name):
      if file_name[-2:] != '.v': file_name += '.v'
      contents = get_file(file_name)
      lines = [i for i in contents.split('\n') if
               i.strip()[:len('Require ')] != 'Require ' and
               i.strip()[:len('Import ')] != 'Import ']
      return '\n'.join(lines)
  
  def include_imports(file_name):
      if file_name[-2:] != '.v': file_name += '.v'
      all_imports = recursively_get_imports(file_name)
      remaining_imports = []
      rtn = ''
      for import_name in all_imports:
          if os.path.exists(import_name + '.v'):
              rtn += contents_without_imports(import_name)
          else:
              remaining_imports.append(import_name)
      rtn = 'Require Import %s.\n%s' % (' '.join(remaining_imports), rtn)
      return rtn
  
subject: Add a python script for combining imports