@gen.coroutine
  def RemoveViewpoint(self, client, user_id, viewpoint_id):
    # Query the current visible_to and shared_by for the given user and viewpoint.
    vp_vt, vp_sb = yield [gen.Task(Accounting.QueryViewpointVisibleTo, client, viewpoint_id, must_exist=False),
                          gen.Task(Accounting.QueryViewpointSharedBy, client, viewpoint_id, user_id, must_exist=False)]

    # Decrease the associated user consumption by amounts that the user has associated with the viewpoint.
    if vp_vt is not None:
      self.GetUserVisibleTo(user_id).DecrementStatsFrom(vp_vt)
    if vp_sb is not None:
      self.GetUserSharedBy(user_id).DecrementStatsFrom(vp_sb)
Writes ninja edges for 'mac_bundle_resources' .xcassets files.
dataset/ETHPy150Open viewfinderco/viewfinder/backend/db/accounting.py/AccountingAccumulator.RemoveViewpoint--crossover with--dataset/ETHPy150Open adblockplus/gyp/pylib/gyp/generator/ninja.py/NinjaWriter.WriteMacXCassets