[mythtv-commits] Ticket #13299: Python Bindings fail to calculate date-time object
MythTV
noreply at mythtv.org
Sun Jul 8 10:55:46 UTC 2018
#13299: Python Bindings fail to calculate date-time object
-------------------------------+--------------------------------
Reporter: rcrdnalor | Owner: Raymond Wagner
Type: Patch - Bug Fix | Status: new
Priority: minor | Milestone: needs_triage
Component: Bindings - Python | Version: Unspecified
Severity: medium | Resolution:
Keywords: | Ticket locked: 0
-------------------------------+--------------------------------
Comment (by ijc):
I'm not seeing the offset you are, but then again I'm a) on Debian
(testing, with 2018c tzinfo package) and in British timezone, so maybe
there is not LMT in my zoneinfo or maybe it doesn't differ enough to be
noticeable (perhaps due to my proximity to UTC).
AIUI you need those "dummy" GMT entries since the data is in mutliple
consecutive arrays and you need to maintain synchronisation, hence
inserting them and removing at the end. That seems subtle enough to me to
be worth a code comment explaining it. But perhaps just using `None` would
be a better sentinel for a faulty `tt` than using the `GMT` list and a
separate "these are not good" array, then you would check for `None` in
the subsequent loops and skip? Or even just use `transitions[i] = ...`
instead of `transitions.append(...)` and use the `None` entries in the
array as the sentinel.
Finally, catching the ValueError seems like a roundabout way of detecting
these entries, in some sense it is treating the symptom, not the cause --
is it not possible to distinguish these LMT entries from desired ones
directly? For example are all entries which are too large for
`time.gmtime()` LMT entries and never any possibility of being something
else?
Are the LMT entries the "NULL" ones shown here:
{{{
$ zdump -v /etc/localtime | grep -E NULL\|2018
/etc/localtime -9223372036854775808 = NULL
/etc/localtime -9223372036854689408 = NULL
/etc/localtime Sun Mar 25 00:59:59 2018 UT = Sun Mar 25 00:59:59 2018 GMT
isdst=0 gmtoff=0
/etc/localtime Sun Mar 25 01:00:00 2018 UT = Sun Mar 25 02:00:00 2018 BST
isdst=1 gmtoff=3600
/etc/localtime Sun Oct 28 00:59:59 2018 UT = Sun Oct 28 01:59:59 2018 BST
isdst=1 gmtoff=3600
/etc/localtime Sun Oct 28 01:00:00 2018 UT = Sun Oct 28 01:00:00 2018 GMT
isdst=0 gmtoff=0
/etc/localtime 9223372036854689407 = NULL
/etc/localtime 9223372036854775807 = NULL
}}}
??? In which case can either the NULL or the enormous magnitude not be
used to detect them more directly ? The NULL seems like it might be an
especially interesting indicator of "something unusual"?
I wasn't actually able to find any docs on the format of `/etc/localtime`,
nor of the LMT entries though so maybe it isn't possible to distinguish
explicitly, but it would be better to try IMHO.
--
Ticket URL: <https://code.mythtv.org/trac/ticket/13299#comment:2>
MythTV <http://www.mythtv.org>
MythTV Media Center
More information about the mythtv-commits
mailing list