import anydbm
import time
import string
import pickle
class agenda:
    def __init__(self,fich='agenda.db'):
        self.db=anydbm.open(fich,'c')
    
    def volcado(self):
        ret=[]
        for k in self.db.keys():
            ret.append( (k,self.db[k]) )
        return ret
    def encuentra(self, clave):
        clave=string.upper(str(clave))
        try:
            return pickle.loads(self.db[clave])
        except:
            return None
        
    def busca(self, clave):
        ret=[]
        clave=string.upper(str(clave))
        for k in self.db.keys():
            if string.find(k,clave)>-1:
                ret.append( (k,pickle.loads(self.db[k])) )
        return ret
    def nuevo(self,clave,contenido):
        nombre=string.upper(str(clave))
        direccion=pickle.dumps(contenido)
        self.db[nombre]=direccion


if __name__=='__main__':
    
    import pprint
    ag=agenda()
    if not ag.db:
        ag.nuevo('ErnestoBKE', ('Ernesto Molina','emolina@grupoburke.com'))
        ag.nuevo('Ernesto', ('Ernesto Molina','rotoxl@jazzfree.com'))
        ag.nuevo('MarcosBKE', ('Marcos Sánchez','msanchez@grupoburke.com'))
        ag.nuevo('Marcos', ('Marcos Sánchez','rapto@arrakis.es'))
    print ag.encuentra('Ernesto')
    pprint.pprint (ag.busca('BKE'))
    
