##// END OF EJS Templates
setup: bump ipaddr minium version to 2.2.0 to get py3 support...
Mads Kiilerich -
r7998:f254dd2f default
parent child Browse files
Show More
@@ -1,161 +1,161 b''
1 #!/usr/bin/env python2
1 #!/usr/bin/env python2
2 # -*- coding: utf-8 -*-
2 # -*- coding: utf-8 -*-
3 import os
3 import os
4 import platform
4 import platform
5 import sys
5 import sys
6
6
7 import setuptools
7 import setuptools
8 # monkey patch setuptools to use distutils owner/group functionality
8 # monkey patch setuptools to use distutils owner/group functionality
9 from setuptools.command import sdist
9 from setuptools.command import sdist
10
10
11
11
12 if sys.version_info < (2, 6) or sys.version_info >= (3,):
12 if sys.version_info < (2, 6) or sys.version_info >= (3,):
13 raise Exception('Kallithea requires python 2.7')
13 raise Exception('Kallithea requires python 2.7')
14
14
15
15
16 here = os.path.abspath(os.path.dirname(__file__))
16 here = os.path.abspath(os.path.dirname(__file__))
17
17
18
18
19 def _get_meta_var(name, data, callback_handler=None):
19 def _get_meta_var(name, data, callback_handler=None):
20 import re
20 import re
21 matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data)
21 matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data)
22 if matches:
22 if matches:
23 if not callable(callback_handler):
23 if not callable(callback_handler):
24 callback_handler = lambda v: v
24 callback_handler = lambda v: v
25
25
26 return callback_handler(eval(matches.groups()[0]))
26 return callback_handler(eval(matches.groups()[0]))
27
27
28 _meta = open(os.path.join(here, 'kallithea', '__init__.py'), 'r')
28 _meta = open(os.path.join(here, 'kallithea', '__init__.py'), 'r')
29 _metadata = _meta.read()
29 _metadata = _meta.read()
30 _meta.close()
30 _meta.close()
31
31
32 callback = lambda V: ('.'.join(map(str, V[:3])) + '.'.join(V[3:]))
32 callback = lambda V: ('.'.join(map(str, V[:3])) + '.'.join(V[3:]))
33 __version__ = _get_meta_var('VERSION', _metadata, callback)
33 __version__ = _get_meta_var('VERSION', _metadata, callback)
34 __license__ = _get_meta_var('__license__', _metadata)
34 __license__ = _get_meta_var('__license__', _metadata)
35 __author__ = _get_meta_var('__author__', _metadata)
35 __author__ = _get_meta_var('__author__', _metadata)
36 __url__ = _get_meta_var('__url__', _metadata)
36 __url__ = _get_meta_var('__url__', _metadata)
37 # defines current platform
37 # defines current platform
38 __platform__ = platform.system()
38 __platform__ = platform.system()
39
39
40 is_windows = __platform__ in ['Windows']
40 is_windows = __platform__ in ['Windows']
41
41
42 requirements = [
42 requirements = [
43 "alembic >= 0.8.0, < 1.1",
43 "alembic >= 0.8.0, < 1.1",
44 "gearbox >= 0.1.0, < 1",
44 "gearbox >= 0.1.0, < 1",
45 "waitress >= 0.8.8, < 1.4",
45 "waitress >= 0.8.8, < 1.4",
46 "WebOb >= 1.8, < 1.9",
46 "WebOb >= 1.8, < 1.9",
47 "backlash >= 0.1.2, < 1",
47 "backlash >= 0.1.2, < 1",
48 "TurboGears2 >= 2.4, < 2.5",
48 "TurboGears2 >= 2.4, < 2.5",
49 "tgext.routes >= 0.2.0, < 1",
49 "tgext.routes >= 0.2.0, < 1",
50 "Beaker >= 1.7.0, < 2",
50 "Beaker >= 1.7.0, < 2",
51 "WebHelpers2 >= 2.0, < 2.1",
51 "WebHelpers2 >= 2.0, < 2.1",
52 "FormEncode >= 1.3.0, < 1.4",
52 "FormEncode >= 1.3.0, < 1.4",
53 "SQLAlchemy >= 1.1, < 1.4",
53 "SQLAlchemy >= 1.1, < 1.4",
54 "Mako >= 0.9.0, < 1.1",
54 "Mako >= 0.9.0, < 1.1",
55 "Pygments >= 2.2.0, < 2.5",
55 "Pygments >= 2.2.0, < 2.5",
56 "Whoosh >= 2.5.0, < 2.8",
56 "Whoosh >= 2.5.0, < 2.8",
57 "celery >= 3.1, < 4.0", # TODO: celery 4 doesn't work
57 "celery >= 3.1, < 4.0", # TODO: celery 4 doesn't work
58 "Babel >= 1.3, < 2.8",
58 "Babel >= 1.3, < 2.8",
59 "python-dateutil >= 1.5.0, < 2.9",
59 "python-dateutil >= 1.5.0, < 2.9",
60 "Markdown >= 2.2.1, < 3.2",
60 "Markdown >= 2.2.1, < 3.2",
61 "docutils >= 0.11, < 0.15",
61 "docutils >= 0.11, < 0.15",
62 "URLObject >= 2.3.4, < 2.5",
62 "URLObject >= 2.3.4, < 2.5",
63 "Routes >= 2.0, < 2.5",
63 "Routes >= 2.0, < 2.5",
64 "dulwich >= 0.14.1, < 0.20",
64 "dulwich >= 0.14.1, < 0.20",
65 "mercurial >= 5.1, < 5.3",
65 "mercurial >= 5.1, < 5.3",
66 "decorator >= 3.3.2, < 4.5",
66 "decorator >= 3.3.2, < 4.5",
67 "Paste >= 2.0.3, < 3.1",
67 "Paste >= 2.0.3, < 3.1",
68 "bleach >= 3.0, < 3.2",
68 "bleach >= 3.0, < 3.2",
69 "Click >= 7.0, < 8",
69 "Click >= 7.0, < 8",
70 "ipaddr >= 2.1.10, < 2.3",
70 "ipaddr >= 2.2.0, < 2.3",
71 "paginate >= 0.5, < 0.6",
71 "paginate >= 0.5, < 0.6",
72 "paginate_sqlalchemy >= 0.3.0, < 0.4",
72 "paginate_sqlalchemy >= 0.3.0, < 0.4",
73 ]
73 ]
74
74
75 if not is_windows:
75 if not is_windows:
76 requirements.append("bcrypt >= 3.1.0, < 3.2")
76 requirements.append("bcrypt >= 3.1.0, < 3.2")
77
77
78 dependency_links = [
78 dependency_links = [
79 ]
79 ]
80
80
81 classifiers = [
81 classifiers = [
82 'Development Status :: 4 - Beta',
82 'Development Status :: 4 - Beta',
83 'Environment :: Web Environment',
83 'Environment :: Web Environment',
84 'Framework :: Pylons',
84 'Framework :: Pylons',
85 'Intended Audience :: Developers',
85 'Intended Audience :: Developers',
86 'License :: OSI Approved :: GNU General Public License (GPL)',
86 'License :: OSI Approved :: GNU General Public License (GPL)',
87 'Operating System :: OS Independent',
87 'Operating System :: OS Independent',
88 'Programming Language :: Python',
88 'Programming Language :: Python',
89 'Programming Language :: Python :: 2.7',
89 'Programming Language :: Python :: 2.7',
90 'Topic :: Software Development :: Version Control',
90 'Topic :: Software Development :: Version Control',
91 ]
91 ]
92
92
93
93
94 # additional files from project that goes somewhere in the filesystem
94 # additional files from project that goes somewhere in the filesystem
95 # relative to sys.prefix
95 # relative to sys.prefix
96 data_files = []
96 data_files = []
97
97
98 description = ('Kallithea is a fast and powerful management tool '
98 description = ('Kallithea is a fast and powerful management tool '
99 'for Mercurial and Git with a built in push/pull server, '
99 'for Mercurial and Git with a built in push/pull server, '
100 'full text search and code-review.')
100 'full text search and code-review.')
101
101
102 keywords = ' '.join([
102 keywords = ' '.join([
103 'kallithea', 'mercurial', 'git', 'code review',
103 'kallithea', 'mercurial', 'git', 'code review',
104 'repo groups', 'ldap', 'repository management', 'hgweb replacement',
104 'repo groups', 'ldap', 'repository management', 'hgweb replacement',
105 'hgwebdir', 'gitweb replacement', 'serving hgweb',
105 'hgwebdir', 'gitweb replacement', 'serving hgweb',
106 ])
106 ])
107
107
108 # long description
108 # long description
109 README_FILE = 'README.rst'
109 README_FILE = 'README.rst'
110 try:
110 try:
111 long_description = open(README_FILE).read()
111 long_description = open(README_FILE).read()
112 except IOError as err:
112 except IOError as err:
113 sys.stderr.write(
113 sys.stderr.write(
114 "[WARNING] Cannot find file specified as long_description (%s)\n"
114 "[WARNING] Cannot find file specified as long_description (%s)\n"
115 % README_FILE
115 % README_FILE
116 )
116 )
117 long_description = description
117 long_description = description
118
118
119
119
120 sdist_org = sdist.sdist
120 sdist_org = sdist.sdist
121 class sdist_new(sdist_org):
121 class sdist_new(sdist_org):
122 def initialize_options(self):
122 def initialize_options(self):
123 sdist_org.initialize_options(self)
123 sdist_org.initialize_options(self)
124 self.owner = self.group = 'root'
124 self.owner = self.group = 'root'
125 sdist.sdist = sdist_new
125 sdist.sdist = sdist_new
126
126
127 packages = setuptools.find_packages(exclude=['ez_setup'])
127 packages = setuptools.find_packages(exclude=['ez_setup'])
128
128
129 setuptools.setup(
129 setuptools.setup(
130 name='Kallithea',
130 name='Kallithea',
131 version=__version__,
131 version=__version__,
132 description=description,
132 description=description,
133 long_description=long_description,
133 long_description=long_description,
134 keywords=keywords,
134 keywords=keywords,
135 license=__license__,
135 license=__license__,
136 author=__author__,
136 author=__author__,
137 author_email='kallithea@sfconservancy.org',
137 author_email='kallithea@sfconservancy.org',
138 dependency_links=dependency_links,
138 dependency_links=dependency_links,
139 url=__url__,
139 url=__url__,
140 install_requires=requirements,
140 install_requires=requirements,
141 classifiers=classifiers,
141 classifiers=classifiers,
142 data_files=data_files,
142 data_files=data_files,
143 packages=packages,
143 packages=packages,
144 include_package_data=True,
144 include_package_data=True,
145 message_extractors={'kallithea': [
145 message_extractors={'kallithea': [
146 ('**.py', 'python', None),
146 ('**.py', 'python', None),
147 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
147 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
148 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
148 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
149 ('public/**', 'ignore', None)]},
149 ('public/**', 'ignore', None)]},
150 zip_safe=False,
150 zip_safe=False,
151 entry_points="""
151 entry_points="""
152 [console_scripts]
152 [console_scripts]
153 kallithea-api = kallithea.bin.kallithea_api:main
153 kallithea-api = kallithea.bin.kallithea_api:main
154 kallithea-gist = kallithea.bin.kallithea_gist:main
154 kallithea-gist = kallithea.bin.kallithea_gist:main
155 kallithea-config = kallithea.bin.kallithea_config:main
155 kallithea-config = kallithea.bin.kallithea_config:main
156 kallithea-cli = kallithea.bin.kallithea_cli:cli
156 kallithea-cli = kallithea.bin.kallithea_cli:cli
157
157
158 [paste.app_factory]
158 [paste.app_factory]
159 main = kallithea.config.middleware:make_app
159 main = kallithea.config.middleware:make_app
160 """,
160 """,
161 )
161 )
General Comments 0
You need to be logged in to leave comments. Login now