2018-10-11 22:48:46 +02:00
|
|
|
# This file is distributed under the terms of the GNU General Public license.
|
|
|
|
|
# Copyright (C) 1999 Aloril (See the file COPYING for details).
|
2000-11-27 18:28:20 +00:00
|
|
|
|
|
|
|
|
class Knowledge:
|
2004-11-19 01:58:28 +00:00
|
|
|
def __init__(self):
|
2018-10-11 22:48:46 +02:00
|
|
|
self.knowings = {}
|
|
|
|
|
|
2000-11-27 18:28:20 +00:00
|
|
|
def add(self, what, key, value):
|
2018-05-04 19:17:55 +02:00
|
|
|
if what not in self.knowings:
|
|
|
|
|
self.knowings[what] = {}
|
|
|
|
|
self.knowings[what][key] = value
|
2018-10-11 22:48:46 +02:00
|
|
|
|
2005-07-03 23:08:38 +00:00
|
|
|
def remove(self, what, key):
|
2018-05-04 19:17:55 +02:00
|
|
|
if what in self.knowings:
|
|
|
|
|
del self.knowings[what][key]
|
2018-10-11 22:48:46 +02:00
|
|
|
|
2018-05-04 19:17:55 +02:00
|
|
|
def get(self, what, key=None):
|
|
|
|
|
if not key:
|
|
|
|
|
return self.knowings.get(what, {})
|
|
|
|
|
else:
|
|
|
|
|
if what not in self.knowings:
|
|
|
|
|
return None
|
2018-12-18 23:42:55 +01:00
|
|
|
# Return None if value does not exist.
|
|
|
|
|
return self.knowings[what].get(key)
|
2018-10-11 22:48:46 +02:00
|
|
|
|
2000-11-27 18:28:20 +00:00
|
|
|
def __str__(self):
|
2018-10-11 22:48:46 +02:00
|
|
|
s = "<know: " + str(self.knowings)
|
|
|
|
|
return s + ">\n"
|