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