old_contents: #!/usr/bin/env python
  # coding: utf-8
  # Copyright (c) 2012 Raphaël Barrois
  
  from distutils.core import setup
  from distutils import cmd
  import os
  import re
  import sys
  
  root_dir = os.path.abspath(os.path.dirname(__file__))
  
  
  def get_version():
      version_re = re.compile(r"^__version__ = '([\w_.]+)'$")
      with open(os.path.join(root_dir, 'src', 'semantic_version', '__init__.py')) as f:
          for line in f:
              match = version_re.match(line[:-1])
              if match:
                  return match.groups()[0]
      return '0.0'
  
  
  class test(cmd.Command):
      """Run the tests for this package."""
      command_name = 'test'
      description = 'run the tests associated with the package'
  
      user_options = [
          ('test-suite=', None, "A test suite to run (defaults to 'tests')"),
      ]
  
      def initialize_options(self):
          self.test_runner = None
          self.test_suite = None
  
      def finalize_options(self):
          self.ensure_string('test_suite', 'tests')
  
      def run(self):
          """Run the test suite."""
          import unittest
          if self.verbose:
              verbosity=1
          else:
              verbosity=0
  
          ex_path = sys.path
          sys.path.insert(0, os.path.join(root_dir, 'src'))
          suite = unittest.TestLoader().loadTestsFromName(self.test_suite)
  
          unittest.TextTestRunner(verbosity=verbosity).run(suite)
          sys.path = ex_path
  
  
  setup(
      name="semantic_version",
      version=get_version(),
      author="Raphaël Barrois",
      author_email="raphael.barrois@polytechnique.org",
      description=("A library implementing the 'SemVer' scheme."),
      license="BSD",
      keywords=['semantic version', 'versioning', 'version'],
      url="http://github.com/rbarrois/python-semantic_version",
      download_url="http://pypi.python.org/pypi/semantic_version/",
      package_dir={'': 'src'},
      packages=['semantic_version'],
      classifiers=[
          "Development Status :: 3 - Alpha",
          "Intended Audience :: Developers",
          "License :: OSI Approved :: BSD License",
          "Topic :: Software Development :: Libraries :: Python Modules",
          'Operating System :: OS Independent',
          'Programming Language :: Python',
      ],
      cmdclass={'test': test},
  )
  
  
new_contents: #!/usr/bin/env python
  # coding: utf-8
  # Copyright (c) 2012 Raphaël Barrois
  
  from distutils.core import setup
  from distutils import cmd
  import os
  import re
  import sys
  
  root_dir = os.path.abspath(os.path.dirname(__file__))
  
  
  def get_version():
      version_re = re.compile(r"^__version__ = '([\w_.]+)'$")
      with open(os.path.join(root_dir, 'src', 'semantic_version', '__init__.py')) as f:
          for line in f:
              match = version_re.match(line[:-1])
              if match:
                  return match.groups()[0]
      return '0.0'
  
  
  class test(cmd.Command):
      """Run the tests for this package."""
      command_name = 'test'
      description = 'run the tests associated with the package'
  
      user_options = [
          ('test-suite=', None, "A test suite to run (defaults to 'tests')"),
      ]
  
      DEFAULT_TEST_SUITE = 'tests'
  
      def initialize_options(self):
          self.test_runner = None
          self.test_suite = None
  
      def finalize_options(self):
          self.ensure_string('test_suite', self.DEFAULT_TEST_SUITE)
  
      def run(self):
          """Run the test suite."""
          import unittest
          if self.verbose:
              verbosity=1
          else:
              verbosity=0
  
          ex_path = sys.path
          sys.path.insert(0, os.path.join(root_dir, 'src'))
          loader = unittest.defaultTestLoader
  
          if self.test_suite != self.DEFAULT_TEST_SUITE:
              suite = loader.loadTestsFromName(self.test_suite)
          else:
              suite = loader.discover(self.test_suite)
  
          unittest.TextTestRunner(verbosity=verbosity).run(suite)
          sys.path = ex_path
  
  
  setup(
      name="semantic_version",
      version=get_version(),
      author="Raphaël Barrois",
      author_email="raphael.barrois@polytechnique.org",
      description=("A library implementing the 'SemVer' scheme."),
      license="BSD",
      keywords=['semantic version', 'versioning', 'version'],
      url="http://github.com/rbarrois/python-semantic_version",
      download_url="http://pypi.python.org/pypi/semantic_version/",
      package_dir={'': 'src'},
      packages=['semantic_version'],
      classifiers=[
          "Development Status :: 3 - Alpha",
          "Intended Audience :: Developers",
          "License :: OSI Approved :: BSD License",
          "Topic :: Software Development :: Libraries :: Python Modules",
          'Operating System :: OS Independent',
          'Programming Language :: Python',
      ],
      cmdclass={'test': test},
  )
  
  
subject: Improve test runner