<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -17,7 +17,6 @@ def test(klass):
         try:
             b.open(path)
             assert(b.status == 200)
-            print b.status, path, klass
         except:
             print b.status, path, klass
 
@@ -69,13 +68,20 @@ def take(n, seq):
     for i in xrange(n):
         yield seq.next()
 
-def group(seq, n):
-    while True:
-        x = list(take(n, seq))
-        if x: 
+def group(seq, maxsize):
+    def limit(seq, maxsize, itemlen):
+        size = 0
+        while size &lt; maxsize:
+            x = seq.next()
+            size += itemlen(x)
             yield x
-        else:
-            break        
+    
+    overhead = len('&lt;a href=&quot;&quot;&gt;&lt;/a&gt;\n')
+    itemlen = lambda x: overhead+2*len(x)
+    x = 1
+    while x:
+        x = list(limit(seq, maxsize, itemlen))
+        yield x
 
 t_sitemap = &quot;&quot;&quot;$def with (title, items)
 &lt;h1&gt;Index&lt;/h1&gt;
@@ -96,11 +102,13 @@ $if title != &quot;index&quot;: &lt;a href=&quot;../index.html&quot;&gt;Back to index&lt;/a&gt;
 
 make_sitemap = web.template.Template(t_sitemap)
 make_index = web.template.Template(t_index)
-entries_per_page = 2200
+pagesize = 99*1024 #1K for overheads like &lt;h1&gt; and back links
+entries_per_page = pagesize/30
 
 def write(filename, text):
     f = open(filename, 'w')
     f.write(text)
+    print filename, len(text)/1024
     f.close()
 
 def write_sitemap(i, seq):
@@ -109,18 +117,18 @@ def write_sitemap(i, seq):
     if not os.path.exists(dir):
         os.mkdir(dir)
     write(filename, str(make_sitemap(filename, seq)))
-    print filename
 
 def write_sitemaps(data):
-    for i, x in enumerate(group(data, entries_per_page)):
+    for i, x in enumerate(group(data, pagesize)):
         write_sitemap(i, x)
 
 def create_index(index_dir, _test=False):
+    if not os.path.exists(index_dir):
+        os.mkdir(index_dir)
+    
     data = getindex(webapp.app, _test)
     write_sitemaps(data)
     
-    if not os.path.exists(index_dir):
-        os.mkdir(index_dir)
     dirs = [d for d in os.listdir(index_dir) if os.path.isdir(os.path.join(index_dir, d))]
     write(index_dir + '/index.html', str(make_index(index_dir, [d+'/index.html' for d in dirs])))
 </diff>
      <filename>utils/index.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>0c35ab7a8fea6c45572c27aefe87ceffdf02e111</id>
    </parent>
  </parents>
  <author>
    <name>Devi</name>
    <email>asldevi@gmail.com</email>
  </author>
  <url>http://github.com/aaronsw/watchdog/commit/31f31f870dfdd9891211a64aef286e067f40e71b</url>
  <id>31f31f870dfdd9891211a64aef286e067f40e71b</id>
  <committed-date>2009-04-08T06:41:58-07:00</committed-date>
  <authored-date>2009-04-08T06:41:58-07:00</authored-date>
  <message>pages with strict bound of 100K</message>
  <tree>ec8c04fad8ed0b72f6f81a15942dd29bf11ab2af</tree>
  <committer>
    <name>Devi</name>
    <email>asldevi@gmail.com</email>
  </committer>
</commit>
