async def container_load(self, container_type, params=None, container=None, obj=None):
if isinstance(obj, IModel):<EOL><INDENT>obj = obj.val<EOL><DEDENT>if obj is None:<EOL><INDENT>return NoSetSentinel()<EOL><DEDENT>c_len = len(obj)<EOL>elem_type = params[<NUM_LIT:0>] if params else None<EOL>if elem_type is None:<EOL><INDENT>elem_type = container_type.ELEM_TYPE<EOL><DEDENT>res = container if container else []<EOL>for i in range(c_len):<EOL><INDENT>try:<EOL><INDENT>self.tracker.push_index(i)<EOL>fvalue = await self._load_field(elem_type,<EOL>params[<NUM_LIT:1>:] if params else None,<EOL>x.eref(res, i) if container else None, obj=obj[i])<EOL>self.tracker.pop()<EOL><DEDENT>except Exception as e:<EOL><INDENT>raise helpers.ArchiveException(e, tracker=self.tracker) from e<EOL><DEDENT>if not container and not isinstance(fvalue, NoSetSentinel):<EOL><INDENT>res.append(fvalue)<EOL><DEDENT><DEDENT>return res<EOL>
Loads container of elements from the reader. Supports the container ref.
Returns loaded container.

:param container_type:
:param params:
:param container:
:param obj:
:return: