equal
deleted
inserted
replaced
32 ('Nom', 'surname', ()), |
32 ('Nom', 'surname', ()), |
33 ('Identifiant', 'login', ()), |
33 ('Identifiant', 'login', ()), |
34 ] |
34 ] |
35 |
35 |
36 def gen_users(ctl): |
36 def gen_users(ctl): |
37 for row in ctl.get_data('utilisateurs'): |
37 for row in ctl.iter_and_commit('utilisateurs'): |
38 entity = mk_entity(row, USERS) |
38 entity = mk_entity(row, USERS) |
39 entity['upassword'] = u'motdepasse' |
39 entity['upassword'] = u'motdepasse' |
40 ctl.check('login', entity['login'], None) |
40 ctl.check('login', entity['login'], None) |
41 ctl.store.add('CWUser', entity) |
41 ctl.store.add('CWUser', entity) |
42 email = {'address': row['email']} |
42 email = {'address': row['email']} |
123 if skipfirst: |
123 if skipfirst: |
124 it.next() |
124 it.next() |
125 for row in it: |
125 for row in it: |
126 yield [item.decode(encoding) for item in row] |
126 yield [item.decode(encoding) for item in row] |
127 |
127 |
128 def commit_every(nbit, store, it): |
128 def callfunc_every(func, number, iterable): |
129 for i, x in enumerate(it): |
129 """yield items of `iterable` one by one and call function `func` |
130 yield x |
130 every `number` iterations. Always call function `func` at the end. |
131 if nbit is not None and i % nbit: |
131 """ |
132 store.commit() |
132 for idx, item in enumerate(iterable): |
133 if nbit is not None: |
133 yield item |
134 store.commit() |
134 if idx % number: |
|
135 func() |
|
136 func() |
135 |
137 |
136 def lazytable(reader): |
138 def lazytable(reader): |
137 """The first row is taken to be the header of the table and |
139 """The first row is taken to be the header of the table and |
138 used to output a dict for each row of data. |
140 used to output a dict for each row of data. |
139 |
141 |
228 if value: |
230 if value: |
229 return value |
231 return value |
230 return None |
232 return None |
231 |
233 |
232 def required(value): |
234 def required(value): |
233 """raise ValueError is value is empty |
235 """raise ValueError if value is empty |
234 |
236 |
235 This check should be often found in last position in the chain. |
237 This check should be often found in last position in the chain. |
236 """ |
238 """ |
237 if value: |
239 if value: |
238 return value |
240 return value |
569 def tell(self, msg): |
571 def tell(self, msg): |
570 self._tell(msg) |
572 self._tell(msg) |
571 |
573 |
572 def iter_and_commit(self, datakey): |
574 def iter_and_commit(self, datakey): |
573 """iter rows, triggering commit every self.commitevery iterations""" |
575 """iter rows, triggering commit every self.commitevery iterations""" |
574 return commit_every(self.commitevery, self.store, self.get_data(datakey)) |
576 if self.commitevery is None: |
|
577 return self.get_data(datakey) |
|
578 else: |
|
579 return callfunc_every(self.commitevery, self.store.commit, self.get_data(datakey)) |
575 |
580 |
576 |
581 |
577 |
582 |
578 from datetime import datetime |
583 from datetime import datetime |
579 from cubicweb.schema import META_RTYPES, VIRTUAL_RTYPES |
584 from cubicweb.schema import META_RTYPES, VIRTUAL_RTYPES |