Skip to content

Commit 81e55c3

Browse files
committed
First pass of porting with 'fissix'
1 parent c9e7600 commit 81e55c3

File tree

7 files changed

+47
-44
lines changed

7 files changed

+47
-44
lines changed

src/web/api/resources.py

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Treat strings as UTF-8 instead of ASCII
22
import sys
3-
reload(sys)
3+
from functools import cmp_to_key
4+
import importlib
5+
importlib.reload(sys)
46
sys.setdefaultencoding('UTF8')
57

68
from tastypie.resources import Resource
@@ -21,10 +23,10 @@
2123
import datetime
2224
import json as simplejson
2325
from hashlib import sha1
24-
from urllib import quote
25-
from urllib import unquote
26+
from urllib.parse import quote
27+
from urllib.parse import unquote
2628

27-
from urllib2 import HTTPError
29+
from urllib.error import HTTPError
2830
from collections import OrderedDict
2931

3032
release_color_mapping = OrderedDict()
@@ -426,7 +428,7 @@ def _handle_request(self, bundle, start, finish):
426428
if first_appearance:
427429
if m.get('FirstSeen', '') != version:
428430
continue
429-
if isinstance(bucket, unicode):
431+
if isinstance(bucket, str):
430432
bucket = bucket.encode('utf-8')
431433
hashed = sha1(bucket).hexdigest()
432434
if cassie.get_problem_for_hash(hashed):
@@ -627,7 +629,7 @@ def _handle_request(self, bundle, start, finish):
627629
buckets = cassie.get_package_new_buckets(src_package,
628630
previous_version, new_version)
629631
for bucket in buckets:
630-
if isinstance(bucket, unicode):
632+
if isinstance(bucket, str):
631633
bucket = bucket.encode('utf-8')
632634
hashed = sha1(bucket).hexdigest()
633635
if cassie.get_problem_for_hash(hashed):
@@ -720,7 +722,7 @@ def __getslice__(klass, start, finish):
720722
for item in recoverables:
721723
if item[0] in results:
722724
results[item[0]] -= item[1]
723-
results = sorted(results.items(), cmp=lambda x,y: cmp(x[0], y[0]))
725+
results = sorted(list(results.items()), key=cmp_to_key(lambda x,y: cmp(x[0], y[0])))
724726

