Skip to content

Error handling old datetimes (ADA_LOVELACE_BIRTHDAY) #115

@ronpandolfi

Description

@ronpandolfi

I'm receiving the following error. Qt is able to recover from this normally, however (as a side effect) this causes a hard crash in certain debugging modes.

 Traceback (most recent call last):
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_live\event.py", line 514, in _invoke_callback
    cb(event)
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_widgets\qt\_search_input.py", line 207, in on_since_model_changed
    qdatetime = as_qdatetime(event.date)
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_widgets\qt\_search_input.py", line 22, in as_qdatetime
    int(secs_since_epoch(datetime) - datetime.utcoffset() / timedelta(seconds=1))
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\dateutil\tz\tz.py", line 222, in utcoffset
    if self._isdst(dt):
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\dateutil\tz\tz.py", line 291, in _isdst
    dstval = self._naive_is_dst(dt)
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\dateutil\tz\tz.py", line 260, in _naive_is_dst
    return time.localtime(timestamp + time.timezone).tm_isdst
 OSError: [Errno 22] Invalid argument
 
The above exception was the direct cause of the following exception:

 Traceback (most recent call last):
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_widgets\qt\_search_input.py", line 253, in on_toggle_all
    self.model.since = ADA_LOVELACE_BIRTHDAY
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_widgets\models\search.py", line 349, in since
    self.events.since(date=since)
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_live\event.py", line 499, in __call__
    self._invoke_callback(cb, event)
   File "C:\Users\LBL\.virtualenvs\xi-cam\lib\site-packages\bluesky_live\event.py", line 522, in _invoke_callback
    raise CallbackException(message) from err
 bluesky_live.event.CallbackException: Encountered exception while processing Event <Event blocked=False handled=False native=None source=<SearchInput {}> sources=[<SearchInput {}>] type=since> from <SearchInput {}> with callback <bound method QtSearchInput.on_since_model_changed of <bluesky_widgets.qt._search_input.QtSearchInput object at 0x0000021EAC3B1670>>

I've confirmed that datetime.utcoffset() is failing because timestamp is a negative value. Is ADA_LOVELACE_BIRTHDAY too far back? Here is a glimpse at the contents of the datetime var:
image

@ihumphrey

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions