Hi,
I'm hoping somebody can point out what I'm doing wrong here, it's probably 
trivial but I'm tearing my hair out and have no idea where things are going 
wrong.

I have several stations and therefore several databases, so I wanted a 
version of the $alltime tag provided by the example stats.py or xstats.py 
that would take a data_binding.  With some searching I came up with this


"""
"""

import weewx.units
from weewx.cheetahgenerator import SearchList
from weewx.tags import TimespanBinder, TimeBinder
from weeutil.weeutil import TimeSpan


class MyStats(SearchList):

    def __init__(self, generator):
        SearchList.__init__(self, generator)

    def get_extension_list(self, timespan, db_lookup):

        class DBBinder(TimeBinder):

            # "alltime", with optional parameter data_binding
            def alltime(self, data_binding=None):
                return TimespanBinder(timespan,
                                      self.db_lookup,
                                      context='year',
                                      data_binding=data_binding,
                                      formatter=self.formatter,
                                      converter=self.converter)

        binder = DBBinder(db_lookup,
                          timespan,
                          self.generator.formatter,
                          self.generator.converter)
        return [binder]

which works perfectly if the report is generated via wee_reports.
However it fails in the normal report run with:

Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine: Caught 
unrecoverable exception in generator 
'weewx.cheetahgenerator.CheetahGenerator'
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****  name 'weewx' is not defined
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****  Traceback (most recent call last):
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/reportengine.py", line 
197, in run
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      obj.start()
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/reportengine.py", line 
280, in start
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      self.run()
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", 
line 150, in run
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      ngen = self.generate(gen_dict[section_name], self.gen_ts)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", 
line 220, in generate
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      ngen += self.generate(section[subsection], gen_ts)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", 
line 220, in generate
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      ngen += self.generate(section[subsection], gen_ts)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", 
line 308, in generate
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      searchList = self._getSearchList(encoding, timespan,
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", 
line 376, in _getSearchList
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****      searchList += obj.get_extension_list(timespan, db_lookup)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****    File "/weewx/package/weewx-4.1.0/bin/user/mstats.py", line 18, in 
get_extension_list
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****  NameError: name 'weewx' is not defined
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:        
 ****  Generator terminated
Jul 26 09:50:17 bee weewx-weewx[192470] INFO weewx.reportengine: Copied 0 
files to /weewx/www/live


Other than this problem my weewx config is quite happy and the other 
extensions are working fine so I don't think there is anything 
fundamentally wrong with my setup even though it is in a non-standard 
location.

Any pointers very gratefully received.

Best

Mike

https://duckrising.com/weewx/

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-development+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-development/baafe0ef-59d5-4de4-80e5-7abc8958d0ebn%40googlegroups.com.
"""
"""

import weewx.units
from weewx.cheetahgenerator import SearchList
from weewx.tags import TimespanBinder, TimeBinder
from weeutil.weeutil import TimeSpan


class MyStats(SearchList):

    def __init__(self, generator):
        SearchList.__init__(self, generator)

    def get_extension_list(self, timespan, db_lookup):

        class DBBinder(TimeBinder):

            # "alltime", with optional parameter data_binding
            def alltime(self, data_binding=None):
                return TimespanBinder(timespan,
                                      self.db_lookup,
                                      context='year',
                                      data_binding=data_binding,
                                      formatter=self.formatter,
                                      converter=self.converter)

        binder = DBBinder(db_lookup,
                          timespan,
                          self.generator.formatter,
                          self.generator.converter)
        return [binder]
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine: Caught 
unrecoverable exception in generator 'weewx.cheetahgenerator.CheetahGenerator'
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
name 'weewx' is not defined
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
Traceback (most recent call last):
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/reportengine.py", line 197, in run
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    obj.start()
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/reportengine.py", line 280, in 
start
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    self.run()
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", line 150, in 
run
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    ngen = self.generate(gen_dict[section_name], self.gen_ts)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", line 220, in 
generate
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    ngen += self.generate(section[subsection], gen_ts)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", line 220, in 
generate
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    ngen += self.generate(section[subsection], gen_ts)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", line 308, in 
generate
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    searchList = self._getSearchList(encoding, timespan,
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/weewx/cheetahgenerator.py", line 376, in 
_getSearchList
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
    searchList += obj.get_extension_list(timespan, db_lookup)
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
  File "/weewx/package/weewx-4.1.0/bin/user/mstats.py", line 18, in 
get_extension_list
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
NameError: name 'weewx' is not defined
Jul 26 09:50:17 bee weewx-weewx[192470] ERROR weewx.reportengine:         ****  
Generator terminated
Jul 26 09:50:17 bee weewx-weewx[192470] INFO weewx.reportengine: Copied 0 files 
to /weewx/www/live

Reply via email to