diff --git a/rhodecode/__init__.py b/rhodecode/__init__.py --- a/rhodecode/__init__.py +++ b/rhodecode/__init__.py @@ -42,6 +42,8 @@ except ImportError: __platform__ = platform.system() __license__ = 'GPLv3' __py_version__ = sys.version_info +__author__ = 'Marcin Kuzminski' +__url__ = 'http://rhodecode.org' PLATFORM_WIN = ('Windows') PLATFORM_OTHERS = ('Linux', 'Darwin', 'FreeBSD', 'OpenBSD', 'SunOS') @@ -49,39 +51,6 @@ PLATFORM_OTHERS = ('Linux', 'Darwin', 'F is_windows = __platform__ in PLATFORM_WIN is_unix = __platform__ in PLATFORM_OTHERS -requirements = [ - "Pylons==1.0.0", - "Beaker==1.6.3", - "WebHelpers==1.3", - "formencode==1.2.4", - "SQLAlchemy==0.7.8", - "Mako==0.7.0", - "pygments>=1.4", - "whoosh>=2.4.0,<2.5", - "celery>=2.2.5,<2.3", - "babel", - "python-dateutil>=1.5.0,<2.0.0", - "dulwich>=0.8.5,<0.9.0", - "webob==1.0.8", - "markdown==2.1.1", - "docutils==0.8.1", - "simplejson==2.5.2", -] - -if __py_version__ < (2, 6): - requirements.append("pysqlite") - -if is_windows: - requirements.append("mercurial>=2.2.2,<2.3") -else: - requirements.append("py-bcrypt") - requirements.append("mercurial>=2.2.2,<2.3") - - -def get_version(): - """Returns shorter version (digit parts only) as string.""" - - return '.'.join((str(each) for each in VERSION[:3])) BACKENDS = { 'hg': 'Mercurial repository', diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -1,11 +1,69 @@ +import os import sys -from rhodecode import get_version -from rhodecode import __license__ -from rhodecode import __py_version__ -from rhodecode import requirements +import platform + +if sys.version_info < (2, 5): + raise Exception('RhodeCode requires python 2.5 or later') + + +here = os.path.abspath(os.path.dirname(__file__)) + + +def _get_meta_var(name, data, callback_handler=None): + import re + matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data) + if matches: + if not callable(callback_handler): + callback_handler = lambda v: v + + return callback_handler(eval(matches.groups()[0])) + +_meta = open(os.path.join(here, 'rhodecode', '__init__.py'), 'rb') +_metadata = _meta.read() +_meta.close() + +callback = lambda V: ('.'.join(map(str, V[:3])) + '.'.join(V[3:])) +__version__ = _get_meta_var('VERSION', _metadata, callback) +__license__ = _get_meta_var('__license__', _metadata) +__author__ = _get_meta_var('__author__', _metadata) +__url__ = _get_meta_var('__url__', _metadata) +# defines current platform +__platform__ = platform.system() + +is_windows = __platform__ in _get_meta_var('PLATFORM_WIN', _metadata) -if __py_version__ < (2, 5): - raise Exception('RhodeCode requires python 2.5 or later') +requirements = [ + "Pylons==1.0.0", + "Beaker==1.6.3", + "WebHelpers==1.3", + "formencode==1.2.4", + "SQLAlchemy==0.7.8", + "Mako==0.7.0", + "pygments>=1.4", + "whoosh>=2.4.0,<2.5", + "celery>=2.2.5,<2.3", + "babel", + "python-dateutil>=1.5.0,<2.0.0", + "dulwich>=0.8.5,<0.9.0", + "webob==1.0.8", + "markdown==2.1.1", + "docutils==0.8.1", + "simplejson==2.5.2", + "mock" +] + +if sys.version_info < (2, 6): + requirements.append("pysqlite") + +if sys.version_info <= (2, 6): + requirements.append("unittest2") + +if is_windows: + requirements.append("mercurial>=2.2.3,<2.3") +else: + requirements.append("py-bcrypt") + requirements.append("mercurial>=2.2.3,<2.3") + dependency_links = [ ] @@ -62,15 +120,15 @@ packages = find_packages(exclude=['ez_se setup( name='RhodeCode', - version=get_version(), + version=__version__, description=description, long_description=long_description, keywords=keywords, license=__license__, - author='Marcin Kuzminski', + author=__author__, author_email='marcin@python-works.com', dependency_links=dependency_links, - url='http://rhodecode.org', + url=__url__, install_requires=requirements, classifiers=classifiers, setup_requires=["PasteScript>=1.6.3"],