<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,5 @@
-CLUSTERS = {}
-
 class Cluster:
+    CLUSTERS = {}
     def __init__(self, tags=None):
         if tags is None:
             tags = frozenset()
@@ -8,7 +7,11 @@ class Cluster:
             tags = frozenset(tags)
         self.tags = frozenset(tags)
         self.contextables = set()
-        CLUSTERS[self.tags] = self
+        self.CLUSTERS[self.tags] = self
+
+    @classmethod
+    def get(cls, tags):
+        return cls.CLUSTERS[frozenset(tags)]
 
     def add(self, *args):
         self.contextables.add(*args)
@@ -39,7 +42,7 @@ def create_clusters(contextables, clusters, tags):
     for cluster in clusters:
         for tag in tags:
             if tag not in cluster:
-                tag_cluster = CLUSTERS[frozenset([tag])]
+                tag_cluster = Cluster.get([tag])
                 new_cluster = Cluster(cluster.tags.union(tag_cluster.tags))
                 new_cluster.populate(cluster.contextables.union(tag_cluster.contextables))
                 if new_cluster.contextables:
@@ -47,14 +50,14 @@ def create_clusters(contextables, clusters, tags):
     return list(sorted(new_clusters, key=lambda i: len(i)))
 
 def merge_clusters(contextables, number=5):
-    tags = order_tags(contextables)[:260]
+    tags = order_tags(contextables)
     new_clusters = []
     for tag in tags:
         cluster = Cluster(frozenset([tag]))
         cluster.populate(contextables)
         new_clusters.append(cluster)
     for i in range(number-1):
-        nclusters = create_clusters(contextables, new_clusters, tags)[:260/(i+2)]
+        nclusters = create_clusters(contextables, new_clusters, tags)
         if nclusters:
             new_clusters = nclusters
         else:
@@ -62,22 +65,18 @@ def merge_clusters(contextables, number=5):
     return new_clusters
 
 def order_clusters(clusters):
-    clusters = {}
     for cluster in clusters:
         for tag in contextable.content_tags:
-            tag = tag.strip()
             if tags.has_key(tag):
                 tags[tag] += 1
             else:
                 tags[tag] = 1
     return sort_dict_by_value(tags)
 
-
 def order_tags(contextables):
     tags = {}
     for contextable in contextables:
         for tag in contextable.content_tags:
-            tag = tag.strip()
             if tags.has_key(tag):
                 tags[tag] += 1
             else:</diff>
      <filename>clusters.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5e54ab283c4d6f2b447d382459a9be0b0a1b66d6</id>
    </parent>
  </parents>
  <author>
    <name>Bruno Gola</name>
    <email>bgola@mybrainhurts.(none)</email>
  </author>
  <url>http://github.com/Fabs/eventomeeter/commit/d2f496e00777aacbcbc33d9c526639f4188014a6</url>
  <id>d2f496e00777aacbcbc33d9c526639f4188014a6</id>
  <committed-date>2008-11-13T09:05:32-08:00</committed-date>
  <authored-date>2008-11-13T09:05:32-08:00</authored-date>
  <message>refactoring</message>
  <tree>918f75289066b7728258f13e34e2a41263b787e7</tree>
  <committer>
    <name>Bruno Gola</name>
    <email>bgola@mybrainhurts.(none)</email>
  </committer>
</commit>
