@classmethod
  @gen.coroutine
  def Register(cls, client, user_dict, ident_dict, timestamp, rewrite_contacts):
    # Create prospective user if it doesn't already exist, or else return existing user.
    assert 'user_id' in user_dict, user_dict
    assert 'authority' in ident_dict, ident_dict

    user = yield gen.Task(User.Query, client, user_dict['user_id'], None)
    identity = yield gen.Task(Identity.Query, client, ident_dict['key'], None)

    # Update user attributes (only if they have not yet been set).
    for k, v in user_dict.items():
      assert k in User._REGISTER_USER_ATTRIBUTES, user_dict
      if getattr(user, k) is None:
        setattr(user, k, v)

    # Ensure that prospective user is registered.
    user.labels.add(User.REGISTERED)

    if rewrite_contacts:
      yield identity._RewriteContacts(client, timestamp)

    yield gen.Task(user.Update, client)

    # Update identity attributes.
    assert identity.user_id is None or identity.user_id == user.user_id, (identity, user)
    identity.user_id = user.user_id
    identity.UpdateFromKeywords(**ident_dict)
    yield gen.Task(identity.Update, client)

    raise gen.Return(user)
Returns a Python `time` object for this OFTTime field.
dataset/ETHPy150Open viewfinderco/viewfinder/backend/db/user.py/User.Register--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.5/django/contrib/gis/gdal/field.py/OFTTime.value