Contact properties submitted in kwargs are filtered.
Contact properties submitted in kwargs are filtered.

The problem is that ndb.Model constructor complains when it is passed values for properties that are not defined in the model. Let us say that there is:

class Foo(ndb.Model):
  a = ndb.StringProperty()
  b = ndb.StringProperty()

An instance of the model may be constructed in the following way:
foo = Foo(a='1', b='2') or foo = Foo(**{'a': '1', 'b': '2'}).
An exception will be raised if the kwargs contains a non exisiting parameter, for example
foo = Foo(a='1', b='2', c='3') # will fail.

It is definitely reasonable. Unfortunately, the constructor for contact will fail, if kwargs has any values for Profile model. Therefore, the dictionary is filtered so that all extra keys are removed.

rhyolight/nupic.son,rhyolight/nupic.son,rhyolight/nupic.son