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