def blueprint(self):
blueprint = dict()<EOL>blueprint['<STR_LIT:type>'] = "<STR_LIT>" % (self.__module__, self.__class__.__name__)<EOL>fields = dict()<EOL>for attribute_name, type_instance in self.getmembers():<EOL><INDENT>if not isinstance(type_instance, String) andnot isinstance(type_instance, Float) andnot isinstance(type_instance, Integer) andnot isinstance(type_instance, Date) andnot isinstance(type_instance, DateTime) andnot isinstance(type_instance, Array):<EOL><INDENT>raise TypeError("<STR_LIT>" % attribute_name)<EOL><DEDENT>if isinstance(type_instance, Array):<EOL><INDENT>if not isinstance(type_instance.element_template, String) andnot isinstance(type_instance.element_template, Float) andnot isinstance(type_instance.element_template, Integer):<EOL><INDENT>raise TypeError("<STR_LIT>" % attribute_name)<EOL><DEDENT><DEDENT>fields[attribute_name] = type_instance.blueprint()<EOL><DEDENT>blueprint['<STR_LIT>'] = fields<EOL>return blueprint<EOL>
blueprint support, returns a partial dictionary