--- 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