Running the simulator and looping through "*make a change, manually run wee_reports, check the log, check the results*" works pretty well as one way of doing it. I don't think you even need weewx running to do that. I typically just spin up a Simulator VM with vagrant+VirtualBox and battle through it.
But cheetah can certainly make it unpleasant to say the least. On Tuesday, December 29, 2020 at 1:39:11 PM UTC-8 WindnFog wrote: > Thanks, guys. That's what I figured. While I'm no Python guru, I was in > the IT field for 39 years. This isn't the first time I ran into things > like this. I will do as you both suggest. I can add a "feature" to the > stock file one at a time, and fix the errors as I encounter them. The good > news is I have two parallel systems . . . one is my live site: > > https://www.ve1dx.net > > And the other is sending the simulator data to a subdirectory under it. I > even have two Davis receivers, each with a data logger and USB interface. > I do so because I have this obsession not to let my site go offline > (failing power outages.) I always try to have a backup plan and duplicate > the hardware if possible. I used to manage Unix servers for up to 2000 > clients, and downtime was a no-no! > > So . . . it looks like I have my work cut out for me. It's something to > do during this long, cold, dark winter. One bite (byte?) at a time is the > way to go when facing an elephant. > > - Paul VE1DX > > On Tuesday, December 29, 2020 at 5:16:36 PM UTC-4 gjr80 wrote: > >> Hi, >> >> Short answer is there is no direct way of obtaining the offending line >> number in your template file. It would be helpful if we had access to the >> temporary .py file that Cheetah creates (for which the line number is >> provided) but unfortunately we don’t have access to that file. The best you >> can do is to infer from the error message. In the case above you are >> looking for a multiplication operation for which the left hand operand is >> (could be) None and the right hand operand is a float. Usually not too hard >> to spot possible problem locations (unless you have lots and lots of >> multiplication operators). Also, NoneType issues typically come from WeeWX >> fields/obs that are unexpectedly None, so something like >> $current.outTemp.raw * 1.2 would be a prime candidate (outTemp could be >> None for some reason) but 3.23 * 1.2 (no chance of None) is not nor would >> $current.outHumidity.raw * 2 (does not use a float). >> >> If you are unfortunate enough to get an error message that is not very >> descriptive, or you have just too many possible error sites in your >> template, your only real option is to start breaking down your template >> into smaller chunks to find the location. I favour splitting the template >> in half, find the offending half template and then breaking that into >> halves and repeating the process, tedious but about the best you can do. >> >> This is a good incentive to make sure your code can tolerate >> variable/fields being None. >> >> Gary >> On Wednesday, 30 December 2020 at 06:54:22 UTC+10 WindnFog wrote: >> >>> Hi guys. I'm a little late converting from python 2.7 to python 3.7, but >>> true to my word last autumn, I'm now up to my elbows into it. It's going >>> well, and I'm using Matthews sftp extension to move it to my VPS web server >>> in Toronto, etc. This project will keep me busy for a while. >>> >>> My question is sort of simple. I have my index.html.tmpl heavily >>> customized, and I want to keep the features I've added over the past 4-5 >>> years. Some of them are causing it to choke because what I'm doing has to >>> be coded differently in Python 3.7. I'll figure all that out. The question >>> I have is: How do I find the line causing the error in index.html.tmpl? >>> Here's an example: >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] INFO >>> weewx.imagegenerator: Generated 15 images for report SeasonsReport in 0.54 >>> seconds* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] INFO >>> weewx.reportengine: Copied 0 files to /var/www/html/weewx* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: Generate failed with exception '<class >>> 'TypeError'>'* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** Ignoring template >>> /etc/weewx/skins/Standard/index.html.tmpl* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** Reason: unsupported operand type(s) for *: >>> 'NoneType' and 'float'* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** Traceback (most recent call last):* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** File >>> "/usr/share/weewx/weewx/cheetahgenerator.py", line 323, in generate* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** unicode_string = compiled_template.respond()* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** File >>> "_etc_weewx_skins_Standard_index_html_tmpl.py", line 1135, in respond* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] ERROR >>> weewx.cheetahgenerator: **** TypeError: unsupported operand type(s) for *: >>> 'NoneType' and 'float'* >>> >>> *Dec 29 16:15:18 carrot python3[9457]: weewx[9457] INFO >>> weewx.cheetahgenerator: Generated 13 files for report StandardReport in >>> 0.67 seconds* >>> >>> *Dec 29 16:15:19 carrot python3[9457]: weewx[9457] INFO >>> weewx.imagegenerator: Generated 12 images for report StandardReport in 0.43 >>> seconds* >>> >>> *Dec 29 16:15:19 carrot python3[9457]: weewx[9457] INFO >>> weewx.reportengine: Copied 0 files to /var/www/html/weewx* >>> >>> This specific error doesn't matter because I can fix it if I can find >>> the offending like. Because index.html.tmpl goes through cheetah, I don't >>> think line 323 is the one causing the problem. I guessed correctly at a >>> few, but I know I'm going to get quite a few more. I need a way to narrow >>> it down. My version of index.html.tmpl is 867 lines, compared to the stock >>> one of 527 lines. >>> >>> - Paul VE1DX >>> >> -- 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/c2b759a5-8328-46cd-ac0a-0a950c0839f5n%40googlegroups.com.
