diff options
Diffstat (limited to 'gr-utils/python/blocktool/core/iosignature.py')
-rw-r--r-- | gr-utils/python/blocktool/core/iosignature.py | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/gr-utils/python/blocktool/core/iosignature.py b/gr-utils/python/blocktool/core/iosignature.py deleted file mode 100644 index bf3f04d781..0000000000 --- a/gr-utils/python/blocktool/core/iosignature.py +++ /dev/null @@ -1,182 +0,0 @@ -# -# Copyright 2019 Free Software Foundation, Inc. -# -# This file is part of GNU Radio -# -# SPDX-License-Identifier: GPL-3.0-or-later -# -# -""" Module to get io_signature of the header block """ - -from __future__ import print_function -from __future__ import absolute_import -from __future__ import unicode_literals - -import re -import itertools -import logging -import string - -from ..core import Constants - -LOGGER = logging.getLogger(__name__) - - -def io_signature(impl_file): - """ - function to generate the io_signature of the block - : returns the io parmaters - """ - parsed_io = { - "input": { - "signature": None - }, - "output": { - "signature": None - } - } - with open(impl_file, 'r') as impl: - io_lines = [] - for line in impl: - if Constants.IO_SIGNATURE in line: - io_lines.append(line) - if len(io_lines) > 2: - io_lines = io_lines[0:2] - _io_sig = [] - for line in io_lines: - if Constants.IO_SIGNATURE in line: - line = line.lstrip().rstrip().split(Constants.IO_SIGNATURE) - _io_sig.append(line) - _io_sig = list(itertools.chain.from_iterable(_io_sig)) - for index, _element in enumerate(_io_sig): - _io_sig[index] = _element.lstrip().rstrip() - if all(i in string.punctuation for i in _element): - _io_sig.remove(_element) - _io_sig = list(filter(None, _io_sig)) - io_func = [] - for _io in _io_sig: - if Constants.MAKE in _io: - io_func.append(_io.lstrip().rstrip(Constants.STRIP_SYMBOLS)) - for signature in Constants.SIGNATURE_LIST: - if signature in io_func[0] and parsed_io['input']['signature'] is None: - parsed_io['input']['signature'] = signature - io_func[0] = io_func[0].lstrip(signature+' (') - if signature in io_func[1] and parsed_io['output']['signature'] is None: - parsed_io['output']['signature'] = signature - io_func[1] = io_func[1].lstrip(signature+' (') - io_elements = [] - for _io in io_func: - _io = _io.split(',') - io_elements.append(_io) - io_elements = list(itertools.chain.from_iterable(io_elements)) - for index, _io in enumerate(io_elements): - _io = _io.lstrip(' (').rstrip(' )') - if Constants.OPEN_BRACKET in _io: - _io = _io + Constants.CLOSE_BRACKET - io_elements[index] = _io - - # Because of any possible combination of I/O signature and different number - # of arguments, manual if else loop is required - if parsed_io['input']['signature'] is Constants.MAKE: - parsed_io['input']['min_streams'] = io_elements[0] - parsed_io['input']['max_streams'] = io_elements[1] - parsed_io['input']['sizeof_stream_item'] = io_elements[2] - del io_elements[0:3] - elif parsed_io['input']['signature'] is Constants.MAKE2: - parsed_io['input']['min_streams'] = io_elements[0] - parsed_io['input']['max_streams'] = io_elements[1] - parsed_io['input']['sizeof_stream_item1'] = io_elements[2] - parsed_io['input']['sizeof_stream_item2'] = io_elements[3] - del io_elements[0:4] - elif parsed_io['input']['signature'] is Constants.MAKE3: - parsed_io['input']['min_streams'] = io_elements[0] - parsed_io['input']['max_streams'] = io_elements[1] - parsed_io['input']['sizeof_stream_item1'] = io_elements[2] - parsed_io['input']['sizeof_stream_item2'] = io_elements[3] - parsed_io['input']['sizeof_stream_item3'] = io_elements[4] - del io_elements[0:5] - elif parsed_io['input']['signature'] is Constants.MAKEV: - parsed_io['input']['min_streams'] = io_elements[0] - parsed_io['input']['max_streams'] = io_elements[1] - parsed_io['input']['sizeof_stream_items'] = io_elements[2] - del io_elements[0:3] - - if parsed_io['output']['signature'] is Constants.MAKE: - parsed_io['output']['min_streams'] = io_elements[0] - parsed_io['output']['max_streams'] = io_elements[1] - parsed_io['output']['sizeof_stream_item'] = io_elements[2] - del io_elements[0:3] - elif parsed_io['output']['signature'] is Constants.MAKE2: - parsed_io['output']['min_streams'] = io_elements[0] - parsed_io['output']['max_streams'] = io_elements[1] - parsed_io['output']['sizeof_stream_item1'] = io_elements[2] - parsed_io['output']['sizeof_stream_item2'] = io_elements[3] - del io_elements[0:4] - elif parsed_io['output']['signature'] is Constants.MAKE3: - parsed_io['output']['min_streams'] = io_elements[0] - parsed_io['output']['max_streams'] = io_elements[1] - parsed_io['output']['sizeof_stream_item1'] = io_elements[2] - parsed_io['output']['sizeof_stream_item2'] = io_elements[3] - parsed_io['output']['sizeof_stream_item3'] = io_elements[4] - del io_elements[0:5] - elif parsed_io['output']['signature'] is Constants.MAKEV: - parsed_io['output']['min_streams'] = io_elements[0] - parsed_io['output']['max_streams'] = io_elements[1] - parsed_io['output']['sizeof_stream_items'] = io_elements[2] - del io_elements[0:3] - return parsed_io - - -def message_port(impl_file): - """ - parses message ports from implementation file - """ - parsed_message_port = { - "input": [], - "output": [] - } - with open(impl_file, 'r') as impl: - _input = [] - _output = [] - for line in impl: - if Constants.MESSAGE_INPUT in line: - _input.append(line) - if Constants.MESSAGE_OUTPUT in line: - _output.append(line) - - input_port = [] - output_port = [] - if _input: - for port in _input: - port = port.lstrip().rstrip().strip(Constants.MESSAGE_INPUT) - pattern = port.find('\"') - if pattern != -1: - if re.findall(r'"([^"]*)"', port)[0]: - input_port.append(re.findall(r'"([^"]*)"', port)[0]) - else: - input_port.append(port[port.find('(')+1:port.rfind(')')]) - _temp_port = ''.join(map(str, input_port)) - input_port.clear() - input_port.append(_temp_port) - - if _output: - for port in _output: - port = port.lstrip().rstrip().strip(Constants.MESSAGE_OUTPUT) - pattern = port.find('\"') - if pattern != -1: - if re.findall(r'"([^"]*)"', port)[0]: - output_port.append(re.findall(r'"([^"]*)"', port)[0]) - else: - output_port.append(port[port.find('(')+1:port.rfind(')')]) - _temp_port = ''.join(map(str, output_port)) - output_port.clear() - output_port.append(_temp_port) - - if input_port: - for port in input_port: - parsed_message_port['input'].append(port) - - if output_port: - for port in output_port: - parsed_message_port['output'].append(port) - return parsed_message_port |