Works like a charm. Thank you!
> On Jul 15, 2020, at 8:30 AM, Tom Keffer <[email protected]> wrote: > > > Try it now. > > I ended rewriting deep_copy() by using recursion. The trick is to bypass the > version of __getitem__ supplied by ConfigObj in order to avoid interpolation. > > Commit b6905e5 > >> On Tue, Jul 14, 2020 at 6:04 PM John Kline <[email protected]> wrote: >> BTW, to save you from adding in my change to write the confobj.write() >> output to a file, the attached file is what output. >> >> Foo/Bar/Baz is at the bottom. >> >> Foo and Bar both have two too many brackets. >> >> [[[Foo]]] >> [[[[Bar]]]] >> baz = foobarabaz >> >> >> >>>> On Jul 14, 2020, at 5:46 PM, John Kline <[email protected]> wrote: >>>> >>> >>> You had me worried there! >>> >>>>> On Jul 14, 2020, at 5:40 PM, Tom Keffer <[email protected]> wrote: >>>>> >>>> >>>> No, I did not enable it. Once I did, then I got the error message. Nice to >>>> know it's reproducible on a stock WeeWX install! >>>> >>>>> On Tue, Jul 14, 2020 at 5:31 PM John Kline <[email protected]> wrote: >>>>> I’m assuming you enabled StandardReport. If so, that is remarkable; but >>>>> I know what to do on my end to make the skins work. Thanks for trying it. >>>>> >>>>>>> On Jul 14, 2020, at 5:27 PM, Tom Keffer <[email protected]> wrote: >>>>>>> >>>>>> >>>>>> I added the section [[[Foo]]] to [[StandardReport]] as you directed, and >>>>>> it worked fine on my system, using configobj v5.0.6 and Python v3.5.9, >>>>>> v3.7.3, and v3.8.2. >>>>>> >>>>>>> On Tue, Jul 14, 2020 at 9:23 AM John Kline <[email protected]> wrote: >>>>>>> Oh, I forgot to add, if you add the following to >>>>>>> skins/Standard/skins.conf, the problem goes away: >>>>>>> [Foo] >>>>>>> [[Bar]] >>>>>>> x = 1 >>>>>>> >>>>>>> It appears the introduction of new sections is a problem when using >>>>>>> configobj.write >>>>>>> >>>>>>> Cheers, >>>>>>> John >>>>>>> >>>>>>> > On Jul 14, 2020, at 9:15 AM, John Kline <[email protected]> wrote: >>>>>>> > >>>>>>> > Hi Tom, >>>>>>> > >>>>>>> > I had a chance to dig deeper into the issues I am seeing at head, >>>>>>> > specifically the weeutil.config.deep_copy function. >>>>>>> > >>>>>>> > I would appreciate it if you could could try to reproduce the problem >>>>>>> > with this StandardReport. Just run wee_reports (there’s no need to >>>>>>> > restart WeeWX): >>>>>>> > >>>>>>> > [[StandardReport]] >>>>>>> > # This is the old "Standard" skin. By default, it is not >>>>>>> > enabled. >>>>>>> > skin = Standard >>>>>>> > enable = true >>>>>>> > [[[Foo]]] >>>>>>> > [[[[Bar]]]] >>>>>>> > baz = foobarabaz >>>>>>> > >>>>>>> > If it fails for you, and iff this is legal to have in the weewx.conf >>>>>>> > file, you can instrument the function to see why it happens by adding >>>>>>> > this to the code below to the beginning. You see it fail when >>>>>>> > running wee_reports and know which tmp file to look in. Again, just >>>>>>> > run wee_reports. >>>>>>> > >>>>>>> > import time >>>>>>> > >>>>>>> > >>>>>>> > fname = '/tmp/config_obj_%f' % time.time() >>>>>>> > print('writing >>>>>>> > %s' % fname) >>>>>>> > fd = open(fname, >>>>>>> > 'wb') >>>>>>> > old_dict.write(fd) >>>>>>> > >>>>>>> > fd.close() >>>>>>> > >>>>>>> > print('done >>>>>>> > writing %s' % fname) >>>>>>> > print('reading %s' % >>>>>>> > fname) >>>>>>> > fd = open(fname, 'rb') >>>>>>> > >>>>>>> > new_dict = >>>>>>> > configobj.ConfigObj(fd, >>>>>>> > >>>>>>> > encoding='utf8', >>>>>>> > >>>>>>> > default_encoding=old_dict.default_encoding, >>>>>>> > >>>>>>> > interpolation=old_dict.interpolation) >>>>>>> > fd.close() >>>>>>> > >>>>>>> > print('done reading %s' % fname) >>>>>>> > >>>>>>> > return new_dict >>>>>>> > >>>>>>> > If this isn’t legal, I’ll need to change [my copy] of forecast as I >>>>>>> > believe this is a typical report entry for reports that include a >>>>>>> > forecast: >>>>>>> > >>>>>>> > [[[Extras]]] >>>>>>> > [[[[forecast_iconic_settings]]]] >>>>>>> > source = NWS >>>>>>> > orientation = horizontal >>>>>>> > num_days = 7 >>>>>>> > bar_size = 150 >>>>>>> > show_date = 0 >>>>>>> > show_pop = 0 >>>>>>> > show_precip = 1 >>>>>>> > show_obvis = 1 >>>>>>> > >>>>>>> > The above causes the same issue. >>>>>>> > >>>>>>> > If you add the instrumentation code and look at the temp file, you’ll >>>>>>> > see that the sections have the wrong number of brackets. >>>>>>> > >>>>>>> > Cheers, >>>>>>> > John >>>>>>> >>>>>>> -- >>>>>>> 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 [email protected]. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/weewx-development/CA049183-2575-4062-AC9C-A8C96C81A1D5%40johnkline.com. > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-development/CAPq0zEC89qvjGNDasrz%2Btrak8b3AFhDahOzckbc6%2B%2B0e9B9Zbg%40mail.gmail.com. -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/8A9CF030-2851-4F43-AB48-1AE44153B132%40johnkline.com.
