def __init__(self, load_data, temp_data=None, forecast_temp_data=None, timezone=None, temp_units='F', sq_ft=None, tariff=None, log_level=logging.INFO): """load_data, temp_data, and forecast_temp_data may be: - List of Tuples containing timestamps and values - filename of a csv containing timestamps and values - Series object """ logging.basicConfig(level=log_level) self.logger = logging.getLogger(__name__) if timezone == None: self.logger.warn("Assuming timezone is OS default") self.timezone = utils.get_timezone(timezone) self.model_dir = path.join(path.dirname(path.abspath(__file__)), 'r') self.temp_units = temp_units self.sq_ft = sq_ft self.tariff = tariff self.training_load_series = self._get_series(load_data) self.training_temperature_series = self._get_series(temp_data) self.forecast_temperature_series = self._get_series(forecast_temp_data) self._stderr = None self._stdout = None self._reset_derivative_data()
def get_next_event_text(calendar, after=None, include_current=None, tz=None, verbose=True): """ Build the actual human-readable response to the !next command. The tz parameter can override the timezone used to display the event times. This can be an actual timezone object, or a string timezone name. Defaults to moonbase time. """ if after is None: after = datetime.datetime.now(datetime.timezone.utc) if not tz: tz = config['timezone'] elif isinstance(tz, str): tz = tz.strip() try: tz = utils.get_timezone(tz) except pytz.exceptions.UnknownTimeZoneError: return "Unknown timezone: %s" % tz events = get_next_event(calendar, after=after, include_current=include_current) if not events: return "There don't seem to be any upcoming scheduled streams" strs = [] for i, ev in enumerate(events): # If several events are at the same time, just show the time once after all of them if i == len(events) - 1 or ev['start'] != events[i+1]['start']: if verbose: if ev['location'] is not None: title = "%(title)s (%(location)s)" % ev else: title = ev['title'] if ev['start'] < after: nice_duration = utils.nice_duration(after - ev['start'], 1) + " ago" else: nice_duration = utils.nice_duration(ev['start'] - after, 1) + " from now" strs.append("%s at %s (%s)" % (title, ev['start'].astimezone(tz).strftime(DISPLAY_FORMAT), nice_duration)) else: strs.append("%s at %s" % (ev['title'], ev['start'].astimezone(tz).strftime(DISPLAY_FORMAT))) else: strs.append(ev['title']) response = ', '.join(strs) if verbose: if calendar == CALENDAR_LRL: response = "Next scheduled stream: " + response elif calendar == CALENDAR_FAN: response = "Next scheduled fan stream: " + response return utils.shorten(response, 450) # For safety
def __init__(self, tariff_file=None, timezone=None, log_level=logging.INFO): """load_data, temp_data, and forecast_temp_data may be: - List of Tuples containing timestamps and values - filename of a csv containing timestamps and values - Series object """ logging.basicConfig(level=log_level) self.logger = logging.getLogger(__name__) if timezone == None: self.logger.warn("Assuming timezone is OS default") self.timezone = utils.get_timezone(timezone) self.tariff_file = None self.tariff_json = None self.rate_structure = None self.rate_schedule = None self.dr_periods = [] if tariff_file != None: self.parse(tariff_file)
def init_localized_datetime(instance, **kwargs): for field in instance.__class__._meta.fields: if not isinstance(field, LocalizedDateTimeField): continue attname = field.attname dt = getattr(instance, attname, None) if dt is not None: tzone = get_timezone() if isinstance(tzone, basestring): tzone = smart_str(tzone) if tzone in pytz.all_timezones_set: tzone = pytz.timezone(tzone) if dt.tzinfo is None: dt = default_tz.localize(dt) dt = dt.astimezone(tzone) setattr(instance, attname, dt)
def get_context(self): # get the timezone from the GET params (default to UTC) tz = self.request.get('tz', default_value='UTC') # attempt to parse timezone try: timezone = get_timezone(tz) # return error if invalid timezone except pytz.UnknownTimeZoneError: # set HTTP status and return error msg self.response.set_status(400) return {'error': 'Unknown timezone "%s"' % tz} # add timezone name to response response = {'tz_name': timezone.zone} # add utc offset to response response['tz_offset'] = get_utcoffset_as_string(timezone) # add current time to response response['datetime'] = get_current_time(tz) return response
def __init__(self, series=[], timezone=None, temp_units='F', data_column=1): '''series argument may be: - List of Tuples containing timestamps and values - filename of a csv containing timestamps and values kwargs are stored as Series metadata ''' self.errors = [] self.exclusions = [] self.data_column = data_column self.temp_units = temp_units.upper() if isinstance(timezone, str) | (timezone == None): self.timezone = utils.get_timezone(timezone) else: self.timezone = timezone if isinstance(series, list): self.series = self.load_list(series) elif isinstance(series, str): self.series = self.load_list_from_csv(series) self._validate_series() self._sort_series()
def __init__(self, series=[], timezone=None, temp_units="F", data_column=1): """series argument may be: - List of Tuples containing timestamps and values - filename of a csv containing timestamps and values kwargs are stored as Series metadata """ self.errors = [] self.exclusions = [] self.data_column = data_column self.temp_units = temp_units.upper() if isinstance(timezone, str) | (timezone == None): self.timezone = utils.get_timezone(timezone) else: self.timezone = timezone if isinstance(series, list): self.series = self.load_list(series) elif isinstance(series, str): self.series = self.load_list_from_csv(series) self._validate_series() self._sort_series()