docs: def copy_data_from_scenario(resource_attrs, source_scenario_id, target_scenario_id, **kwargs):
      """
          For a given list of resource attribute IDS copy the dataset_ids from
          the resource scenarios in the source scenario to those in the 'target' scenario.
      """
  
      #Get all the resource scenarios we wish to update
      target_resourcescenarios = db.DBSession.query(ResourceScenario).filter(
              ResourceScenario.scenario_id==target_scenario_id,
              ResourceScenario.resource_attr_id.in_(resource_attrs)).all()
  
      target_rs_dict = {}
      for target_rs in target_resourcescenarios:
          target_rs_dict[target_rs.resource_attr_id] = target_rs
  
      #get all the resource scenarios we are using to get our datsets source.
      source_resourcescenarios = db.DBSession.query(ResourceScenario).filter(
              ResourceScenario.scenario_id==source_scenario_id,
              ResourceScenario.resource_attr_id.in_(resource_attrs)).all()
  
      #If there is an RS in scenario 'source' but not in 'target', then create
      #a new one in 'target'
      for source_rs in source_resourcescenarios:
          target_rs = target_rs_dict.get(source_rs.resource_attr_id)
          if target_rs is not None:
              target_rs.dataset_id = source_rs.dataset_id
          else:
              target_rs = ResourceScenario()
              target_rs.scenario_id      = target_scenario_id
              target_rs.dataset_id       = source_rs.dataset_id
              target_rs.resource_attr_id = source_rs.resource_attr_id
              db.DBSession.add(target_rs)
  
      db.DBSession.flush()
  
      return target_resourcescenarios