One could use OrderedDict, but it would be the only use anywhere in weewx. By using ConfigObj, we avoid pulling in the collections module.
On Tue, Aug 11, 2020 at 5:47 AM Graham Eddy <graham.e...@gmail.com> wrote: > OrderedDict or stick to ConfigObj ? > > On 11 Aug 2020, at 10:39 pm, Tom Keffer <tkef...@gmail.com> wrote: > > Because types of ConfigObj are ordered dictionaries, we can use that. Add > this to the list of imports in engine.py > > import configobj > > then change this > > self.corrections = {} > > to this > > self.corrections = configobj.ConfigObj() > > See if that works. > > -tk > > On Tue, Aug 11, 2020 at 3:51 AM Graham Eddy <graham.e...@gmail.com> wrote: > >> i apply some rules in [[Corrections]] that depend upon the order they are >> executed >> >> looking at the code in StdCalibrate (around lines 359-363 in >> weewx.engine) i see the sequencing from ‘correction_dict.scalars' would be >> lost when placed in simple dictionary ‘corrections'. i also see that the >> corrections are not applied in a deterministic sequence (line 374). so my >> dependency upon the sequence seems to be screwed... >> >> assuming my interpretation is correct - that rule execution sequence >> under [[Corrections]] is not determinsitic - my workaround is to sort the >> data_type keys when the rules are being applied i.e. line 374 >> >> #GJE for obs_type in self.corrections: >> for obs_type in sorted(self.corrections): >> >> this is just a workaround to give me determinism so i can devise rules >> that work predictably, but the real answer is preserving the original >> sequencing >> >> i have weewx clone but not fork so can’t submit a pull request. i don’t >> think i would for this workaround anyway... >> >> >> -- >> 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 weewx-user+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/weewx-user/C09CFFD7-BDB4-48B6-A009-C841D2D79B09%40gmail.com >> <https://groups.google.com/d/msgid/weewx-user/C09CFFD7-BDB4-48B6-A009-C841D2D79B09%40gmail.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 weewx-user+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/CAPq0zEDZm898HdSFqEUFrx%2Bj9uTa6FRcaGAs8zKK%3DyoDMwgarA%40mail.gmail.com > <https://groups.google.com/d/msgid/weewx-user/CAPq0zEDZm898HdSFqEUFrx%2Bj9uTa6FRcaGAs8zKK%3DyoDMwgarA%40mail.gmail.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 weewx-user+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/852B1D30-30F8-4EE2-AA44-4F358E32607A%40gmail.com > <https://groups.google.com/d/msgid/weewx-user/852B1D30-30F8-4EE2-AA44-4F358E32607A%40gmail.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 weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEBin3txnXQsFtfqy2xzq%2BgGcKxxFSzgQeUi-MfN%3DtYkmQ%40mail.gmail.com.