def requireDelegate(self): if self.fanArt is None: from fanart import FanArt self.fanArt = FanArt(*self.args, **self.kwargs)
class DelayedInstantiationProxy(object): '''Could use a little introspection to sort this out but eh...''' def __init__(self, *args, **kwargs): self.args = args self.kwargs = kwargs self.fanArt = None def requireDelegate(self): if self.fanArt is None: from fanart import FanArt self.fanArt = FanArt(*self.args, **self.kwargs) def getSeasonAndEpisode(self, program): self.requireDelegate() return self.fanArt.getSeasonAndEpisode(program) def getRandomPoster(self, program): self.requireDelegate() return self.fanArt.getRandomPoster(program) def getPosters(self, program): self.requireDelegate() return self.fanArt.getPosters(program) def hasPosters(self, program): self.requireDelegate() return self.fanArt.hasPosters(program) def clear(self): self.requireDelegate() self.fanArt.clear() def shutdown(self): self.requireDelegate() self.fanArt.shutdown() def configure(self, settings): self.requireDelegate() self.fanArt.configure(settings) def onEvent(self, event): self.requireDelegate() self.fanArt.onEvent(event)
def bootstrapSettings(self): self.stage = 'Initializing Settings' from mythbox.settings import MythSettings self.settings = MythSettings(self.platform, self.translator, 'settings.xml', self.bus) #from fanart import FanArt #self.log.debug('Settings = \n %s' % self.settings) class DelayedInstantiationProxy(object): '''Could use a little introspection to sort this out but eh...''' def __init__(self, *args, **kwargs): self.args = args self.kwargs = kwargs self.fanArt = None def requireDelegate(self): if self.fanArt is None: from fanart import FanArt self.fanArt = FanArt(*self.args, **self.kwargs) def getSeasonAndEpisode(self, program): self.requireDelegate() return self.fanArt.getSeasonAndEpisode(program) def getRandomPoster(self, program): self.requireDelegate() return self.fanArt.getRandomPoster(program) def getPosters(self, program): self.requireDelegate() return self.fanArt.getPosters(program) def hasPosters(self, program): self.requireDelegate() return self.fanArt.hasPosters(program) def clear(self): self.requireDelegate() self.fanArt.clear() def shutdown(self): self.requireDelegate() self.fanArt.shutdown() def configure(self, settings): self.requireDelegate() self.fanArt.configure(settings) def onEvent(self, event): self.requireDelegate() self.fanArt.onEvent(event) from fanart import FanArt self.fanArt = FanArt(self.platform, self.httpCache, self.settings, self.bus) #self.fanArt = DelayedInstantiationProxy(self.platform, self.httpCache, self.settings, self.bus) try: import socket socket.setdefaulttimeout(float(os.getenv('MYTHBOX_TIMEOUT', '30'))) except: self.log.exception('Error setting socket timeout') self.bus.register(self) # Generate fake event to reflect value in settings.xml instead of mythbox_log.ini from bus import Event self.onEvent({ 'id': Event.SETTING_CHANGED, 'tag': 'logging_enabled', 'old': 'DontCare', 'new': self.settings.get('logging_enabled') })