#if $counter = 1 and $tide.hilo == 'L' <-- error generated here
You need another equal sign:
#if $counter == 1 and $tide.hilo == 'L' <-- error generated here
On Mon, May 29, 2023 at 1:43 AM 'Rory Gillies' via weewx-user <
[email protected]> wrote:
> I am trying to do a simple bit of logic to add an empty table row if two
> conditions are met but the Cheetah generator is throwing up a syntax error
> and I can't work out why. This loop generates a table of high tides, but if
> the first tidal event is low tide I don't want the high tide displayed in
> the row as it will be after the low tide. The code is:
>
> <table class="table table-striped text-left">
> <tr>
> <td><b>Date</b></td></td><td><b>Time
> (local)</b></td><td><b>Height</b></td>
> </tr>
> #set $tides = $forecast.xtides
> #set $counter = 0
> #for $tide in $tides
> #set $counter = $counter + 1
> #if $counter = 1 and $tide.hilo == 'L' <-- error generated here
> <tr>
> <td>-</td>
> <td>-</td>
> <td>-</td>
> </tr>
> #else if $counter < 28
> #set $height=$tide.offset.raw / 3.281
> #if $tide.hilo == 'H'
> <tr>
> <td>$tide.event_ts.format("%a %d %b")</td>
> <td>$tide.event_ts.format("%H:%M")</td>
> <td>
> #echo '%.2f' % $height
> m </td>
> </tr>
> #end if
> #end if
> #end for
> </table>
>
> And here's the error:
>
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator:
> Compilation of template /etc/weewx/skins/neowx-material/almanac.html.tmpl
> failed with exception '<class 'SyntaxError'>'
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> Ignoring template /etc/weewx/skins/neowx-material/almanac.html.tmpl
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> Reason: invalid syntax
> (cheetah__etc_weewx_skins_neowx_material_almanac_html_tmpl_1685348748_259715_51815.py,
> line 1247)
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> Traceback (most recent call last):
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 827, in
> compile
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> parseError = genParserErrorFromPythonException(
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 2045, in
> genParserErrorFromPythonException
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> reader = SourceReader(source, filename=filename)
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/SourceReader.py", line 19,
> in __init__
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> self._srcLen = len(src)
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> TypeError: object of type 'NoneType' has no len()
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> During handling of the above exception, another exception occurred:
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> Traceback (most recent call last):
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/share/weewx/weewx/cheetahgenerator.py", line 332, in generate
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> compiled_template = Cheetah.Template.Template(
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 1337, in
> __init__
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> self._compile(source, file, compilerSettings=compilerSettings)
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 1634, in
> _compile
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> templateClass = self.compile(source, file,
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 832, in
> compile
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> raise e
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File "/usr/lib/python3/dist-packages/Cheetah/Template.py", line 823, in
> compile
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> co = compile(generatedModuleCode, __file__, 'exec')
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> File
> "cheetah__etc_weewx_skins_neowx_material_almanac_html_tmpl_1685348748_259715_51815.py",
> line 1247
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> if VFFSL(SL,"counter",True) = 1 and VFFSL(SL,"tide.hilo",True) == 'L':
> # generated from line 353, col 21
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> ^
> May 29 09:25:48 weather weewx[1049482] ERROR weewx.cheetahgenerator: ****
> SyntaxError: invalid syntax
>
> The code works fine without the empty row logic, and both the $counter and
> $tide.hilo variables are working in the rest of the code, just not when I
> try to use them in a logic statement.
>
> --
> 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/2ac8df36-f705-46f1-9101-137337784355n%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/2ac8df36-f705-46f1-9101-137337784355n%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/CAPq0zEDLOjtRxZeu3SRb-vcO_y-u0XfnxB%3Dw-vcC5%3DHW8bemjQ%40mail.gmail.com.