def load(self): AchievementManager.load(self) from pkg_resources import iter_entry_points for entry_point in iter_entry_points(self.entry_point): achievement = entry_point.load() if callable(achievement): achievement = achievement() self.add_achievement(achievement)
def __init__(self, achievements=default_manager, data=None): super(AchievementsPlugin, self).__init__() if callable(achievements): achievements = achievements() if not isinstance(achievements, AchievementManager): achievements = AchievementManager(achievements) self.achievements = achievements self.data = AchievementData(data or {}) self.output_stream = None
def __init__(self, keys, manager=default_manager, default='all'): AchievementManager.__init__(self) self.include_keys = set() self.exclude_keys = set() self.add_filter(keys) if not self.include_keys and default is not None: self.add_filter(default) if callable(manager): manager = manager() self.manager = manager
def add_achievement(self, achievement): if callable(achievement): achievement = achievement() self.achievements[achievement.key] = achievement