Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d5b61bd

Browse files
committed
Updating urllib related imports and usage. (Using six)
1 parent ed9affd commit d5b61bd

File tree

7 files changed

+35
-55
lines changed

7 files changed

+35
-55
lines changed

googleapiclient/discovery.py

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
]
3030

3131
from six import StringIO
32+
from six.moves.urllib.parse import urlencode, urlparse, urljoin, \
33+
urlunparse, parse_qsl
3234

3335
# Standard library imports
3436
import copy
@@ -41,13 +43,6 @@
4143
import mimetypes
4244
import os
4345
import re
44-
import urllib
45-
import urlparse
46-
47-
try:
48-
from urlparse import parse_qsl
49-
except ImportError:
50-
from cgi import parse_qsl
5146

5247
# Third-party imports
5348
import httplib2
@@ -258,7 +253,7 @@ def build_from_document(
258253

259254
if isinstance(service, six.string_types):
260255
service = json.loads(service)
261-
base = urlparse.urljoin(service['rootUrl'], service['servicePath'])
256+
base = urljoin(service['rootUrl'], service['servicePath'])
262257
schema = Schemas(service)
263258

264259
if credentials:
@@ -505,7 +500,7 @@ def _urljoin(base, url):
505500
# exception here is the case of media uploads, where url will be an
506501
# absolute url.
507502
if url.startswith('http://') or url.startswith('https://'):
508-
return urlparse.urljoin(base, url)
503+
return urljoin(base, url)
509504
new_base = base if base.endswith('/') else base + '/'
510505
new_url = url[1:] if url.startswith('/') else url
511506
return new_base + new_url
@@ -859,14 +854,14 @@ def methodNext(self, previous_request, previous_response):
859854
request = copy.copy(previous_request)
860855

861856
pageToken = previous_response['nextPageToken']
862-
parsed = list(urlparse.urlparse(request.uri))
857+
parsed = list(urlparse(request.uri))
863858
q = parse_qsl(parsed[4])
864859

865860
# Find and remove old 'pageToken' value from URI
866861
newq = [(key, value) for (key, value) in q if key != 'pageToken']
867862
newq.append(('pageToken', pageToken))
868-
parsed[4] = urllib.urlencode(newq)
869-
uri = urlparse.urlunparse(parsed)
863+
parsed[4] = urlencode(newq)
864+
uri = urlunparse(parsed)
870865

871866
request.uri = uri
872867

googleapiclient/http.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
__author__ = '[email protected] (Joe Gregorio)'
2626

2727
from six import BytesIO, StringIO
28+
from six.moves.urllib.parse import urlparse, urlunparse, quote, unquote
2829

2930
import base64
3031
import copy
@@ -38,8 +39,6 @@
3839
import random
3940
import sys
4041
import time
41-
import urllib
42-
import urlparse
4342
import uuid
4443

4544
from email.generator import Generator
@@ -703,8 +702,8 @@ def execute(self, http=None, num_retries=0):
703702
self.method = 'POST'
704703
self.headers['x-http-method-override'] = 'GET'
705704
self.headers['content-type'] = 'application/x-www-form-urlencoded'
706-
parsed = urlparse.urlparse(self.uri)
707-
self.uri = urlparse.urlunparse(
705+
parsed = urlparse(self.uri)
706+
self.uri = urlunparse(
708707
(parsed.scheme, parsed.netloc, parsed.path, parsed.params, None,
709708
None)
710709
)
@@ -1052,7 +1051,7 @@ def _id_to_header(self, id_):
10521051
if self._base_id is None:
10531052
self._base_id = uuid.uuid4()
10541053

1055-
return '<%s+%s>' % (self._base_id, urllib.quote(id_))
1054+
return '<%s+%s>' % (self._base_id, quote(id_))
10561055

10571056
def _header_to_id(self, header):
10581057
"""Convert a Content-ID header value to an id.
@@ -1075,7 +1074,7 @@ def _header_to_id(self, header):
10751074
raise BatchError("Invalid value for Content-ID: %s" % header)
10761075
base, id_ = header[1:-1].rsplit('+', 1)
10771076

1078-
return urllib.unquote(id_)
1077+
return unquote(id_)
10791078

10801079
def _serialize_request(self, request):
10811080
"""Convert an HttpRequest object into a string.
@@ -1087,8 +1086,8 @@ def _serialize_request(self, request):
10871086
The request as a string in application/http format.
10881087
"""
10891088
# Construct status line
1090-
parsed = urlparse.urlparse(request.uri)
1091-
request_line = urlparse.urlunparse(
1089+
parsed = urlparse(request.uri)
1090+
request_line = urlunparse(
10921091
(None, None, parsed.path, parsed.params, parsed.query, None)
10931092
)
10941093
status_line = request.method + ' ' + request_line + ' HTTP/1.1\n'

googleapiclient/model.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626

2727
import json
2828
import logging
29-
import urllib
29+
30+
from six.moves.urllib.parse import urlencode
3031

3132
from googleapiclient import __version__
3233
from .errors import HttpError
@@ -170,7 +171,7 @@ def _build_query(self, params):
170171
if isinstance(value, six.text_type) and callable(value.encode):
171172
value = value.encode('utf-8')
172173
astuples.append((key, value))
173-
return '?' + urllib.urlencode(astuples)
174+
return '?' + urlencode(astuples)
174175

175176
def _log_response(self, resp, content):
176177
"""Logs debugging information about the response if requested."""

tests/test_discovery.py

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
__author__ = '[email protected] (Joe Gregorio)'
2727

2828
from six import BytesIO, StringIO
29+
from six.moves.urllib.parse import urlparse, parse_qs
2930

3031
import copy
3132
import datetime
@@ -36,14 +37,6 @@
3637
import pickle
3738
import sys
3839
import unittest2 as unittest
39-
import urlparse
40-
41-
42-
try:
43-
from urlparse import parse_qs
44-
except ImportError:
45-
from cgi import parse_qs
46-
4740

4841
from googleapiclient.discovery import _fix_up_media_upload
4942
from googleapiclient.discovery import _fix_up_method_description
@@ -83,8 +76,8 @@
8376

8477
def assertUrisEqual(testcase, expected, actual):
8578
"""Test that URIs are the same, up to reordering of query parameters."""
86-
expected = urlparse.urlparse(expected)
87-
actual = urlparse.urlparse(actual)
79+
expected = urlparse(expected)
80+
actual = urlparse(actual)
8881
testcase.assertEqual(expected.scheme, actual.scheme)
8982
testcase.assertEqual(expected.netloc, actual.netloc)
9083
testcase.assertEqual(expected.path, actual.path)
@@ -443,7 +436,7 @@ def test_method_error_checking(self):
443436
self.assertTrue('unexpected' in str(e))
444437

445438
def _check_query_types(self, request):
446-
parsed = urlparse.urlparse(request.uri)
439+
parsed = urlparse(request.uri)
447440
q = parse_qs(parsed[4])
448441
self.assertEqual(q['q'], ['foo'])
449442
self.assertEqual(q['i'], ['1'])
@@ -480,7 +473,7 @@ def test_optional_stack_query_parameters(self):
480473
zoo = build('zoo', 'v1', http=http)
481474
request = zoo.query(trace='html', fields='description')
482475

483-
parsed = urlparse.urlparse(request.uri)
476+
parsed = urlparse(request.uri)
484477
q = parse_qs(parsed[4])
485478
self.assertEqual(q['trace'], ['html'])
486479
self.assertEqual(q['fields'], ['description'])
@@ -490,7 +483,7 @@ def test_string_params_value_of_none_get_dropped(self):
490483
zoo = build('zoo', 'v1', http=http)
491484
request = zoo.query(trace=None, fields='description')
492485

493-
parsed = urlparse.urlparse(request.uri)
486+
parsed = urlparse(request.uri)
494487
q = parse_qs(parsed[4])
495488
self.assertFalse('trace' in q)
496489

@@ -499,7 +492,7 @@ def test_model_added_query_parameters(self):
499492
zoo = build('zoo', 'v1', http=http)
500493
request = zoo.animals().get(name='Lion')
501494

502-
parsed = urlparse.urlparse(request.uri)
495+
parsed = urlparse(request.uri)
503496
q = parse_qs(parsed[4])
504497
self.assertEqual(q['alt'], ['json'])
505498
self.assertEqual(request.headers['accept'], 'application/json')
@@ -509,7 +502,7 @@ def test_fallback_to_raw_model(self):
509502
zoo = build('zoo', 'v1', http=http)
510503
request = zoo.animals().getmedia(name='Lion')
511504

512-
parsed = urlparse.urlparse(request.uri)
505+
parsed = urlparse(request.uri)
513506
q = parse_qs(parsed[4])
514507
self.assertTrue('alt' not in q)
515508
self.assertEqual(request.headers['accept'], '*/*')
@@ -561,7 +554,7 @@ def test_full_featured(self):
561554
self.assertTrue(getattr(zoo, 'animals'))
562555

563556
request = zoo.animals().list(name='bat', projection="full")
564-
parsed = urlparse.urlparse(request.uri)
557+
parsed = urlparse(request.uri)
565558
q = parse_qs(parsed[4])
566559
self.assertEqual(q['name'], ['bat'])
567560
self.assertEqual(q['projection'], ['full'])
@@ -571,7 +564,7 @@ def test_nested_resources(self):
571564
zoo = build('zoo', 'v1', http=self.http)
572565
self.assertTrue(getattr(zoo, 'animals'))
573566
request = zoo.my().favorites().list(max_results="5")
574-
parsed = urlparse.urlparse(request.uri)
567+
parsed = urlparse(request.uri)
575568
q = parse_qs(parsed[4])
576569
self.assertEqual(q['max-results'], ['5'])
577570

@@ -580,15 +573,15 @@ def test_methods_with_reserved_names(self):
580573
zoo = build('zoo', 'v1', http=self.http)
581574
self.assertTrue(getattr(zoo, 'animals'))
582575
request = zoo.global_().print_().assert_(max_results="5")
583-
parsed = urlparse.urlparse(request.uri)
576+
parsed = urlparse(request.uri)
584577
self.assertEqual(parsed[2], '/zoo/v1/global/print/assert')
585578

586579
def test_top_level_functions(self):
587580
self.http = HttpMock(datafile('zoo.json'), {'status': '200'})
588581
zoo = build('zoo', 'v1', http=self.http)
589582
self.assertTrue(getattr(zoo, 'query'))
590583
request = zoo.query(q="foo")
591-
parsed = urlparse.urlparse(request.uri)
584+
parsed = urlparse(request.uri)
592585
q = parse_qs(parsed[4])
593586
self.assertEqual(q['q'], ['foo'])
594587

@@ -1166,7 +1159,7 @@ def test_next_successful_with_next_page_token(self):
11661159
request = tasks.tasklists().list()
11671160
next_request = tasks.tasklists().list_next(
11681161
request, {'nextPageToken': '123abc'})
1169-
parsed = list(urlparse.urlparse(next_request.uri))
1162+
parsed = list(urlparse(next_request.uri))
11701163
q = parse_qs(parsed[4])
11711164
self.assertEqual(q['pageToken'][0], '123abc')
11721165

@@ -1183,7 +1176,7 @@ def test_get_media(self):
11831176
zoo = build('zoo', 'v1', http=http)
11841177
request = zoo.animals().get_media(name='Lion')
11851178

1186-
parsed = urlparse.urlparse(request.uri)
1179+
parsed = urlparse(request.uri)
11871180
q = parse_qs(parsed[4])
11881181
self.assertEqual(q['alt'], ['media'])
11891182
self.assertEqual(request.headers['accept'], '*/*')

tests/test_http.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@
2525

2626
from six import BytesIO, StringIO
2727
from io import FileIO
28+
from six.moves.urllib.parse import urlencode
2829

2930
# Do not remove the httplib2 import
3031
import httplib2
3132
import logging
3233
import os
3334
import unittest2 as unittest
34-
import urllib
3535
import random
3636
import time
3737

@@ -917,7 +917,7 @@ def _postproc(resp, content):
917917
req = HttpRequest(
918918
http,
919919
_postproc,
920-
'http://example.com?' + urllib.urlencode(query),
920+
'http://example.com?' + urlencode(query),
921921
method='GET',
922922
body=None,
923923
headers={},

tests/test_json_model.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,7 @@
3434
from googleapiclient.errors import HttpError
3535
from googleapiclient.model import JsonModel
3636

37-
# Python 2.5 requires different modules
38-
try:
39-
from urlparse import parse_qs
40-
except ImportError:
41-
from cgi import parse_qs
37+
from six.moves.urllib.parse import parse_qs
4238

4339

4440
class Model(unittest.TestCase):

tests/test_protobuf_model.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,7 @@
2929
from googleapiclient.errors import HttpError
3030
from googleapiclient.model import ProtocolBufferModel
3131

32-
# Python 2.5 requires different modules
33-
try:
34-
from urlparse import parse_qs
35-
except ImportError:
36-
from cgi import parse_qs
32+
from six.moves.urllib.parse import parse_qs
3733

3834

3935
class MockProtocolBuffer(object):

0 commit comments

Comments
 (0)