Skip to content

Commit f92f723

Browse files
authoredDec 4, 2024
{Misc} Remove various Python 2.7 ImportError (Azure#30451)
1 parent 731bd8d commit f92f723

File tree

25 files changed

+37
-135
lines changed

25 files changed

+37
-135
lines changed
 

‎scripts/curl_install_pypi/install.py

+1-13
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,7 @@
2323
import shutil
2424
import subprocess
2525
import hashlib
26-
try:
27-
# Attempt to load python 3 module
28-
from urllib.request import urlopen
29-
except ImportError:
30-
# Import python 2 version
31-
from urllib2 import urlopen
32-
33-
try:
34-
# Rename raw_input to input to support Python 2
35-
input = raw_input
36-
except NameError:
37-
# Python 3 doesn't have raw_input
38-
pass
26+
from urllib.request import urlopen
3927

4028
AZ_DISPATCH_TEMPLATE = """#!/usr/bin/env bash
4129
{install_dir}/bin/python -m azure.cli "$@"

‎src/azure-cli-core/azure/cli/core/aaz/_operation.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
# pylint: disable=too-few-public-methods, protected-access, too-many-nested-blocks, too-many-branches
77

8+
from urllib.parse import parse_qs, urljoin, urlparse, quote
89
import json
910

1011
from azure.core.exceptions import ClientAuthenticationError, ResourceExistsError, ResourceNotFoundError, \
1112
HttpResponseError
1213
from azure.cli.core.azclierror import InvalidArgumentValueError
13-
from urllib.parse import parse_qs, urljoin, urlparse
1414

1515
from ._arg_browser import AAZArgBrowser
1616
from ._base import AAZUndefined, AAZBaseValue, AAZBaseType, has_value
@@ -19,11 +19,6 @@
1919
from ._field_value import AAZList, AAZObject, AAZBaseDictValue
2020
from .exceptions import AAZInvalidValueError
2121

22-
try:
23-
from urllib import quote # type: ignore
24-
except ImportError:
25-
from urllib.parse import quote # type: ignore
26-
2722

2823
class AAZOperation:
2924

‎src/azure-cli-core/azure/cli/core/keys.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ def is_valid_ssh_rsa_public_key(openssh_pubkey):
1616
# http://stackoverflow.com/questions/2494450/ssh-rsa-public-key-validation-using-a-regular-expression # pylint: disable=line-too-long
1717
# A "good enough" check is to see if the key starts with the correct header.
1818
import struct
19-
try:
20-
from base64 import decodebytes as base64_decode
21-
except ImportError:
22-
# deprecated and redirected to decodebytes in Python 3
23-
from base64 import decodestring as base64_decode
19+
from base64 import decodebytes as base64_decode
2420

2521
parts = openssh_pubkey.split()
2622
if len(parts) < 2:

‎src/azure-cli-telemetry/azure/cli/telemetry/__init__.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,9 @@ def _start(config_dir, cache_dir):
3737
startupinfo.wShowWindow = subprocess.SW_HIDE
3838
kwargs['startupinfo'] = startupinfo
3939
else:
40-
if sys.version_info >= (3, 3):
41-
kwargs['stdin'] = subprocess.DEVNULL
42-
kwargs['stdout'] = subprocess.DEVNULL
43-
kwargs['stderr'] = subprocess.STDOUT
40+
kwargs['stdin'] = subprocess.DEVNULL
41+
kwargs['stdout'] = subprocess.DEVNULL
42+
kwargs['stderr'] = subprocess.STDOUT
4443

4544
process = subprocess.Popen(**kwargs)
4645
logger.info('Return from creating process %s', process.pid)

‎src/azure-cli-telemetry/azure/cli/telemetry/components/telemetry_client.py

+3-9
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,12 @@
66
import json
77
import datetime
88

9+
import urllib.request as http_client_t
10+
from urllib.error import HTTPError
11+
912
from applicationinsights import TelemetryClient
1013
from applicationinsights.channel import SynchronousSender, SynchronousQueue, TelemetryChannel
1114

12-
try:
13-
# Python 2.x
14-
import urllib2 as http_client_t
15-
from urllib2 import HTTPError
16-
except ImportError:
17-
# Python 3.x
18-
import urllib.request as http_client_t
19-
from urllib.error import HTTPError
20-
2115

2216
class CliTelemetryClient:
2317
def __init__(self, batch=100, sender=None):

‎src/azure-cli-telemetry/azure/cli/telemetry/tests/test_telemetry_client.py

+4-9
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,13 @@
88
import os
99
import unittest
1010

11+
import urllib.request as http_client_t
12+
from urllib.error import HTTPError
13+
1114
from applicationinsights.channel import SynchronousSender
1215

13-
try:
14-
# Python 2.x
15-
import urllib2 as http_client_t
16-
from urllib2 import HTTPError
17-
except ImportError:
18-
# Python 3.x
19-
import urllib.request as http_client_t
20-
from urllib.error import HTTPError
2116

22-
from azure.cli.telemetry.components.telemetry_client import (CliTelemetryClient, _NoRetrySender, http_client_t)
17+
from azure.cli.telemetry.components.telemetry_client import CliTelemetryClient, _NoRetrySender
2318

2419
TEST_RESOURCE_FOLDER = os.path.join(os.path.dirname(__file__), 'resources')
2520

‎src/azure-cli/azure/cli/command_modules/acr/_docker_utils.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
try:
7-
from urllib.parse import urlencode, urlparse, urlunparse
8-
except ImportError:
9-
from urllib import urlencode
6+
from urllib.parse import urlencode, urlparse, urlunparse
107

118
import time
129
from json import loads

‎src/azure-cli/azure/cli/command_modules/acr/manifest.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55

66
from datetime import datetime, timedelta
77

8-
try:
9-
from urllib.parse import unquote
10-
except ImportError:
11-
from urllib import unquote
8+
from urllib.parse import unquote
129

1310
from knack.log import get_logger
1411
from azure.cli.core.util import user_confirmation

‎src/azure-cli/azure/cli/command_modules/acr/repository.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
try:
7-
from urllib.parse import unquote
8-
except ImportError:
9-
from urllib import unquote
6+
from urllib.parse import unquote
107

118
from knack.util import CLIError
129
from knack.log import get_logger

‎src/azure-cli/azure/cli/command_modules/acr/tests/hybrid_2020_09_01/test_acr_commands_mock.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
try:
7-
from urllib.parse import urlencode
8-
except ImportError:
9-
from urllib import urlencode
6+
from urllib.parse import urlencode
107
import json
118
import unittest
129
from unittest import mock

‎src/azure-cli/azure/cli/command_modules/acr/tests/latest/test_acr_commands_mock.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
try:
7-
from urllib.parse import urlencode
8-
except ImportError:
9-
from urllib import urlencode
6+
from urllib.parse import urlencode
107
import json
118
import unittest
129
from unittest import mock

‎src/azure-cli/azure/cli/command_modules/botservice/kudu_client.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,7 @@
1111
import requests
1212
import urllib3
1313

14-
try:
15-
# Try importing Python 3 urllib.parse
16-
from urllib.parse import quote
17-
except ImportError:
18-
# If urllib.parse was not imported, use Python 2 module urlparse
19-
from urllib import quote # pylint: disable=import-error
14+
from urllib.parse import quote
2015

2116
from knack.util import CLIError
2217
from azure.cli.command_modules.botservice.http_response_validator import HttpResponseValidator

‎src/azure-cli/azure/cli/command_modules/botservice/web_app_operations.py

+2-7
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,12 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6+
from urllib.parse import urlsplit
7+
68
from azure.cli.core.commands.client_factory import get_mgmt_service_client
79
from azure.mgmt.web import WebSiteManagementClient
810
from azure.mgmt.web.models import HostType
911

10-
try:
11-
# Try importing Python 3 urllib.parse
12-
from urllib.parse import urlsplit
13-
except ImportError:
14-
# If urllib.parse was not imported, use Python 2 module urlparse
15-
from urlparse import urlsplit # pylint: disable=import-error
16-
1712

1813
class WebAppOperations:
1914
@staticmethod

‎src/azure-cli/azure/cli/command_modules/iot/sas_token_auth.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77
from hashlib import sha256
88
from hmac import HMAC
99
from time import time
10-
try:
11-
from urllib import (urlencode, quote)
12-
except ImportError:
13-
from urllib.parse import (urlencode, quote) # pylint: disable=import-error
10+
from urllib.parse import urlencode, quote
1411
from msrest.authentication import Authentication
1512

1613

‎src/azure-cli/azure/cli/command_modules/lab/validators.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -499,11 +499,7 @@ def _is_valid_ssh_rsa_public_key(openssh_pubkey):
499499
# http://stackoverflow.com/questions/2494450/ssh-rsa-public-key-validation-using-a-regular-expression
500500
# A "good enough" check is to see if the key starts with the correct header.
501501
import struct
502-
try:
503-
from base64 import decodebytes as base64_decode
504-
except ImportError:
505-
# deprecated and redirected to decodebytes in Python 3
506-
from base64 import decodestring as base64_decode
502+
from base64 import decodebytes as base64_decode
507503
parts = openssh_pubkey.split()
508504
if len(parts) < 2:
509505
return False

‎src/azure-cli/azure/cli/command_modules/resource/_validators.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@
66
import os
77
import re
88
import argparse
9+
from urllib.parse import urlparse, urlsplit
10+
911
from azure.cli.core.azclierror import ArgumentUsageError
1012

1113
from knack.util import CLIError
12-
try:
13-
from urllib.parse import urlparse, urlsplit
14-
except ImportError:
15-
from urlparse import urlparse, urlsplit # pylint: disable=import-error
1614

1715
MSI_LOCAL_ID = '[system]'
1816

‎src/azure-cli/azure/cli/command_modules/servicefabric/custom.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,12 @@
88
import os
99
import time
1010

11+
from urllib.parse import urlparse
12+
1113
from OpenSSL import crypto
1214
from cryptography.hazmat.primitives.serialization import pkcs12
1315
from cryptography.hazmat.primitives import hashes
1416

15-
try:
16-
from urllib.parse import urlparse
17-
except ImportError:
18-
from urlparse import urlparse # pylint: disable=import-error
19-
2017
from azure.cli.core.util import CLIError, get_file_json, b64_to_hex, sdk_no_wait
2118
from azure.cli.core.commands import LongRunningOperation
2219
from azure.cli.core.profiles import ResourceType, get_sdk

‎src/azure-cli/azure/cli/command_modules/storage/azcopy/util.py

+1-8
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
76
import os
87
import platform
98
import subprocess
109
import datetime
11-
import sys
1210
import zipfile
1311
import stat
1412
from urllib.parse import urlparse
@@ -224,12 +222,7 @@ def _urlretrieve(url, install_location):
224222
req = urlopen(url)
225223
compressedFile = io.BytesIO(req.read())
226224
if url.endswith('zip'):
227-
if sys.version_info.major >= 3:
228-
zip_file = zipfile.ZipFile(compressedFile)
229-
else:
230-
# If Python version is 2.X, use StringIO instead.
231-
import StringIO # pylint: disable=import-error
232-
zip_file = zipfile.ZipFile(StringIO.StringIO(req.read()))
225+
zip_file = zipfile.ZipFile(compressedFile)
233226
for fileName in zip_file.namelist():
234227
if fileName.endswith('azcopy') or fileName.endswith('azcopy.exe'):
235228
with open(install_location, 'wb') as f:

‎src/azure-cli/azure/cli/command_modules/vm/_image_builder.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313

1414
import requests
1515

16-
try:
17-
from urllib.parse import urlparse
18-
except ImportError:
19-
from urlparse import urlparse # pylint: disable=import-error
16+
from urllib.parse import urlparse
2017

2118
from knack.util import CLIError
2219
from knack.log import get_logger

‎src/azure-cli/azure/cli/command_modules/vm/_validators.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77

88
import os
99

10-
try:
11-
from urllib.parse import urlparse
12-
except ImportError:
13-
from urlparse import urlparse # pylint: disable=import-error
10+
from urllib.parse import urlparse
1411

1512
from knack.log import get_logger
1613
from knack.util import CLIError

‎src/azure-cli/azure/cli/command_modules/vm/_vm_utils.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,9 @@
88
import re
99
import importlib
1010

11-
from azure.cli.core.commands.arm import ArmTemplateBuilder
11+
from urllib.parse import urlparse
1212

13-
try:
14-
from urllib.parse import urlparse
15-
except ImportError:
16-
from urlparse import urlparse # pylint: disable=import-error
13+
from azure.cli.core.commands.arm import ArmTemplateBuilder
1714

1815
from knack.log import get_logger
1916
from knack.util import CLIError

‎src/azure-cli/azure/cli/command_modules/vm/azure_stack/_image_builder.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,9 @@
1111
import traceback
1212
from enum import Enum
1313

14-
import requests
14+
from urllib.parse import urlparse
1515

16-
try:
17-
from urllib.parse import urlparse
18-
except ImportError:
19-
from urlparse import urlparse # pylint: disable=import-error
16+
import requests
2017

2118
from knack.util import CLIError
2219
from knack.log import get_logger

‎src/azure-cli/azure/cli/command_modules/vm/azure_stack/_validators.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77

88
import os
99

10-
try:
11-
from urllib.parse import urlparse
12-
except ImportError:
13-
from urlparse import urlparse # pylint: disable=import-error
10+
from urllib.parse import urlparse
1411

1512
from knack.log import get_logger
1613
from knack.util import CLIError

‎src/azure-cli/azure/cli/command_modules/vm/azure_stack/_vm_utils.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010

1111
from azure.cli.core.commands.arm import ArmTemplateBuilder
1212

13-
try:
14-
from urllib.parse import urlparse
15-
except ImportError:
16-
from urlparse import urlparse # pylint: disable=import-error
13+
from urllib.parse import urlparse
1714

1815
from knack.log import get_logger
1916
from knack.util import CLIError

‎tools/automation/utilities/pypi.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
# Licensed under the MIT License. See License.txt in the project root for license information.
44
# --------------------------------------------------------------------------------------------
55

6-
try:
7-
import xmlrpclib
8-
except ImportError:
9-
import xmlrpc.client as xmlrpclib # pylint: disable=import-error
6+
import xmlrpc.client as xmlrpclib # pylint: disable=import-error
107

118

129
def is_available_on_pypi(module_name, module_version):

0 commit comments

Comments
 (0)
Please sign in to comment.