class RecordingSource(object): __slots__ = ["name", "driver", "storage", "shows"] def __init__(self, name, driver, storage, shows): self.name = name self.driver = driver self.storage = storage self.shows = shows def __str__(self): return self.name def json_friendly(self): return self.name add_json_serializer(RecordingSource, RecordingSource.json_friendly) class Show(object): __slots__ = ["name", "schedule"] def __init__(self, name, schedule): self.name = name self.schedule = schedule def __eq__(self, other): return (isinstance(other, Show) and self.name == other.name and self.schedule == other.schedule) def __hash__(self): return hash(("Show", self.name, self.schedule))
return number raise ConfigurationError('Invalid day of the week %r.' % day_name) @classmethod def _get_current_weekday(cls): return time.localtime().tm_wday def __repr__(self): return '%s(%r, %r, %r)' % (type(self).__name__, self.weekdays, self.start_time, self.duration) def __eq__(self, other): return (isinstance(other, WeeklySchedule) and other.weekdays == self.weekdays and other.start_time == self.start_time and other.duration == self.duration) def __hash__(self): return hash(("WeeklySchedule", self.weekdays, self.start_time, self.duration)) def json_friendly(self): return { "weekdays": self.weekdays, "start_time": self.start_time, "duration": self.duration } _implementations['weekly'] = WeeklySchedule add_json_serializer(WeeklySchedule, WeeklySchedule.json_friendly)