def record_events(uuids, event_names, event_types=None, dt=None, client='default',
                  sequence=None):
    client = conf.get_connection(client)

    if not isinstance(uuids, (list, tuple, set)):
        uuids = [uuids]

    if not isinstance(event_names, (list, tuple, set)):
        event_names = [event_names]

    # `event_types` may be string, event class or events list
    if event_types is None:
        event_types = [DayEvent]
    elif (isinstance(event_types, basestring) or
            not isinstance(event_types, (list, tuple, set))):
        event_types = [event_types]
    # Resolve event aliasses
    event_types = [EVENT_ALIASES.get(t, t) for t in event_types]

    if dt is None:
        dt = datetime.utcnow()

    events = []
    for name, ev_type in itertools.product(event_names, event_types):
        events.append(ev_type.from_date(name, dt, client, sequence=sequence))

    first = events[0]
    keys = [ev.key for ev in events]
    # TODO: make single `msetbit` call
    for uuid in uuids:
        if len(events) == 1:
            # For single event just set bit directly
            first.record(uuid)
        else:
            # Because sequence the same for all events
            sid = first.sequential_id(uuid)
            msetbit(keys=keys, args=([sid, 1] * len(keys)), client=client)

    return events
Delete the turtle's drawings from the screen. Do not move turtle.
dataset/ETHPy150Open caxap/redis-moment/moment/bitevents.py/record_events--crossover with--dataset/ETHPy150Open amrdraz/kodr/app/brython/www/src/Lib/site-packages/turtle.py/RawTurtle.clear