                  elif hasattr(attribute, '__call__'):
                      # Ignore methods and other callables.
                      pass
                  elif isinstance(attribute, (str, int, bool, float, type(None))):
                      # Primative types can be passed through unmodified.
                      output[attribute_name] = attribute
                  elif isinstance(attribute, list):
                      # Recursivly deal with items in lists.
                      output[attribute_name] = [
                          self.to_representation(item) for item in attribute
 
</s> remove     # Allow dependancy injection of other settings to make testing easier.
 </s> add     # Allow dependency injection of other settings to make testing easier. </s> remove * There can be complex dependancies involved in order of saving multiple related model instances.
 </s> add * There can be complex dependencies involved in order of saving multiple related model instances. </s> remove Having seperate attributes is reasonable for web applications that only ever parse URL encoded or MultiPart requests, but makes less sense for the general-purpose request parsing that REST framework supports.
 </s> add Having separate attributes is reasonable for web applications that only ever parse URL encoded or MultiPart requests, but makes less sense for the general-purpose request parsing that REST framework supports. </s> remove Instead of passing the files argument seperately:
 </s> add Instead of passing the files argument separately: </s> remove We now have a better seperation, with seperate `required` and `allow_none` arguments.
 </s> add We now have a better separation, with separate `required` and `allow_none` arguments.
                    # primitive types can be passed through unmodified.
                  elif hasattr(attribute, '__call__'):
                      # Ignore methods and other callables.
                      pass
                  elif isinstance(attribute, (str, int, bool, float, type(None))):
                    # primitive types can be passed through unmodified.
                      output[attribute_name] = attribute
                  elif isinstance(attribute, list):
                      # Recursivly deal with items in lists.
                      output[attribute_name] = [
                          self.to_representation(item) for item in attribute
keep keep keep keep replace keep keep keep keep keep
 Minor: fix spelling and grammar, mostly in 3.0 announcement 
docs/topics/3.0-announcement.md