X-Git-Url: https://blacka.com/cgi-bin/gitweb.cgi?p=python-rwhoisd.git;a=blobdiff_plain;f=rwhoisd%2FMemDB.py;h=47cba417a63c76b4de913582442e51ae60df6545;hp=5d2b6e7499c1a22f50c570d16f3cfe1b2e91bbf3;hb=HEAD;hpb=a6b5f5371ee8a2510703e0f6f491df9f8065e622 diff --git a/rwhoisd/MemDB.py b/rwhoisd/MemDB.py index 5d2b6e7..47cba41 100644 --- a/rwhoisd/MemDB.py +++ b/rwhoisd/MemDB.py @@ -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 @@ -15,7 +34,7 @@ class MemDB: # 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 @@ -26,7 +45,7 @@ class MemDB: # 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. @@ -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 - 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(): @@ -157,6 +176,9 @@ class MemDB: 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) ] @@ -236,6 +258,9 @@ class IndexResult: 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()