@staticmethod
def _prepare_configs(configs, requires_filters, temporal_timeouts):
    """
        Overrides the filters specified in the decorator with the given ones

        :param configs: Field → (Requirement, key, allow_none) dictionary
        :param requires_filters: Content of the 'requires.filter' component
                                 property (field → string)
        :param temporal_timeouts: Content of the 'temporal.timeouts' component
                                  property (field → float)
        :return: The new configuration dictionary
        """
    if not isinstance(requires_filters, dict):
        requires_filters = {}
    if not isinstance(temporal_timeouts, dict):
        temporal_timeouts = {}
    if not requires_filters and not temporal_timeouts:
        return configs
    new_configs = {}
    for field, config in configs.items():
        requirement, timeout = config
        explicit_filter = requires_filters.get(field)
        explicit_timeout = temporal_timeouts.get(field)
        try:
            explicit_timeout = int(explicit_timeout)
            if explicit_timeout <= 0:
                explicit_timeout = timeout
        except (ValueError, TypeError):
            explicit_timeout = timeout
        if not explicit_filter and not explicit_timeout:
            new_configs[field] = config
        else:
            try:
                requirement_copy = requirement.copy()
                if explicit_filter:
                    requirement_copy.set_filter(explicit_filter)
                new_configs[field] = requirement_copy, explicit_timeout
            except (TypeError, ValueError):
                new_configs[field] = config
    return new_configs
