Everything worked fine until I did the upgrade.

I guess something has changed in the way XTypes are handled?

*This is the code I use in extensions.py:*

#
#    Copyright (c) 2009-2015 Tom Keffer <tkef...@gmail.com>
#
#    See the file LICENSE.txt for your full rights.
#

"""User extensions module

This module is imported from the main executable, so anything put here will 
be
executed before anything else happens. This makes it a good place to put 
user
extensions.
"""

import locale
# This will use the locale specified by the environment variable 'LANG'
# Other options are possible. See:
# http://docs.python.org/2/library/locale.html#locale.setlocale
locale.setlocale(locale.LC_ALL, '')

import user.lowest_temperature
import weewx.xtypes

weewx.xtypes.xtypes.append(user.lowest_temperature.LowestTemperature())


*This is the code in lowest_temperature.py:*

import weewx.units
import weewx.xtypes
from weewx.units import ValueTuple

class LowestTemperature(weewx.xtypes.XType):

  def get_scalar(self, obs_type, record, dbmanager):
    """Determine which sensor has lowest temperature."""
    if obs_type != 'lowTemperature':
      raise weewx.UnknownType
    try:
      record_us = weewx.units.to_US(record)
      if record_us['outTemp'] == None or record_us['extraTemp1'] == None:
      # if record_us['outTemp'] < 100 or record_us['extraTemp1'] < 100:
        raise TypeError("Temperature(s) equal to None")
      if record_us['outTemp'] <= record_us['extraTemp1']:
        lowTemperature = record_us['outTemp']
      else:
        lowTemperature = record_us['extraTemp1']
      return ValueTuple(lowTemperature, "degree_F", "group_temperature")
    except KeyError:
      # Don't have everything we need. Raise an exception.
      raise weewx.CannotCalculate(obs_type)
  
  def get_series(self, obs_type, timespan, db_manager, aggregate_type=None, 
aggregate_interval=None):
    if obs_type != 'lowTemperature':
      raise weewx.UnknownType
    start_vec = list()
    stop_vec = list()
    data_vec = list()
    if aggregate_type:
      raise weewx.UnknownAggregation(aggregate_type)
    for record in db_manager.genSql("SELECT `dateTime`, `interval`, 
`usUnits`, `outTemp`, `extraTemp1` FROM `archive` WHERE `dateTime` > 
%(start)s AND `dateTime` <= %(stop)s;" % {'start': timespan[0], 'stop': 
timespan[1]}):
      if (record[2] != 1):
        raise weewx.CannotCalculate("units are not US")
      if record[3] == None or record[4] == None:
      # if record[3] < 100 or record[4] < 100:
        raise TypeError("Temperature(s) equal to None") 
      start_vec.append(record[0] - record[1] * 60)
      stop_vec.append(record[0])
      if record[3] <= record[4]:
        data_vec.append(record[3])
      else:
        data_vec.append(record[4])
    return (ValueTuple(start_vec, 'unix_epoch', 'group_time'), 
ValueTuple(stop_vec, 'unix_epoch', 'group_time'), ValueTuple(data_vec, 
"degree_F", "group_temperature"))

Do I need to rewrite all code?

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/abb03705-953a-4626-a1ef-7d43a7cf688en%40googlegroups.com.

Reply via email to