Commit c93445bc60a545feff2493cbbe5ba82d821d85a5

Authored by Tássia Camões Araújo
1 parent 8ad9f066
Exists in master and in 1 other branch add_vagrant

Created pkg_profile to save selected packages, preserving original item_score

dict for future enquiries.
Showing 1 changed file with 7 additions and 6 deletions   Show diff stats
@@ -35,6 +35,7 @@ class User: @@ -35,6 +35,7 @@ class User:
35 """ """ 35 """ """
36 self.id = user_id 36 self.id = user_id
37 self.item_score = item_score 37 self.item_score = item_score
  38 + self.pkg_profile = self.item_score.keys()
38 self.demographic_profile = demographic_profile 39 self.demographic_profile = demographic_profile
39 40
40 def items(self): 41 def items(self):
@@ -42,18 +43,18 @@ class User: @@ -42,18 +43,18 @@ class User:
42 43
43 def maximal_pkg_profile(self): 44 def maximal_pkg_profile(self):
44 cache = apt.Cache() 45 cache = apt.Cache()
45 - old_profile_size = len(self.item_score)  
46 - for p in self.item_score.keys(): 46 + old_profile_size = len(self.pkg_profile)
  47 + for p in self.pkg_profile[:]: #iterate list copy
47 pkg = cache[p] 48 pkg = cache[p]
48 if pkg.is_auto_installed: 49 if pkg.is_auto_installed:
49 - del self.item_score[p]  
50 - profile_size = len(self.item_score) 50 + self.pkg_profile.remove(p)
  51 + profile_size = len(self.pkg_profile)
51 logging.info("Reduced packages profile size from %d to %d." % 52 logging.info("Reduced packages profile size from %d to %d." %
52 (old_profile_size, profile_size)) 53 (old_profile_size, profile_size))
53 54
54 def axi_tag_profile(self,apt_xapian_index,profile_size): 55 def axi_tag_profile(self,apt_xapian_index,profile_size):
55 terms = [] 56 terms = []
56 - for item in self.items(): 57 + for item in self.pkg_profile:
57 terms.append("XP"+item) 58 terms.append("XP"+item)
58 query = xapian.Query(xapian.Query.OP_OR, terms) 59 query = xapian.Query(xapian.Query.OP_OR, terms)
59 enquire = xapian.Enquire(apt_xapian_index) 60 enquire = xapian.Enquire(apt_xapian_index)
@@ -69,7 +70,7 @@ class User: @@ -69,7 +70,7 @@ class User:
69 return profile 70 return profile
70 71
71 def txi_tag_profile(self,tags_xapian_index,profile_size): 72 def txi_tag_profile(self,tags_xapian_index,profile_size):
72 - return tags_xapian_index.relevant_tags_from_db(self.items(), 73 + return tags_xapian_index.relevant_tags_from_db(self.pkg_profile,
73 profile_size) 74 profile_size)
74 75
75 class LocalSystem(User): 76 class LocalSystem(User):