code: def _validate_list_str_data(data, metric_name, col_specifier):
      """Validates that the data is a list of lists of strings and is non-empty"""
      if data is None or len(data) == 0:
          return False
  
      for index, value in data.items():
          if not isinstance(value, list) or not all(
              isinstance(val, str) for val in value
          ):
              _logger.warning(
                  f"Cannot calculate metric '{metric_name}' for non-list of string inputs. "
                  f"Non-list of strings found for {col_specifier} on row {index}. Skipping metric "
                  f"logging."
              )
              return False
  
      return True
  
imports: import functools
  import logging
  import os
  import numpy
  from mlflow.metrics.base import MetricValue, standard_aggregations
label_desc: Use image node_id 3 for calling a global function with example usage: _validate_list_str_data(data, metric_name, col_specifier) and returns: True, False, False