725727
res = [{'x': result[0] * 1000, 'y': result[1]} for result in results]
726728
d = {'key' : '%s (by 12.04 standards)' % release,
@@ -747,7 +749,7 @@ def obj_get_list(self, bundle):
747749
class wrapped(list):
748750
def __getslice__(klass, start, finish):
749751
bucketid = unquote(bundle.request.GET.get('id', None))
750-
for release, color in release_color_mapping.iteritems():
752+
for release, color in release_color_mapping.items():
751753
r = cassie.get_average_instances(bucketid, release, 360)
752754
values = [{'x': i[0] * 1000, 'y': i[1]} for i in r]
753755
d = {'key': release, 'values': values, 'color': color}
@@ -806,7 +808,7 @@ def obj_create(self, bundle):
806808
result = {}
807809
def map_results(p, state):
808810
result[p['package'] + ' ' + p['last_seen']] = state
809-
map(map_results, packages, most_recent)
811+
list(map(map_results, packages, most_recent))
810812
bundle.obj.packages = result
811813
return bundle
812814

@@ -834,7 +836,7 @@ def obj_create(self, bundle):
834836
result = {}
835837
def map_results(p, location):
836838
result[p['package'] + ' ' + p['seen'] + ' ' + p['release']] = location
837-
map(map_results, packages_data, pocket)
839+
list(map(map_results, packages_data, pocket))
838840
bundle.obj.packages_data = result
839841
return bundle
840842

@@ -874,7 +876,7 @@ def __getslice__(klass, start, finish):
874876
cols = ['DistroRelease', 'Package', 'Architecture']
875877
gen = cassie.get_crashes_for_bucket(bucketid, start=start)
876878
for oops in gen:
877-
ts = (oops.time - 0x01b21dd213814000L)*100/1e9
879+
ts = (oops.time - 0x01b21dd213814000)*100/1e9
878880
ts = datetime.datetime.utcfromtimestamp(ts)
879881
d = cassie.get_crash(str(oops), columns=cols)
880882
ver = split_package_and_version(d.get('Package', ''))[1]
@@ -969,13 +971,13 @@ def __getslice__(klass, start, finish):
969971
self.update(results, version, release, codename, total, src_pkg)
970972
# Produce totals for all Ubuntu releases as the last row.
971973
self.update(results, 'All versions', release, codename, total)
972-
versions.sort(cmp=apt.apt_pkg.version_compare)
974+
versions.sort(key=cmp_to_key(apt.apt_pkg.version_compare))
973975
if vers:
974976
versions.append('All versions')
975977
oresults = OrderedDict()
976978
for version in versions:
977979
oresults[version] = results[version]
978-
return oresults.values()
980+
return list(oresults.values())
979981
else:
980982
return {}
981983

src/web/cassie.py

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
import pycassa
55
import sys
66
import time
7-
import urllib
7+
import urllib.request, urllib.parse, urllib.error
88
from pycassa.cassandra.ttypes import NotFoundException
99
from pycassa.util import OrderedDict
1010

1111
from daisy import config
1212
from daisy import metrics as daisy_metrics
13+
from functools import cmp_to_key
1314
pool = daisy_metrics.wrapped_connection_pool('errors')
1415

1516
from cassandra import ConsistencyLevel
@@ -141,7 +142,7 @@ def get_bucket_counts (release=None, package=None, version=None, pkg_arch=None,
141142
except NotFoundException:
142143
break
143144

144-
for column, count in result.iteritems():
145+
for column, count in result.items():
145146
if not show_failed and column.startswith('failed'):
146147
continue
147148
column = column.encode('utf-8')
@@ -154,7 +155,7 @@ def get_bucket_counts (release=None, package=None, version=None, pkg_arch=None,
154155
start = column + '0'
155156
if len(result) < batch_size:
156157
break
157-
return sorted(results.items(), cmp=lambda x, y: cmp(x[1], y[1]), reverse=True)
158+
return sorted(list(results.items()), key=cmp_to_key(lambda x, y: cmp(x[1], y[1])), reverse=True)
158159

159160
def get_crashes_for_bucket (bucketid, limit=100, start=None):
160161
'''
@@ -167,13 +168,13 @@ def get_crashes_for_bucket (bucketid, limit=100, start=None):
167168
try:
168169
if start:
169170
start = pycassa.util.uuid.UUID(start)
170-
return bucket_cf.get(bucketid,
171+
return list(bucket_cf.get(bucketid,
171172
column_start=start,
172173
column_count=limit,
173-
column_reversed=True).keys()[1:]
174+
column_reversed=True).keys())[1:]
174175
else:
175-
return bucket_cf.get(bucketid, column_count=limit,
176-
column_reversed=True).keys()
176+
return list(bucket_cf.get(bucketid, column_count=limit,
177+
column_reversed=True).keys())
177178
except NotFoundException:
178179
return []
179180

@@ -184,7 +185,7 @@ def get_package_for_bucket (bucketid):
184185
oops_cf = pycassa.ColumnFamily(pool, 'OOPS')
185186
# Grab 5 OOPS IDs, just in case the first one doesn't have a Package field.
186187
try:
187-
oopsids = bucket_cf.get(bucketid, column_count=5).keys()
188+
oopsids = list(bucket_cf.get(bucketid, column_count=5).keys())
188189
except NotFoundException:
189190
return ('', '')
190191
for oopsid in oopsids:
@@ -272,7 +273,7 @@ def get_retracer_count(date):
272273

273274
def get_retracer_counts(start, finish):
274275
retracestats_cf = pycassa.ColumnFamily(pool, 'RetraceStats')
275-
if finish == sys.maxint:
276+
if finish == sys.maxsize:
276277
start = datetime.date.today() - datetime.timedelta(days=start)
277278
start = start.strftime('%Y%m%d')
278279
results = retracestats_cf.get_range()
@@ -313,7 +314,7 @@ def get_retracer_means(start, finish):
313314
branch[part] = to_float(timings[timing])
314315
else:
315316
branch = branch.setdefault(part, {})
316-
return result.iteritems()
317+
return iter(result.items())
317318

318319
def get_crash_count(start, finish, release=None):
319320
counters_cf = pycassa.ColumnFamily(pool, 'Counters')
@@ -349,7 +350,7 @@ def chunks(l, n):
349350
# http://stackoverflow.com/a/312464/190597
350351
""" Yield successive n-sized chunks from l.
351352
"""
352-
for i in xrange(0, len(l), n):
353+
for i in range(0, len(l), n):
353354
yield l[i:i+n]
354355

355356
def get_metadata_for_buckets(bucketids, release=None):
@@ -392,10 +393,10 @@ def get_user_crashes(user_token, limit=50, start=None):
392393
include_timestamp=True)
393394
for r in result:
394395
results[r] = {'submitted': result[r]}
395-
start = result.keys()[-1] + '0'
396+
start = list(result.keys())[-1] + '0'
396397
except NotFoundException:
397398
return []
398-
return [(k[0], k[1]) for k in sorted(results.iteritems(), key=operator.itemgetter(1),
399+
return [(k[0], k[1]) for k in sorted(iter(results.items()), key=operator.itemgetter(1),
399400
reverse=True)]
400401

401402
def get_average_crashes(field, release, days=7):
@@ -460,7 +461,7 @@ def get_versions_for_bucket(bucketid):
460461
def get_source_package_for_bucket(bucketid):
461462
oops_cf = pycassa.ColumnFamily(pool, 'OOPS')
462463
bucket_cf = pycassa.ColumnFamily(pool, 'Bucket')
463-
oopsids = bucket_cf.get(bucketid, column_count=10).keys()
464+
oopsids = list(bucket_cf.get(bucketid, column_count=10).keys())
464465
for oopsid in oopsids:
465466
try:
466467
oops = oops_cf.get(str(oopsid), columns=['SourcePackage'])
@@ -497,7 +498,7 @@ def get_binary_packages_for_user(user):
497498
for result in results:
498499
if results[result] == 0:
499500
del results[result]
500-
return [k[0:-7] for k in results.keys()]
501+
return [k[0:-7] for k in list(results.keys())]
501502

502503
def get_package_crash_rate(release, src_package, old_version, new_version,
503504
pup, date, absolute_uri, exclude_proposed=False):
@@ -562,12 +563,12 @@ def get_package_crash_rate(release, src_package, old_version, new_version,
562563
# no previous version data so the diff is today's amount
563564
results['difference'] = today_crashes
564565
web_link = '?release=%s&package=%s&version=%s' % \
565-
(urllib.quote(release), urllib.quote(src_package),
566-
urllib.quote(new_version))
566+
(urllib.parse.quote(release), urllib.parse.quote(src_package),
567+
urllib.parse.quote(new_version))
567568
results['web_link'] = absolute_uri + web_link
568569
return results
569570
first_date = date
570-
oldest_date = old_vers_data.keys()[-1]
571+
oldest_date = list(old_vers_data.keys())[-1]
571572
dates = [x for x in _date_range_iterator(oldest_date, first_date)]
572573
previous_vers_crashes = []
573574
previous_days = len(dates[:-1])
@@ -612,8 +613,8 @@ def get_package_crash_rate(release, src_package, old_version, new_version,
612613
results['increase'] = True
613614
results['difference'] = difference
614615
web_link = '?release=%s&package=%s&version=%s' % \
615-
(urllib.quote(release), urllib.quote(src_package),
616-
urllib.quote(new_version))
616+
(urllib.parse.quote(release), urllib.parse.quote(src_package),
617+
urllib.parse.quote(new_version))
617618
results['web_link'] = absolute_uri + web_link
618619
results['previous_period_in_days'] = previous_days
619620
results['previous_average'] = standard_crashes
@@ -636,12 +637,12 @@ def get_package_new_buckets(src_pkg, previous_version, new_version):
636637

637638
new_buckets = set(n_data).difference(set(p_data))
638639
for bucket in new_buckets:
639-
if isinstance(bucket, unicode):
640+
if isinstance(bucket, str):
640641
bucket = bucket.encode('utf-8')
641642
# do not return buckets that failed to retrace
642643
if bucket.startswith('failed:'):
643644
continue
644-
if isinstance(new_version, unicode):
645+
if isinstance(new_version, str):
645646
new_version = new_version.encode('utf-8')
646647
try:
647648
count = len(bucketversionsystems_cf.get((bucket, new_version), column_count=4))

src/web/metrics.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def wrapper(*args, **kwargs):
2828
if 'resource_name' in kwargs:
2929
name = kwargs['resource_name']
3030
else:
31-
name = view.func_name
31+
name = view.__name__
3232

3333
if len(args) > 2 and hasattr(args[2], 'user'):
3434
user = 'users.%s.' % str(args[2].user)

src/web/status.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def check_average_crashes():
8181
def check_buckets():
8282
from django.contrib.auth.models import Group
8383
from django.test.client import RequestFactory
84-
from views import bucket
84+
from .views import bucket
8585

8686
b = ('/usr/bin/lsb_release:IOError:<module>:main:'
8787
'check_modules_installed:getoutput:getstatusoutput')

src/web/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
version_info = {}
22
try:
3-
from version_info import version_info
3+
from .version_info import version_info
44
except:
55
pass

src/web/version_info.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@
1717

1818

1919
if __name__ == '__main__':
20-
print('revision: %(revno)s' % version_info)
21-
print('nick: %(branch_nick)s' % version_info)
22-
print('revision id: %(revision_id)s' % version_info)
20+
print(('revision: %(revno)s' % version_info))
21+
print(('nick: %(branch_nick)s' % version_info))
22+
print(('revision id: %(revision_id)s' % version_info))

src/web/views.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from errors.metrics import measure_view
88
from pycassa.util import OrderedDict
99
from errors.auth import can_see_stacktraces
10-
from urllib import quote
10+
from urllib.parse import quote
1111

1212

1313
def common_c():
@@ -118,7 +118,7 @@ def login_failed(request):
118118
return HttpResponseRedirect('/?login-failed=true')
119119

120120
def status(request):
121-
import status
121+
from . import status
122122
from types import FunctionType
123123
funcs = [getattr(status, x, None) for x in dir(status)
124124
if isinstance(getattr(status, x, None), FunctionType)
@@ -128,7 +128,7 @@ def status(request):
128128
if not x():
129129
if not failed_msg:
130130
failed_msg = 'HELP ME!\n\nfailing:\n'
131-
failed_msg = '%s%s\n' % (failed_msg, str(x.func_name))
131+
failed_msg = '%s%s\n' % (failed_msg, str(x.__name__))
132132
if failed_msg:
133133
return HttpResponse(failed_msg, status=400, content_type='text/plain')
134134
return HttpResponse('OK')

0 commit comments

Comments
 (0)