##// END OF EJS Templates
setup: require dogpile.cache and core
ergo -
r320:c6080d8f default
parent child Browse files
Show More
@@ -1,245 +1,247 b''
1 1 # -*- coding: utf-8 -*-
2 2
3 3 # Import early to make sure things are patched up properly
4 4 from setuptools import setup, find_packages
5 5
6 6 import os
7 7 import sys
8 8 import platform
9 9
10 10 if sys.version_info < (2, 7):
11 11 raise Exception('RhodeCode requires Python 2.7 or later')
12 12
13 13
14 14 here = os.path.abspath(os.path.dirname(__file__))
15 15
16 16
17 17 def _get_meta_var(name, data, callback_handler=None):
18 18 import re
19 19 matches = re.compile(r'(?:%s)\s*=\s*(.*)' % name).search(data)
20 20 if matches:
21 21 if not callable(callback_handler):
22 22 callback_handler = lambda v: v
23 23
24 24 return callback_handler(eval(matches.groups()[0]))
25 25
26 26 _meta = open(os.path.join(here, 'rhodecode', '__init__.py'), 'rb')
27 27 _metadata = _meta.read()
28 28 _meta.close()
29 29
30 30 callback = lambda V: ('.'.join(map(str, V[:3])) + '.'.join(V[3:]))
31 31 __version__ = open(os.path.join('rhodecode', 'VERSION')).read().strip()
32 32 __license__ = _get_meta_var('__license__', _metadata)
33 33 __author__ = _get_meta_var('__author__', _metadata)
34 34 __url__ = _get_meta_var('__url__', _metadata)
35 35 # defines current platform
36 36 __platform__ = platform.system()
37 37
38 38 # Cygwin has different platform identifiers, but they all contain the
39 39 # term "CYGWIN"
40 40 is_windows = __platform__ == 'Windows' or 'CYGWIN' in __platform__
41 41
42 42 requirements = [
43 43 'Babel',
44 44 'Beaker',
45 45 'FormEncode',
46 46 'Mako',
47 47 'Markdown',
48 48 'MarkupSafe',
49 49 'MySQL-python',
50 50 'Paste',
51 51 'PasteDeploy',
52 52 'PasteScript',
53 53 'Pygments',
54 54 'Pylons',
55 55 'Pyro4',
56 56 'Routes',
57 57 'SQLAlchemy',
58 58 'Tempita',
59 59 'URLObject',
60 60 'WebError',
61 61 'WebHelpers',
62 62 'WebHelpers2',
63 63 'WebOb',
64 64 'WebTest',
65 65 'Whoosh',
66 66 'alembic',
67 67 'amqplib',
68 68 'anyjson',
69 69 'appenlight-client',
70 70 'authomatic',
71 71 'backport_ipaddress',
72 72 'celery',
73 73 'colander',
74 74 'decorator',
75 75 'docutils',
76 76 'gunicorn',
77 77 'infrae.cache',
78 78 'ipython',
79 79 'iso8601',
80 80 'kombu',
81 81 'msgpack-python',
82 82 'packaging',
83 83 'psycopg2',
84 84 'pycrypto',
85 85 'pycurl',
86 86 'pyparsing',
87 87 'pyramid',
88 88 'pyramid-debugtoolbar',
89 89 'pyramid-mako',
90 90 'pyramid-beaker',
91 91 'pysqlite',
92 92 'python-dateutil',
93 93 'python-ldap',
94 94 'python-memcached',
95 95 'python-pam',
96 96 'recaptcha-client',
97 97 'repoze.lru',
98 98 'requests',
99 99 'simplejson',
100 100 'waitress',
101 101 'zope.cachedescriptors',
102 'dogpile.cache',
103 'dogpile.core'
102 104 ]
103 105
104 106 if is_windows:
105 107 pass
106 108 else:
107 109 requirements.append('psutil')
108 110 requirements.append('py-bcrypt')
109 111
110 112 test_requirements = [
111 113 'WebTest',
112 114 'configobj',
113 115 'cssselect',
114 116 'flake8',
115 117 'lxml',
116 118 'mock',
117 119 'pytest',
118 120 'pytest-cov',
119 121 'pytest-runner',
120 122 ]
121 123
122 124 setup_requirements = [
123 125 'PasteScript',
124 126 'pytest-runner',
125 127 ]
126 128
127 129 dependency_links = [
128 130 ]
129 131
130 132 classifiers = [
131 133 'Development Status :: 6 - Mature',
132 134 'Environment :: Web Environment',
133 135 'Framework :: Pylons',
134 136 'Intended Audience :: Developers',
135 137 'Operating System :: OS Independent',
136 138 'Programming Language :: Python',
137 139 'Programming Language :: Python :: 2.7',
138 140 ]
139 141
140 142
141 143 # additional files from project that goes somewhere in the filesystem
142 144 # relative to sys.prefix
143 145 data_files = []
144 146
145 147 # additional files that goes into package itself
146 148 package_data = {'rhodecode': ['i18n/*/LC_MESSAGES/*.mo', ], }
147 149
148 150 description = ('RhodeCode is a fast and powerful management tool '
149 151 'for Mercurial and GIT with a built in push/pull server, '
150 152 'full text search and code-review.')
151 153
152 154 keywords = ' '.join([
153 155 'rhodecode', 'rhodiumcode', 'mercurial', 'git', 'code review',
154 156 'repo groups', 'ldap', 'repository management', 'hgweb replacement',
155 157 'hgwebdir', 'gitweb replacement', 'serving hgweb',
156 158 ])
157 159
158 160 # long description
159 161 README_FILE = 'README.rst'
160 162 CHANGELOG_FILE = 'CHANGES.rst'
161 163 try:
162 164 long_description = open(README_FILE).read() + '\n\n' + \
163 165 open(CHANGELOG_FILE).read()
164 166
165 167 except IOError, err:
166 168 sys.stderr.write(
167 169 '[WARNING] Cannot find file specified as long_description (%s)\n or '
168 170 'changelog (%s) skipping that file' % (README_FILE, CHANGELOG_FILE)
169 171 )
170 172 long_description = description
171 173
172 174 # packages
173 175 packages = find_packages()
174 176
175 177 paster_commands = [
176 178 'make-config=rhodecode.lib.paster_commands.make_config:Command',
177 179 'setup-rhodecode=rhodecode.lib.paster_commands.setup_rhodecode:Command',
178 180 'update-repoinfo=rhodecode.lib.paster_commands.update_repoinfo:Command',
179 181 'cache-keys=rhodecode.lib.paster_commands.cache_keys:Command',
180 182 'ishell=rhodecode.lib.paster_commands.ishell:Command',
181 183 'upgrade-db=rhodecode.lib.dbmigrate:UpgradeDb',
182 184 'celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand',
183 185 ]
184 186
185 187 setup(
186 188 name='rhodecode-enterprise-ce',
187 189 version=__version__,
188 190 description=description,
189 191 long_description=long_description,
190 192 keywords=keywords,
191 193 license=__license__,
192 194 author=__author__,
193 195 author_email='marcin@rhodecode.com',
194 196 dependency_links=dependency_links,
195 197 url=__url__,
196 198 install_requires=requirements,
197 199 tests_require=test_requirements,
198 200 classifiers=classifiers,
199 201 setup_requires=setup_requirements,
200 202 data_files=data_files,
201 203 packages=packages,
202 204 include_package_data=True,
203 205 package_data=package_data,
204 206 message_extractors={
205 207 'rhodecode': [
206 208 ('**.py', 'python', None),
207 209 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
208 210 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
209 211 ('public/**', 'ignore', None),
210 212 ]
211 213 },
212 214 zip_safe=False,
213 215 paster_plugins=['PasteScript', 'Pylons'],
214 216 entry_points={
215 217 'enterprise.plugins1': [
216 218 'crowd=rhodecode.authentication.plugins.auth_crowd:plugin_factory',
217 219 'headers=rhodecode.authentication.plugins.auth_headers:plugin_factory',
218 220 'jasig_cas=rhodecode.authentication.plugins.auth_jasig_cas:plugin_factory',
219 221 'ldap=rhodecode.authentication.plugins.auth_ldap:plugin_factory',
220 222 'pam=rhodecode.authentication.plugins.auth_pam:plugin_factory',
221 223 'rhodecode=rhodecode.authentication.plugins.auth_rhodecode:plugin_factory',
222 224 'token=rhodecode.authentication.plugins.auth_token:plugin_factory',
223 225 ],
224 226 'paste.app_factory': [
225 227 'main=rhodecode.config.middleware:make_pyramid_app',
226 228 'pylons=rhodecode.config.middleware:make_app',
227 229 ],
228 230 'paste.app_install': [
229 231 'main=pylons.util:PylonsInstaller',
230 232 'pylons=pylons.util:PylonsInstaller',
231 233 ],
232 234 'paste.global_paster_command': paster_commands,
233 235 'pytest11': [
234 236 'pylons=rhodecode.tests.pylons_plugin',
235 237 'enterprise=rhodecode.tests.plugin',
236 238 ],
237 239 'console_scripts': [
238 240 'rcserver=rhodecode.rcserver:main',
239 241 ],
240 242 'beaker.backends': [
241 243 'memorylru_base=rhodecode.lib.memory_lru_debug:MemoryLRUNamespaceManagerBase',
242 244 'memorylru_debug=rhodecode.lib.memory_lru_debug:MemoryLRUNamespaceManagerDebug'
243 245 ]
244 246 },
245 247 )
General Comments 0
You need to be logged in to leave comments. Login now