code: def _deserialize(self, value, environment=None):
          
  
          if not isinstance(value, CollectionABC):
              raise exc.Invalid(self)
  
          items_class = self.items.__class__
          invalids = []
  
          # traverse items and match against validated struct
          collection = self.collection_type()
  
          for i, subvalue in enumerate(value):
              item = items_class(name=i)
              try:
                  self.collection_pusher(collection, item.deserialize(subvalue, environment=environment))
  
              except exc.Invalid as ex:
                  invalids.append(ex)
  
          if invalids:
              # on invalids this item is also ``Invalid``
              raise exc.InvalidChildren(self, invalids)
  
          return collection
docs: A collection traverses over something to deserialize its value.