diff --git a/airflow/contrib/hooks/qubole_check_hook.py b/airflow/contrib/hooks/qubole_check_hook.py index 451c8ae743815..9fe2e27aa776c 100644 --- a/airflow/contrib/hooks/qubole_check_hook.py +++ b/airflow/contrib/hooks/qubole_check_hook.py @@ -17,16 +17,14 @@ # specific language governing permissions and limitations # under the License. # + +from io import StringIO + from airflow.utils.log.logging_mixin import LoggingMixin from airflow.contrib.hooks.qubole_hook import QuboleHook from airflow.exceptions import AirflowException from qds_sdk.commands import Command -try: - from cStringIO import StringIO -except ImportError: - from io import StringIO - COL_DELIM = '\t' ROW_DELIM = '\r\n' diff --git a/airflow/utils/decorators.py b/airflow/utils/decorators.py index b3ce4982fe147..9776d16fe9116 100644 --- a/airflow/utils/decorators.py +++ b/airflow/utils/decorators.py @@ -17,16 +17,9 @@ # specific language governing permissions and limitations # under the License. # -import os -# inspect.signature is only available in Python 3. funcsigs.signature is -# a backport. -try: - import inspect - signature = inspect.signature -except AttributeError: - import funcsigs - signature = funcsigs.signature +import inspect +import os from copy import copy from functools import wraps @@ -34,6 +27,8 @@ from airflow import settings from airflow.exceptions import AirflowException +signature = inspect.signature + def apply_defaults(func): """ diff --git a/dev/airflow-pr b/dev/airflow-pr index c08eeff8da89f..e520589fd2b50 100755 --- a/dev/airflow-pr +++ b/dev/airflow-pr @@ -35,12 +35,7 @@ import re import subprocess import sys import textwrap - -# Python 3 compatibility -try: - import urllib2 as urllib -except ImportError: - import urllib.request as urllib +import urllib.request as urllib try: import click diff --git a/tests/compat.py b/tests/compat.py index 7fe554b355f67..f676dfa0446c1 100644 --- a/tests/compat.py +++ b/tests/compat.py @@ -16,10 +16,8 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -try: - from unittest import mock # noqa: F401 -except ImportError: - import mock # type: ignore # noqa: F401 + +from unittest import mock # noqa: F401 patch = mock.patch Mock = mock.Mock diff --git a/tests/contrib/hooks/test_gcp_api_base_hook.py b/tests/contrib/hooks/test_gcp_api_base_hook.py index 6e47b4060ab91..78ff5b384e81d 100644 --- a/tests/contrib/hooks/test_gcp_api_base_hook.py +++ b/tests/contrib/hooks/test_gcp_api_base_hook.py @@ -20,6 +20,7 @@ import os import unittest +from io import StringIO from parameterized import parameterized from google.api_core.exceptions import RetryError, AlreadyExists @@ -36,11 +37,6 @@ from airflow.hooks.base_hook import BaseHook from tests.compat import mock -try: - from StringIO import StringIO -except ImportError: - from io import StringIO - default_creds_available = True default_project = None diff --git a/tests/contrib/hooks/test_grpc_hook.py b/tests/contrib/hooks/test_grpc_hook.py index 24f2837992c41..1a0820db44052 100644 --- a/tests/contrib/hooks/test_grpc_hook.py +++ b/tests/contrib/hooks/test_grpc_hook.py @@ -12,10 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import unittest -try: - from StringIO import StringIO -except ImportError: - from io import StringIO +from io import StringIO from airflow import configuration from airflow.exceptions import AirflowConfigException diff --git a/tests/core.py b/tests/core.py index 2d9897d4ec479..663c0842d56b5 100644 --- a/tests/core.py +++ b/tests/core.py @@ -24,6 +24,7 @@ import mock import multiprocessing import os +import pickle # type: ignore import re import signal import sqlalchemy @@ -75,12 +76,6 @@ TEST_DAG_ID = 'unit_tests' EXAMPLE_DAG_DEFAULT_DATE = days_ago(2) -try: - import cPickle as pickle -except ImportError: - # Python 3 - import pickle # type: ignore - class OperatorSubclass(BaseOperator): """