class_docstr: Abstract class - shared functionality of input and output MultiObject
class_docstr_tok: ["Abstract","class","-","shared","functionality","of","input","and","output","MultiObject"]
code: def validate(self, objekt, name, value):
      # want to treat range and other sequences (except str) as list
      if not isinstance(value, (str, bytes)) and isinstance(
          value, Sequence
      ):
          value = list(value)
  
      if not isdefined(value) or (
          isinstance(value, list) and len(value) == 0
      ):
          return Undefined
  
      newvalue = value
  
      inner_trait = self.inner_traits()[0]
      if not isinstance(value, list) or (
          isinstance(inner_trait.trait_type, traits.List)
          and not isinstance(inner_trait.trait_type, InputMultiObject)
          and not isinstance(value[0], list)
      ):
          newvalue = [value]
      value = super().validate(objekt, name, newvalue)
  
      if value:
          return value
  
      self.error(objekt, name, value)
  
imports: from collections.abc import Sequence
  from traits import __version__
  import traits.api
  from traits.api import TraitType, Unicode
  from traits.trait_base import _Undefined
  from pathlib import Path
  from ...utils.filemanip import path_resolve
label_desc: Use image node_id 1 for calling the MultiObject obj's underlying member method code with example usage: obj.validate(objekt, name, value) and returns: Undefined, value