def _importOthers(input, step): users = {} recs = {} installs = {} count = -1 while (True): line = input.readline() if (not line): break count = count + 1 print 'count=',count if count >= step: break line = line.encode('utf8') l = line.split('|', 3) imei = l[0] if imei not in users: users[imei] = User(imei) packages = set() for ll in l[1].split(','): package = ll.split('\t')[0] packages.add(package) installs[imei] = packages recApps = [] for ll in l[2].split(','): lll = ll.split() if len(lll) > 0: package = lll[0] score = float(lll[1]) recApps.append((package, score)) recs[imei] = recApps for imei in users: userStore.save(users[imei]) for imei in installs: packages = installs[imei] user = users[imei] for package in packages: aid = IdUtils.genId(package) installStore.save(Install(user.id, aid)) for imei in recs: recApps = recs[imei] for rec in recApps: aid = IdUtils.genId(rec[0]) score = rec[1] uid = users[imei].id recStore.save(Rec(uid, aid, score)) if count == step: return True return False
def genId(self): """ generate id if necessary, as a digest value of self.imei""" if self.id is None: self.id = IdUtils.genId(self.imei) return self.id