def __init__(self, key, origin, universe):
"""Default values for the in-memory element variables."""
self.key = key
+ if not origin.startswith(os.sep):
+ origin = os.getcwd() + os.sep + origin
self.origin = origin
universe.contents[key] = self
+ if key.find(":"):
+ category = key.split(":", 1)
+ if category[0] in universe.categories:
+ exec("universe." + category[0] + "s[category[1]] = self")
+ if not origin in universe.files.keys():
+ DataFile(origin, universe)
if not universe.files[origin].data.has_section(key):
universe.files[origin].data.add_section(key)
def facets(self):
return universe.files[self.origin].data.get(self.key, facet)
except:
return None
+ def getint(self, facet):
+ """Convenience method to coerce return values as type int."""
+ value = self.get(facet)
+ if not value: value = 0
+ elif type(value) is str: value = value.rstrip("L")
+ return int(value)
def set(self, facet, value):
"""Set values."""
if facet in universe.files[self.origin].data.options(self.key):
- universe.files[self.origin].data.set(self.key, facet, value)
+ universe.files[self.origin].data.set(self.key, facet, repr(value))
else: self.facet = value
def rec(self, facet, value):
"""Add initial values to the record."""
class Universe:
"""The universe."""
def __init__(self):
- filename = muffconf.get("files", "data")
- if not filename.startswith(os.sep): filename = os.getcwd() + os.sep + filename
self.contents = {}
self.files = {}
- DataFile(filename, self)
+ self.categories = [ "account", "actor", "command", "internal", "item", "menu", "room" ]
+ for item in self.categories: exec("self." + item + "s = {}")
+ for item in [ "avatars", "commands", "internals", "universe" ]:
+ filename = muffconf.get("files", item)
+ if not filename.startswith(os.sep): filename = os.getcwd() + os.sep + filename
+ DataFile(filename, self)
def save(self):
for key in self.files.keys(): self.files[key].save()
# reload the muffconf module if the files:data setting does not exist
try:
- if muffconf.get("files", "data"): pass
+ if muffconf.has_section("files"): pass
except AttributeError:
reload(muffconf)