diff --git a/msg/tools/generate_microRTPS_bridge.py b/msg/tools/generate_microRTPS_bridge.py index 31dd29b194..168f2d6f92 100644 --- a/msg/tools/generate_microRTPS_bridge.py +++ b/msg/tools/generate_microRTPS_bridge.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +#!/usr/bin/env python3 ################################################################################ # # Copyright 2017 Proyectos y Sistemas de Mantenimiento SL (eProsima). @@ -69,69 +68,49 @@ def check_rtps_id_uniqueness(classifier): repeated_ids = dict() - if sys.version_info[0] < 3: - full_send_list = dict(list(msg for msg in classifier.msgs_to_send.items( - )) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_send)) - full_receive_list = dict(list(msg for msg in classifier.msgs_to_receive.items( - )) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_receive)) - full_ignore_list = dict(list(msg for msg in classifier.msgs_to_ignore.items( - )) + list(msg[0].items()[0] for msg in classifier.alias_msgs_to_ignore)) - else: - full_send_list = dict(list(msg for msg in classifier.msgs_to_send.items( - )) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_send)) - full_receive_list = dict(list(msg for msg in classifier.msgs_to_receive.items( - )) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_receive)) - full_ignore_list = dict(list(msg for msg in classifier.msgs_to_ignore.items( - )) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_ignore)) + full_send_list = dict(list(msg for msg in list(classifier.msgs_to_send.items( + ))) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_send)) + full_receive_list = dict(list(msg for msg in list(classifier.msgs_to_receive.items( + ))) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_receive)) + full_ignore_list = dict(list(msg for msg in list(classifier.msgs_to_ignore.items( + ))) + list(list(msg[0].items())[0] for msg in classifier.alias_msgs_to_ignore)) # check if there are repeated ID's on the messages to send - for key, value in full_send_list.items(): - if sys.version_info[0] < 3: - if full_send_list.values().count(value) > 1: - repeated_ids.update({key: value}) - else: - if list(full_send_list.values()).count(value) > 1: - repeated_ids.update({key: value}) + for key, value in list(full_send_list.items()): + if list(full_send_list.values()).count(value) > 1: + repeated_ids.update({key: value}) # check if there are repeated ID's on the messages to receive - for key, value in full_receive_list.items(): - if sys.version_info[0] < 3: - if full_receive_list.values().count(value) > 1: - repeated_ids.update({key: value}) - else: - if list(full_receive_list.values()).count(value) > 1: - repeated_ids.update({key: value}) + for key, value in list(full_receive_list.items()): + if list(full_receive_list.values()).count(value) > 1: + repeated_ids.update({key: value}) # check if there are repeated ID's on the messages to ignore - for key, value in full_ignore_list.items(): - if sys.version_info[0] < 3: - if full_ignore_list.values().count(value) > 1: - repeated_ids.update({key: value}) - else: - if list(full_ignore_list.values()).count(value) > 1: - repeated_ids.update({key: value}) + for key, value in list(full_ignore_list.items()): + if list(full_ignore_list.values()).count(value) > 1: + repeated_ids.update({key: value}) # check if there are repeated IDs between classified and unclassified msgs # check send and ignore lists send_ignore_common_ids = list(set(full_ignore_list.values( - )).intersection(full_send_list.values())) - for item in full_send_list.items(): + )).intersection(list(full_send_list.values()))) + for item in list(full_send_list.items()): for repeated in send_ignore_common_ids: if item[1] == repeated: repeated_ids.update({item[0]: item[1]}) - for item in full_ignore_list.items(): + for item in list(full_ignore_list.items()): for repeated in send_ignore_common_ids: if item[1] == repeated: repeated_ids.update({item[0]: item[1]}) # check receive and ignore lists receive_ignore_common_ids = list(set(full_ignore_list.values( - )).intersection(full_receive_list.values())) - for item in full_receive_list.items(): + )).intersection(list(full_receive_list.values()))) + for item in list(full_receive_list.items()): for repeated in receive_ignore_common_ids: if item[1] == repeated: repeated_ids.update({item[0]: item[1]}) - for item in full_ignore_list.items(): + for item in list(full_ignore_list.items()): for repeated in receive_ignore_common_ids: if item[1] == repeated: repeated_ids.update({item[0]: item[1]}) @@ -141,16 +120,13 @@ def check_rtps_id_uniqueness(classifier): all_msgs.update(full_receive_list) all_msgs.update(full_ignore_list) all_ids = list() - if sys.version_info[0] < 3: - all_ids = all_msgs.values() - else: - all_ids = list(all_msgs.values()) + all_ids = list(all_msgs.values()) all_ids.sort() if not repeated_ids: print("All good. RTPS ID's are unique") else: - raise AssertionError(", ".join('%s' % msgs for msgs in repeated_ids.keys()) + + raise AssertionError(", ".join('%s' % msgs for msgs in list(repeated_ids.keys())) + " have their ID's repeated. Please choose from the following pool:\n" + ", ".join('%d' % id for id in px_generate_uorb_topic_helper.check_available_ids(all_ids))) @@ -298,7 +274,7 @@ if del_tree: if agent: _continue = str(input("\nFiles in " + agent_out_dir + " will be erased, continue?[Y/n]\n")) - if _continue.strip() in ("N", "n"): + if _continue == "N" or _continue == "n": print("Aborting execution...") exit(-1) else: @@ -364,10 +340,7 @@ def generate_agent(out_dir): if classifier.alias_msgs_to_send: for msg_file in classifier.alias_msgs_to_send: - if sys.version_info[0] < 3: - msg_alias = msg_file[0].keys()[0] - else: - msg_alias = list(msg_file[0].keys())[0] + msg_alias = list(msg_file[0].keys())[0] msg_name = msg_file[1] if gen_idl: if out_dir != agent_out_dir: @@ -397,10 +370,7 @@ def generate_agent(out_dir): if classifier.alias_msgs_to_receive: for msg_file in classifier.alias_msgs_to_receive: - if sys.version_info[0] < 3: - msg_alias = msg_file[0].keys()[0] - else: - msg_alias = list(msg_file[0].keys())[0] + msg_alias = list(msg_file[0].keys())[0] msg_name = msg_file[1] if gen_idl: if out_dir != agent_out_dir: @@ -504,8 +474,8 @@ def generate_client(out_dir): if agent: generate_agent(agent_out_dir) - print("\nAgent created in: " + agent_out_dir) + print(("\nAgent created in: " + agent_out_dir)) if client: generate_client(client_out_dir) - print("\nClient created in: " + client_out_dir) + print(("\nClient created in: " + client_out_dir)) diff --git a/msg/tools/px_generate_uorb_topic_files.py b/msg/tools/px_generate_uorb_topic_files.py index dd208220d5..9b790e8f34 100755 --- a/msg/tools/px_generate_uorb_topic_files.py +++ b/msg/tools/px_generate_uorb_topic_files.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 ############################################################################# # # Copyright (C) 2013-2018 PX4 Pro Development Team. All rights reserved. @@ -37,7 +37,7 @@ px_generate_uorb_topic_files.py Generates c/cpp header/source files for uorb topics from .msg (ROS syntax) message files """ -from __future__ import print_function + import os import shutil import filecmp @@ -208,19 +208,11 @@ def generate_uRTPS_general(filename_send_msgs, filename_alias_send_msgs, filenam receive_msgs = list(os.path.join(msg_dir, msg + ".msg") for msg in filename_receive_msgs) - if sys.version_info[0] < 3: - alias_send_msgs = list([os.path.join( - msg_dir, msg[1] + ".msg"), msg[0].keys()[0]] for msg in filename_alias_send_msgs) - else: - alias_send_msgs = list([os.path.join(msg_dir, msg[1] + ".msg"), - list(msg[0].keys())[0]] for msg in filename_alias_send_msgs) + alias_send_msgs = list([os.path.join( + msg_dir, msg[1] + ".msg"), list(msg[0].keys())[0]] for msg in filename_alias_send_msgs) - if sys.version_info[0] < 3: - alias_receive_msgs = list([os.path.join( - msg_dir, msg[1] + ".msg"), msg[0].keys()[0]] for msg in filename_alias_receive_msgs) - else: - alias_receive_msgs = list([os.path.join( - msg_dir, msg[1] + ".msg"), list(msg[0].keys())[0]] for msg in filename_alias_receive_msgs) + alias_receive_msgs = list([os.path.join( + msg_dir, msg[1] + ".msg"), list(msg[0].keys())[0]] for msg in filename_alias_receive_msgs) em_globals_list = [] if send_msgs: diff --git a/msg/tools/px_generate_uorb_topic_helper.py b/msg/tools/px_generate_uorb_topic_helper.py index c35cd86f4e..495a8cd888 100644 --- a/msg/tools/px_generate_uorb_topic_helper.py +++ b/msg/tools/px_generate_uorb_topic_helper.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 ############################################################################# # # Copyright (C) 2013-2019 PX4 Pro Development Team. All rights reserved. @@ -254,10 +254,10 @@ def print_field(field): else: for i in range(array_length): - print("PX4_INFO_RAW(\"\\t" + field.type + - " " + field.name + "[" + str(i) + "]\");") - print(" print_message(message." + - field.name + "[" + str(i) + "]);") + print(("PX4_INFO_RAW(\"\\t" + field.type + + " " + field.name + "[" + str(i) + "]\");")) + print((" print_message(message." + + field.name + "[" + str(i) + "]);")) return for i in range(array_length): @@ -291,23 +291,23 @@ def print_field(field): field_name = "(" + field_name + " ? \"True\" : \"False\")" else: - print("PX4_INFO_RAW(\"\\n\\t" + field.name + "\");") - print("\tprint_message(message." + field.name + ");") + print(("PX4_INFO_RAW(\"\\n\\t" + field.name + "\");")) + print(("\tprint_message(message." + field.name + ");")) return if field.name == 'timestamp': - print("if (message.timestamp != 0) {\n\t\tPX4_INFO_RAW(\"\\t" + field.name + + print(("if (message.timestamp != 0) {\n\t\tPX4_INFO_RAW(\"\\t" + field.name + ": " + c_type + " (%.6f seconds ago)\\n\", " + field_name + - ", hrt_elapsed_time(&message.timestamp) / 1e6);\n\t} else {\n\t\tPX4_INFO_RAW(\"\\n\");\n\t}") + ", hrt_elapsed_time(&message.timestamp) / 1e6);\n\t} else {\n\t\tPX4_INFO_RAW(\"\\n\");\n\t}")) elif field.name == 'device_id': print("char device_id_buffer[80];") print("device::Device::device_id_print_buffer(device_id_buffer, sizeof(device_id_buffer), message.device_id);") print("PX4_INFO_RAW(\"\\tdevice_id: %d (%s) \\n\", message.device_id, device_id_buffer);") elif is_array and 'char' in field.type: - print("PX4_INFO_RAW(\"\\t" + field.name + ": \\\"%." + str(array_length) + "s\\\" \\n\", message." + field.name + ");") + print(("PX4_INFO_RAW(\"\\t" + field.name + ": \\\"%." + str(array_length) + "s\\\" \\n\", message." + field.name + ");")) else: - print("PX4_INFO_RAW(\"\\t" + field.name + ": " + - c_type + "\\n\", " + field_name + ");") + print(("PX4_INFO_RAW(\"\\t" + field.name + ": " + + c_type + "\\n\", " + field_name + ");")) def print_field_def(field): @@ -347,8 +347,8 @@ def print_field_def(field): if field.name.startswith('_padding'): comment = ' // required for logger' - print('\t%s%s%s %s%s;%s' % (type_prefix, type_px4, type_appendix, field.name, - array_size, comment)) + print(('\t%s%s%s %s%s;%s' % (type_prefix, type_px4, type_appendix, field.name, + array_size, comment))) def check_available_ids(used_msg_ids_list): diff --git a/msg/tools/uorb_rtps_classifier.py b/msg/tools/uorb_rtps_classifier.py index c9f5f51ab6..1a006bafe3 100644 --- a/msg/tools/uorb_rtps_classifier.py +++ b/msg/tools/uorb_rtps_classifier.py @@ -1,5 +1,4 @@ -#!/usr/bin/env python - +#!/usr/bin/env python3 ################################################################################ # # Copyright (c) 2018-2019 PX4 Development Team. All rights reserved. @@ -76,8 +75,8 @@ class Classifier(): send = {} send_alias = [] for dict in self.msg_id_map['rtps']: - if 'send' in dict.keys(): - if 'alias' in dict.keys(): + if 'send' in list(dict.keys()): + if 'alias' in list(dict.keys()): send_alias.append( ({dict['msg']: dict['id']}, dict['alias'])) else: @@ -88,8 +87,8 @@ class Classifier(): receive = {} receive_alias = [] for dict in self.msg_id_map['rtps']: - if 'receive' in dict.keys(): - if 'alias' in dict.keys(): + if 'receive' in list(dict.keys()): + if 'alias' in list(dict.keys()): receive_alias.append( ({dict['msg']: dict['id']}, dict['alias'])) else: @@ -100,8 +99,8 @@ class Classifier(): ignore = {} ignore_alias = [] for dict in self.msg_id_map['rtps']: - if (('send' not in dict.keys()) and ('receive' not in dict.keys())): - if 'alias' in dict.keys(): + if (('send' not in list(dict.keys())) and ('receive' not in list(dict.keys()))): + if 'alias' in list(dict.keys()): ignore_alias.append( ({dict['msg']: dict['id']}, dict['alias'])) else: @@ -110,15 +109,15 @@ class Classifier(): def set_msg_files_send(self): return [os.path.join(self.msg_folder, msg + ".msg") - for msg in self.msgs_to_send.keys()] + for msg in list(self.msgs_to_send.keys())] def set_msg_files_receive(self): return [os.path.join(self.msg_folder, msg + ".msg") - for msg in self.msgs_to_receive.keys()] + for msg in list(self.msgs_to_receive.keys())] def set_msg_files_ignore(self): return [os.path.join(self.msg_folder, msg + ".msg") - for msg in self.msgs_to_ignore.keys()] + for msg in list(self.msgs_to_ignore.keys())] def check_if_listed(self, yaml_file): """ @@ -148,11 +147,11 @@ class Classifier(): Check if alias message has correct base type """ registered_alias_msgs = list( - dict['alias'] for dict in self.msg_id_map['rtps'] if 'alias' in dict.keys()) + dict['alias'] for dict in self.msg_id_map['rtps'] if 'alias' in list(dict.keys())) base_types = [] for dict in self.msg_id_map['rtps']: - if 'alias' not in dict.keys(): + if 'alias' not in list(dict.keys()): base_types.append(dict['msg']) incorrect_base_types = list( @@ -165,7 +164,7 @@ class Classifier(): if len(base_types_suggestion) > 0: raise AssertionError( - ('\n' + '\n'.join('\t- The multi-topic message base type \'{}\' does not exist.{}'.format(k, (' Did you mean \'' + v[0] + '\'?' if v else '')) for k, v in base_types_suggestion.items()))) + ('\n' + '\n'.join('\t- The multi-topic message base type \'{}\' does not exist.{}'.format(k, (' Did you mean \'' + v[0] + '\'?' if v else '')) for k, v in list(base_types_suggestion.items())))) def check_id_space(self): """ @@ -174,18 +173,18 @@ class Classifier(): incorrect_base_ids = {} incorrect_alias_ids = {} for dict in self.msg_id_map['rtps']: - if 'alias' not in dict.keys() and dict['id'] >= self.alias_space_init_id: + if 'alias' not in list(dict.keys()) and dict['id'] >= self.alias_space_init_id: incorrect_base_ids.update({dict['msg']: dict['id']}) - elif 'alias' in dict.keys() and dict['id'] < self.alias_space_init_id: + elif 'alias' in list(dict.keys()) and dict['id'] < self.alias_space_init_id: incorrect_alias_ids.update({dict['msg']: dict['id']}) if len(incorrect_base_ids) > 0: raise AssertionError( - ('\n' + '\n'.join('\t- The message \'{} with ID \'{}\' is in the wrong ID space. Please use any of the available IDs from 0 to 149'.format(k, v) for k, v in incorrect_base_ids.items()))) + ('\n' + '\n'.join('\t- The message \'{} with ID \'{}\' is in the wrong ID space. Please use any of the available IDs from 0 to 149'.format(k, v) for k, v in list(incorrect_base_ids.items())))) if len(incorrect_alias_ids) > 0: raise AssertionError( - ('\n' + '\n'.join('\t- The alias message \'{}\' with ID \'{}\' is in the wrong ID space. Please use any of the available IDs from 149 to 255'.format(k, v) for k, v in incorrect_alias_ids.items()))) + ('\n' + '\n'.join('\t- The alias message \'{}\' with ID \'{}\' is in the wrong ID space. Please use any of the available IDs from 149 to 255'.format(k, v) for k, v in list(incorrect_alias_ids.items())))) @staticmethod def parse_yaml_msg_id_file(yaml_file): @@ -235,52 +234,37 @@ if __name__ == "__main__": if args.send: if args.path: - print ('send files: ' + ', '.join(str(msg_file) - for msg_file in classifier.msgs_files_send) + '\n') + print(('send files: ' + ', '.join(str(msg_file) + for msg_file in classifier.msgs_files_send) + '\n')) else: if args.alias: - if sys.version_info[0] < 3: - print (', '.join(str(msg) - for msg in classifier.msgs_to_send.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0]) - for msg in classifier.alias_msgs_to_send) if len(classifier.alias_msgs_to_send) > 0 else '') + '\n') - else: - print (', '.join(str(msg) - for msg in classifier.msgs_to_send.keys()) + (' alias ' + ', '.join(str(list(msg[0].keys())[0]) - for msg in classifier.alias_msgs_to_send) if len(classifier.alias_msgs_to_send) > 0 else '') + '\n') + print((', '.join(str(msg) + for msg in list(classifier.msgs_to_send.keys())) + (' alias ' + ', '.join(str(list(msg[0].keys())[0]) + for msg in classifier.alias_msgs_to_send) if len(classifier.alias_msgs_to_send) > 0 else '') + '\n')) else: - print (', '.join(str(msg) - for msg in classifier.msgs_to_send.keys())) + print((', '.join(str(msg) + for msg in list(classifier.msgs_to_send.keys())))) if args.receive: if args.path: - print ('receive files: ' + ', '.join(str(msg_file) - for msg_file in classifier.msgs_files_receive) + '\n') + print(('receive files: ' + ', '.join(str(msg_file) + for msg_file in classifier.msgs_files_receive) + '\n')) else: if args.alias: - if sys.version_info[0] < 3: - print (', '.join(str(msg) - for msg in classifier.msgs_to_receive.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0]) - for msg in classifier.alias_msgs_to_receive) if len(classifier.alias_msgs_to_receive) > 0 else '') + '\n') - else: - print (', '.join(str(msg) - for msg in classifier.msgs_to_receive.keys()) + (' alias ' + ', '.join(str(list(msg[0].keys())[0]) - for msg in classifier.alias_msgs_to_receive) if len(classifier.alias_msgs_to_receive) > 0 else '') + '\n') + print((', '.join(str(msg) + for msg in list(classifier.msgs_to_receive.keys())) + (' alias ' + ', '.join(str(list(msg[0].keys())[0]) + for msg in classifier.alias_msgs_to_receive) if len(classifier.alias_msgs_to_receive) > 0 else '') + '\n')) else: - print (', '.join(str(msg) - for msg in classifier.msgs_to_receive.keys())) + print((', '.join(str(msg) + for msg in list(classifier.msgs_to_receive.keys())))) if args.ignore: if args.path: - print ('ignore files: ' + ', '.join(str(msg_file) - for msg_file in classifier.msgs_files_ignore) + '\n') + print(('ignore files: ' + ', '.join(str(msg_file) + for msg_file in classifier.msgs_files_ignore) + '\n')) else: if args.alias: - if sys.version_info[0] < 3: - print (', '.join(str(msg) - for msg in classifier.msgs_to_ignore.keys()) + (' alias ' + ', '.join(str(msg[0].keys()[0]) - for msg in classifier.alias_msgs_to_ignore) if len(classifier.alias_msgs_to_ignore) > 0 else '') + '\n') - else: - print (', '.join(str(msg) - for msg in classifier.msgs_to_ignore.keys()) + (' alias ' + ', '.join(str(list(msg[0].keys())[0]) - for msg in classifier.alias_msgs_to_ignore) if len(classifier.alias_msgs_to_ignore) > 0 else '') + '\n') + print((', '.join(str(msg) + for msg in list(classifier.msgs_to_ignore.keys())) + (' alias ' + ', '.join(str(list(msg[0].keys())[0]) + for msg in classifier.alias_msgs_to_ignore) if len(classifier.alias_msgs_to_ignore) > 0 else '') + '\n')) else: - print (', '.join(str(msg) - for msg in classifier.msgs_to_ignore.keys())) + print((', '.join(str(msg) + for msg in list(classifier.msgs_to_ignore.keys())))) diff --git a/msg/tools/uorb_to_ros_msgs.py b/msg/tools/uorb_to_ros_msgs.py index d2e981065c..2b3f1da683 100644 --- a/msg/tools/uorb_to_ros_msgs.py +++ b/msg/tools/uorb_to_ros_msgs.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ Script to parse uORB message format to ROS msg format Adapted from https://github.com/eProsima/px4_to_ros/blob/master/px4_to_ros2_PoC/px4_msgs/scripts/copy_and_rename.py diff --git a/msg/tools/uorb_to_ros_rtps_ids.py b/msg/tools/uorb_to_ros_rtps_ids.py index cf9749c3f3..44d5a6ef79 100755 --- a/msg/tools/uorb_to_ros_rtps_ids.py +++ b/msg/tools/uorb_to_ros_rtps_ids.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 """ Script to read an yaml file containing the RTPS message IDs and update the naming convention to PascalCase """ @@ -75,7 +75,7 @@ def load_yaml_file(file): try: with open(file, 'r') as f: if verbose: - print("--\t[Step 1] %s yaml file loaded!" % file) + print(("--\t[Step 1] %s yaml file loaded!" % file)) return yaml.safe_load(f) except OSError as e: if e.errno == errno.ENOENT: @@ -98,7 +98,7 @@ def update_dict(list): if verbose: num_of_msgs += 1 if verbose: - print("--\t[Step 2] List: %d msg names updated!" % num_of_msgs) + print(("--\t[Step 2] List: %d msg names updated!" % num_of_msgs)) def update_yaml_file(list, file): @@ -117,9 +117,9 @@ def update_yaml_file(list, file): yaml.dump(list, f, Dumper=IndenterDumper, default_flow_style=False) if verbose: if in_file == out_file: - print("--\t[Step 3] %s updated!" % in_file) + print(("--\t[Step 3] %s updated!" % in_file)) else: - print("--\t[Step 3] %s created!" % out_file) + print(("--\t[Step 3] %s created!" % out_file)) except OSError as e: if e.errno == errno.ENOENT: