def _create_instance_attributes(self, arguments):
for attribute_name, type_instance in self.getmembers():<EOL><INDENT>if isinstance(type_instance, DataType):<EOL><INDENT>self._templates[attribute_name] = type_instance<EOL>value = None<EOL>if attribute_name in arguments:<EOL><INDENT>value = arguments[attribute_name]<EOL><DEDENT>try:<EOL><INDENT>self._attributes[attribute_name] = type_instance.validate(value)<EOL><DEDENT>except exception.RequiredAttributeError:<EOL><INDENT>self._attributes[attribute_name] = None<EOL><DEDENT><DEDENT><DEDENT>
Copies class level attribute templates and makes instance placeholders

This step is required for direct uses of Model classes. This creates a
copy of attribute_names ignores methods and private variables.
DataCollection types are deep copied to ignore memory reference conflicts.

DataType instances are initialized to None or default value.