Exemplo n.º 1
0
 def testGrouper(self):
     r = grouper(2,[1,2,3,4,5,6,7])
     self.assertFalse(hasattr(r,'__len__'))
     self.assertEqual(list(r),[(1,2),(3,4),(5,6),(7,None)])
     r = grouper(3,'abcdefg','x')
     self.assertFalse(hasattr(r,'__len__'))
     self.assertEqual(list(r),[('a','b','c'),('d','e','f'),('g','x','x')])
Exemplo n.º 2
0
 def testGrouper(self):
     r = grouper(2, [1, 2, 3, 4, 5, 6, 7])
     self.assertFalse(hasattr(r, '__len__'))
     self.assertEqual(list(r), [(1, 2), (3, 4), (5, 6), (7, None)])
     r = grouper(3, 'abcdefg', 'x')
     self.assertFalse(hasattr(r, '__len__'))
     self.assertEqual(list(r), [('a', 'b', 'c'), ('d', 'e', 'f'),
                                ('g', 'x', 'x')])
Exemplo n.º 3
0
 def _index_items_from_model(self, items, model):
     wft = self.words_from_text
     add = self.add_item
     total = 0
     for group in grouper(self.max_in_session, items):
         with self.session().begin() as transaction:
             ids = []
             for item, data in self._item_data(group):
                 ids.append(item.id)
                 words = chain(*[wft(value) for value in data])
                 add(item, words, transaction)
             if ids:
                 total += len(ids)
                 self.remove_item(model, transaction, ids)
         yield transaction.on_result
     yield total
Exemplo n.º 4
0
 def _index_items_from_model(self, items, model):
     wft = self.words_from_text
     add = self.add_item
     total = 0
     for group in grouper(self.max_in_session, items):
         with self.session().begin() as transaction:
             ids = []
             for item, data in self._item_data(group):
                 ids.append(item.id)
                 words = chain(*[wft(value) for value in data])
                 add(item, words, transaction)
             if ids:
                 total += len(ids)
                 self.remove_item(model, transaction, ids)
         yield transaction.on_result
     yield total