Commit 96adde73 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki Committed by Jérome Perrin

py2/py3: use six.moves.urllib for compatibility.

parent a96d3fe8
......@@ -26,7 +26,7 @@
##############################################################################
import os
from urllib import urlencode
from six.moves.urllib.parse import urlencode
import tempfile
from DateTime import DateTime
from zLOG import LOG
......
from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
import urllib
from six.moves.urllib.parse import urlencode
import mechanize
def getProductPrice(product):
......@@ -9,7 +9,7 @@ def getProductPrice(product):
def submitPaypalNVPRequest(parameter_dict, nvp_url):
request = mechanize.Request(nvp_url)
params = urllib.urlencode(parameter_dict)
params = urlencode(parameter_dict)
try:
response = mechanize.urlopen(request, data=params)
except:
......
import feedparser, urllib2, socket
import feedparser, six.moves.urllib.request, six.moves.urllib.error, socket
from hashlib import md5
def getRssDataAsDict(context, url, username=None, password=None):
......@@ -11,9 +11,9 @@ def getRssDataAsDict(context, url, username=None, password=None):
# use authentication or not?
handlers = []
if username is not None and password is not None:
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman = six.moves.urllib.request.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
auth_handler = urllib2.HTTPBasicAuthHandler(passman)
auth_handler = six.moves.urllib.request.HTTPBasicAuthHandler(passman)
handlers.append(auth_handler)
# set shorter timeouts and revert default at enf of read
......@@ -24,7 +24,7 @@ def getRssDataAsDict(context, url, username=None, password=None):
finally:
socket.setdefaulttimeout(default_timeout)
if d.bozo and isinstance(d.bozo_exception, urllib2.URLError):
if d.bozo and isinstance(d.bozo_exception, six.moves.urllib.error.URLError):
# we have an URL error
return {'status':-2}
elif d.bozo:
......
......@@ -26,7 +26,7 @@
##############################################################################
import suds
import urllib2
import six.moves.urllib.request
import ssl
import lxml.etree
......@@ -39,7 +39,7 @@ from suds.transport.https import HttpAuthenticated
class HTTPAuthenticatedUnverifiedSSL(HttpAuthenticated):
def u2handlers(self):
handlers = [ urllib2.HTTPSHandler(context=ssl._create_unverified_context()) ]
handlers = [ six.moves.urllib.request.HTTPSHandler(context=ssl._create_unverified_context()) ]
handlers.extend(HttpAuthenticated.u2handlers(self))
return handlers
......
......@@ -27,8 +27,8 @@
#
##############################################################################
import zope
from urllib import urlencode
from urllib2 import urlopen, Request
from six.moves.urllib.parse import urlencode
from six.moves.urllib.request import urlopen, Request
from zLOG import LOG, DEBUG
from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
......
......@@ -57,8 +57,8 @@ def parseTestReport(text):
Return the content of a web page
"""
def urlread(url):
import urllib
return urllib.urlopen(url).read()
from six.moves.urllib.request import urlopen
return urlopen(url).read()
"""
Remove everything but the test in a webpage
......
......@@ -29,7 +29,8 @@
"""Receive or send SMS"""
#Import python module
import urllib
from six.moves.urllib.parse import urlencode, unquote
from six.moves.urllib.request import urlopen
from lxml import etree
from DateTime import DateTime
......@@ -91,14 +92,14 @@ class EssendexGateway(XMLObject):
if len(parts) == 1:
data = parts[0].split('=')
#Remove \n et \r from value
result[data[0]] = urllib.unquote(data[1].replace('\r','').replace('\n',''))
result[data[0]] = unquote(data[1].replace('\r','').replace('\n',''))
else:
#Mutil values
subresult = {}
for part in parts:
data = part.split('=')
subresult[data[0]] = urllib.unquote(data[1].replace('\r','').replace('\n',''))
subresult[data[0]] = unquote(data[1].replace('\r','').replace('\n',''))
result[index] = subresult
#Increment index for next
index += 1
......@@ -161,8 +162,8 @@ class EssendexGateway(XMLObject):
params['Test'] = 1
LOG("EssendexGateway", INFO, params)
params = urllib.urlencode(params)
page = urllib.urlopen(base_url, params)
params = urlencode(params)
page = urlopen(base_url, params)
result = self._fetchPageAsDict(page)
if result['Result'] == "OK":
message_ids = result.get('MessageIDs', "")
......@@ -171,7 +172,7 @@ class EssendexGateway(XMLObject):
return message_ids.split(",")
elif result['Result'] == "Error":
#we get an error when call the gateway
raise SMSGatewayError(urllib.unquote(result.get('Message', "Impossible to send the SMS")))
raise SMSGatewayError(unquote(result.get('Message', "Impossible to send the SMS")))
elif result['Result'] == "Test":
#just a test, no message id
return None
......@@ -190,15 +191,15 @@ class EssendexGateway(XMLObject):
'MessageID': message_id,
}
params = urllib.urlencode(params)
page = urllib.urlopen(base_url, params)
params = urlencode(params)
page = urlopen(base_url, params)
result = self._fetchPageAsDict(page)
if result['Result'] == "OK":
return result.get('MessageStatus').lower()
elif result['Result'] == "Error":
#we get an error when call the gateway
raise SMSGatewayError(urllib.unquote(result.get('Message', "Impossible to get the message status")))
raise SMSGatewayError(unquote(result.get('Message', "Impossible to get the message status")))
security.declarePublic('receive')
def receive(self, REQUEST, **kw):
......@@ -319,8 +320,8 @@ class EssendexGateway(XMLObject):
params['Test'] = 1
LOG("EssendexGateway", INFO, params)
params = urllib.urlencode(params)
page = urllib.urlopen(base_url, params)
params = urlencode(params)
page = urlopen(base_url, params)
result = self._fetchPageAsDict(page)
if result['Result'] == "OK":
......@@ -344,6 +345,6 @@ class EssendexGateway(XMLObject):
LOG("EssendexGateway", INFO, result)
elif result['Result'] == "Error":
#we get an error when call the gateway
raise SMSGatewayError(urllib.unquote(result.get('Message', "Impossible to get last message list")))
raise SMSGatewayError(unquote(result.get('Message', "Impossible to get last message list")))
......@@ -29,7 +29,8 @@
"""Receive or send SMS"""
#Import python module
import urllib
from six.moves.urllib.parse import urlencode, unquote
from six.moves.urllib.request import urlopen
from DateTime import DateTime
#Import Zope module
......@@ -179,8 +180,8 @@ class MobytGateway(XMLObject):
LOG("MobytGateway", INFO, params)
result = {'status': "Test"}
else:
params = urllib.urlencode(params)
page = urllib.urlopen(base_url, params)
params = urlencode(params)
page = urlopen(base_url, params)
result = self._fetchSendResponseAsDict(page)
#Check result and return
......@@ -188,7 +189,7 @@ class MobytGateway(XMLObject):
return [result.get('status_info', "")] #return message id (gateway side)
elif result['status'] == "KO":
#we get an error when call the gateway
raise SMSGatewayError(urllib.unquote(result.get('status_info', "Impossible to send the SMS")))
raise SMSGatewayError(unquote(result.get('status_info', "Impossible to send the SMS")))
elif result['status'] == "Test":
#just a test, no message id
return None
......@@ -206,8 +207,8 @@ class MobytGateway(XMLObject):
"type" : 'notify',
"schema" : 1 }
params = urllib.urlencode(params)
page = urllib.urlopen(base_url, params)
params = urlencode(params)
page = urlopen(base_url, params)
result = self._fetchStatusResponseAsDict(page)
if result['status'] == "OK":
......@@ -223,7 +224,7 @@ class MobytGateway(XMLObject):
elif result['status'] == "KO":
#we get an error when call the gateway
raise SMSGatewayError(urllib.unquote(result.get('status_info', "Impossible to get the message status")))
raise SMSGatewayError(unquote(result.get('status_info', "Impossible to get the message status")))
security.declarePublic('receive')
def receive(self,REQUEST):
......
......@@ -25,8 +25,8 @@
#
##############################################################################
from urllib import urlencode
from urllib2 import urlopen
from six.moves.urllib.parse import urlencode
from six.moves.urllib.request import urlopen
def OpenAMLogout(self, url, token):
code = urlopen(url, urlencode({'subjectid':token})).getcode()
......
......@@ -27,7 +27,7 @@
##############################################################################
from urllib import quote_plus
from six.moves.urllib.parse import quote_plus
from six.moves.urllib.parse import urlparse
from six.moves.urllib.parse import urljoin
import logging
......
......@@ -41,9 +41,9 @@ def UpdateImage(image):
image._update_image_info()
def urlread(url, safe_return=0):
import urllib
from six.moves.urllib.request import urlopen
try:
return urllib.urlopen(url).read()
return urlopen(url).read()
except IOError as e:
if safe_return:
# Return an Selenium test code that will obviously fail. This
......
......@@ -37,7 +37,7 @@ from Products.ERP5Type import Permissions
from webdav.NullResource import NullResource
import urllib
from six.moves.urllib.parse import unquote
MARKER = []
......@@ -69,7 +69,7 @@ class StaticWebSection(WebSection):
# Drop the automatically added VirtualHostMonster object ID
virtual_url_part_tuple = request.get('VIRTUAL_URL_PARTS', None)
if (virtual_url_part_tuple is not None) and \
(not urllib.unquote(virtual_url_part_tuple[-1]).endswith("/".join(url_list))):
(not unquote(virtual_url_part_tuple[-1]).endswith("/".join(url_list))):
url_list.pop(0)
if request.get('ACTUAL_URL', '').endswith("/"): # or len(url_list) == 0:
......
......@@ -3,7 +3,8 @@ from AccessControl import ClassSecurityInfo
from Products.ERP5Type import Permissions, PropertySheet
from Products.ERP5Type.XMLObject import XMLObject
from zLOG import LOG, WARNING
import random, string, hashlib, urllib2, socket
import random, string, hashlib, socket
from six.moves.urllib.request import Request, urlopen
from six.moves.urllib.parse import urlparse
from six import string_types as basestring
try:
......@@ -103,8 +104,8 @@ class WechatService(XMLObject):
params['sign'] = self.calculateSign(params, self.getServiceApiKey())
LOG('WechatService', WARNING,
"getSandboxKey : data = %s SANDBOX_KEY_URL = %s" % (self.convert_dict_to_xml(params), SANDBOX_KEY_URL), error=False)
result = urllib2.Request(SANDBOX_KEY_URL, data=self.convert_dict_to_xml(params))
result_data = urllib2.urlopen(result)
result = Request(SANDBOX_KEY_URL, data=self.convert_dict_to_xml(params))
result_data = urlopen(result)
result_read = result_data.read()
result_dict_content = self.convert_xml_to_dict(result_read)
return_code = result_dict_content.get('return_code', '')
......@@ -151,8 +152,8 @@ class WechatService(XMLObject):
LOG('callWechatApi', WARNING,
"data = %s URL = %s" % (self.convert_dict_to_xml(wechat_dict), wechat_url + URL), error=False)
# send data
result = urllib2.Request(wechat_url + URL, data=self.convert_dict_to_xml(wechat_dict))
result_data = urllib2.urlopen(result)
result = Request(wechat_url + URL, data=self.convert_dict_to_xml(wechat_dict))
result_data = urlopen(result)
result_read = result_data.read()
result_dict_content = self.convert_xml_to_dict(result_read)
return_code = result_dict_content['return_code']
......
......@@ -36,7 +36,7 @@ import os
import dircache
import mimetypes, mimetools
from email.utils import formatdate
class DirectoryFileHandler(urllib2.FileHandler):
class DirectoryFileHandler(six.moves.urllib.request.FileHandler):
"""
Extends the file handler to provide an HTML
representation of local directories.
......@@ -55,7 +55,7 @@ class DirectoryFileHandler(urllib2.FileHandler):
def open_local_file(self, req):
host = req.get_host()
file = req.get_selector()
localfile = urllib2.url2pathname(file)
localfile = six.moves.urllib.request.url2pathname(file)
stats = os.stat(localfile)
size = stats.st_size
modified = formatdate(stats.st_mtime, usegmt=True)
......@@ -64,7 +64,7 @@ class DirectoryFileHandler(urllib2.FileHandler):
'Content-type: %s\nContent-length: %d\nLast-modified: %s\n' %
(mtype or 'text/plain', size, modified)))
if host:
host, port = urllib.splitport(host)
host, port = six.moves.urllib.parse.splitport(host)
if not host or \
(not port and socket.gethostbyname(host) in self.get_names()):
try:
......@@ -73,16 +73,16 @@ class DirectoryFileHandler(urllib2.FileHandler):
s.write('<html><head><base href="%s"/></head><body>' % ('file:' + file))
s.write('<p>Directory Content:</p>')
for f in file_list:
s.write('<p><a href="%s">%s</a></p>\n' % (urllib.quote(f), f))
s.write('<p><a href="%s">%s</a></p>\n' % (six.moves.urllib.parse.quote(f), f))
s.write('</body></html>')
s.seek(0)
headers = mimetools.Message(StringIO(
'Content-type: %s\nContent-length: %d\nLast-modified: %s\n' %
('text/html', size, modified)))
return urllib2.addinfourl(s, headers, 'file:' + file)
return six.moves.urllib.response.addinfourl(s, headers, 'file:' + file)
except OSError:
return urllib2.addinfourl(open(localfile, 'rb'),
return six.moves.urllib.response.addinfourl(open(localfile, 'rb'),
headers, 'file:'+file)
raise urllib2.URLError('file not on local host')
opener = urllib2.build_opener(DirectoryFileHandler)
urllib2.install_opener(opener)
raise six.moves.urllib.error.URLError('file not on local host')
opener = six.moves.urllib.request.build_opener(DirectoryFileHandler)
six.moves.urllib.request.install_opener(opener)
......@@ -18,7 +18,6 @@ import string
import sys
import time
import traceback
import urllib
from six.moves import configparser
from contextlib import contextmanager
from io import BytesIO
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment