I am inclined to agree with you Tom in that this isn't a bug.  The 
'workaround' using a 30 day month and 365 day year is, I feel, the only way 
to logically achieve a consistent outcome.




On Thursday, 19 September 2019 01:26:47 UTC+3, Thomas Keffer wrote:
>
> Finally got around to looking at this and now I'm not so sure it is a bug.
>
> Let me ask you a question: given the date you were using, 31 July, what 
> was your expectation for the date a month earlier? Not 31 June; there is no 
> such day. 
>
> One could say it should be the last day in June, that is, 30 June. That 
> might make sense, but then it leads to some strange corner cases:
>
> What is 30 March minus one month? By this solution, it should be 28 Feb.
>
> So then what is 29 March minus one month? Also 28 Feb? And so would 28 
> March minus a month. So, "one month earlier" for three days in a row leads 
> to the same date?
>
> Any ideas?
>
> -tk
>
>
>
>
> On Tue, Jul 30, 2019 at 5:17 PM Thomas Keffer <[email protected] 
> <javascript:>> wrote:
>
>> Thanks, mph. This helps! It seems the problem is on the last day of a 
>> long month that follows a short month.
>>
>> I've created issue #436 <https://github.com/weewx/weewx/issues/436> to 
>> track.
>>
>> -tk
>>
>> On Tue, Jul 30, 2019 at 7:12 PM mph <[email protected] <javascript:>> 
>> wrote:
>>
>>> I am confirming this reported bug with $month_delta
>>>
>>> My template GENERATING bug on Jul 31st:
>>>
>>> #set $archive_data = [$day, $span($week_delta=1), $span($month_delta=1), 
>>>> $span($year_delta=1), $week, $month, $year]
>>>> ...
>>>> #for $archive in $archive_data
>>>>   <td class="data 
>>>> new_row">$archive.outTemp.max.format(add_label=False)<br/>
>>>>     <span 
>>>> class="timestamp">$archive.outTemp.maxtime.format($dt_format[$archive_data.index($archive)])</span><br/>
>>>>     $archive.outTemp.min.format(add_label=False)<br/>
>>>>     <span 
>>>> class="timestamp">$archive.outTemp.mintime.format($dt_format[$archive_data.index($archive)])</span>
>>>>   </td>
>>>> #end for
>>>
>>>
>>>
>>> My workarround SOLVING the issue - using day_delta only:
>>>
>>> #set $archive_data = [$day, $span($day_delta=7), $span($day_delta=30), 
>>>> $span($day_delta=365), $week, $month, $year]
>>>>
>>>
>>>
>>> My log is almost the same as from Pavel Fojt below:
>>>
>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: cheetahgenerator: Generate 
>>>> failed with exception '<type 'exceptions.ValueError'>'
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: cheetahgenerator: **** Ignoring 
>>>> template /etc/weewx/skins/Seasons/index.html.tmpl
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: cheetahgenerator: **** Reason: 
>>>> day is out of range for month
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****  Traceback (most recent 
>>>> call last):
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 332, in generate
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****      
>>>> fd.write(str(compiled_template))
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1005, in 
>>>> __str__
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****      rc = getattr(self, 
>>>> mainMethName)()
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "_etc_weewx_skins_Seasons_index_html_tmpl.py", line 218, in respond
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1615, in 
>>>> _handleCheetahInclude
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****      
>>>> self._CHEETAH__cheetahIncludes[_includeID].respond(trans)
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "_etc_weewx_skins_Seasons_hilo_inc.py", line 94, in respond
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "/usr/share/weewx/weewx/tags.py", line 101, in span
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****      
>>>> hour_delta=hour_delta, day_delta=day_delta, week_delta=week_delta, 
>>>> month_delta=month_delta, year_delta=year_delta),
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****    File 
>>>> "/usr/share/weewx/weeutil/weeutil.py", line 475, in archiveSpanSpan
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****      start_dt = 
>>>> time_dt.replace(year=year, month=month)
>>>> Jul 31 00:50:24 rpi-meteo weewx[25170]: ****  ValueError: day is out of 
>>>> range for month
>>>>
>>>
>>> Thank you
>>> Pavel
>>>
>>> Dne úterý 1. srpna 2017 15:18:35 UTC+2 Thomas Keffer napsal(a):
>>>>
>>>> This is probably a bug somewhere.
>>>>
>>>> Did you modify the standard index.html.tmpl template? Can you identify 
>>>> what statement in the template is causing the error?
>>>>
>>>> -tk
>>>>
>>>> On Mon, Jul 31, 2017 at 1:32 AM, Pavel Fojt <[email protected]> wrote:
>>>>
>>>>> after midnight (2017-07-30 / 2017-07-31):
>>>>>
>>>>> Jul 31 10:30:14 debian1 weewx[143]: cheetahgenerator: Generate failed 
>>>>> with exception '<type 'exceptions.ValueError'>'
>>>>> Jul 31 10:30:14 debian1 weewx[143]: cheetahgenerator: **** Ignoring 
>>>>> template /etc/weewx/skins/Standard/index.html.tmpl
>>>>> Jul 31 10:30:14 debian1 weewx[143]: cheetahgenerator: **** Reason: day 
>>>>> is out of range for month
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****  Traceback (most recent call 
>>>>> last):
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File 
>>>>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 329, in generate
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****      print >> _file, 
>>>>> compiled_template
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File 
>>>>> "/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1005, in 
>>>>> __str__
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****      rc = getattr(self, 
>>>>> mainMethName)()
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File 
>>>>> "_etc_weewx_skins_Standard_index_html_tmpl.py", line 1663, in respond
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File 
>>>>> "_etc_weewx_skins_Standard_index_html_tmpl.py", line 707, in 
>>>>> __errorCatcher92
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File "<string>", line 1, 
>>>>> in <module>
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File 
>>>>> "/usr/share/weewx/weewx/tags.py", line 101, in span
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****      hour_delta=hour_delta, 
>>>>> day_delta=day_delta, week_delta=week_delta, month_delta=month_delta, 
>>>>> year_delta=year_delta),
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****    File 
>>>>> "/usr/share/weewx/weeutil/weeutil.py", line 532, in archiveSpanSpan
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****      start_dt = 
>>>>> time_dt.replace(year=year, month=month)
>>>>> Jul 31 10:30:14 debian1 weewx[143]: ****  ValueError: day is out of 
>>>>> range for month
>>>>>
>>>>> weewx version v3.7.1
>>>>>
>>>>> problem with 31days for July?
>>>>>
>>>>> thanks
>>>>>
>>>>> Pavel
>>>>>
>>>>> -- 
>>>>> 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 [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>> -- 
>>> 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 [email protected] <javascript:>.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/weewx-user/fe6603a7-00f7-4d6e-8537-ccebca757891%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/weewx-user/fe6603a7-00f7-4d6e-8537-ccebca757891%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/e455bd45-0507-4774-9636-15a915804b19%40googlegroups.com.

Reply via email to