code: def _resolve_dtype(data_type):
      
      if isinstance(data_type, _FIXED_ATOMIC):
          out = _get_atomic_dtype(data_type)
      elif isinstance(data_type, _FLEXIBLE_ATOMIC):
          out = (_get_atomic_dtype(data_type), data_type.length)
      elif isinstance(data_type, Array):
          shape = data_type.shape
          if isinstance(shape, _SEQUENCE_TYPES) and len(shape) == 1:
              # Workaround the exception `ValueError: invalid itemsize in
              # generic type tuple` when an `Array` of shape 0 or (0,) is nested
              # within another `Array`.
              shape = shape[0]
  
          out = (_resolve_dtype(data_type.element_type), shape)
      elif isinstance(data_type, Structure):
          out = [(field.name, _resolve_dtype(field.type))
                 for field in data_type.fields]
  
      return out
docs: Retrieve the corresponding NumPy's `dtype` for a given data type.