@@ -84,6 +84,10 @@ def add_arguments(self, parser, cli_name): # noqa: D102
8484 '--exclude-regex' , default = '' ,
8585 help = 'Exclude topics and services containing provided regular expression. '
8686 'Works on top of --all, --all-topics, or --regex.' )
87+ parser .add_argument (
88+ '--exclude-topic-types' , type = str , default = [], metavar = 'ExcludeTypes' , nargs = '+' ,
89+ help = 'List of topic types not being recorded. '
90+ 'Works on top of --all, --all-topics, or --regex.' )
8791 parser .add_argument (
8892 '--exclude-topics' , type = str , metavar = 'Topic' , nargs = '+' ,
8993 help = 'List of topics not being recorded. '
@@ -230,6 +234,10 @@ def main(self, *, args): # noqa: D102
230234 return print_error ('--exclude-topics argument requires either --all, --all-topics '
231235 'or --regex' )
232236
237+ if args .exclude_topic_types and not (args .regex or args .all or args .all_topics ):
238+ return print_error ('--exclude-topic-types argument requires either --all, '
239+ '--all-topics or --regex' )
240+
233241 if args .exclude_services and not (args .regex or args .all or args .all_services ):
234242 return print_error ('--exclude-services argument requires either --all, --all-services '
235243 'or --regex' )
@@ -288,6 +296,7 @@ def main(self, *, args): # noqa: D102
288296 record_options .is_discovery_disabled = args .no_discovery
289297 record_options .topics = args .topics
290298 record_options .topic_types = args .topic_types
299+ record_options .exclude_topic_types = args .exclude_topic_types
291300 record_options .rmw_serialization_format = args .serialization_format
292301 record_options .topic_polling_interval = datetime .timedelta (
293302 milliseconds = args .polling_interval )
0 commit comments