All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
To: Mark Greer <mgreer@animalcreek.com>, linux-nfc@lists.01.org
Subject: [linux-nfc] Re: [PATCH] [neard][RFC] test: Convert Python2 scripts to Python3
Date: Mon, 9 Aug 2021 12:35:07 +0200	[thread overview]
Message-ID: <65c7b6ca-c1f6-6557-1b54-f8f666e3a5bf@canonical.com> (raw)
In-Reply-To: <20210808022058.171350-1-mgreer@animalcreek.com>

On 08/08/2021 04:20, Mark Greer wrote:
> Python2 is deprecated so convert the neard test scripts, which are
> Python2, to Python3.
> 
> Signed-off-by: Mark Greer <mgreer@animalcreek.com>
> ---
> This is a first pass at converting the python scripts to Python3.
> Not a lot of testing yet.  It appears that the 'gobject' is not
> available anymore so I have to look into how to rework the code that
> uses it.
> 
> I would appreciate any testing that you are willing to provide.
> 
> Also available at:
> 	https://github.com/linux-nfc/neard/tree/mag/python3-ize
> 
>  se/test/test-channel     | 18 +++++------
>  se/test/test-seel        | 38 +++++++++++-----------
>  test/bt-handover         |  8 ++---
>  test/handover-agent      | 34 +++++++++----------
>  test/monitor-near        |  8 ++---
>  test/ndef-agent          | 20 ++++++------
>  test/neard-ui.py         | 70 ++++++++++++++++++++--------------------
>  test/neardutils.py       | 14 ++++----
>  test/phdc-simple-manager | 50 ++++++++++++++--------------
>  test/test-adapter        | 16 ++++-----
>  test/test-device         | 34 +++++++++----------
>  test/test-tag            | 10 +++---
>  12 files changed, 160 insertions(+), 160 deletions(-)
> 

Few tests:
------------
$ sudo python3 ./test/test-adapter poll nfc0 on
Traceback (most recent call last):
  File "./test/test-adapter", line 92, in <module>
    adapter.StartPollLoop(mode)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in
__call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in
__call__
    return self._connection.call_blocking(self._named_service,
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in
call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.neard.Error.Failed: No such device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./test/test-adapter", line 94, in <module>
    print("%s: %s" % (error._dbus_error_name, error.message))
AttributeError: 'DBusException' object has no attribute 'message'
------------

The same attribute message error also with:
------------
$ sudo python3 ./test/test-adapter powered nfc0 on
$ sudo python3 ./test/test-adapter poll nfc0 on
$ sudo python3 ./test/test-adapter powered nfc0 off
Traceback (most recent call last):
  File "./test/test-adapter", line 72, in <module>
    adapter.Set("org.neard.Adapter", "Powered", value)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in
__call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in
__call__
    return self._connection.call_blocking(self._named_service,
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in
call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.neard.Error.Failed: Unknown error -16

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./test/test-adapter", line 74, in <module>
    print("%s: %s" % (error._dbus_error_name, error.message))
AttributeError: 'DBusException' object has no attribute 'message'
------------


Others:
------------
sudo python3 ./test/test-device
  File "./test/test-device", line 76
    usage()
          ^
TabError: inconsistent use of tabs and spaces in indentation
------------
sudo python3 ./test/phdc-simple-manager
  File "./test/phdc-simple-manager", line 60
    print('Init PhdcPeerManager thread')
                                       ^
TabError: inconsistent use of tabs and spaces in indentation
------------


> diff --git a/se/test/test-channel b/se/test/test-channel
> index e6ed0114c8c8..600ab8647e08 100755
> --- a/se/test/test-channel
> +++ b/se/test/test-channel
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import sys
>  import dbus
> @@ -9,10 +9,10 @@ def extract_byte_array(byte_array):
>  	return ' '.join("{:02x}".format(byte) for byte in byte_array)
>  
>  def usage():
> -	print "Usage: %s <command>" % (sys.argv[0])
> -	print ""
> -	print "  list"
> -	print "  send_apdu se/nfcX_<se_type>_seX channelX <apdu>"
> +	print("Usage: %s <command>" % (sys.argv[0]))
> +	print("")
> +	print("  list")
> +	print("  send_apdu se/nfcX_<se_type>_seX channelX <apdu>")
>  	sys.exit(1)
>  
>  if (len(sys.argv) < 2):
> @@ -29,7 +29,7 @@ if (sys.argv[1] == "list"):
>  		properties = seel.GetProperties()
>  
>  		for path in properties["Channels"]:
> -			print "[ %s ]" % (path)
> +			print("[ %s ]" % (path))
>  
>  			channel = dbus.Interface(bus.get_object("org.neard.se", path),
>  						"org.neard.se.Channel")
> @@ -41,10 +41,10 @@ if (sys.argv[1] == "list"):
>  						val = "true"
>  					else:
>  						val = "false"
> -					print "    %s = %s" % (key, val)
> +					print("    %s = %s" % (key, val))
>  
>  				if key in ["AID"]:
> -					print "    %s = %s" % (key, extract_byte_array(properties[key]))
> +					print("    %s = %s" % (key, extract_byte_array(properties[key])))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "send_apdu"):
> @@ -58,7 +58,7 @@ if (sys.argv[1] == "send_apdu"):
>  
>  		response = channel.SendAPDU(sys.argv[4].decode("hex"))
>  
> -		print "--> %s" % extract_byte_array(response)
> +		print("--> %s" % extract_byte_array(response))
>  	sys.exit(0)
>  
>  usage()
> diff --git a/se/test/test-seel b/se/test/test-seel
> index e238a38851a9..2b877daf5bd1 100755
> --- a/se/test/test-seel
> +++ b/se/test/test-seel
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import sys
>  import dbus
> @@ -13,12 +13,12 @@ def extract_list(list):
>  	return val
>  
>  def usage():
> -	print "Usage: %s <command>" % (sys.argv[0])
> -	print ""
> -	print "  list"
> -	print "  enabled se/nfcX_<se_type>_seX [on/off]"
> -	print "  open_channel se/nfcX_<se_type>_seX <AID>"
> -	print "  close_channel se/nfcX_<se_type>_seX channelX"
> +	print("Usage: %s <command>" % (sys.argv[0]))
> +	print("")
> +	print("  list")
> +	print("  enabled se/nfcX_<se_type>_seX [on/off]")
> +	print("  open_channel se/nfcX_<se_type>_seX <AID>")
> +	print("  close_channel se/nfcX_<se_type>_seX channelX")
>  	sys.exit(1)
>  
>  if (len(sys.argv) < 2):
> @@ -33,7 +33,7 @@ if (sys.argv[1] == "list"):
>  		properties = manager.GetProperties()
>  
>  		for path in properties["SecureElements"]:
> -			print "[ %s ]" % (path)
> +			print("[ %s ]" % (path))
>  
>  			seel = dbus.Interface(bus.get_object("org.neard.se", path),
>  						"org.neard.se.SecureElement")
> @@ -45,13 +45,13 @@ if (sys.argv[1] == "list"):
>  						val = "true"
>  					else:
>  						val = "false"
> -					print "    %s = %s" % (key, val)
> +					print("    %s = %s" % (key, val))
>  
>  				if key in ["Type"]:
> -					print "    %s = %s" % (key, str(properties[key]))
> +					print("    %s = %s" % (key, str(properties[key])))
>  
>  				if key in ["Channels"]:
> -					print "    %s = %s" % (key, extract_list(properties[key]))
> +					print("    %s = %s" % (key, extract_list(properties[key])))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "enabled"):
> @@ -69,10 +69,10 @@ if (sys.argv[1] == "enabled"):
>  			elif (sys.argv[3] == "off"):
>  				val = seel.SetProperty("Enabled", dbus.Boolean(0), timeout = 10)
>  			else:
> -				print "Invalid option %s" % sys.argv[3]
> +				print("Invalid option %s" % sys.argv[3])
>  
> -		except dbus.DBusException, error:
> -			print "%s: %s" % (error._dbus_error_name, error.message)
> +		except dbus.DBusException as error:
> +			print("%s: %s" % (error._dbus_error_name, error.message))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "open_channel"):
> @@ -87,9 +87,9 @@ if (sys.argv[1] == "open_channel"):
>  		try:
>  			channel = seel.OpenChannel(sys.argv[3].decode("hex"))
>  
> -			print "Opened channel: %s" % str(channel)
> -		except dbus.DBusException, error:
> -			print "%s: %s" % (error._dbus_error_name, error.message)
> +			print("Opened channel: %s" % str(channel))
> +		except dbus.DBusException as error:
> +			print("%s: %s" % (error._dbus_error_name, error.message))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "close_channel"):
> @@ -107,8 +107,8 @@ if (sys.argv[1] == "close_channel"):
>  		try:
>  			seel.CloseChannel(channel)
>  
> -		except dbus.DBusException, error:
> -			print "%s: %s" % (error._dbus_error_name, error.message)
> +		except dbus.DBusException as error:
> +			print("%s: %s" % (error._dbus_error_name, error.message))
>  	sys.exit(0)
>  
>  usage()
> diff --git a/test/bt-handover b/test/bt-handover
> index 42d66bff8d66..f6921d2b4534 100755
> --- a/test/bt-handover
> +++ b/test/bt-handover
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import os
>  import sys
> @@ -14,7 +14,7 @@ from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED
>  mainloop = gobject.MainLoop()
>  
>  def device_added(path, interfaces):
> -	for iface, props in interfaces.iteritems():
> +	for iface, props in interfaces.items():
>  		if "org.neard.Device" in interfaces:
>  			print("Pairing with %s" % (path))
>  			device = dbus.Interface(bus.get_object("org.neard", path),
> @@ -34,7 +34,7 @@ def remove_paired_devices(bt_adapter):
>  					"org.freedesktop.DBus.ObjectManager")
>  	objects = manager.GetManagedObjects()
>  
> -	all_adapters = (path for path, interfaces in objects.iteritems() if
> +	all_adapters = (path for path, interfaces in objects.items() if
>  				"org.bluez.Adapter1" in interfaces.keys()
>  				and path.endswith(bt_adapter))
>  
> @@ -60,7 +60,7 @@ def remove_paired_devices(bt_adapter):
>  		print("Bluetooth adapter %s is not powered" % adapter_path )
>  		exit()
>  
> -	all_devices = (path for path, interfaces in objects.iteritems() if
> +	all_devices = (path for path, interfaces in objects.items() if
>  				("org.bluez.Device1" in interfaces.keys()
>  				and path.startswith(bluez_adapter.object_path)))
>  
> diff --git a/test/handover-agent b/test/handover-agent
> index 7f2ac23246b0..a1b42d9f890e 100755
> --- a/test/handover-agent
> +++ b/test/handover-agent
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import gobject
>  
> @@ -23,18 +23,18 @@ power_state = None
>  def print_fields(fields):
>  	if 'EIR' in fields:
>  		s = ' '.join('{:#02x}'.format(i) for i in fields['EIR'])
> -		print '  EIR:  %s' % s
> +		print('  EIR:  %s' % s)
>  
>  	if 'nokia.com:bt' in fields:
>  		s = ' '.join('{:#02x}'.format(i) for i in fields['nokia.com:bt'])
> -		print '  nokia.com:bt:  %s' % s
> +		print('  nokia.com:bt:  %s' % s)
>  
>  	if 'State' in fields:
> -		print '  State: %s' % fields['State']
> +		print('  State: %s' % fields['State'])
>  
>  	if 'WSC' in fields:
>  		s = ' '.join('{:#02x}'.format(i) for i in fields['WSC'])
> -		print '  WSC:  %s' % s
> +		print('  WSC:  %s' % s)
>  
>  class BTHOAgent(dbus.service.Object):
>  
> @@ -42,14 +42,14 @@ class BTHOAgent(dbus.service.Object):
>  					in_signature='',
>  					out_signature='')
>  	def Release(self):
> -		print 'Release'
> +		print('Release')
>  		mainloop.quit()
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
>  					in_signature='a{sv}',
>  					out_signature='')
>  	def PushOOB(self, fields):
> -		print 'PushOOB'
> +		print('PushOOB')
>  		print_fields(fields)
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
> @@ -57,15 +57,15 @@ class BTHOAgent(dbus.service.Object):
>  					out_signature='a{sv}')
>  
>  	def RequestOOB(self, fields):
> -		print 'RequestOOB'
> +		print('RequestOOB')
>  		print_fields(fields)
>  
> -		print '  Replying with'
> +		print('  Replying with')
>  		s = ' '.join('{:#02x}'.format(i) for i in eir_test_data)
> -		print '    EIR: %s' % s
> +		print('    EIR: %s' % s)
>  
>  		if power_state != 'unknown':
> -			print '    State: %s' % power_state
> +			print('    State: %s' % power_state)
>  			return {'EIR' : eir_test_data, 'State' : power_state}
>  		else:
>  			return {'EIR' : eir_test_data}
> @@ -76,14 +76,14 @@ class WiFiHOAgent(dbus.service.Object):
>  					in_signature='',
>  					out_signature='')
>  	def Release(self):
> -		print 'Release'
> +		print('Release')
>  		mainloop.quit()
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
>  					in_signature='a{sv}',
>  					out_signature='')
>  	def PushOOB(self, fields):
> -		print 'PushOOB'
> +		print('PushOOB')
>  		print_fields(fields)
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
> @@ -91,15 +91,15 @@ class WiFiHOAgent(dbus.service.Object):
>  					out_signature='a{sv}')
>  
>  	def RequestOOB(self, fields):
> -		print 'RequestOOB'
> +		print('RequestOOB')
>  		print_fields(fields)
>  
> -		print '  Replying with'
> +		print('  Replying with')
>  		s = ' '.join('{:#02x}'.format(i) for i in wsc_test_data)
> -		print '    WSC: %s' % s
> +		print('    WSC: %s' % s)
>  
>  		if power_state != 'unknown':
> -			print '    State: %s' % power_state
> +			print('    State: %s' % power_state)
>  			return {'WSC' : wsc_test_data, 'State' : power_state}
>  		else:
>  			return {'WSC' : wsc_test_data}
> diff --git a/test/monitor-near b/test/monitor-near
> index f3ad021d60a3..ee0cb4177ae3 100755
> --- a/test/monitor-near
> +++ b/test/monitor-near
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  from __future__ import absolute_import, print_function, unicode_literals
>  
> @@ -9,15 +9,15 @@ import dbus.mainloop.glib
>  
>  def property_changed(interface, changed, invalidated, path):
>  	iface = interface[interface.rfind(".") + 1:]
> -	for name, value in changed.iteritems():
> +	for name, value in changed.items():
>  		val = str(value)
>  		print("{%s.PropertyChanged} [%s] %s = %s" % (iface, path, name,
>  									val))
>  
>  def interfaces_added(path, interfaces):
> -	for iface, props in interfaces.iteritems():
> +	for iface, props in interfaces.items():
>  		print("{Added %s} [%s]" % (iface, path))
> -		for name, value in props.iteritems():
> +		for name, value in props.items():
>  			print("      %s = %s" % (name, value))
>  
>  def interfaces_removed(path, interfaces):
> diff --git a/test/ndef-agent b/test/ndef-agent
> index 1cfeb03e2330..084768bf0e5c 100755
> --- a/test/ndef-agent
> +++ b/test/ndef-agent
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import gobject
>  
> @@ -12,43 +12,43 @@ class NDEFAgent(dbus.service.Object):
>  	@dbus.service.method("org.neard.NDEFAgent",
>  					in_signature='', out_signature='')
>  	def Release(self):
> -		print "Release"
> +		print("Release")
>  		mainloop.quit()
>  
>  	@dbus.service.method("org.neard.NDEFAgent",
>  					in_signature='a{sv}',
>  					out_signature='')
>  	def GetNDEF(self, fields):
> -		print "GetNDEF"
> +		print("GetNDEF")
>  
>  		if fields.has_key("Record"):
> -			print "Record path %s" % (fields["Record"])
> +			print("Record path %s" % (fields["Record"]))
>  
>  		if fields.has_key("Payload"):
>  			val = "["
>  			for i in fields["Payload"]:
>  				val += " 0x%x" % i
>  			val += " ]"
> -			print "Record payload %s" % val
> +			print("Record payload %s" % val)
>  
>  		if fields.has_key("NDEF"):
>  			val = "["
>  			for i in fields["NDEF"]:
>  				val += " 0x%x" % i
>  			val += " ]"
> -			print "Complete NDEF %s" % val
> +			print("Complete NDEF %s" % val)
>  
>  		return
>  
>  	@dbus.service.method("org.neard.NDEFAgent",
>  					in_signature='', out_signature='')
>  	def Cancel(self):
> -		print "Cancel"
> +		print("Cancel")
>  
>  def print_usage():
> -	print "Usage:"
> -	print "%s Type=<record type>" % (sys.argv[0])
> -	print "Help: %s help" % (sys.argv[0])
> +	print("Usage:")
> +	print("%s Type=<record type>" % (sys.argv[0]))
> +	print("Help: %s help" % (sys.argv[0]))
>  	sys.exit(1)
>  
>  if __name__ == '__main__':
> diff --git a/test/neard-ui.py b/test/neard-ui.py
> index cf4bb13c5155..91f8e6bbaa6a 100755
> --- a/test/neard-ui.py
> +++ b/test/neard-ui.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python
> +#!/usr/bin/env python3
>  
>  import pdb
>  import sys
> @@ -18,12 +18,12 @@ import neardutils
>  class Neard:
>  
>      def interface_Added(self, path, interface):
> -        print (" New interface added: %s") % path
> +        print((" New interface added: %s") % path)


