def __init__(self, name, base_type, parent=None, wire_name=None):
    # Access to protected _language_model OK here. pylint: disable=protected-access
    super(ContainerDataType, self).__init__(
        name, {}, base_type.api, parent=parent,
        language_model=base_type._language_model,
        wire_name=wire_name)
    self._base_type = base_type
    self.SetTemplateValue('isContainer', True)
    self.SetTemplateValue('baseType', base_type)
    self.SetTemplateValue('builtIn', True)
    # TODO(user): This gets parenting right so language models propagate down.
    # We should invert the computation of code_type so we ask the language
    # model for code type of a primitive.
    if isinstance(base_type, PrimitiveDataType):
      self._base_type.SetParent(self)
Construct an ArrayDataType.
dataset/ETHPy150Open google/apis-client-generator/src/googleapis/codegen/data_types.py/ContainerDataType.__init__