| 3499 | return self.validate_elements(obj, value) |
| 3500 | |
| 3501 | def validate_elements(self, obj: t.Any, value: t.Any) -> T | None: |
| 3502 | validated = [] |
| 3503 | if self._trait is None or isinstance(self._trait, Any): |
| 3504 | return value # type:ignore[no-any-return] |
| 3505 | for v in value: |
| 3506 | try: |
| 3507 | v = self._trait._validate(obj, v) |
| 3508 | except TraitError as error: |
| 3509 | self.error(obj, v, error) |
| 3510 | else: |
| 3511 | validated.append(v) |
| 3512 | assert self.klass is not None |
| 3513 | return self.klass(validated) # type:ignore[call-arg] |
| 3514 | |
| 3515 | def class_init(self, cls: type[t.Any], name: str | None) -> None: |
| 3516 | if isinstance(self._trait, TraitType): |