perfidia / andip

Dictionary for natural language generator. It contains data about declension, conjugation, etc. (mainly for Polish and English language).
MIT License
4 stars 1 forks source link

DatabaseProvider: get_word tries to work after closing database #20

Closed perfidia closed 11 years ago

perfidia commented 11 years ago
ad1 = PlWikiProvider()
ad2 = DatabaseProvider("../data/polish")#, backoff = ad1)

print ad1.get_word(("czasownik", "robić", {'aspekt': 'niedokonane', 'forma': 'czas terazniejszy', 'liczba': 'mnoga', 'osoba': 'trzecia'}))

ad2.save_model(ad1.get_model())
ad2.close()

print ad2.get_word(("czasownik", "robić", {'aspekt': 'niedokonane', 'forma': 'czas terazniejszy', 'liczba': 'mnoga', 'osoba': 'trzecia'}))

shows:

robią
No handlers could be found for logger "ZODB.Connection"
Traceback (most recent call last):
  File "git/andip/src/main.py", line 15, in <module>
    print ad2.get_word(("czasownik", "robić", {'aspekt': 'niedokonane', 'forma': 'czas terazniejszy', 'liczba': 'mnoga', 'osoba': 'trzecia'}))
  File "/git/andip/src/andip/default.py", line 34, in get_word
    raise LookupError('word not found')
LookupError: word not found

Information about closed db should be presented.

ghost commented 11 years ago

Done

from andip import *

ad1 = PlWikiProvider()
ad2 = DatabaseProvider("../data/polish")#, backoff = ad1)

print ad1.get_word(("czasownik", "robić", {'aspekt': 'niedokonane', 'forma': 'czas teraźniejszy', 'liczba': 'mnoga', 'osoba': 'trzecia'}))

ad2.save_model(ad1.get_model())
ad2.close()

print ad2.get_word(("czasownik", "robić", {'aspekt': 'niedokonane', 'forma': 'czas teraźniejszy', 'liczba': 'mnoga', 'osoba': 'trzecia'}))