[PATCH] Remove py<3.4 import compatibility
Michał Górny <[email protected]>
| Newsgroups | gmane.linux.gentoo.portage.devel |
|---|---|
| Message-ID | <[email protected]> |
---
bin/binhost-snapshot | 5 +--
lib/_emerge/BinpkgFetcher.py | 5 +--
lib/_emerge/BlockerCache.py | 6 +---
lib/portage/cache/anydbm.py | 31 +++++-----------
lib/portage/dbapi/bintree.py | 5 +--
lib/portage/dbapi/porttree.py | 6 +---
lib/portage/dbapi/vartree.py | 6 +---
lib/portage/getbinpkg.py | 36 +++++--------------
lib/portage/glsa.py | 5 +--
lib/portage/package/ebuild/fetch.py | 12 ++-----
.../asyncio/test_policy_wrapper_recursion.py | 8 +----
lib/portage/tests/util/futures/test_retry.py | 5 +--
lib/portage/tests/util/test_socks5.py | 11 ++----
lib/portage/tests/util/test_xattr.py | 14 +-------
lib/portage/util/__init__.py | 5 +--
.../util/_dyn_libs/PreservedLibsRegistry.py | 6 +---
lib/portage/util/_eventloop/EventLoop.py | 10 ++----
.../util/_eventloop/asyncio_event_loop.py | 9 ++---
lib/portage/util/_urlopen.py | 12 ++-----
lib/portage/util/futures/_asyncio/__init__.py | 7 ++--
lib/portage/util/futures/_asyncio/tasks.py | 7 +---
lib/portage/util/futures/events.py | 12 +++----
lib/portage/util/futures/futures.py | 36 ++++---------------
lib/portage/util/futures/transports.py | 5 +--
lib/portage/util/futures/unix_events.py | 21 ++++-------
25 files changed, 61 insertions(+), 224 deletions(-)
diff --git a/bin/binhost-snapshot b/bin/binhost-snapshot
index d677e7568..afab23592 100755
--- a/bin/binhost-snapshot
+++ b/bin/binhost-snapshot
@@ -8,10 +8,7 @@ import os
import sys
import textwrap
-try:
- from urllib.parse import urlparse
-except ImportError:
- from urlparse import urlparse
+from urllib.parse import urlparse
from os import path as osp
if osp.isfile(osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), ".portage_not_installed")):
diff --git a/lib/_emerge/BinpkgFetcher.py b/lib/_emerge/BinpkgFetcher.py
index c26c9bd6b..01c9bc1e6 100644
--- a/lib/_emerge/BinpkgFetcher.py
+++ b/lib/_emerge/BinpkgFetcher.py
@@ -6,10 +6,7 @@ import functools
from _emerge.AsynchronousLock import AsynchronousLock
from _emerge.CompositeTask import CompositeTask
from _emerge.SpawnProcess import SpawnProcess
-try:
- from urllib.parse import urlparse as urllib_parse_urlparse
-except ImportError:
- from urlparse import urlparse as urllib_parse_urlparse
+from urllib.parse import urlparse as urllib_parse_urlparse
import stat
import sys
import portage
diff --git a/lib/_emerge/BlockerCache.py b/lib/_emerge/BlockerCache.py
index d0beb46ac..5f8fb360e 100644
--- a/lib/_emerge/BlockerCache.py
+++ b/lib/_emerge/BlockerCache.py
@@ -7,11 +7,7 @@ from portage.util import writemsg
from portage.data import secpass
import portage
from portage import os
-
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
+import pickle
class BlockerCache(portage.cache.mappings.MutableMapping):
"""This caches blockers of installed packages so that dep_check does not
diff --git a/lib/portage/cache/anydbm.py b/lib/portage/cache/anydbm.py
index 121a4eaf2..c02d85b4f 100644
--- a/lib/portage/cache/anydbm.py
+++ b/lib/portage/cache/anydbm.py
@@ -4,29 +4,14 @@
from __future__ import absolute_import
-try:
- import anydbm as anydbm_module
-except ImportError:
- # python 3.x
- import dbm as anydbm_module
+import dbm
try:
import dbm.gnu as gdbm
except ImportError:
- try:
- import gdbm
- except ImportError:
- gdbm = None
+ gdbm = None
-try:
- from dbm import whichdb
-except ImportError:
- from whichdb import whichdb
-
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
+import pickle
from portage import _unicode_encode
from portage import os
import sys
@@ -53,15 +38,15 @@ class database(fs_template.FsBased):
self._db_path = os.path.join(self.location, fs_template.gen_label(self.location, self.label)+default_db)
self.__db = None
mode = "w"
- if whichdb(self._db_path) in ("dbm.gnu", "gdbm"):
+ if dbm.whichdb(self._db_path) in ("dbm.gnu", "gdbm"):
# Allow multiple concurrent writers (see bug #53607).
mode += "u"
try:
# dbm.open() will not work with bytes in python-3.1:
# TypeError: can't concat bytes to str
- self.__db = anydbm_module.open(self._db_path,
+ self.__db = dbm.open(self._db_path,
mode, self._perms)
- except anydbm_module.error:
+ except dbm.error:
# XXX handle this at some point
try:
self._ensure_dirs()
@@ -75,14 +60,14 @@ class database(fs_template.FsBased):
# dbm.open() will not work with bytes in python-3.1:
# TypeError: can't concat bytes to str
if gdbm is None:
- self.__db = anydbm_module.open(self._db_path,
+ self.__db = dbm.open(self._db_path,
"c", self._perms)
else:
# Prefer gdbm type if available, since it allows
# multiple concurrent writers (see bug #53607).
self.__db = gdbm.open(self._db_path,
"cu", self._perms)
- except anydbm_module.error as e:
+ except dbm.error as e:
raise cache_errors.InitializationError(self.__class__, e)
self._ensure_access(self._db_path)
diff --git a/lib/portage/dbapi/bintree.py b/lib/portage/dbapi/bintree.py
index 49e17721b..f6defbc30 100644
--- a/lib/portage/dbapi/bintree.py
+++ b/lib/portage/dbapi/bintree.py
@@ -52,10 +52,7 @@ import traceback
import warnings
from gzip import GzipFile
from itertools import chain
-try:
- from urllib.parse import urlparse
-except ImportError:
- from urlparse import urlparse
+from urllib.parse import urlparse
class UseCachedCopyOfRemoteIndex(Exception):
diff --git a/lib/portage/dbapi/porttree.py b/lib/portage/dbapi/porttree.py
index 4916114cd..d220292a8 100644
--- a/lib/portage/dbapi/porttree.py
+++ b/lib/portage/dbapi/porttree.py
@@ -47,11 +47,7 @@ import collections
import functools
from collections import OrderedDict
-
-try:
- from urllib.parse import urlparse
-except ImportError:
- from urlparse import urlparse
+from urllib.parse import urlparse
def close_portdbapi_caches():
diff --git a/lib/portage/dbapi/vartree.py b/lib/portage/dbapi/vartree.py
index 2e29b25e5..bb2dd1424 100644
--- a/lib/portage/dbapi/vartree.py
+++ b/lib/portage/dbapi/vartree.py
@@ -92,6 +92,7 @@ from itertools import chain
import logging
import os as _os
import operator
+import pickle
import platform
import pwd
import re
@@ -102,11 +103,6 @@ import textwrap
import time
import warnings
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
-
class vardbapi(dbapi):
diff --git a/lib/portage/getbinpkg.py b/lib/portage/getbinpkg.py
index f8c1dfd7c..03522689b 100644
--- a/lib/portage/getbinpkg.py
+++ b/lib/portage/getbinpkg.py
@@ -13,6 +13,7 @@ from portage import _unicode_encode
from portage.package.ebuild.fetch import _hide_url_passwd
from _emerge.Package import _all_metadata_keys
+import pickle
import sys
import socket
import time
@@ -22,20 +23,8 @@ import warnings
_all_errors = [NotImplementedError, ValueError, socket.error]
-try:
- from html.parser import HTMLParser as html_parser_HTMLParser
-except ImportError:
- from HTMLParser import HTMLParser as html_parser_HTMLParser
-
-try:
- from urllib.parse import unquote as urllib_parse_unquote
-except ImportError:
- from urllib2 import unquote as urllib_parse_unquote
-
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
+from html.parser import HTMLParser as html_parser_HTMLParser
+from urllib.parse import unquote as urllib_parse_unquote
try:
import ftplib
@@ -45,16 +34,10 @@ else:
_all_errors.extend(ftplib.all_errors)
try:
- try:
- from http.client import HTTPConnection as http_client_HTTPConnection
- from http.client import BadStatusLine as http_client_BadStatusLine
- from http.client import ResponseNotReady as http_client_ResponseNotReady
- from http.client import error as http_client_error
- except ImportError:
- from httplib import HTTPConnection as http_client_HTTPConnection
- from httplib import BadStatusLine as http_client_BadStatusLine
- from httplib import ResponseNotReady as http_client_ResponseNotReady
- from httplib import error as http_client_error
+ from http.client import HTTPConnection as http_client_HTTPConnection
+ from http.client import BadStatusLine as http_client_BadStatusLine
+ from http.client import ResponseNotReady as http_client_ResponseNotReady
+ from http.client import error as http_client_error
except ImportError as e:
sys.stderr.write(colorize("BAD", "!!! CANNOT IMPORT HTTP.CLIENT: ") + str(e) + "\n")
else:
@@ -188,10 +171,7 @@ def create_conn(baseurl, conn=None):
# http.client ImportError handler (like during stage1 -> stage2
# builds where USE=ssl is disabled for python).
try:
- try:
- from http.client import HTTPSConnection as http_client_HTTPSConnection
- except ImportError:
- from httplib import HTTPSConnection as http_client_HTTPSConnection
+ from http.client import HTTPSConnection as http_client_HTTPSConnection
except ImportError:
raise NotImplementedError(
_("python must have ssl enabled for https support"))
diff --git a/lib/portage/glsa.py b/lib/portage/glsa.py
index 11420b46c..a6f9fc833 100644
--- a/lib/portage/glsa.py
+++ b/lib/portage/glsa.py
@@ -5,10 +5,7 @@ from __future__ import absolute_import
import io
import sys
-try:
- from urllib.request import urlopen as urllib_request_urlopen
-except ImportError:
- from urllib import urlopen as urllib_request_urlopen
+from urllib.request import urlopen as urllib_request_urlopen
import codecs
import re
import operator
diff --git a/lib/portage/package/ebuild/fetch.py b/lib/portage/package/ebuild/fetch.py
index 9682fea89..e384af868 100644
--- a/lib/portage/package/ebuild/fetch.py
+++ b/lib/portage/package/ebuild/fetch.py
@@ -20,16 +20,8 @@ import tempfile
import time
from collections import OrderedDict
-
-try:
- from urllib.parse import urlparse
-except ImportError:
- from urlparse import urlparse
-
-try:
- from urllib.parse import quote as urlquote
-except ImportError:
- from urllib import quote as urlquote
+from urllib.parse import urlparse
+from urllib.parse import quote as urlquote
import portage
portage.proxy.lazyimport.lazyimport(globals(),
diff --git a/lib/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py b/lib/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py
index d3cd94b35..900bb5115 100644
--- a/lib/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py
+++ b/lib/portage/tests/util/futures/asyncio/test_policy_wrapper_recursion.py
@@ -1,10 +1,7 @@
# Copyright 2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-try:
- import asyncio
-except ImportError:
- asyncio = None
+import asyncio
from portage.tests import TestCase
from portage.util.futures.unix_events import DefaultEventLoopPolicy
@@ -12,9 +9,6 @@ from portage.util.futures.unix_events import DefaultEventLoopPolicy
class PolicyWrapperRecursionTestCase(TestCase):
def testPolicyWrapperRecursion(self):
- if asyncio is None:
- self.skipTest('asyncio is not available')
-
initial_policy = asyncio.get_event_loop_policy()
if not isinstance(initial_policy, DefaultEventLoopPolicy):
asyncio.set_event_loop_policy(DefaultEventLoopPolicy())
diff --git a/lib/portage/tests/util/futures/test_retry.py b/lib/portage/tests/util/futures/test_retry.py
index 94ede2e17..68c9969ac 100644
--- a/lib/portage/tests/util/futures/test_retry.py
+++ b/lib/portage/tests/util/futures/test_retry.py
@@ -1,10 +1,7 @@
# Copyright 2018-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-try:
- from concurrent.futures import ThreadPoolExecutor
-except ImportError:
- ThreadPoolExecutor = None
+from concurrent.futures import ThreadPoolExecutor
try:
import threading
diff --git a/lib/portage/tests/util/test_socks5.py b/lib/portage/tests/util/test_socks5.py
index f7b893996..e567006ea 100644
--- a/lib/portage/tests/util/test_socks5.py
+++ b/lib/portage/tests/util/test_socks5.py
@@ -16,15 +16,8 @@ from portage.util._eventloop.global_event_loop import global_event_loop
from portage.util import socks5
from portage.const import PORTAGE_BIN_PATH
-try:
- from http.server import BaseHTTPRequestHandler, HTTPServer
-except ImportError:
- from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
-
-try:
- from urllib.request import urlopen
-except ImportError:
- from urllib import urlopen
+from http.server import BaseHTTPRequestHandler, HTTPServer
+from urllib.request import urlopen
class _Handler(BaseHTTPRequestHandler):
diff --git a/lib/portage/tests/util/test_xattr.py b/lib/portage/tests/util/test_xattr.py
index 2e2564a6e..8e8c2a3d6 100644
--- a/lib/portage/tests/util/test_xattr.py
+++ b/lib/portage/tests/util/test_xattr.py
@@ -5,16 +5,7 @@
from __future__ import print_function
-try:
- # Try python-3.3 module first.
- # pylint: disable=no-name-in-module
- from unittest import mock
-except ImportError:
- try:
- # Try standalone module.
- import mock
- except ImportError:
- mock = None
+from unittest import mock
import subprocess
@@ -50,9 +41,6 @@ class SystemCommandsTest(TestCase):
))
def _setUp(self):
- if mock is None:
- self.skipTest('need mock for testing')
-
return _XattrSystemCommands
def _testGetBasic(self):
diff --git a/lib/portage/util/__init__.py b/lib/portage/util/__init__.py
index e390874f2..59f1518d6 100644
--- a/lib/portage/util/__init__.py
+++ b/lib/portage/util/__init__.py
@@ -14,10 +14,7 @@ __all__ = ['apply_permissions', 'apply_recursive_permissions',
from copy import deepcopy
import errno
import io
-try:
- from itertools import chain, filterfalse
-except ImportError:
- from itertools import chain, ifilterfalse as filterfalse
+from itertools import chain, filterfalse
import logging
import re
import shlex
diff --git a/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py b/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py
index cb38c513c..ec8fdff5d 100644
--- a/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py
+++ b/lib/portage/util/_dyn_libs/PreservedLibsRegistry.py
@@ -4,14 +4,10 @@
import errno
import json
import logging
+import pickle
import stat
import sys
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
-
from portage import abssymlink
from portage import os
from portage import _encodings
diff --git a/lib/portage/util/_eventloop/EventLoop.py b/lib/portage/util/_eventloop/EventLoop.py
index f870190d9..7dcc7a231 100644
--- a/lib/portage/util/_eventloop/EventLoop.py
+++ b/lib/portage/util/_eventloop/EventLoop.py
@@ -14,10 +14,7 @@ import sys
import time
import traceback
-try:
- import asyncio as _real_asyncio
-except ImportError:
- _real_asyncio = None
+import asyncio as _real_asyncio
try:
import fcntl
@@ -962,9 +959,8 @@ class EventLoop(object):
executor = ForkExecutor(loop=self)
self._default_executor = executor
future = executor.submit(func, *args)
- if _real_asyncio is not None:
- future = _real_asyncio.wrap_future(future,
- loop=self._asyncio_wrapper)
+ future = _real_asyncio.wrap_future(future,
+ loop=self._asyncio_wrapper)
return future
def is_running(self):
diff --git a/lib/portage/util/_eventloop/asyncio_event_loop.py b/lib/portage/util/_eventloop/asyncio_event_loop.py
index ce7e06923..605e7243b 100644
--- a/lib/portage/util/_eventloop/asyncio_event_loop.py
+++ b/lib/portage/util/_eventloop/asyncio_event_loop.py
@@ -4,13 +4,8 @@
import os
import signal
-try:
- import asyncio as _real_asyncio
- from asyncio.events import AbstractEventLoop as _AbstractEventLoop
-except ImportError:
- # Allow ImportModulesTestCase to succeed.
- _real_asyncio = None
- _AbstractEventLoop = object
+import asyncio as _real_asyncio
+from asyncio.events import AbstractEventLoop as _AbstractEventLoop
import portage
diff --git a/lib/portage/util/_urlopen.py b/lib/portage/util/_urlopen.py
index c74fb2691..de0363533 100644
--- a/lib/portage/util/_urlopen.py
+++ b/lib/portage/util/_urlopen.py
@@ -6,15 +6,9 @@ import sys
from datetime import datetime
from time import mktime
from email.utils import formatdate, parsedate
-
-try:
- from urllib.request import urlopen as _urlopen
- import urllib.parse as urllib_parse
- import urllib.request as urllib_request
-except ImportError:
- from urllib import urlopen as _urlopen
- import urlparse as urllib_parse
- import urllib2 as urllib_request
+from urllib.request import urlopen as _urlopen
+import urllib.parse as urllib_parse
+import urllib.request as urllib_request
# to account for the difference between TIMESTAMP of the index' contents
diff --git a/lib/portage/util/futures/_asyncio/__init__.py b/lib/portage/util/futures/_asyncio/__init__.py
index 04034911d..73f4881be 100644
--- a/lib/portage/util/futures/_asyncio/__init__.py
+++ b/lib/portage/util/futures/_asyncio/__init__.py
@@ -23,10 +23,7 @@ __all__ = (
import subprocess
import sys
-try:
- import asyncio as _real_asyncio
-except ImportError:
- _real_asyncio = None
+import asyncio as _real_asyncio
try:
import threading
@@ -159,7 +156,7 @@ def iscoroutinefunction(func):
"""
if _compat_coroutine._iscoroutinefunction(func):
return True
- elif _real_asyncio is not None and _real_asyncio.iscoroutinefunction(func):
+ elif _real_asyncio.iscoroutinefunction(func):
return True
return False
diff --git a/lib/portage/util/futures/_asyncio/tasks.py b/lib/portage/util/futures/_asyncio/tasks.py
index b20765b7a..6d4e16223 100644
--- a/lib/portage/util/futures/_asyncio/tasks.py
+++ b/lib/portage/util/futures/_asyncio/tasks.py
@@ -8,12 +8,7 @@ ___all___ = (
'wait',
)
-try:
- from asyncio import ALL_COMPLETED, FIRST_COMPLETED, FIRST_EXCEPTION
-except ImportError:
- ALL_COMPLETED = 'ALL_COMPLETED'
- FIRST_COMPLETED ='FIRST_COMPLETED'
- FIRST_EXCEPTION = 'FIRST_EXCEPTION'
+from asyncio import ALL_COMPLETED, FIRST_COMPLETED, FIRST_EXCEPTION
import portage
portage.proxy.lazyimport.lazyimport(globals(),
diff --git a/lib/portage/util/futures/events.py b/lib/portage/util/futures/events.py
index b772bc242..fb1585b32 100644
--- a/lib/portage/util/futures/events.py
+++ b/lib/portage/util/futures/events.py
@@ -9,14 +9,10 @@ __all__ = (
import socket
import subprocess
-try:
- from asyncio.events import (
- AbstractEventLoop as _AbstractEventLoop,
- AbstractEventLoopPolicy as _AbstractEventLoopPolicy,
- )
-except ImportError:
- _AbstractEventLoop = object
- _AbstractEventLoopPolicy = object
+from asyncio.events import (
+ AbstractEventLoop as _AbstractEventLoop,
+ AbstractEventLoopPolicy as _AbstractEventLoopPolicy,
+)
class AbstractEventLoopPolicy(_AbstractEventLoopPolicy):
diff --git a/lib/portage/util/futures/futures.py b/lib/portage/util/futures/futures.py
index dffb9e47f..5a88f121e 100644
--- a/lib/portage/util/futures/futures.py
+++ b/lib/portage/util/futures/futures.py
@@ -12,32 +12,12 @@ __all__ = (
'TimeoutError',
)
-try:
- from asyncio import (
- CancelledError,
- Future,
- InvalidStateError,
- TimeoutError,
- )
-except ImportError:
-
- from portage.exception import PortageException
-
- class Error(PortageException):
- pass
-
- class CancelledError(Error):
- def __init__(self):
- Error.__init__(self, "cancelled")
-
- class TimeoutError(Error):
- def __init__(self):
- Error.__init__(self, "timed out")
-
- class InvalidStateError(Error):
- pass
-
- Future = None
+from asyncio import (
+ CancelledError,
+ Future,
+ InvalidStateError,
+ TimeoutError,
+)
import portage
portage.proxy.lazyimport.lazyimport(globals(),
@@ -191,7 +171,3 @@ class _EventLoopFuture(object):
self._exception = exception
self._state = _FINISHED
self._schedule_callbacks()
-
-
-if Future is None:
- Future = _EventLoopFuture
diff --git a/lib/portage/util/futures/transports.py b/lib/portage/util/futures/transports.py
index 60ea93073..016ecbef8 100644
--- a/lib/portage/util/futures/transports.py
+++ b/lib/portage/util/futures/transports.py
@@ -1,10 +1,7 @@
# Copyright 2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-try:
- from asyncio.transports import Transport as _Transport
-except ImportError:
- _Transport = object
+from asyncio.transports import Transport as _Transport
class _FlowControlMixin(_Transport):
diff --git a/lib/portage/util/futures/unix_events.py b/lib/portage/util/futures/unix_events.py
index 4adf021ce..6cd0848f7 100644
--- a/lib/portage/util/futures/unix_events.py
+++ b/lib/portage/util/futures/unix_events.py
@@ -6,20 +6,13 @@ __all__ = (
'DefaultEventLoopPolicy',
)
-try:
- import asyncio as _real_asyncio
- from asyncio.base_subprocess import BaseSubprocessTransport as _BaseSubprocessTransport
- from asyncio.unix_events import AbstractChildWatcher as _AbstractChildWatcher
- from asyncio.transports import (
- ReadTransport as _ReadTransport,
- WriteTransport as _WriteTransport,
- )
-except ImportError:
- _real_asyncio = None
- _AbstractChildWatcher = object
- _BaseSubprocessTransport = object
- _ReadTransport = object
- _WriteTransport = object
+import asyncio as _real_asyncio
+from asyncio.base_subprocess import BaseSubprocessTransport as _BaseSubprocessTransport
+from asyncio.unix_events import AbstractChildWatcher as _AbstractChildWatcher
+from asyncio.transports import (
+ ReadTransport as _ReadTransport,
+ WriteTransport as _WriteTransport,
+)
import errno
import fcntl
--
2.27.0