On Wed, 9 Jun 2021 17:25:45 -0400 Rosemarie O'Riorden <rorio...@redhat.com> wrote:
> Fixes: 1ca0323e7c29 ("Require Python 3 and remove support for Python 2.") > Reported at: https://bugzilla.redhat.com/show_bug.cgi?id=1949875 > Signed-off-by: Rosemarie O'Riorden <rorio...@redhat.com> > --- > Fix import errors in v1. > Remove lines that indicate compatibility with python 2. > > ofproto/ipfix-gen-entities | 2 -- > ovsdb/ovsdb-idlc.in | 1 - > .../ovs/compat/sortedcontainers/sortedlist.py | 2 -- > python/ovstest/tests.py | 2 -- > python/ovstest/util.py | 2 +- > python/setup.py | 4 --- > tests/test-jsonrpc.py | 2 -- > utilities/checkpatch.py | 1 - > utilities/gdb/ovs_gdb.py | 1 - > utilities/ovs-l3ping.in | 14 +++++----- > utilities/ovs-parse-backtrace.in | 12 ++++---- > utilities/ovs-pcap.in | 4 +-- > utilities/ovs-vlan-test.in | 28 +++++++++---------- > 13 files changed, 29 insertions(+), 46 deletions(-) Hi, thank you for your work. It looks almost good and it passes "make flake8-check". I only added a small suggestion (see inline), but LTGM. > diff --git a/ofproto/ipfix-gen-entities b/ofproto/ipfix-gen-entities > index d5abe9c2e..dcecdab21 100755 > --- a/ofproto/ipfix-gen-entities > +++ b/ofproto/ipfix-gen-entities > @@ -7,8 +7,6 @@ > # notice and this notice are preserved. This file is offered as-is, > # without warranty of any kind. > > -from __future__ import print_function > - > import getopt > import re > import sys > diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in > index 5914e0878..61cded16d 100755 > --- a/ovsdb/ovsdb-idlc.in > +++ b/ovsdb/ovsdb-idlc.in > @@ -1,6 +1,5 @@ > #! @PYTHON3@ > > -from __future__ import print_function > import getopt > import os > import re > diff --git a/python/ovs/compat/sortedcontainers/sortedlist.py > b/python/ovs/compat/sortedcontainers/sortedlist.py > index 8aec6bbac..ba5556692 100644 > --- a/python/ovs/compat/sortedcontainers/sortedlist.py > +++ b/python/ovs/compat/sortedcontainers/sortedlist.py > @@ -3,8 +3,6 @@ > """ > # pylint: disable=redefined-builtin, ungrouped-imports > > -from __future__ import print_function > - > from bisect import bisect_left, bisect_right, insort > from collections import Sequence, MutableSequence > from functools import wraps > diff --git a/python/ovstest/tests.py b/python/ovstest/tests.py > index 6de3cc3af..f959f945e 100644 > --- a/python/ovstest/tests.py > +++ b/python/ovstest/tests.py > @@ -10,8 +10,6 @@ > # See the License for the specific language governing permissions and > # limitations under the License. > > -from __future__ import print_function > - > import math > import time > > diff --git a/python/ovstest/util.py b/python/ovstest/util.py > index 72457158f..4caf6c352 100644 > --- a/python/ovstest/util.py > +++ b/python/ovstest/util.py > @@ -26,7 +26,7 @@ import socket > import struct > import subprocess > > -import exceptions > +import builtins as exceptions Nit: to avoid possibile misunderstanding since calling builtins "exceptions" is semantically wrong. Since exceptions is only used for a single except I guest we could just change the line that uses exceptions to do directly "except OSError:" > import xmlrpc.client > > diff --git a/python/setup.py b/python/setup.py > index d385d8372..cfe01763f 100644 > --- a/python/setup.py > +++ b/python/setup.py > @@ -10,8 +10,6 @@ > # See the License for the specific language governing permissions and > # limitations under the License. > > -from __future__ import print_function > - > import sys > > from distutils.command.build_ext import build_ext > @@ -82,8 +80,6 @@ setup_args = dict( > 'Topic :: Software Development :: Libraries :: Python Modules', > 'Topic :: System :: Networking', > 'License :: OSI Approved :: Apache Software License', > - 'Programming Language :: Python :: 2', > - 'Programming Language :: Python :: 2.7', > 'Programming Language :: Python :: 3', > 'Programming Language :: Python :: 3.4', > 'Programming Language :: Python :: 3.5', > diff --git a/tests/test-jsonrpc.py b/tests/test-jsonrpc.py > index 3eabcd78d..1df5afa22 100644 > --- a/tests/test-jsonrpc.py > +++ b/tests/test-jsonrpc.py > @@ -12,8 +12,6 @@ > # See the License for the specific language governing permissions and > # limitations under the License. > > -from __future__ import print_function > - > import argparse > import errno > import os > diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py > index bc6bfae15..ac14da29b 100755 > --- a/utilities/checkpatch.py > +++ b/utilities/checkpatch.py > @@ -13,7 +13,6 @@ > # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > # See the License for the specific language governing permissions and > # limitations under the License. > -from __future__ import print_function > > import email > import getopt > diff --git a/utilities/gdb/ovs_gdb.py b/utilities/gdb/ovs_gdb.py > index 1111f3100..0b2ecb81b 100644 > --- a/utilities/gdb/ovs_gdb.py > +++ b/utilities/gdb/ovs_gdb.py > @@ -55,7 +55,6 @@ > # ... > # ... > # > -from __future__ import print_function > import gdb > import sys > import uuid > diff --git a/utilities/ovs-l3ping.in b/utilities/ovs-l3ping.in > index 92d32acb3..1ece06457 100644 > --- a/utilities/ovs-l3ping.in > +++ b/utilities/ovs-l3ping.in > @@ -19,7 +19,7 @@ achieved by tunneling the control connection inside the > tunnel itself. > """ > > import socket > -import xmlrpclib > +import xmlrpc.client > > import ovstest.args as args > import ovstest.tests as tests > @@ -64,13 +64,13 @@ if __name__ == '__main__': > ps = get_packet_sizes(me, he, args.client[0]) > tests.do_direct_tests(me, he, bandwidth, interval, ps) > except KeyboardInterrupt: > - print "Terminating" > - except xmlrpclib.Fault: > - print "Couldn't contact peer" > + print("Terminating") > + except xmlrpc.client.Fault: > + print("Couldn't contact peer") > except socket.error: > - print "Couldn't contact peer" > - except xmlrpclib.ProtocolError: > - print "XMLRPC control channel was abruptly terminated" > + print("Couldn't contact peer") > + except xmlrpc.client.ProtocolError: > + print("XMLRPC control channel was abruptly terminated") > finally: > if local_server is not None: > local_server.terminate() > diff --git a/utilities/ovs-parse-backtrace.in > b/utilities/ovs-parse-backtrace.in > index d5506769a..f44f05cd1 100755 > --- a/utilities/ovs-parse-backtrace.in > +++ b/utilities/ovs-parse-backtrace.in > @@ -70,7 +70,7 @@ result. Expected usage is for ovs-appctl backtrace to be > piped in.""") > if os.path.exists(debug): > binary = debug > > - print "Binary: %s\n" % binary > + print("Binary: %s\n" % binary) > > stdin = sys.stdin.read() > > @@ -88,15 +88,15 @@ result. Expected usage is for ovs-appctl backtrace to be > piped in.""") > for lines, count in traces: > longest = max(len(l) for l in lines) > > - print "Backtrace Count: %d" % count > + print("Backtrace Count: %d" % count) > for line in lines: > match = re.search(r'\[(0x.*)]', line) > if match: > - print "%s %s" % (line.ljust(longest), > - addr2line(binary, match.group(1))) > + print("%s %s" % (line.ljust(longest), > + addr2line(binary, match.group(1)))) > else: > - print line > - print > + print(line) > + print() > > > if __name__ == "__main__": > diff --git a/utilities/ovs-pcap.in b/utilities/ovs-pcap.in > index dddbee4df..6b5f63399 100755 > --- a/utilities/ovs-pcap.in > +++ b/utilities/ovs-pcap.in > @@ -14,8 +14,6 @@ > # See the License for the specific language governing permissions and > # limitations under the License. > > -from __future__ import print_function > - > import binascii > import getopt > import struct > @@ -79,7 +77,7 @@ if __name__ == "__main__": > try: > options, args = getopt.gnu_getopt(sys.argv[1:], 'hV', > ['help', 'version']) > - except getopt.GetoptException as geo: > + except getopt.GetoptError as geo: > sys.stderr.write("%s: %s\n" % (argv0, geo.msg)) > sys.exit(1) > > diff --git a/utilities/ovs-vlan-test.in b/utilities/ovs-vlan-test.in > index 154573a9b..de3ae1686 100755 > --- a/utilities/ovs-vlan-test.in > +++ b/utilities/ovs-vlan-test.in > @@ -14,9 +14,9 @@ > # See the License for the specific language governing permissions and > # limitations under the License. > > -import BaseHTTPServer > import getopt > -import httplib > +import http.client > +import http.server > import os > import threading > import time > @@ -84,7 +84,7 @@ class UDPReceiver: > > try: > sock.bind((self.vlan_ip, self.vlan_port)) > - except socket.error, e: > + except socket.error as e: > print_safe('Failed to bind to %s:%d with error: %s' > % (self.vlan_ip, self.vlan_port, e)) > os._exit(1) #sys.exit only exits the current thread. > @@ -95,7 +95,7 @@ class UDPReceiver: > data, _ = sock.recvfrom(4096) > except socket.timeout: > continue > - except socket.error, e: > + except socket.error as e: > print_safe('Failed to receive from %s:%d with error: %s' > % (self.vlan_ip, self.vlan_port, e)) > os._exit(1) > @@ -180,7 +180,7 @@ class VlanServer: > for _ in range(send_time * 2): > try: > send_packet(test_id, size, ip, port) > - except socket.error, e: > + except socket.error as e: > self.set_result(test_id, 'Failure: ' + str(e)) > return > time.sleep(.5) > @@ -194,15 +194,15 @@ class VlanServer: > def run(self): > self.udp_recv.start() > try: > - BaseHTTPServer.HTTPServer((self.server_ip, self.server_port), > + http.server.HTTPServer((self.server_ip, self.server_port), > VlanServerHandler).serve_forever() > - except socket.error, e: > + except socket.error as e: > print_safe('Failed to start control server: %s' % e) > self.udp_recv.stop() > > return 1 > > -class VlanServerHandler(BaseHTTPServer.BaseHTTPRequestHandler): > +class VlanServerHandler(http.server.BaseHTTPRequestHandler): > def do_GET(self): > > #Guarantee three arguments. > @@ -244,7 +244,7 @@ class VlanClient: > self.udp_recv = UDPReceiver(vlan_ip, vlan_port) > > def request(self, resource): > - conn = httplib.HTTPConnection(self.server_ip_port) > + conn = http.client.HTTPConnection(self.server_ip_port) > conn.request('GET', resource) > return conn > > @@ -256,7 +256,7 @@ class VlanClient: > try: > conn = self.request('/start/recv') > data = conn.getresponse().read() > - except (socket.error, httplib.HTTPException), e: > + except (socket.error, http.client.HTTPException) as e: > error_msg(e) > return False > > @@ -277,7 +277,7 @@ class VlanClient: > send_packet(test_id, size, ip, port) > resp = self.request('/result/%d' % test_id).getresponse() > data = resp.read() > - except (socket.error, httplib.HTTPException), e: > + except (socket.error, http.client.HTTPException) as e: > error_msg(e) > return False > > @@ -302,7 +302,7 @@ class VlanClient: > try: > conn = self.request(resource) > test_id = conn.getresponse().read() > - except (socket.error, httplib.HTTPException), e: > + except (socket.error, http.client.HTTPException) as e: > error_msg(e) > return False > > @@ -335,7 +335,7 @@ class VlanClient: > try: > resp = self.request('/ping').getresponse() > data = resp.read() > - except (socket.error, httplib.HTTPException), e: > + except (socket.error, http.client.HTTPException) as e: > error_msg(e) > return False > > @@ -383,7 +383,7 @@ def main(): > try: > options, args = getopt.gnu_getopt(sys.argv[1:], 'hVs', > ['help', 'version', 'server']) > - except getopt.GetoptError, geo: > + except getopt.GetoptError as geo: > print_safe('%s: %s\n' % (sys.argv[0], geo.msg)) > return 1 > _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev