config.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import ConfigParser
  2. class Configuration(object):
  3. def __init__(self, config_file):
  4. """ Configuration object.
  5. This object holds all runtime configuration read from the file.
  6. :param config_file: Configuration file path.
  7. :type config_file: string
  8. """
  9. config = ConfigParser.ConfigParser()
  10. config.read(config_file)
  11. self.glob = {}
  12. self.subs = {}
  13. for section in config.sections():
  14. for item in config.items(section):
  15. name, value = item
  16. if section == "global":
  17. self.glob[name] = value
  18. elif section.startswith("subreddit"):
  19. _, subreddit = section.split(":")
  20. if not self.subs.get(subreddit, False):
  21. self.subs[subreddit] = {}
  22. self.subs[subreddit]["name"] = subreddit
  23. self.subs[subreddit][name] = value
  24. def __len__(self):
  25. return len(self.subs)
  26. def subreddits(self):
  27. for subreddit in self.subs.itervalues():
  28. yield subreddit
  29. def subreddit(self, name):
  30. return self.subs[name]