old_contents: #!/usr/bin/env python
  """
      Runs the benchmarks
  """
  import sys
  import os
  import re
  from subprocess import Popen
  
  try:
      from pkg_resources import get_distribution
      version = get_distribution('Logbook').version
  except Exception:
      version = 'unknown version'
  
  
  _filename_re = re.compile(r'^bench_(.*?)\.py$')
  bench_directory = os.path.abspath(os.path.dirname(__file__))
  
  
  def list_benchmarks():
      result = []
      for name in os.listdir(bench_directory):
          match = _filename_re.match(name)
          if match is not None:
              result.append(match.group(1))
      result.sort(key=lambda x: (x.startswith('logging_'), x.lower()))
      return result
  
  
  def run_bench(name, use_gevent=False):
      sys.stdout.write('%-32s' % name)
      sys.stdout.flush()
      Popen([sys.executable, '-mtimeit', '-s',
             'from bench_%s import run' % name,
             'from logbook.concurrency import enable_gevent',
             'enable_gevent()' if use_gevent else '',
             'run()']).wait()
  
  
  def bench_wrapper(use_gevent=False):
      print '=' * 80
      print 'Running benchmark with Logbook %s (gevent enabled=%s)' % \
          (version, use_gevent)
      print '-' * 80
      os.chdir(bench_directory)
      for bench in list_benchmarks():
          run_bench(bench, use_gevent)
      print '-' * 80
  
  
  def main():
      bench_wrapper(False)
      try:
          import gevent
          bench_wrapper(True)
      except ImportError:
          pass
  
  
  if __name__ == '__main__':
      main()
  
new_contents: #!/usr/bin/env python
  """
      Runs the benchmarks
  """
  from __future__ import print_function
  import sys
  import os
  import re
  from subprocess import Popen
  
  try:
      from pkg_resources import get_distribution
      version = get_distribution('Logbook').version
  except Exception:
      version = 'unknown version'
  
  
  _filename_re = re.compile(r'^bench_(.*?)\.py$')
  bench_directory = os.path.abspath(os.path.dirname(__file__))
  
  
  def list_benchmarks():
      result = []
      for name in os.listdir(bench_directory):
          match = _filename_re.match(name)
          if match is not None:
              result.append(match.group(1))
      result.sort(key=lambda x: (x.startswith('logging_'), x.lower()))
      return result
  
  
  def run_bench(name, use_gevent=False):
      sys.stdout.write('%-32s' % name)
      sys.stdout.flush()
      Popen([sys.executable, '-mtimeit', '-s',
             'from bench_%s import run' % name,
             'from logbook.concurrency import enable_gevent',
             'enable_gevent()' if use_gevent else '',
             'run()']).wait()
  
  
  def bench_wrapper(use_gevent=False):
      print('=' * 80)
      print('Running benchmark with Logbook %s (gevent enabled=%s)' % (version, use_gevent))
      print('-' * 80)
      os.chdir(bench_directory)
      for bench in list_benchmarks():
          run_bench(bench, use_gevent)
      print('-' * 80)
  
  
  def main():
      bench_wrapper(False)
      try:
          import gevent
          bench_wrapper(True)
      except ImportError:
          pass
  
  
  if __name__ == '__main__':
      main()
  
subject: Make benchmark script compatible with Python 3