class_docstr: Accept non-string ordered sequences of values, e.g. list, tuple, array.
  
      
class_docstr_tok: ["Accept","non-string","ordered","sequences","of","values",",","e.g",".","list",",","tuple",",","array","."]
code: def validate(self, value: Any, detail: bool = True) -> None:
      super().validate(value, True)
  
      if self._is_seq(value) and all(
          self.item_type.is_valid(item) for item in value
      ):
          return
  
      if self._is_seq(value):
          invalid = []
          for item in value:
              if not self.item_type.is_valid(item):
                  invalid.append(item)
          msg = (
              ""
              if not detail
              else f"expected an element of {self}, got seq with invalid items {invalid!r}"
          )
          raise ValueError(msg)
  
      msg = (
          ""
          if not detail
          else f"expected an element of {self}, got {value!r}"
      )
      raise ValueError(msg)
  
imports: from __future__ import annotations
  import logging
  from collections.abc import Container, Iterable, Mapping, Sequence, Sized
  from typing import TYPE_CHECKING, Any, TypeVar
  from ._sphinx import property_link, register_type_link, type_link
  from .bases import ContainerProperty, Init, Property, SingleParameterizedProperty, TypeOrInst
  from .descriptors import ColumnDataPropertyDescriptor
  from .enum import Enum
  from .numeric import Int
  from .singletons import Intrinsic, Undefined
  from .wrappers import PropertyValueColumnData, PropertyValueDict, PropertyValueList, PropertyValueSet
label_desc: Use image node_id 3 for calling the Seq obj's underlying member method code with example usage: obj.validate(value, detail) without return types