##// END OF EJS Templates
pep8ify root py files
marcink -
r1204:faf31099 beta
parent child Browse files
Show More
@@ -1,270 +1,251 b''
1 #!python
1 #!python
2 """Bootstrap setuptools installation
2 """Bootstrap setuptools installation
3
3
4 If you want to use setuptools in your package's setup.py, just include this
4 If you want to use setuptools in your package's setup.py, just include this
5 file in the same directory with it, and add this to the top of your setup.py::
5 file in the same directory with it, and add this to the top of your setup.py::
6
6
7 from ez_setup import use_setuptools
7 from ez_setup import use_setuptools
8 use_setuptools()
8 use_setuptools()
9
9
10 If you want to require a specific version of setuptools, set a download
10 If you want to require a specific version of setuptools, set a download
11 mirror, or use an alternate download directory, you can do so by supplying
11 mirror, or use an alternate download directory, you can do so by supplying
12 the appropriate options to ``use_setuptools()``.
12 the appropriate options to ``use_setuptools()``.
13
13
14 This file can also be run as a script to install or upgrade setuptools.
14 This file can also be run as a script to install or upgrade setuptools.
15 """
15 """
16 import sys
16 import sys
17 DEFAULT_VERSION = "0.6c9"
17 DEFAULT_VERSION = "0.6c9"
18 DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
18 DEFAULT_URL = "http://pypi.python.org/packages/%s/s/setuptools/" \
19 % sys.version[:3]
19
20
20 md5_data = {
21 md5_data = {
21 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
22 'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
22 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
23 'setuptools-0.6b1-py2.4.egg': 'b79a8a403e4502fbb85ee3f1941735cb',
23 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
24 'setuptools-0.6b2-py2.3.egg': '5657759d8a6d8fc44070a9d07272d99b',
24 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
25 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a',
25 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
26 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618',
26 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
27 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac',
27 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
28 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5',
28 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
29 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4',
29 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
30 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c',
30 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
31 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b',
31 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
32 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27',
32 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
33 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277',
33 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
34 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
34 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
35 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
35 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
36 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
36 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
37 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
37 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
38 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
38 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
39 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
39 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
40 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
40 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
41 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
41 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
42 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
42 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
43 'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
43 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
44 'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
44 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
45 'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
45 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
46 'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
46 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
47 'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
47 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
48 'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
48 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
49 'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
49 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
50 'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
50 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
51 'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
51 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
52 'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
52 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
53 'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
53 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
54 'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
54 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
55 'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
55 }
56 }
56
57
57 import sys, os
58 import os
58 try: from hashlib import md5
59
59 except ImportError: from md5 import md5
60 try:
61 from hashlib import md5
62 except ImportError:
63 from md5 import md5
64
60
65
61 def _validate_md5(egg_name, data):
66 def _validate_md5(egg_name, data):
62 if egg_name in md5_data:
67 if egg_name in md5_data:
63 digest = md5(data).hexdigest()
68 digest = md5(data).hexdigest()
64 if digest != md5_data[egg_name]:
69 if digest != md5_data[egg_name]:
65 print >>sys.stderr, (
70 print >> sys.stderr, (
66 "md5 validation of %s failed! (Possible download problem?)"
71 "md5 validation of %s failed! (Possible download problem?)"
67 % egg_name
72 % egg_name)
68 )
69 sys.exit(2)
73 sys.exit(2)
70 return data
74 return data
71
75
72 def use_setuptools(
76
73 version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
77 def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
74 download_delay=15
78 to_dir=os.curdir, download_delay=15):
75 ):
76 """Automatically find/download setuptools and make it available on sys.path
79 """Automatically find/download setuptools and make it available on sys.path
77
80
78 `version` should be a valid setuptools version number that is available
81 `version` should be a valid setuptools version number that is available
79 as an egg for download under the `download_base` URL (which should end with
82 as an egg for download under the `download_base` URL (which should end with
80 a '/'). `to_dir` is the directory where setuptools will be downloaded, if
83 a '/'). `to_dir` is the directory where setuptools will be downloaded, if
81 it is not already available. If `download_delay` is specified, it should
84 it is not already available. If `download_delay` is specified, it should
82 be the number of seconds that will be paused before initiating a download,
85 be the number of seconds that will be paused before initiating a download,
83 should one be required. If an older version of setuptools is installed,
86 should one be required. If an older version of setuptools is installed,
84 this routine will print a message to ``sys.stderr`` and raise SystemExit in
87 this routine will print a message to ``sys.stderr`` and raise SystemExit in
85 an attempt to abort the calling script.
88 an attempt to abort the calling script.
86 """
89 """
87 was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
90 was_imported = 'pkg_resources' in sys.modules or ('setuptools' in
91 sys.modules)
92
88 def do_download():
93 def do_download():
89 egg = download_setuptools(version, download_base, to_dir, download_delay)
94 egg = download_setuptools(version, download_base, to_dir,
95 download_delay)
90 sys.path.insert(0, egg)
96 sys.path.insert(0, egg)
91 import setuptools; setuptools.bootstrap_install_from = egg
97 import setuptools
98 setuptools.bootstrap_install_from = egg
92 try:
99 try:
93 import pkg_resources
100 import pkg_resources
94 except ImportError:
101 except ImportError:
95 return do_download()
102 return do_download()
96 try:
103 try:
97 pkg_resources.require("setuptools>="+version); return
104 pkg_resources.require("setuptools>=" + version)
105 return
98 except pkg_resources.VersionConflict, e:
106 except pkg_resources.VersionConflict, e:
99 if was_imported:
107 if was_imported:
100 print >>sys.stderr, (
108 print >> sys.stderr, (
101 "The required version of setuptools (>=%s) is not available, and\n"
109 "The required version of setuptools (>=%s) is not available, and\n"
102 "can't be installed while this script is running. Please install\n"
110 "can't be installed while this script is running. Please install\n"
103 " a more recent version first, using 'easy_install -U setuptools'."
111 " a more recent version first, using 'easy_install -U setuptools'."
104 "\n\n(Currently using %r)"
112 "\n\n(Currently using %r)") % (version, e.args[0])
105 ) % (version, e.args[0])
106 sys.exit(2)
113 sys.exit(2)
107 else:
114 else:
108 del pkg_resources, sys.modules['pkg_resources'] # reload ok
115 del pkg_resources, sys.modules['pkg_resources'] # reload ok
109 return do_download()
116 return do_download()
110 except pkg_resources.DistributionNotFound:
117 except pkg_resources.DistributionNotFound:
111 return do_download()
118 return do_download()
112
119
113 def download_setuptools(
120
114 version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
121 def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL,
115 delay = 15
122 to_dir=os.curdir, delay=15):
116 ):
117 """Download setuptools from a specified location and return its filename
123 """Download setuptools from a specified location and return its filename
118
124
119 `version` should be a valid setuptools version number that is available
125 `version` should be a valid setuptools version number that is available
120 as an egg for download under the `download_base` URL (which should end
126 as an egg for download under the `download_base` URL (which should end
121 with a '/'). `to_dir` is the directory where the egg will be downloaded.
127 with a '/'). `to_dir` is the directory where the egg will be downloaded.
122 `delay` is the number of seconds to pause before an actual download attempt.
128 `delay` is the number of seconds to pause before an actual download
129 attempt.
123 """
130 """
124 import urllib2, shutil
131 import urllib2
125 egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
132
133 egg_name = "setuptools-%s-py%s.egg" % (version, sys.version[:3])
126 url = download_base + egg_name
134 url = download_base + egg_name
127 saveto = os.path.join(to_dir, egg_name)
135 saveto = os.path.join(to_dir, egg_name)
128 src = dst = None
136 src = dst = None
129 if not os.path.exists(saveto): # Avoid repeated downloads
137 if not os.path.exists(saveto): # Avoid repeated downloads
130 try:
138 try:
131 from distutils import log
139 from distutils import log
132 if delay:
140 if delay:
133 log.warn("""
141 log.warn("""
134 ---------------------------------------------------------------------------
142 ---------------------------------------------------------------------------
135 This script requires setuptools version %s to run (even to display
143 This script requires setuptools version %s to run (even to display
136 help). I will attempt to download it for you (from
144 help). I will attempt to download it for you (from
137 %s), but
145 %s), but
138 you may need to enable firewall access for this script first.
146 you may need to enable firewall access for this script first.
139 I will start the download in %d seconds.
147 I will start the download in %d seconds.
140
148
141 (Note: if this machine does not have network access, please obtain the file
149 (Note: if this machine does not have network access, please obtain the file
142
150
143 %s
151 %s
144
152
145 and place it in this directory before rerunning this script.)
153 and place it in this directory before rerunning this script.)
146 ---------------------------------------------------------------------------""",
154 ---------------------------------------------------------------------------""",
147 version, download_base, delay, url
155 version, download_base, delay, url)
148 ); from time import sleep; sleep(delay)
156 from time import sleep
157 sleep(delay)
149 log.warn("Downloading %s", url)
158 log.warn("Downloading %s", url)
150 src = urllib2.urlopen(url)
159 src = urllib2.urlopen(url)
151 # Read/write all in one block, so we don't create a corrupt file
160 # Read/write all in one block, so we don't create a corrupt file
152 # if the download is interrupted.
161 # if the download is interrupted.
153 data = _validate_md5(egg_name, src.read())
162 data = _validate_md5(egg_name, src.read())
154 dst = open(saveto,"wb"); dst.write(data)
163 dst = open(saveto, "wb")
164 dst.write(data)
155 finally:
165 finally:
156 if src: src.close()
166 if src:
157 if dst: dst.close()
167 src.close()
168 if dst:
169 dst.close()
158 return os.path.realpath(saveto)
170 return os.path.realpath(saveto)
159
171
160
172
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195 def main(argv, version=DEFAULT_VERSION):
173 def main(argv, version=DEFAULT_VERSION):
196 """Install or upgrade setuptools and EasyInstall"""
174 """Install or upgrade setuptools and EasyInstall"""
197 try:
175 try:
198 import setuptools
176 import setuptools
199 except ImportError:
177 except ImportError:
200 egg = None
178 egg = None
201 try:
179 try:
202 egg = download_setuptools(version, delay=0)
180 egg = download_setuptools(version, delay=0)
203 sys.path.insert(0,egg)
181 sys.path.insert(0, egg)
204 from setuptools.command.easy_install import main
182 from setuptools.command.easy_install import main
205 return main(list(argv)+[egg]) # we're done here
183 return main(list(argv) + [egg]) # we're done here
206 finally:
184 finally:
207 if egg and os.path.exists(egg):
185 if egg and os.path.exists(egg):
208 os.unlink(egg)
186 os.unlink(egg)
209 else:
187 else:
210 if setuptools.__version__ == '0.0.1':
188 if setuptools.__version__ == '0.0.1':
211 print >>sys.stderr, (
189 print >> sys.stderr, (
212 "You have an obsolete version of setuptools installed. Please\n"
190 "You have an obsolete version of setuptools installed. Please\n"
213 "remove it from your system entirely before rerunning this script."
191 "remove it from your system entirely before rerunning"
214 )
192 " this script.")
215 sys.exit(2)
193 sys.exit(2)
216
194
217 req = "setuptools>="+version
195 req = "setuptools>=" + version
218 import pkg_resources
196 import pkg_resources
219 try:
197 try:
220 pkg_resources.require(req)
198 pkg_resources.require(req)
221 except pkg_resources.VersionConflict:
199 except pkg_resources.VersionConflict:
222 try:
200 try:
223 from setuptools.command.easy_install import main
201 from setuptools.command.easy_install import main
224 except ImportError:
202 except ImportError:
225 from easy_install import main
203 from easy_install import main
226 main(list(argv)+[download_setuptools(delay=0)])
204 main(list(argv) + [download_setuptools(delay=0)])
227 sys.exit(0) # try to force an exit
205 sys.exit(0) # try to force an exit
228 else:
206 else:
229 if argv:
207 if argv:
230 from setuptools.command.easy_install import main
208 from setuptools.command.easy_install import main
231 main(argv)
209 main(argv)
232 else:
210 else:
233 print "Setuptools version",version,"or greater has been installed."
211 print "Setuptools version", version, "or greater has been installed."
234 print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
212 print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
235
213
214
236 def update_md5(filenames):
215 def update_md5(filenames):
237 """Update our built-in md5 registry"""
216 """Update our built-in md5 registry"""
238
217
239 import re
218 import re
240
219
241 for name in filenames:
220 for name in filenames:
242 base = os.path.basename(name)
221 base = os.path.basename(name)
243 f = open(name,'rb')
222 f = open(name, 'rb')
244 md5_data[base] = md5(f.read()).hexdigest()
223 md5_data[base] = md5(f.read()).hexdigest()
245 f.close()
224 f.close()
246
225
247 data = [" %r: %r,\n" % it for it in md5_data.items()]
226 data = [" %r: %r,\n" % it for it in md5_data.items()]
248 data.sort()
227 data.sort()
249 repl = "".join(data)
228 repl = "".join(data)
250
229
251 import inspect
230 import inspect
252 srcfile = inspect.getsourcefile(sys.modules[__name__])
231 srcfile = inspect.getsourcefile(sys.modules[__name__])
253 f = open(srcfile, 'rb'); src = f.read(); f.close()
232 f = open(srcfile, 'rb')
233 src = f.read()
234 f.close()
254
235
255 match = re.search("\nmd5_data = {\n([^}]+)}", src)
236 match = re.search("\nmd5_data = {\n([^}]+)}", src)
256 if not match:
237 if not match:
257 print >>sys.stderr, "Internal error!"
238 print >> sys.stderr, "Internal error!"
258 sys.exit(2)
239 sys.exit(2)
259
240
260 src = src[:match.start(1)] + repl + src[match.end(1):]
241 src = src[:match.start(1)] + repl + src[match.end(1):]
261 f = open(srcfile,'w')
242 f = open(srcfile, 'w')
262 f.write(src)
243 f.write(src)
263 f.close()
244 f.close()
264
245
265
246
266 if __name__=='__main__':
247 if __name__ == '__main__':
267 if len(sys.argv)>2 and sys.argv[1]=='--md5update':
248 if len(sys.argv) > 2 and sys.argv[1] == '--md5update':
268 update_md5(sys.argv[2:])
249 update_md5(sys.argv[2:])
269 else:
250 else:
270 main(sys.argv[1:])
251 main(sys.argv[1:])
@@ -1,120 +1,119 b''
1 import sys
1 import sys
2 from rhodecode import get_version
2 from rhodecode import get_version
3 from rhodecode import __platform__
3 from rhodecode import __platform__
4
4
5 py_version = sys.version_info
5 py_version = sys.version_info
6
6
7 if py_version < (2, 5):
7 if py_version < (2, 5):
8 raise Exception('RhodeCode requires python 2.5 or later')
8 raise Exception('RhodeCode requires python 2.5 or later')
9
9
10 requirements = [
10 requirements = [
11 "Pylons==1.0.0",
11 "Pylons==1.0.0",
12 "WebHelpers>=1.2",
12 "WebHelpers>=1.2",
13 "SQLAlchemy>=0.6.6",
13 "SQLAlchemy>=0.6.6",
14 "Mako>=0.4.0",
14 "Mako>=0.4.0",
15 "vcs>=0.2.0",
15 "vcs>=0.2.0",
16 "pygments>=1.4",
16 "pygments>=1.4",
17 "mercurial>=1.8.1",
17 "mercurial>=1.8.1",
18 "whoosh>=1.8.0",
18 "whoosh>=1.8.0",
19 "celery>=2.2.5",
19 "celery>=2.2.5",
20 "babel",
20 "babel",
21 "python-dateutil>=1.5.0,<2.0.0",
21 "python-dateutil>=1.5.0,<2.0.0",
22 ]
22 ]
23
23
24 classifiers = ['Development Status :: 4 - Beta',
24 classifiers = ['Development Status :: 4 - Beta',
25 'Environment :: Web Environment',
25 'Environment :: Web Environment',
26 'Framework :: Pylons',
26 'Framework :: Pylons',
27 'Intended Audience :: Developers',
27 'Intended Audience :: Developers',
28 'License :: OSI Approved :: BSD License',
28 'License :: OSI Approved :: BSD License',
29 'Operating System :: OS Independent',
29 'Operating System :: OS Independent',
30 'Programming Language :: Python',
30 'Programming Language :: Python',
31 'Programming Language :: Python :: 2.5',
31 'Programming Language :: Python :: 2.5',
32 'Programming Language :: Python :: 2.6',
32 'Programming Language :: Python :: 2.6',
33 'Programming Language :: Python :: 2.7', ]
33 'Programming Language :: Python :: 2.7', ]
34
34
35 if py_version < (2, 6):
35 if py_version < (2, 6):
36 requirements.append("simplejson")
36 requirements.append("simplejson")
37 requirements.append("pysqlite")
37 requirements.append("pysqlite")
38
38
39 if __platform__ in ('Linux', 'Darwin'):
39 if __platform__ in ('Linux', 'Darwin'):
40 requirements.append("py-bcrypt")
40 requirements.append("py-bcrypt")
41
41
42
42
43 #additional files from project that goes somewhere in the filesystem
43 #additional files from project that goes somewhere in the filesystem
44 #relative to sys.prefix
44 #relative to sys.prefix
45 data_files = []
45 data_files = []
46
46
47 #additional files that goes into package itself
47 #additional files that goes into package itself
48 package_data = {'rhodecode': ['i18n/*/LC_MESSAGES/*.mo', ], }
48 package_data = {'rhodecode': ['i18n/*/LC_MESSAGES/*.mo', ], }
49
49
50 description = ('Mercurial repository browser/management with '
50 description = ('Mercurial repository browser/management with '
51 'build in push/pull server and full text search')
51 'build in push/pull server and full text search')
52 keywords = ' '.join (['rhodecode', 'rhodiumcode', 'mercurial', 'git',
52 keywords = ' '.join(['rhodecode', 'rhodiumcode', 'mercurial', 'git',
53 'repository management', 'hgweb replacement'
53 'repository management', 'hgweb replacement'
54 'hgwebdir', 'gitweb replacement', 'serving hgweb',
54 'hgwebdir', 'gitweb replacement', 'serving hgweb', ])
55 ])
56 #long description
55 #long description
57 try:
56 try:
58 readme_file = 'README.rst'
57 readme_file = 'README.rst'
59 changelog_file = 'docs/changelog.rst'
58 changelog_file = 'docs/changelog.rst'
60 long_description = open(readme_file).read() + '\n\n' + \
59 long_description = open(readme_file).read() + '\n\n' + \
61 open(changelog_file).read()
60 open(changelog_file).read()
62
61
63 except IOError, err:
62 except IOError, err:
64 sys.stderr.write("[WARNING] Cannot find file specified as "
63 sys.stderr.write("[WARNING] Cannot find file specified as "
65 "long_description (%s)\n or changelog (%s) skipping that file" \
64 "long_description (%s)\n or changelog (%s) skipping that file" \
66 % (readme_file, changelog_file))
65 % (readme_file, changelog_file))
67 long_description = description
66 long_description = description
68
67
69
68
70 try:
69 try:
71 from setuptools import setup, find_packages
70 from setuptools import setup, find_packages
72 except ImportError:
71 except ImportError:
73 from ez_setup import use_setuptools
72 from ez_setup import use_setuptools
74 use_setuptools()
73 use_setuptools()
75 from setuptools import setup, find_packages
74 from setuptools import setup, find_packages
76 #packages
75 #packages
77 packages = find_packages(exclude=['ez_setup'])
76 packages = find_packages(exclude=['ez_setup'])
78
77
79 setup(
78 setup(
80 name='RhodeCode',
79 name='RhodeCode',
81 version=get_version(),
80 version=get_version(),
82 description=description,
81 description=description,
83 long_description=long_description,
82 long_description=long_description,
84 keywords=keywords,
83 keywords=keywords,
85 license='GPLv3',
84 license='GPLv3',
86 author='Marcin Kuzminski',
85 author='Marcin Kuzminski',
87 author_email='marcin@python-works.com',
86 author_email='marcin@python-works.com',
88 url='http://rhodecode.org',
87 url='http://rhodecode.org',
89 install_requires=requirements,
88 install_requires=requirements,
90 classifiers=classifiers,
89 classifiers=classifiers,
91 setup_requires=["PasteScript>=1.6.3"],
90 setup_requires=["PasteScript>=1.6.3"],
92 data_files=data_files,
91 data_files=data_files,
93 packages=packages,
92 packages=packages,
94 include_package_data=True,
93 include_package_data=True,
95 test_suite='nose.collector',
94 test_suite='nose.collector',
96 package_data=package_data,
95 package_data=package_data,
97 message_extractors={'rhodecode': [
96 message_extractors={'rhodecode': [
98 ('**.py', 'python', None),
97 ('**.py', 'python', None),
99 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
98 ('templates/**.mako', 'mako', {'input_encoding': 'utf-8'}),
100 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
99 ('templates/**.html', 'mako', {'input_encoding': 'utf-8'}),
101 ('public/**', 'ignore', None)]},
100 ('public/**', 'ignore', None)]},
102 zip_safe=False,
101 zip_safe=False,
103 paster_plugins=['PasteScript', 'Pylons'],
102 paster_plugins=['PasteScript', 'Pylons'],
104 entry_points="""
103 entry_points="""
105 [paste.app_factory]
104 [paste.app_factory]
106 main = rhodecode.config.middleware:make_app
105 main = rhodecode.config.middleware:make_app
107
106
108 [paste.app_install]
107 [paste.app_install]
109 main = pylons.util:PylonsInstaller
108 main = pylons.util:PylonsInstaller
110
109
111 [paste.global_paster_command]
110 [paste.global_paster_command]
112 make-index = rhodecode.lib.indexers:MakeIndex
111 make-index = rhodecode.lib.indexers:MakeIndex
113 upgrade-db = rhodecode.lib.dbmigrate:UpgradeDb
112 upgrade-db = rhodecode.lib.dbmigrate:UpgradeDb
114 celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand
113 celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand
115 celerybeat=rhodecode.lib.celerypylons.commands:CeleryBeatCommand
114 celerybeat=rhodecode.lib.celerypylons.commands:CeleryBeatCommand
116 camqadm=rhodecode.lib.celerypylons.commands:CAMQPAdminCommand
115 camqadm=rhodecode.lib.celerypylons.commands:CAMQPAdminCommand
117 celeryev=rhodecode.lib.celerypylons.commands:CeleryEventCommand
116 celeryev=rhodecode.lib.celerypylons.commands:CeleryEventCommand
118
117
119 """,
118 """,
120 )
119 )
General Comments 0
You need to be logged in to leave comments. Login now