'Sets IARC rating descriptors on this app.
data -- list of database flags (\'has_usk_lang\')
rating_bodies -- list of rating body ids to consider. If not None, will
only set descriptors belonging to these particular bodies.'

@use_master
def set_descriptors(self, data, rating_bodies=None):

    create_kwargs = {}
    if (rating_bodies is None):
        available_flags = set((REVERSE_DESCS.keys() + REVERSE_DESCS_V2.keys()))
    else:
        available_flags = set(itertools.chain.from_iterable(([unicode(v) for (k, v) in mapping.items() if v] for (body, mapping) in DESCS_V2.items() if (body in rating_bodies))))
    for db_flag in available_flags:
        create_kwargs[db_flag] = (db_flag in data)
    (instance, created) = RatingDescriptors.objects.get_or_create(addon=self, defaults=create_kwargs)
    if (not created):
        instance.update(modified=datetime.datetime.now(), **create_kwargs)
