コード例 #1
0
 def test_boost(self):
     cont_id = ContiguousID()
     self.assertEquals(cont_id['a'], 0)
     self.assertEquals(cont_id['b'], 1)
     self.assertEquals(cont_id[0], 2)
     
     cont_id.boost(10)
     self.assertEquals(cont_id['a'], 10)
     self.assertEquals(cont_id['b'], 11)
     self.assertEquals(cont_id[0], 12)
コード例 #2
0
    def test_all(self):
        cont_id = ContiguousID()
        self.assertEquals(cont_id['a'], 0)
        self.assertEquals(cont_id['b'], 1)
        self.assertEquals(cont_id[0], 2)

        self.assertEquals(cont_id['a'], 0)
        self.assertEquals(cont_id[int], 3)

        new_keys = range(1, 200)
        random.shuffle(new_keys)
        iter_vals = iter(range(4, 204))
        for i in new_keys:
            self.assertEquals(cont_id[i], next(iter_vals))

        for i, d in enumerate(sorted(cont_id.itervalues())):
            self.assertEqual(i, d)

        self.assertEquals(203, len(cont_id))
コード例 #3
0
def create_annotations(annotations_file):
    '''
    Creates annotations from a LibraryThing annotations file.
    
    Arguments
    ---------
    annotations_file : file
        Annotations file to parse
    '''
    user_ids = ContiguousID()
    item_ids = ContiguousID()
    tag_ids = ContiguousID()
    annotation_list = []

    with open(annotations_file) as annotations:

        for line in annotations:
            spl = line.split()

            #trace is: user, item, rating, tag
            user = spl[0]
            item = spl[1]
            tag = ' '.join(spl[3:])  #deals with multiple word tags

            uid = user_ids[user]
            iid = item_ids[item]
            tid = tag_ids[tag]

            annotation = {}
            annotation['user'] = uid
            annotation['item'] = iid
            annotation['tag'] = tid

            annotation_list.append(annotation)

    return annotation_list, user_ids, item_ids, tag_ids
コード例 #4
0
 def __reset(self):
     '''Resets the parser ids to new ones. Useful for reusing
     the same parser object'''
     self.tag_ids = ContiguousID()
     self.item_ids = ContiguousID()
     self.user_ids = ContiguousID()