Update TODO based on work for 0.4.1
[python-rwhoisd.git] / rwhoisd / MemDB.py
index 5d2b6e7..47cba41 100644 (file)
@@ -1,3 +1,22 @@
+# This file is part of python-rwhoisd
+#
+# Copyright (C) 2003, David E. Blacka
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA
+
 import bisect, types
 import MemIndex, Cidr
 from Rwhois import rwhoisobject
 import bisect, types
 import MemIndex, Cidr
 from Rwhois import rwhoisobject
@@ -15,7 +34,7 @@ class MemDB:
         # string IDs, values are rwhoisobject instances.
         self.main_index = {}
 
         # string IDs, values are rwhoisobject instances.
         self.main_index = {}
 
-        # dictonary holding all of the seen attributes.  keys are
+        # dictionary holding all of the seen attributes.  keys are
         # lowercase attribute names, value is a character indicating
         # the index type (if indexed), or None if not indexed.  Index
         # type characters a 'N' for normal string index, 'C' for CIDR
         # lowercase attribute names, value is a character indicating
         # the index type (if indexed), or None if not indexed.  Index
         # type characters a 'N' for normal string index, 'C' for CIDR
@@ -26,7 +45,7 @@ class MemDB:
         # This exists so unconstrained searches can just iterate over
         # them.
         self.normal_indexes = []
         # This exists so unconstrained searches can just iterate over
         # them.
         self.normal_indexes = []
-        self.cidr_indexes = []
+        self.cidr_indexes   = []
 
         # dictonary holding all of the seen class names.  keys are
         # lowercase classnames, value is always None.
 
         # dictonary holding all of the seen class names.  keys are
         # lowercase classnames, value is always None.
@@ -136,7 +155,7 @@ class MemDB:
     def index_data(self):
         """Prepare the indexes for searching.  Currently, this isn't
         strictly necessary (the indexes will prepare themselves when
     def index_data(self):
         """Prepare the indexes for searching.  Currently, this isn't
         strictly necessary (the indexes will prepare themselves when
-        necessary), but it should elminate a penalty on initial
+        necessary), but it should eliminate a penalty on initial
         searches"""
 
         for i in self.indexes.values():
         searches"""
 
         for i in self.indexes.values():
@@ -157,6 +176,9 @@ class MemDB:
     def is_autharea(self, aa):
         return self.authareas.has_key(aa.lower())
 
     def is_autharea(self, aa):
         return self.authareas.has_key(aa.lower())
 
+    def get_authareas(self):
+        return self.authareas.keys()
+    
     def fetch_objects(self, id_list):
         return [ self.main_index[x] for x in id_list
                  if self.main_index.has_key(x) ]
     def fetch_objects(self, id_list):
         return [ self.main_index[x] for x in id_list
                  if self.main_index.has_key(x) ]
@@ -236,6 +258,9 @@ class IndexResult:
         self.data = list
         self._dict = dict(zip(self.data, self.data))
 
         self.data = list
         self._dict = dict(zip(self.data, self.data))
 
+    def __len__(self):
+        return len(self.data)
+    
     def extend(self, list):
         if isinstance(list, type(self)):
             list = list.list()
     def extend(self, list):
         if isinstance(list, type(self)):
             list = list.list()