Collect information about accepted arguments in following format:
            (
                (<argument name>, <accepted types and values>),
                (<argument name>, <accepted types and values>),
                ...
            )

        Args:
            args_info (inspect.FullArgSpec): Information about function
                arguments.

def __scan_func(self, args_info):
        """Collect information about accepted arguments in following format:
            (
                (<argument name>, <accepted types and values>),
                (<argument name>, <accepted types and values>),
                ...
            )

        Args:
            args_info (inspect.FullArgSpec): Information about function
                arguments.
        """
        # Process args.
        for i, accepted_arg_vals in enumerate(self.accepted_arg_values):
            # Wrap each accepted value in the list if yet not wrapped.
            accepted_arg_vals = self.__wrap_accepted_val(accepted_arg_vals)
            # Add default value (if exists) in list of accepted values.
            if args_info.defaults:
                def_range = len(args_info.defaults) - len(args_info.args[i:])
                if def_range >= 0:
                    self.optional_args.append(i)
                    accepted_value = args_info.defaults[def_range]
                    accepted_arg_vals.append(accepted_value)
            # Try to detect current argument name.
            if len(args_info.args) > i:
                arg_name = args_info.args[i]
            else:
                arg_name = None
                self.optional_args.append(i)
            # Save info about current argument and his accepted values.
            self.accepted_args.append((arg_name, accepted_arg_vals))
        # Process kwargs.
        for arg_name, accepted_arg_vals in self.accepted_kwargs_values.items():
            # Wrap each accepted value in the list if yet not wrapped.
            accepted_arg_vals = self.__wrap_accepted_val(accepted_arg_vals)
            # Mark current argument as optional.
            i = len(self.accepted_args)
            self.optional_args.append(i)
            # Save info about current argument and his accepted values.
            self.accepted_args.append((arg_name, accepted_arg_vals))