Instead:
print(" New interface added: %s" % path)

>          self.objects = neardutils.get_managed_objects()
>          self.interface_updateDetails(interface, path)
>  
>      def interface_Removed(self, path, interface):
> -        print (" Remove interface: %s") % path
> +        print((" Remove interface: %s") % path)

Same here.

>          self.objects = neardutils.get_managed_objects()
>          self.interface_updateDetails(interface)
>  
> @@ -32,7 +32,7 @@ class Neard:
>      #add/remove interface
>      def interfaces_Connect(self):
>          try:
> -            print 'interfaces_Connect'
> +            print('interfaces_Connect')
>              bus = dbus.SystemBus()
>              self.objects = neardutils.get_managed_objects()
>              bus.add_signal_receiver(self.interface_Added, bus_name=neardutils.SERVICE_NAME,
> @@ -42,7 +42,7 @@ class Neard:
>                                      dbus_interface="org.freedesktop.DBus.ObjectManager",
>                                      signal_name="InterfacesRemoved")
>          except:
> -            print ("Can't connect to org.freedesktop.DBus.ObjectManager");
> +            print(("Can't connect to org.freedesktop.DBus.ObjectManager"));

Double ((

>              self.objects = None
>  
>          #Retrieve the manager informations
> @@ -60,7 +60,7 @@ class Neard:
>              self.record_updateDetails(path)
>  
>      def adapter_PropertyChanged(self, prop, value, adapt_path = None):
> -        print("Prop changed: %s") % prop
> +        print(("Prop changed: %s") % prop)

Ditto

>          adapt_properties = {}
>          adapt_properties[prop] = value
>          if prop == "Tags":
> @@ -71,7 +71,7 @@ class Neard:
>      #Update the records UI
>      def record_updateDetails(self, tag_path=None):
>          if tag_path is not None:
> -            for record_path, record_iface in self.objects.iteritems():
> +            for record_path, record_iface in self.objects.items():
>  
>                  if neardutils.RECORD_INTERFACE not in record_iface:
>                      continue
> @@ -88,11 +88,11 @@ class Neard:
>      #Update the tags UI
>      def tag_updateDetails(self, adapter_path=None):
>          if adapter_path is not None:
> -            for tag_path, interfaces in self.objects.iteritems():
> +            for tag_path, interfaces in self.objects.items():
>                  if neardutils.TAG_INTERFACE not in interfaces:
>                      continue
>  
> -                print ("TAG %s ") % tag_path
> +                print(("TAG %s ") % tag_path)

Ditto

>  
>                  tag_properties = interfaces[neardutils.TAG_INTERFACE]
>  
> @@ -102,19 +102,19 @@ class Neard:
>                  #Process the records
>                  self.record_updateDetails(tag_properties)
>          else:
> -            print ("remove tags and records")
> +            print("remove tags and records")
>              self.tags_update()
>              self.records_update()
>  
>  
>      #Something changed, must update the UI
>      def adapter_updateDetails(self):
> -        for adapt_path, interfaces in self.objects.iteritems():
> +        for adapt_path, interfaces in self.objects.items():
>              if neardutils.ADAPTER_INTERFACE not in interfaces:
>                     continue
>  
>              if adapt_path in self.adaptregistered:
> -                   print (" already registered %s") % adapt_path
> +                   print((" already registered %s") % adapt_path)

Same... and in following places as well.

>              else:
>                     adapt_properties = interfaces[neardutils.ADAPTER_INTERFACE]
>  
> @@ -179,16 +179,16 @@ class NeardUI(Neard):
>  
>              try:
>                  if self.adapters_actionToggle(i, 2):
> -                    print ("Disable Adapter %s") % objpath
> +                    print(("Disable Adapter %s") % objpath)
>                      adapter.Set(neardutils.ADAPTER_INTERFACE, "Powered", False)
>                      self.adapters_list.set_value(i, 2, 0)
>                  else:
> -                    print ("Enable Adapter %s") % objpath
> +                    print(("Enable Adapter %s") % objpath)
>                      adapter.Set(neardutils.ADAPTER_INTERFACE, "Powered", True)
>                      self.adapters_list.set_value(i, 2, 1)
>  
>              except:
> -                print ("Can't toggle adapter %s") % objpath
> +                print(("Can't toggle adapter %s") % objpath)
>  
>      # Action: activate or not the polling mode
>      def adapter_pollingToggled(self, poolingRendererToggle, path, user):
> @@ -199,15 +199,15 @@ class NeardUI(Neard):
>  
>              try:
>                  if self.adapters_actionToggle(i, 3):
> -                    print ("Stop Polling %s") % objpath
> +                    print(("Stop Polling %s") % objpath)
>                      adapt_iface.StopPollLoop()
>                      self.adapters_list.set_value(i, 3, 0)
>                  else:
> -                    print ("Start Polling %s") % objpath
> +                    print(("Start Polling %s") % objpath)
>                      adapt_iface.StartPollLoop("Initiator")
>                      self.adapters_list.set_value(i, 3, 1)
>              except:
> -                print ("Can't toggle polling on adapter %s") % objpath
> +                print(("Can't toggle polling on adapter %s") % objpath)
>  
>      #------------------------------
>      #Set the field values
> @@ -238,7 +238,7 @@ class NeardUI(Neard):
>  
>              if value is not None:
>                  self.adapters_list.set_value(i, col, value)
> -            print ("  property %s, value %s") % (name, value)
> +            print(("  property %s, value %s") % (name, value))
>  
>      # Clear one or all the adapters present in list
>      def adapter_RemoveUI(self):
> @@ -254,18 +254,18 @@ class NeardUI(Neard):
>  
>          if adapt_properties is None:
>              if i:
> -                print ("Delete adapter %s") % path
> +                print(("Delete adapter %s") % path)
>                  self.adapters_list.remove(i)
>              else:
> -                print ("Already deleted adapter %s") % path
> +                print(("Already deleted adapter %s") % path)
>              return
>  
>          if i is None:
>              i = self.adapters_list.append()
>              self.adapters_list.set_value(i, 0, path)
> -            print ("Add adapter %s") % (path)
> +            print(("Add adapter %s") % (path))
>          else:
> -            print ("Update adapter %s") % (path)
> +            print(("Update adapter %s") % (path))
>  
>  
>          self.adapters_setUIList(adapt_properties, i, 2, "Powered")
> @@ -289,11 +289,11 @@ class NeardUI(Neard):
>  
>              if value is not None:
>                  self.tags_list.set_value(i, col, value)
> -            print ("  property %s, value %s") % (name, value)
> +            print(("  property %s, value %s") % (name, value))
>  
>      #Add, Update or delete a list entry
>      def tag_UpdateUI(self, path = None, tag_properties = None):
> -        print("Tag Update %s") % path
> +        print(("Tag Update %s") % path)
>          i = self.tags_list.get_iter_first()
>          while i is not None:
>              if self.tags_list.get_value(i, 0) == path:
> @@ -305,7 +305,7 @@ class NeardUI(Neard):
>              i = self.tags_list.get_iter_first()
>              while i is not None:
>                  path_name = self.tags_list.get_value(i, 0)
> -                print ("Deleted tag %s") % path_name
> +                print(("Deleted tag %s") % path_name)
>                  self.tags_list.remove(i)
>                  if self.tags_list.iter_is_valid(i):
>                      i = self.tags_list.iter_next(i)
> @@ -316,9 +316,9 @@ class NeardUI(Neard):
>          if i is None:
>              i = self.tags_list.append()
>              self.tags_list.set_value(i, 0, path)
> -            print ("Add tag %s") % (path)
> +            print(("Add tag %s") % (path))
>          else:
> -            print ("Update tag %s") % (path)
> +            print(("Update tag %s") % (path))
>          self.tags_setUIList(tag_properties, i, 2, "ReadOnly")
>          self.tags_setUIList(tag_properties, i, 3, "Type")
>  
> @@ -336,11 +336,11 @@ class NeardUI(Neard):
>  
>          if value is not None:
>              self.records_list.set_value(i, col, value)
> -        print ("  property %s, value %s") % (name, value)
> +        print(("  property %s, value %s") % (name, value))
>  
>      #Add, Update or delete a list entry
>      def record_UpdateUI(self, path = None, record_properties = None):
> -        print("Record Update %s") % path
> +        print(("Record Update %s") % path)
>          i = self.records_list.get_iter_first()
>          while i is not None:
>              if self.records_list.get_value(i, 0) == path:
> @@ -352,7 +352,7 @@ class NeardUI(Neard):
>              i = self.records_list.get_iter_first()
>              while i is not None:
>                  path_name = self.records_list.get_value(i, 0)
> -                print ("Delete record %s") % path_name
> +                print(("Delete record %s") % path_name)
>                  self.records_list.remove(i)
>                  if self.records_list.iter_is_valid(i):
>                      i = self.records_list.iter_next(i)
> @@ -363,9 +363,9 @@ class NeardUI(Neard):
>          if i is None:
>              i = self.records_list.append()
>              self.records_list.set_value(i, 0, path)
> -            print ("Add record %s") % (path)
> +            print(("Add record %s") % (path))
>          else:
> -            print ("Update record %s") % (path)
> +            print(("Update record %s") % (path))
>  
>          self.records_setUIList(record_properties, i, 2, "Type")
>          self.records_setUIList(record_properties, i, 3, "Data")
> @@ -379,9 +379,9 @@ class NeardUI(Neard):
>          model, iter = selection.get_selected()
>          if iter:
>               value = self.adapters_list.get_value(iter, 0)
> -             print ("value %s") % value
> +             print(("value %s") % value)
>               value = self.adapters_list.get_value(iter, 5)
> -             print ("tag: %s") % value
> +             print(("tag: %s") % value)
>  
>  
>      #-----------------------------------------------------
> diff --git a/test/neardutils.py b/test/neardutils.py
> index d93ae637bb27..047678b3f8e5 100644
> --- a/test/neardutils.py
> +++ b/test/neardutils.py
> @@ -17,7 +17,7 @@ def find_adapter(pattern=None):
>  
>  def find_adapter_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		adapter = ifaces.get(ADAPTER_INTERFACE)
>  		if adapter is None:
>  			continue
> @@ -31,7 +31,7 @@ def find_device(pattern=None):
>  
>  def find_device_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		device = ifaces.get(DEVICE_INTERFACE)
>  		if device is None:
>  			continue
> @@ -45,7 +45,7 @@ def find_tag(pattern=None):
>  
>  def find_tag_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		tag = ifaces.get(TAG_INTERFACE)
>  		if tag is None:
>  			continue
> @@ -59,7 +59,7 @@ def find_record(pattern=None):
>  
>  def find_record_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		record = ifaces.get(RECORD_INTERFACE)
>  		if record is None:
>  			continue
> @@ -77,17 +77,17 @@ def dump_record(record_path):
>  
>  	for key in properties.keys():
>  		if key in ["Representation"]:
> -			val = unicode(properties[key])
> +			val = str(properties[key])
>  		else:
>  			val = str(properties[key])
> -		print "      %s = %s" % (key, val)
> +		print("      %s = %s" % (key, val))
>  
>  def dump_all_records(path):
>  	bus = dbus.SystemBus()
>  	om = dbus.Interface(bus.get_object(SERVICE_NAME, "/"),
>  					"org.freedesktop.DBus.ObjectManager")
>  	objects = om.GetManagedObjects()
> -	for path, interfaces in objects.iteritems():
> +	for path, interfaces in objects.items():
>  		if RECORD_INTERFACE not in interfaces:
>  			continue
>  
> diff --git a/test/phdc-simple-manager b/test/phdc-simple-manager
> index 4fd25df541d8..2536d4b0c5b7 100755
> --- a/test/phdc-simple-manager
> +++ b/test/phdc-simple-manager
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python2.7
> +#!/usr/bin/env python3
>  
>  import sys
>  import dbus
> @@ -46,8 +46,8 @@ def hexdump( chars, sep, width ):
>  		line = chars[:width]
>  		chars = chars[width:]
>  		line = line.ljust( width, '\000' )
> -		print "%s%s%s" % ( sep.join( "%02x" % ord(c) for c in line ),
> -			 sep, quotechars( line ))
> +		print("%s%s%s" % ( sep.join( "%02x" % ord(c) for c in line ),
> +			 sep, quotechars( line )))
>  
>  
>  def quotechars( chars ):
> @@ -57,26 +57,26 @@ def quotechars( chars ):
>  class PhdcPeerManager:
>      def __init__(self, agent_fd):
>  	#Grab the agent ....
> -	print 'Init PhdcPeerManager thread'
> +	print('Init PhdcPeerManager thread')
>  	self.r_fd = agent_fd.take()
> -	print 'Agent fd:', str(self.r_fd)
> +	print('Agent fd:', str(self.r_fd))
>  
>      def run( self):
> -	print 'Run PhdcPeerManager thread: ', str(self.r_fd)
> +	print('Run PhdcPeerManager thread: ', str(self.r_fd))
>  	self.sock = socket.fromfd(self.r_fd, AF_NFC, socket.SOCK_STREAM)
>          try:
>              while True:
>  		miu = self.sock.getsockopt(SOL_NFC, NFC_LLCP_MIUX)
> -		print 'MIU=', miu
> +		print('MIU=', miu)

Mixed up indentation but I guess the issue was here before.

>  
>                  while True:
>                      data = self.sock.recv(16)
>                      if data == None:
> -		       print 'no data'
> +		       print('no data')
>  		       break
>  

Best regards,
Krzysztof
_______________________________________________
Linux-nfc mailing list -- linux-nfc@lists.01.org
To unsubscribe send an email to linux-nfc-leave@lists.01.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
To: linux-nfc@lists.01.org
Subject: Re: [PATCH] [neard][RFC] test: Convert Python2 scripts to Python3
Date: Mon, 09 Aug 2021 12:35:07 +0200	[thread overview]
Message-ID: <65c7b6ca-c1f6-6557-1b54-f8f666e3a5bf@canonical.com> (raw)
In-Reply-To: <20210808022058.171350-1-mgreer@animalcreek.com>

[-- Attachment #1: Type: text/plain, Size: 31218 bytes --]

On 08/08/2021 04:20, Mark Greer wrote:
> Python2 is deprecated so convert the neard test scripts, which are
> Python2, to Python3.
> 
> Signed-off-by: Mark Greer <mgreer@animalcreek.com>
> ---
> This is a first pass at converting the python scripts to Python3.
> Not a lot of testing yet.  It appears that the 'gobject' is not
> available anymore so I have to look into how to rework the code that
> uses it.
> 
> I would appreciate any testing that you are willing to provide.
> 
> Also available at:
> 	https://github.com/linux-nfc/neard/tree/mag/python3-ize
> 
>  se/test/test-channel     | 18 +++++------
>  se/test/test-seel        | 38 +++++++++++-----------
>  test/bt-handover         |  8 ++---
>  test/handover-agent      | 34 +++++++++----------
>  test/monitor-near        |  8 ++---
>  test/ndef-agent          | 20 ++++++------
>  test/neard-ui.py         | 70 ++++++++++++++++++++--------------------
>  test/neardutils.py       | 14 ++++----
>  test/phdc-simple-manager | 50 ++++++++++++++--------------
>  test/test-adapter        | 16 ++++-----
>  test/test-device         | 34 +++++++++----------
>  test/test-tag            | 10 +++---
>  12 files changed, 160 insertions(+), 160 deletions(-)
> 

Few tests:
------------
$ sudo python3 ./test/test-adapter poll nfc0 on
Traceback (most recent call last):
  File "./test/test-adapter", line 92, in <module>
    adapter.StartPollLoop(mode)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in
__call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in
__call__
    return self._connection.call_blocking(self._named_service,
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in
call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.neard.Error.Failed: No such device

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./test/test-adapter", line 94, in <module>
    print("%s: %s" % (error._dbus_error_name, error.message))
AttributeError: 'DBusException' object has no attribute 'message'
------------

The same attribute message error also with:
------------
$ sudo python3 ./test/test-adapter powered nfc0 on
$ sudo python3 ./test/test-adapter poll nfc0 on
$ sudo python3 ./test/test-adapter powered nfc0 off
Traceback (most recent call last):
  File "./test/test-adapter", line 72, in <module>
    adapter.Set("org.neard.Adapter", "Powered", value)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 72, in
__call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python3/dist-packages/dbus/proxies.py", line 141, in
__call__
    return self._connection.call_blocking(self._named_service,
  File "/usr/lib/python3/dist-packages/dbus/connection.py", line 652, in
call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.neard.Error.Failed: Unknown error -16

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./test/test-adapter", line 74, in <module>
    print("%s: %s" % (error._dbus_error_name, error.message))
AttributeError: 'DBusException' object has no attribute 'message'
------------


Others:
------------
sudo python3 ./test/test-device
  File "./test/test-device", line 76
    usage()
          ^
TabError: inconsistent use of tabs and spaces in indentation
------------
sudo python3 ./test/phdc-simple-manager
  File "./test/phdc-simple-manager", line 60
    print('Init PhdcPeerManager thread')
                                       ^
TabError: inconsistent use of tabs and spaces in indentation
------------


> diff --git a/se/test/test-channel b/se/test/test-channel
> index e6ed0114c8c8..600ab8647e08 100755
> --- a/se/test/test-channel
> +++ b/se/test/test-channel
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import sys
>  import dbus
> @@ -9,10 +9,10 @@ def extract_byte_array(byte_array):
>  	return ' '.join("{:02x}".format(byte) for byte in byte_array)
>  
>  def usage():
> -	print "Usage: %s <command>" % (sys.argv[0])
> -	print ""
> -	print "  list"
> -	print "  send_apdu se/nfcX_<se_type>_seX channelX <apdu>"
> +	print("Usage: %s <command>" % (sys.argv[0]))
> +	print("")
> +	print("  list")
> +	print("  send_apdu se/nfcX_<se_type>_seX channelX <apdu>")
>  	sys.exit(1)
>  
>  if (len(sys.argv) < 2):
> @@ -29,7 +29,7 @@ if (sys.argv[1] == "list"):
>  		properties = seel.GetProperties()
>  
>  		for path in properties["Channels"]:
> -			print "[ %s ]" % (path)
> +			print("[ %s ]" % (path))
>  
>  			channel = dbus.Interface(bus.get_object("org.neard.se", path),
>  						"org.neard.se.Channel")
> @@ -41,10 +41,10 @@ if (sys.argv[1] == "list"):
>  						val = "true"
>  					else:
>  						val = "false"
> -					print "    %s = %s" % (key, val)
> +					print("    %s = %s" % (key, val))
>  
>  				if key in ["AID"]:
> -					print "    %s = %s" % (key, extract_byte_array(properties[key]))
> +					print("    %s = %s" % (key, extract_byte_array(properties[key])))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "send_apdu"):
> @@ -58,7 +58,7 @@ if (sys.argv[1] == "send_apdu"):
>  
>  		response = channel.SendAPDU(sys.argv[4].decode("hex"))
>  
> -		print "--> %s" % extract_byte_array(response)
> +		print("--> %s" % extract_byte_array(response))
>  	sys.exit(0)
>  
>  usage()
> diff --git a/se/test/test-seel b/se/test/test-seel
> index e238a38851a9..2b877daf5bd1 100755
> --- a/se/test/test-seel
> +++ b/se/test/test-seel
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import sys
>  import dbus
> @@ -13,12 +13,12 @@ def extract_list(list):
>  	return val
>  
>  def usage():
> -	print "Usage: %s <command>" % (sys.argv[0])
> -	print ""
> -	print "  list"
> -	print "  enabled se/nfcX_<se_type>_seX [on/off]"
> -	print "  open_channel se/nfcX_<se_type>_seX <AID>"
> -	print "  close_channel se/nfcX_<se_type>_seX channelX"
> +	print("Usage: %s <command>" % (sys.argv[0]))
> +	print("")
> +	print("  list")
> +	print("  enabled se/nfcX_<se_type>_seX [on/off]")
> +	print("  open_channel se/nfcX_<se_type>_seX <AID>")
> +	print("  close_channel se/nfcX_<se_type>_seX channelX")
>  	sys.exit(1)
>  
>  if (len(sys.argv) < 2):
> @@ -33,7 +33,7 @@ if (sys.argv[1] == "list"):
>  		properties = manager.GetProperties()
>  
>  		for path in properties["SecureElements"]:
> -			print "[ %s ]" % (path)
> +			print("[ %s ]" % (path))
>  
>  			seel = dbus.Interface(bus.get_object("org.neard.se", path),
>  						"org.neard.se.SecureElement")
> @@ -45,13 +45,13 @@ if (sys.argv[1] == "list"):
>  						val = "true"
>  					else:
>  						val = "false"
> -					print "    %s = %s" % (key, val)
> +					print("    %s = %s" % (key, val))
>  
>  				if key in ["Type"]:
> -					print "    %s = %s" % (key, str(properties[key]))
> +					print("    %s = %s" % (key, str(properties[key])))
>  
>  				if key in ["Channels"]:
> -					print "    %s = %s" % (key, extract_list(properties[key]))
> +					print("    %s = %s" % (key, extract_list(properties[key])))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "enabled"):
> @@ -69,10 +69,10 @@ if (sys.argv[1] == "enabled"):
>  			elif (sys.argv[3] == "off"):
>  				val = seel.SetProperty("Enabled", dbus.Boolean(0), timeout = 10)
>  			else:
> -				print "Invalid option %s" % sys.argv[3]
> +				print("Invalid option %s" % sys.argv[3])
>  
> -		except dbus.DBusException, error:
> -			print "%s: %s" % (error._dbus_error_name, error.message)
> +		except dbus.DBusException as error:
> +			print("%s: %s" % (error._dbus_error_name, error.message))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "open_channel"):
> @@ -87,9 +87,9 @@ if (sys.argv[1] == "open_channel"):
>  		try:
>  			channel = seel.OpenChannel(sys.argv[3].decode("hex"))
>  
> -			print "Opened channel: %s" % str(channel)
> -		except dbus.DBusException, error:
> -			print "%s: %s" % (error._dbus_error_name, error.message)
> +			print("Opened channel: %s" % str(channel))
> +		except dbus.DBusException as error:
> +			print("%s: %s" % (error._dbus_error_name, error.message))
>  	sys.exit(0)
>  
>  if (sys.argv[1] == "close_channel"):
> @@ -107,8 +107,8 @@ if (sys.argv[1] == "close_channel"):
>  		try:
>  			seel.CloseChannel(channel)
>  
> -		except dbus.DBusException, error:
> -			print "%s: %s" % (error._dbus_error_name, error.message)
> +		except dbus.DBusException as error:
> +			print("%s: %s" % (error._dbus_error_name, error.message))
>  	sys.exit(0)
>  
>  usage()
> diff --git a/test/bt-handover b/test/bt-handover
> index 42d66bff8d66..f6921d2b4534 100755
> --- a/test/bt-handover
> +++ b/test/bt-handover
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import os
>  import sys
> @@ -14,7 +14,7 @@ from dbus.lowlevel import MethodCallMessage, HANDLER_RESULT_NOT_YET_HANDLED
>  mainloop = gobject.MainLoop()
>  
>  def device_added(path, interfaces):
> -	for iface, props in interfaces.iteritems():
> +	for iface, props in interfaces.items():
>  		if "org.neard.Device" in interfaces:
>  			print("Pairing with %s" % (path))
>  			device = dbus.Interface(bus.get_object("org.neard", path),
> @@ -34,7 +34,7 @@ def remove_paired_devices(bt_adapter):
>  					"org.freedesktop.DBus.ObjectManager")
>  	objects = manager.GetManagedObjects()
>  
> -	all_adapters = (path for path, interfaces in objects.iteritems() if
> +	all_adapters = (path for path, interfaces in objects.items() if
>  				"org.bluez.Adapter1" in interfaces.keys()
>  				and path.endswith(bt_adapter))
>  
> @@ -60,7 +60,7 @@ def remove_paired_devices(bt_adapter):
>  		print("Bluetooth adapter %s is not powered" % adapter_path )
>  		exit()
>  
> -	all_devices = (path for path, interfaces in objects.iteritems() if
> +	all_devices = (path for path, interfaces in objects.items() if
>  				("org.bluez.Device1" in interfaces.keys()
>  				and path.startswith(bluez_adapter.object_path)))
>  
> diff --git a/test/handover-agent b/test/handover-agent
> index 7f2ac23246b0..a1b42d9f890e 100755
> --- a/test/handover-agent
> +++ b/test/handover-agent
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import gobject
>  
> @@ -23,18 +23,18 @@ power_state = None
>  def print_fields(fields):
>  	if 'EIR' in fields:
>  		s = ' '.join('{:#02x}'.format(i) for i in fields['EIR'])
> -		print '  EIR:  %s' % s
> +		print('  EIR:  %s' % s)
>  
>  	if 'nokia.com:bt' in fields:
>  		s = ' '.join('{:#02x}'.format(i) for i in fields['nokia.com:bt'])
> -		print '  nokia.com:bt:  %s' % s
> +		print('  nokia.com:bt:  %s' % s)
>  
>  	if 'State' in fields:
> -		print '  State: %s' % fields['State']
> +		print('  State: %s' % fields['State'])
>  
>  	if 'WSC' in fields:
>  		s = ' '.join('{:#02x}'.format(i) for i in fields['WSC'])
> -		print '  WSC:  %s' % s
> +		print('  WSC:  %s' % s)
>  
>  class BTHOAgent(dbus.service.Object):
>  
> @@ -42,14 +42,14 @@ class BTHOAgent(dbus.service.Object):
>  					in_signature='',
>  					out_signature='')
>  	def Release(self):
> -		print 'Release'
> +		print('Release')
>  		mainloop.quit()
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
>  					in_signature='a{sv}',
>  					out_signature='')
>  	def PushOOB(self, fields):
> -		print 'PushOOB'
> +		print('PushOOB')
>  		print_fields(fields)
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
> @@ -57,15 +57,15 @@ class BTHOAgent(dbus.service.Object):
>  					out_signature='a{sv}')
>  
>  	def RequestOOB(self, fields):
> -		print 'RequestOOB'
> +		print('RequestOOB')
>  		print_fields(fields)
>  
> -		print '  Replying with'
> +		print('  Replying with')
>  		s = ' '.join('{:#02x}'.format(i) for i in eir_test_data)
> -		print '    EIR: %s' % s
> +		print('    EIR: %s' % s)
>  
>  		if power_state != 'unknown':
> -			print '    State: %s' % power_state
> +			print('    State: %s' % power_state)
>  			return {'EIR' : eir_test_data, 'State' : power_state}
>  		else:
>  			return {'EIR' : eir_test_data}
> @@ -76,14 +76,14 @@ class WiFiHOAgent(dbus.service.Object):
>  					in_signature='',
>  					out_signature='')
>  	def Release(self):
> -		print 'Release'
> +		print('Release')
>  		mainloop.quit()
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
>  					in_signature='a{sv}',
>  					out_signature='')
>  	def PushOOB(self, fields):
> -		print 'PushOOB'
> +		print('PushOOB')
>  		print_fields(fields)
>  
>  	@dbus.service.method('org.neard.HandoverAgent',
> @@ -91,15 +91,15 @@ class WiFiHOAgent(dbus.service.Object):
>  					out_signature='a{sv}')
>  
>  	def RequestOOB(self, fields):
> -		print 'RequestOOB'
> +		print('RequestOOB')
>  		print_fields(fields)
>  
> -		print '  Replying with'
> +		print('  Replying with')
>  		s = ' '.join('{:#02x}'.format(i) for i in wsc_test_data)
> -		print '    WSC: %s' % s
> +		print('    WSC: %s' % s)
>  
>  		if power_state != 'unknown':
> -			print '    State: %s' % power_state
> +			print('    State: %s' % power_state)
>  			return {'WSC' : wsc_test_data, 'State' : power_state}
>  		else:
>  			return {'WSC' : wsc_test_data}
> diff --git a/test/monitor-near b/test/monitor-near
> index f3ad021d60a3..ee0cb4177ae3 100755
> --- a/test/monitor-near
> +++ b/test/monitor-near
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  from __future__ import absolute_import, print_function, unicode_literals
>  
> @@ -9,15 +9,15 @@ import dbus.mainloop.glib
>  
>  def property_changed(interface, changed, invalidated, path):
>  	iface = interface[interface.rfind(".") + 1:]
> -	for name, value in changed.iteritems():
> +	for name, value in changed.items():
>  		val = str(value)
>  		print("{%s.PropertyChanged} [%s] %s = %s" % (iface, path, name,
>  									val))
>  
>  def interfaces_added(path, interfaces):
> -	for iface, props in interfaces.iteritems():
> +	for iface, props in interfaces.items():
>  		print("{Added %s} [%s]" % (iface, path))
> -		for name, value in props.iteritems():
> +		for name, value in props.items():
>  			print("      %s = %s" % (name, value))
>  
>  def interfaces_removed(path, interfaces):
> diff --git a/test/ndef-agent b/test/ndef-agent
> index 1cfeb03e2330..084768bf0e5c 100755
> --- a/test/ndef-agent
> +++ b/test/ndef-agent
> @@ -1,4 +1,4 @@
> -#!/usr/bin/python
> +#!/usr/bin/python3
>  
>  import gobject
>  
> @@ -12,43 +12,43 @@ class NDEFAgent(dbus.service.Object):
>  	@dbus.service.method("org.neard.NDEFAgent",
>  					in_signature='', out_signature='')
>  	def Release(self):
> -		print "Release"
> +		print("Release")
>  		mainloop.quit()
>  
>  	@dbus.service.method("org.neard.NDEFAgent",
>  					in_signature='a{sv}',
>  					out_signature='')
>  	def GetNDEF(self, fields):
> -		print "GetNDEF"
> +		print("GetNDEF")
>  
>  		if fields.has_key("Record"):
> -			print "Record path %s" % (fields["Record"])
> +			print("Record path %s" % (fields["Record"]))
>  
>  		if fields.has_key("Payload"):
>  			val = "["
>  			for i in fields["Payload"]:
>  				val += " 0x%x" % i
>  			val += " ]"
> -			print "Record payload %s" % val
> +			print("Record payload %s" % val)
>  
>  		if fields.has_key("NDEF"):
>  			val = "["
>  			for i in fields["NDEF"]:
>  				val += " 0x%x" % i
>  			val += " ]"
> -			print "Complete NDEF %s" % val
> +			print("Complete NDEF %s" % val)
>  
>  		return
>  
>  	@dbus.service.method("org.neard.NDEFAgent",
>  					in_signature='', out_signature='')
>  	def Cancel(self):
> -		print "Cancel"
> +		print("Cancel")
>  
>  def print_usage():
> -	print "Usage:"
> -	print "%s Type=<record type>" % (sys.argv[0])
> -	print "Help: %s help" % (sys.argv[0])
> +	print("Usage:")
> +	print("%s Type=<record type>" % (sys.argv[0]))
> +	print("Help: %s help" % (sys.argv[0]))
>  	sys.exit(1)
>  
>  if __name__ == '__main__':
> diff --git a/test/neard-ui.py b/test/neard-ui.py
> index cf4bb13c5155..91f8e6bbaa6a 100755
> --- a/test/neard-ui.py
> +++ b/test/neard-ui.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python
> +#!/usr/bin/env python3
>  
>  import pdb
>  import sys
> @@ -18,12 +18,12 @@ import neardutils
>  class Neard:
>  
>      def interface_Added(self, path, interface):
> -        print (" New interface added: %s") % path
> +        print((" New interface added: %s") % path)


