def logs_to_json(file_list, src_file, annote_file):
    """
    Args:
    Returns:
    Raises:
    """
    meta_data = create_metadata(src_file, annote_file)
    counts = defaultdict(Counter)

    for filename in file_list:
        sys.stderr.write('Reading: %s%s' % (filename, os.linesep))
        event_list = ptm_file_io.load_actionlog_events(filename)
        for event in event_list:
            if event.event_name == 'mouseover' and event.target == 'token':
                src_id = int(event.sourceid)
                tok_id = int(event.src_tok_id)
                counts[src_id][tok_id] += 1

    # Add in the counts to make the final data structure
    for src_id in sorted(meta_data.keys()):
        for tok_id in sorted(meta_data[src_id].keys()):
            count = counts[src_id][tok_id]
            meta_data[src_id][tok_id] += (count, )

    print json.dumps(meta_data, sort_keys=True, indent=4)
def logs_to_json(file_list, src_file, annote_file):
    """
    Args:
    Returns:
    Raises:
    """
    meta_data = create_metadata(src_file, annote_file)
    counts = defaultdict(Counter)

    for filename in file_list:
        sys.stderr.write('Reading: %s%s' % (filename,os.linesep))
        event_list = ptm_file_io.load_actionlog_events(filename)
        for event in event_list:
            if event.event_name == 'mouseover' and event.target == 'token':
                src_id = int(event.sourceid)
                tok_id = int(event.src_tok_id)
                counts[src_id][tok_id] += 1


    # Add in the counts to make the final data structure
    for src_id in sorted(meta_data.keys()):
        for tok_id in sorted(meta_data[src_id].keys()):
            count = counts[src_id][tok_id]
            meta_data[src_id][tok_id] += (count,)
    
    print json.dumps(meta_data,sort_keys=True,indent=4)
def get_times_ordered_by_srcid(filename):
    """

    Args:
    Returns:
    Raises:
    """
    end_events = ptm_file_io.load_actionlog_events(filename)
    end_events = [(int(x.sourceid),int(x.ui_id),int(x.time)) for x in end_events if x.event_name == 'end']
    return sorted(end_events, key=lambda x:x[0])
Beispiel #4
0
def get_times_ordered_by_srcid(filename):
    """

    Args:
    Returns:
    Raises:
    """
    end_events = ptm_file_io.load_actionlog_events(filename)
    end_events = [(int(x.sourceid), int(x.ui_id), int(x.time))
                  for x in end_events if x.event_name == 'end']
    return sorted(end_events, key=lambda x: x[0])
def process_action_file(action_file):
    """

    Args:
    Returns:
    Raises:
    """
    global MIN_PAUSE_DURATION, MIN_PAUSE_DURATION2
    time_list = []
    pause_counts = Counter()
    pause_counts2 = Counter()
    pause_means = []
    pause_ratio = []
    pause_ratio2 = []
    event_counters = defaultdict(Counter)

    last_src_id = 0
    last_event_time = 0
    durations = 0
    durations2 = 0
    action_rows = ptm_file_io.load_actionlog_events(action_file)
    for row in action_rows:
        src_id = int(row.sourceid)
        event_time = int(row.time)
        event_class = row.event_class
        if row.event_name == 'start':
            last_src_id = src_id
            last_event_time = 0
            durations = 0
            durations2 = 0

        elif row.event_name == 'end':
            assert pause_counts[src_id] > 0
            mean = float(durations) / float(pause_counts[src_id])
            pause_means.append(mean)

            ratio = float(durations) / float(event_time)
            pause_ratio.append(ratio)
            ratio1s = float(durations2) / float(event_time)
            pause_ratio2.append(ratio1s)

            time_list.append(event_time)

        else:
            event_counters[src_id][event_class] += 1
            pause_duration = event_time - last_event_time
            if pause_duration > MIN_PAUSE_DURATION:
                pause_counts[src_id] += 1
                durations += pause_duration
            if pause_duration > MIN_PAUSE_DURATION2:
                pause_counts2[src_id] += 1
                durations2 += pause_duration
            last_event_time = event_time
    return time_list, pause_counts, pause_counts2, pause_means, event_counters, pause_ratio, pause_ratio2
def process_action_file(action_file):
    """

    Args:
    Returns:
    Raises:
    """
    global MIN_PAUSE_DURATION,MIN_PAUSE_DURATION2
    time_list = []
    pause_counts = Counter()
    pause_counts2 = Counter()
    pause_means = []
    pause_ratio = []
    pause_ratio2 = []
    event_counters = defaultdict(Counter)

    last_src_id = 0
    last_event_time = 0
    durations = 0
    durations2 = 0
    action_rows = ptm_file_io.load_actionlog_events(action_file)
    for row in action_rows:
        src_id = int(row.sourceid)
        event_time = int(row.time)
        event_class = row.event_class
        if row.event_name == 'start':
            last_src_id = src_id
            last_event_time = 0
            durations = 0
            durations2 = 0
            
        elif row.event_name == 'end':
            assert pause_counts[src_id] > 0
            mean = float(durations) / float(pause_counts[src_id])
            pause_means.append(mean)
            
            ratio = float(durations) / float(event_time)
            pause_ratio.append(ratio)
            ratio1s = float(durations2) / float(event_time)
            pause_ratio2.append(ratio1s)

            time_list.append(event_time)

        else:
            event_counters[src_id][event_class] += 1
            pause_duration = event_time - last_event_time
            if pause_duration > MIN_PAUSE_DURATION:
                pause_counts[src_id] += 1
                durations += pause_duration
            if pause_duration > MIN_PAUSE_DURATION2:
                pause_counts2[src_id] += 1
                durations2 += pause_duration
            last_event_time = event_time
    return time_list,pause_counts,pause_counts2,pause_means,event_counters,pause_ratio,pause_ratio2