102 lines
3.0 KiB
Python
Executable File
102 lines
3.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
# Copyright (c) 2012-2013 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.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."""
|
|
try:
|
|
import unittest2 as unittest
|
|
except ImportError:
|
|
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
|
|
suite = unittest.TestSuite()
|
|
|
|
if self.test_suite == self.DEFAULT_TEST_SUITE:
|
|
for test_module in loader.discover('.'):
|
|
suite.addTest(test_module)
|
|
else:
|
|
suite.addTest(loader.loadTestsFromName(self.test_suite))
|
|
|
|
result = unittest.TextTestRunner(verbosity=verbosity).run(suite)
|
|
sys.path = ex_path
|
|
|
|
if not result.wasSuccessful():
|
|
sys.exit(1)
|
|
|
|
|
|
setup(
|
|
name="semantic_version",
|
|
version=get_version(),
|
|
author="Raphaël Barrois",
|
|
author_email="raphael.barrois+semver@polytechnique.org",
|
|
description=("A library implementing the 'SemVer' scheme."),
|
|
license="BSD",
|
|
keywords=['semantic version', 'versioning', 'version'],
|
|
url="http://github.com/rbarrois/python-semanticversion",
|
|
download_url="http://pypi.python.org/pypi/semantic_version/",
|
|
package_dir={'': 'src'},
|
|
packages=['semantic_version'],
|
|
classifiers=[
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: BSD License",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
'Operating System :: OS Independent',
|
|
'Programming Language :: Python',
|
|
'Programming Language :: Python :: 2',
|
|
'Programming Language :: Python :: 2.6',
|
|
'Programming Language :: Python :: 2.7',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.2',
|
|
'Programming Language :: Python :: 3.3',
|
|
'Topic :: Software Development :: Libraries :: Python Modules'
|
|
],
|
|
cmdclass={'test': test},
|
|
)
|
|
|