Skip to content

Commit 290cda8

Browse files
author
Thomas Preud'homme
committed
[LNT] Python 3 support: use Python 3 urllib
Summary: Adapt imports to urllib and urllib2 to rely on Python 3 module organization by installing them as aliases. This was produced by running futurize's stage2 libfuturize.fixes.fix_future_standard_library_urllib and adapted manually to remove excess import and fix up str to byte conversion of urlencode result. Reviewers: cmatthews, hubert.reinterpretcast, kristof.beyls Reviewed By: hubert.reinterpretcast Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D67878
1 parent 23ed24c commit 290cda8

File tree

5 files changed

+25
-14
lines changed

5 files changed

+25
-14
lines changed

lnt/lnttool/viewcomparison.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
from future import standard_library
2+
standard_library.install_aliases()
13
import click
24
import time
3-
import urllib
5+
import urllib.request
46
import webbrowser
57
import sys
68

@@ -10,7 +12,7 @@ def _start_browser(url, debug=False):
1012

1113
def url_is_up(url):
1214
try:
13-
o = urllib.urlopen(url)
15+
o = urllib.request.urlopen(url)
1416
except IOError:
1517
return False
1618
o.close()

lnt/server/reporting/dailyreport.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from future import standard_library
2+
standard_library.install_aliases()
13
from lnt.server.reporting.analysis import REGRESSED, UNCHANGED_FAIL
24
from lnt.server.reporting.report import RunResult, RunResults, report_css_styles, pairs, OrderAndHistory
35
from lnt.util import multidict
@@ -6,7 +8,7 @@
68
import lnt.server.ui.app
79
import re
810
import sqlalchemy.sql
9-
import urllib
11+
import urllib.parse
1012

1113

1214
class DailyReport(object):
@@ -44,7 +46,7 @@ def __init__(self, ts, year, month, day, num_prior_days_to_include=3,
4446
def get_query_parameters_string(self):
4547
query_params = [
4648
"{}={}".format(
47-
urllib.quote_plus(query_param), urllib.quote_plus(str(value)))
49+
urllib.parse.quote_plus(query_param), urllib.parse.quote_plus(str(value)))
4850
for query_param, value in (
4951
("day_start", self.day_start_offset.seconds // 3600),
5052
("num_days", self.num_prior_days_to_include),

lnt/server/ui/filters.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
from future import standard_library
2+
standard_library.install_aliases()
13
import StringIO
24
import datetime
35
import pprint
4-
import urllib
6+
import urllib.parse
57
import time
68

79
from lnt.server.ui import util
@@ -37,7 +39,7 @@ def filter_format_or_default(fmt, input, default):
3739

3840

3941
def filter_urlencode(args):
40-
return urllib.urlencode(args)
42+
return urllib.parse.urlencode(args)
4143

4244

4345
def filter_timedelta(start_time):

lnt/tests/nt.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""LLVM test-suite compile and execution tests"""
22
from __future__ import absolute_import
33
from __future__ import print_function
4+
from future import standard_library
5+
standard_library.install_aliases()
46
import csv
57
import os
68
import platform
@@ -11,7 +13,7 @@
1113
import glob
1214
import time
1315
import traceback
14-
import urllib2
16+
import urllib.error
1517
import shlex
1618
import pipes
1719
import resource
@@ -1775,7 +1777,7 @@ def submit_helper(self, config, merge_run=None):
17751777
try:
17761778
result = ServerUtil.submitFile(server, report_path, False,
17771779
merge_run=merge_run)
1778-
except (urllib2.HTTPError, urllib2.URLError) as e:
1780+
except (urllib.error.HTTPError, urllib.error.URLError) as e:
17791781
logger.warning("submitting to {} failed with {}"
17801782
.format(server, e))
17811783
else:

lnt/util/ServerUtil.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
Utility for submitting files to a web server over HTTP.
33
"""
44
from __future__ import print_function
5+
from future import standard_library
6+
standard_library.install_aliases()
57
import sys
6-
import urllib
7-
import urllib2
8+
import urllib.request
9+
import urllib.parse
10+
import urllib.error
811
import contextlib
912
import json
1013

@@ -39,13 +42,13 @@ def submitFileToServer(url, file, select_machine=None, merge_run=None):
3942
if merge_run is not None:
4043
values['merge'] = merge_run
4144
headers = {'Accept': 'application/json'}
42-
data = urllib.urlencode(values)
45+
data = urllib.parse.urlencode(values).encode(encoding='ascii')
4346
try:
44-
response = urllib2.urlopen(urllib2.Request(url, data, headers=headers))
45-
except urllib2.HTTPError as e:
47+
response = urllib.request.urlopen(urllib.request.Request(url, data, headers=headers))
48+
except urllib.error.HTTPError as e:
4649
_show_json_error(e.read())
4750
return
48-
except urllib2.URLError as e:
51+
except urllib.error.URLError as e:
4952
sys.stderr.write("error: could not resolve '%s': %s\n" %
5053
(url, e))
5154
return

0 commit comments

Comments
 (0)