code: def _supports_dtype(
      arr: np.ndarray, dtype_regex_list: Optional[List[str]] = None
  ):
      # base case
      if dtype_regex_list is None:
          return
  
      for dtype_regex_str in dtype_regex_list:
          m = re.compile(dtype_regex_str).match(str(arr.dtype))
          if m is not None:  # a match is found
              return
      raise ValueError(
          f"{arr.dtype} doesn't match with any regex in {dtype_regex_list}"
      )
  
imports: from __future__ import annotations
  import re
  from abc import ABC, abstractmethod
  from typing import List, Optional, Tuple
  import numpy
label_desc: Use image node_id 6 for calling the AbstractAggregator obj's underlying member method code with example usage: obj._supports_dtype(arr, dtype_regex_list) without return types