[elbe-devel] [PATCH v2 1/5] Python3: change the urllib2 imports
Bastian Germann
bage at linutronix.de
Mon Jan 13 14:35:25 CET 2020
Am 13.12.19 um 12:45 schrieb Christian Teklenborg:
> Add the necessary urllib imports for Python3 compatibility.
> Also change the module for BadStatusLine to make it Python3 compatible.
>
> Signed-off-by: Christian Teklenborg <chris at linutronix.de>
> ---
> elbepack/commands/control.py | 8 ++++++--
> elbepack/commands/prjrepo.py | 8 ++++++--
> elbepack/elbexml.py | 27 ++++++++++++++++-----------
> elbepack/pbuilder.py | 8 +++++---
> elbepack/soapclient.py | 9 ++++++---
> elbepack/xmlpreprocess.py | 10 +++++++---
> 6 files changed, 46 insertions(+), 24 deletions(-)
>
> diff --git a/elbepack/commands/control.py b/elbepack/commands/control.py
> index cb539b70..442df289 100644
> --- a/elbepack/commands/control.py
> +++ b/elbepack/commands/control.py
> @@ -11,8 +11,12 @@ import socket
> import sys
>
> from optparse import (OptionParser, OptionGroup)
> -from urllib2 import URLError
> -from httplib import BadStatusLine
> +try:
> + from urllib.error import URLError
> + from http.client import BadStatusLine
> +except ImportError:
> + from urllib2 import URLError
> + from httplib import BadStatusLine
>
> from suds import WebFault
>
> diff --git a/elbepack/commands/prjrepo.py b/elbepack/commands/prjrepo.py
> index 51e2b845..25363e45 100644
> --- a/elbepack/commands/prjrepo.py
> +++ b/elbepack/commands/prjrepo.py
> @@ -11,8 +11,12 @@ import socket
> import sys
>
> from optparse import (OptionParser, OptionGroup)
> -from urllib2 import URLError
> -from httplib import BadStatusLine
> +try:
> + from urllib.error import URLError
> + from http.client import BadStatusLine
> +except ImportError:
> + from urllib2 import URLError
> + from httplib import BadStatusline
>
> from suds import WebFault
>
> diff --git a/elbepack/elbexml.py b/elbepack/elbexml.py
> index e281bbd1..d75ad034 100644
> --- a/elbepack/elbexml.py
> +++ b/elbepack/elbexml.py
> @@ -10,14 +10,19 @@
>
> import os
> import re
> -import urllib2
> -
> from elbepack.treeutils import etree
> from elbepack.validate import validate_xml
> from elbepack.xmldefaults import ElbeDefaults
>
> from elbepack.version import elbe_version, is_devel
> -
> +try:
> + from urllib.request import (urlopen, install_opener, build_opener,
> + HTTPPasswordMgrWithDefaultRealm,
> + HTTPBasicAuthHandler)
> + from urllib.error import URLError
> +except ImportError:
> + from urllib2 import (urlopen, install_opener, build_opener, URLError,
> + HTTPPasswordMgrWithDefaultRealm, HTTPBasicAuthHandler)
>
> class ValidationError(Exception):
> def __init__(self, validation):
> @@ -178,11 +183,11 @@ class ElbeXML(object):
>
> def validate_repo(self, r):
> try:
> - fp = urllib2.urlopen(r["url"] + "InRelease", None, 10)
> - except urllib2.URLError:
> + fp = urlopen(r["url"] + "InRelease", None, 10)
> + except URLError:
> try:
> - fp = urllib2.urlopen(r["url"] + "Release", None, 10)
> - except urllib2.URLError:
> + fp = urlopen(r["url"] + "Release", None, 10)
> + except URLError:
> return False
>
> ret = False
> @@ -269,10 +274,10 @@ class ElbeXML(object):
> os.environ["https_proxy"] = ""
> os.environ["no_proxy"] = ""
>
> - passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
> - authhandler = urllib2.HTTPBasicAuthHandler(passman)
> - opener = urllib2.build_opener(authhandler)
> - urllib2.install_opener(opener)
> + passman = HTTPPasswordMgrWithDefaultRealm()
> + authhandler = HTTPBasicAuthHandler(passman)
> + opener = build_opener(authhandler)
> + install_opener(opener)
>
> for r in repos:
> if '@' in r["url"]:
> diff --git a/elbepack/pbuilder.py b/elbepack/pbuilder.py
> index 32da14ce..43b7b423 100644
> --- a/elbepack/pbuilder.py
> +++ b/elbepack/pbuilder.py
> @@ -7,8 +7,10 @@
> # SPDX-License-Identifier: GPL-3.0-or-later
>
> import os
> -import urllib2
> -
> +try:
> + from urllib.request import urlopen
> +except ImportError:
> + from urllib2 import urlopen
>
> def pbuilder_write_config(builddir, xml):
> distname = xml.prj.text('suite')
> @@ -95,7 +97,7 @@ def mirror_script_add_key_text(mirror, key_text):
>
> def mirror_script_add_key_url(mirror, key_url):
> key_url = key_url.replace("LOCALMACHINE", "10.0.2.2")
> - key_conn = urllib2.urlopen(key_url, None, 10)
> + key_conn = urlopen(key_url, None, 10)
> key_text = key_conn.read()
> key_conn.close()
>
> diff --git a/elbepack/soapclient.py b/elbepack/soapclient.py
> index fa562762..cbe07384 100644
> --- a/elbepack/soapclient.py
> +++ b/elbepack/soapclient.py
> @@ -16,8 +16,12 @@ import os
> import fnmatch
>
> from datetime import datetime
> -from urllib2 import URLError
> -from httplib import BadStatusLine
> +try:
> + from urllib.error import URLError
> + from http.client import BadStatusLine
> +except ImportError:
> + from urllib2 import URLError
> + from httplib import BadStatusLine
>
> import deb822 # package for dealing with Debian related data
>
> @@ -28,7 +32,6 @@ from elbepack.filesystem import Filesystem
> from elbepack.elbexml import ElbeXML, ValidationMode
> from elbepack.version import elbe_version, elbe_initvm_packagelist
>
> -
> def set_suds_debug(debug):
> import logging
> if debug:
> diff --git a/elbepack/xmlpreprocess.py b/elbepack/xmlpreprocess.py
> index 598ced45..2bd6447e 100644
> --- a/elbepack/xmlpreprocess.py
> +++ b/elbepack/xmlpreprocess.py
> @@ -8,7 +8,11 @@
> from __future__ import print_function
>
> import sys
> -import urllib2
> +try:
> + from urllib.request import urlopen
> + from urllib.error import HTTPError
> +except ImportError:
> + from urllib2 import urlopen, HTTPError
>
> from tempfile import NamedTemporaryFile
> from optparse import OptionGroup
> @@ -39,10 +43,10 @@ def preprocess_pgp_key(xml):
> print("[WARN] <key>%s</key> is deprecated. You should use raw-key instead." % key.text)
> try:
> keyurl = key.text.strip().replace('LOCALMACHINE', 'localhost')
> - myKey = urllib2.urlopen(keyurl).read()
> + myKey = urlopen(keyurl).read()
The current master conflicts here because .decode('ascii') was added at
the end of the line.
> key.tag = "raw-key"
> key.text = "\n%s\n" % myKey
> - except urllib2.HTTPError as E:
> + except HTTPError:
> raise XMLPreprocessError("Invalid PGP Key URL in <key> tag: %s" % keyurl)
>
> def preprocess_iso_option(xml):
>
With the trivial merge
Reviewed-by: Bastian Germann <bage at linutronix.de>
More information about the elbe-devel
mailing list