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)