Instead:
print(" New interface added: %s" % path)

>          self.objects = neardutils.get_managed_objects()
>          self.interface_updateDetails(interface, path)
>  
>      def interface_Removed(self, path, interface):
> -        print (" Remove interface: %s") % path
> +        print((" Remove interface: %s") % path)

Same here.

>          self.objects = neardutils.get_managed_objects()
>          self.interface_updateDetails(interface)
>  
> @@ -32,7 +32,7 @@ class Neard:
>      #add/remove interface
>      def interfaces_Connect(self):
>          try:
> -            print 'interfaces_Connect'
> +            print('interfaces_Connect')
>              bus = dbus.SystemBus()
>              self.objects = neardutils.get_managed_objects()
>              bus.add_signal_receiver(self.interface_Added, bus_name=neardutils.SERVICE_NAME,
> @@ -42,7 +42,7 @@ class Neard:
>                                      dbus_interface="org.freedesktop.DBus.ObjectManager",
>                                      signal_name="InterfacesRemoved")
>          except:
> -            print ("Can't connect to org.freedesktop.DBus.ObjectManager");
> +            print(("Can't connect to org.freedesktop.DBus.ObjectManager"));

Double ((

>              self.objects = None
>  
>          #Retrieve the manager informations
> @@ -60,7 +60,7 @@ class Neard:
>              self.record_updateDetails(path)
>  
>      def adapter_PropertyChanged(self, prop, value, adapt_path = None):
> -        print("Prop changed: %s") % prop
> +        print(("Prop changed: %s") % prop)

Ditto

>          adapt_properties = {}
>          adapt_properties[prop] = value
>          if prop == "Tags":
> @@ -71,7 +71,7 @@ class Neard:
>      #Update the records UI
>      def record_updateDetails(self, tag_path=None):
>          if tag_path is not None:
> -            for record_path, record_iface in self.objects.iteritems():
> +            for record_path, record_iface in self.objects.items():
>  
>                  if neardutils.RECORD_INTERFACE not in record_iface:
>                      continue
> @@ -88,11 +88,11 @@ class Neard:
>      #Update the tags UI
>      def tag_updateDetails(self, adapter_path=None):
>          if adapter_path is not None:
> -            for tag_path, interfaces in self.objects.iteritems():
> +            for tag_path, interfaces in self.objects.items():
>                  if neardutils.TAG_INTERFACE not in interfaces:
>                      continue
>  
> -                print ("TAG %s ") % tag_path
> +                print(("TAG %s ") % tag_path)

Ditto

>  
>                  tag_properties = interfaces[neardutils.TAG_INTERFACE]
>  
> @@ -102,19 +102,19 @@ class Neard:
>                  #Process the records
>                  self.record_updateDetails(tag_properties)
>          else:
> -            print ("remove tags and records")
> +            print("remove tags and records")
>              self.tags_update()
>              self.records_update()
>  
>  
>      #Something changed, must update the UI
>      def adapter_updateDetails(self):
> -        for adapt_path, interfaces in self.objects.iteritems():
> +        for adapt_path, interfaces in self.objects.items():
>              if neardutils.ADAPTER_INTERFACE not in interfaces:
>                     continue
>  
>              if adapt_path in self.adaptregistered:
> -                   print (" already registered %s") % adapt_path
> +                   print((" already registered %s") % adapt_path)

Same... and in following places as well.

>              else:
>                     adapt_properties = interfaces[neardutils.ADAPTER_INTERFACE]
>  
> @@ -179,16 +179,16 @@ class NeardUI(Neard):
>  
>              try:
>                  if self.adapters_actionToggle(i, 2):
> -                    print ("Disable Adapter %s") % objpath
> +                    print(("Disable Adapter %s") % objpath)
>                      adapter.Set(neardutils.ADAPTER_INTERFACE, "Powered", False)
>                      self.adapters_list.set_value(i, 2, 0)
>                  else:
> -                    print ("Enable Adapter %s") % objpath
> +                    print(("Enable Adapter %s") % objpath)
>                      adapter.Set(neardutils.ADAPTER_INTERFACE, "Powered", True)
>                      self.adapters_list.set_value(i, 2, 1)
>  
>              except:
> -                print ("Can't toggle adapter %s") % objpath
> +                print(("Can't toggle adapter %s") % objpath)
>  
>      # Action: activate or not the polling mode
>      def adapter_pollingToggled(self, poolingRendererToggle, path, user):
> @@ -199,15 +199,15 @@ class NeardUI(Neard):
>  
>              try:
>                  if self.adapters_actionToggle(i, 3):
> -                    print ("Stop Polling %s") % objpath
> +                    print(("Stop Polling %s") % objpath)
>                      adapt_iface.StopPollLoop()
>                      self.adapters_list.set_value(i, 3, 0)
>                  else:
> -                    print ("Start Polling %s") % objpath
> +                    print(("Start Polling %s") % objpath)
>                      adapt_iface.StartPollLoop("Initiator")
>                      self.adapters_list.set_value(i, 3, 1)
>              except:
> -                print ("Can't toggle polling on adapter %s") % objpath
> +                print(("Can't toggle polling on adapter %s") % objpath)
>  
>      #------------------------------
>      #Set the field values
> @@ -238,7 +238,7 @@ class NeardUI(Neard):
>  
>              if value is not None:
>                  self.adapters_list.set_value(i, col, value)
> -            print ("  property %s, value %s") % (name, value)
> +            print(("  property %s, value %s") % (name, value))
>  
>      # Clear one or all the adapters present in list
>      def adapter_RemoveUI(self):
> @@ -254,18 +254,18 @@ class NeardUI(Neard):
>  
>          if adapt_properties is None:
>              if i:
> -                print ("Delete adapter %s") % path
> +                print(("Delete adapter %s") % path)
>                  self.adapters_list.remove(i)
>              else:
> -                print ("Already deleted adapter %s") % path
> +                print(("Already deleted adapter %s") % path)
>              return
>  
>          if i is None:
>              i = self.adapters_list.append()
>              self.adapters_list.set_value(i, 0, path)
> -            print ("Add adapter %s") % (path)
> +            print(("Add adapter %s") % (path))
>          else:
> -            print ("Update adapter %s") % (path)
> +            print(("Update adapter %s") % (path))
>  
>  
>          self.adapters_setUIList(adapt_properties, i, 2, "Powered")
> @@ -289,11 +289,11 @@ class NeardUI(Neard):
>  
>              if value is not None:
>                  self.tags_list.set_value(i, col, value)
> -            print ("  property %s, value %s") % (name, value)
> +            print(("  property %s, value %s") % (name, value))
>  
>      #Add, Update or delete a list entry
>      def tag_UpdateUI(self, path = None, tag_properties = None):
> -        print("Tag Update %s") % path
> +        print(("Tag Update %s") % path)
>          i = self.tags_list.get_iter_first()
>          while i is not None:
>              if self.tags_list.get_value(i, 0) == path:
> @@ -305,7 +305,7 @@ class NeardUI(Neard):
>              i = self.tags_list.get_iter_first()
>              while i is not None:
>                  path_name = self.tags_list.get_value(i, 0)
> -                print ("Deleted tag %s") % path_name
> +                print(("Deleted tag %s") % path_name)
>                  self.tags_list.remove(i)
>                  if self.tags_list.iter_is_valid(i):
>                      i = self.tags_list.iter_next(i)
> @@ -316,9 +316,9 @@ class NeardUI(Neard):
>          if i is None:
>              i = self.tags_list.append()
>              self.tags_list.set_value(i, 0, path)
> -            print ("Add tag %s") % (path)
> +            print(("Add tag %s") % (path))
>          else:
> -            print ("Update tag %s") % (path)
> +            print(("Update tag %s") % (path))
>          self.tags_setUIList(tag_properties, i, 2, "ReadOnly")
>          self.tags_setUIList(tag_properties, i, 3, "Type")
>  
> @@ -336,11 +336,11 @@ class NeardUI(Neard):
>  
>          if value is not None:
>              self.records_list.set_value(i, col, value)
> -        print ("  property %s, value %s") % (name, value)
> +        print(("  property %s, value %s") % (name, value))
>  
>      #Add, Update or delete a list entry
>      def record_UpdateUI(self, path = None, record_properties = None):
> -        print("Record Update %s") % path
> +        print(("Record Update %s") % path)
>          i = self.records_list.get_iter_first()
>          while i is not None:
>              if self.records_list.get_value(i, 0) == path:
> @@ -352,7 +352,7 @@ class NeardUI(Neard):
>              i = self.records_list.get_iter_first()
>              while i is not None:
>                  path_name = self.records_list.get_value(i, 0)
> -                print ("Delete record %s") % path_name
> +                print(("Delete record %s") % path_name)
>                  self.records_list.remove(i)
>                  if self.records_list.iter_is_valid(i):
>                      i = self.records_list.iter_next(i)
> @@ -363,9 +363,9 @@ class NeardUI(Neard):
>          if i is None:
>              i = self.records_list.append()
>              self.records_list.set_value(i, 0, path)
> -            print ("Add record %s") % (path)
> +            print(("Add record %s") % (path))
>          else:
> -            print ("Update record %s") % (path)
> +            print(("Update record %s") % (path))
>  
>          self.records_setUIList(record_properties, i, 2, "Type")
>          self.records_setUIList(record_properties, i, 3, "Data")
> @@ -379,9 +379,9 @@ class NeardUI(Neard):
>          model, iter = selection.get_selected()
>          if iter:
>               value = self.adapters_list.get_value(iter, 0)
> -             print ("value %s") % value
> +             print(("value %s") % value)
>               value = self.adapters_list.get_value(iter, 5)
> -             print ("tag: %s") % value
> +             print(("tag: %s") % value)
>  
>  
>      #-----------------------------------------------------
> diff --git a/test/neardutils.py b/test/neardutils.py
> index d93ae637bb27..047678b3f8e5 100644
> --- a/test/neardutils.py
> +++ b/test/neardutils.py
> @@ -17,7 +17,7 @@ def find_adapter(pattern=None):
>  
>  def find_adapter_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		adapter = ifaces.get(ADAPTER_INTERFACE)
>  		if adapter is None:
>  			continue
> @@ -31,7 +31,7 @@ def find_device(pattern=None):
>  
>  def find_device_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		device = ifaces.get(DEVICE_INTERFACE)
>  		if device is None:
>  			continue
> @@ -45,7 +45,7 @@ def find_tag(pattern=None):
>  
>  def find_tag_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		tag = ifaces.get(TAG_INTERFACE)
>  		if tag is None:
>  			continue
> @@ -59,7 +59,7 @@ def find_record(pattern=None):
>  
>  def find_record_in_objects(objects, pattern=None):
>  	bus = dbus.SystemBus()
> -	for path, ifaces in objects.iteritems():
> +	for path, ifaces in objects.items():
>  		record = ifaces.get(RECORD_INTERFACE)
>  		if record is None:
>  			continue
> @@ -77,17 +77,17 @@ def dump_record(record_path):
>  
>  	for key in properties.keys():
>  		if key in ["Representation"]:
> -			val = unicode(properties[key])
> +			val = str(properties[key])
>  		else:
>  			val = str(properties[key])
> -		print "      %s = %s" % (key, val)
> +		print("      %s = %s" % (key, val))
>  
>  def dump_all_records(path):
>  	bus = dbus.SystemBus()
>  	om = dbus.Interface(bus.get_object(SERVICE_NAME, "/"),
>  					"org.freedesktop.DBus.ObjectManager")
>  	objects = om.GetManagedObjects()
> -	for path, interfaces in objects.iteritems():
> +	for path, interfaces in objects.items():
>  		if RECORD_INTERFACE not in interfaces:
>  			continue
>  
> diff --git a/test/phdc-simple-manager b/test/phdc-simple-manager
> index 4fd25df541d8..2536d4b0c5b7 100755
> --- a/test/phdc-simple-manager
> +++ b/test/phdc-simple-manager
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python2.7
> +#!/usr/bin/env python3
>  
>  import sys
>  import dbus
> @@ -46,8 +46,8 @@ def hexdump( chars, sep, width ):
>  		line = chars[:width]
>  		chars = chars[width:]
>  		line = line.ljust( width, '\000' )
> -		print "%s%s%s" % ( sep.join( "%02x" % ord(c) for c in line ),
> -			 sep, quotechars( line ))
> +		print("%s%s%s" % ( sep.join( "%02x" % ord(c) for c in line ),
> +			 sep, quotechars( line )))
>  
>  
>  def quotechars( chars ):
> @@ -57,26 +57,26 @@ def quotechars( chars ):
>  class PhdcPeerManager:
>      def __init__(self, agent_fd):
>  	#Grab the agent ....
> -	print 'Init PhdcPeerManager thread'
> +	print('Init PhdcPeerManager thread')
>  	self.r_fd = agent_fd.take()
> -	print 'Agent fd:', str(self.r_fd)
> +	print('Agent fd:', str(self.r_fd))
>  
>      def run( self):
> -	print 'Run PhdcPeerManager thread: ', str(self.r_fd)
> +	print('Run PhdcPeerManager thread: ', str(self.r_fd))
>  	self.sock = socket.fromfd(self.r_fd, AF_NFC, socket.SOCK_STREAM)
>          try:
>              while True:
>  		miu = self.sock.getsockopt(SOL_NFC, NFC_LLCP_MIUX)
> -		print 'MIU=', miu
> +		print('MIU=', miu)

Mixed up indentation but I guess the issue was here before.

>  
>                  while True:
>                      data = self.sock.recv(16)
>                      if data == None:
> -		       print 'no data'
> +		       print('no data')
>  		       break
>  

Best regards,
Krzysztof

  parent reply	other threads:[~2021-08-09 10:35 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-08  2:20 [linux-nfc] [PATCH] [neard][RFC] test: Convert Python2 scripts to Python3 Mark Greer
2021-08-08  2:20 ` Mark Greer
2021-08-08  2:22 ` [linux-nfc] " Mark Greer
2021-08-08  2:22   ` Mark Greer
2021-08-09 10:35 ` Krzysztof Kozlowski [this message]
2021-08-09 10:35   ` Krzysztof Kozlowski
2021-08-20 15:33   ` [linux-nfc] " Mark Greer
2021-08-20 15:33     ` Mark Greer
2021-11-29  4:15   ` [linux-nfc] " Mark Greer
2021-11-29  4:15     ` Mark Greer
2021-12-01  8:53     ` [linux-nfc] " Krzysztof Kozlowski
2021-12-01  8:53       ` Krzysztof Kozlowski
2021-12-06 17:17       ` [linux-nfc] " Mark Greer
2021-12-06 17:17         ` Mark Greer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=65c7b6ca-c1f6-6557-1b54-f8f666e3a5bf@canonical.com \
    --to=krzysztof.kozlowski@canonical.com \
    --cc=linux-nfc@lists.01.org \
    --cc=mgreer@animalcreek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.