Skip to content

Conversation

@wchargin
Copy link
Contributor

Summary:
Follow-up to #2978, which added explicit configuration of TZ=UTC. In
cPython 3, the time zone used by datetime.datetime.fromtimestamp is
cached when time is imported unless explicitly reset, so mocking
the environment variable is no longer sufficient. We now call tzset
ourselves; we could also just set TZ=UTC before importing datetime,
but this seems cleaner.

Test Plan:
A test sync shows that this test passes in both Python 2 and Python 3,
whereas it previously only passed in Python 2.

wchargin-branch: util-test-tzset

Summary:
Follow-up to #2978, which added explicit configuration of `TZ=UTC`. In
cPython 3, the time zone used by `datetime.datetime.fromtimestamp` is
[cached when `time` is imported][1] unless explicitly reset, so mocking
the environment variable is no longer sufficient. We now call `tzset`
ourselves; we could also just set `TZ=UTC` before importing `datetime`,
but this seems cleaner.

[1]: https://github.com/python/cpython/blob/2528a6c3d0660c03ae43d796628462ccf8e58190/Modules/timemodule.c#L1752-L1763

Test Plan:
A test sync shows that this test passes in both Python 2 and Python 3,
whereas it previously only passed in Python 2.

wchargin-branch: util-test-tzset
Copy link
Contributor

@psybuzz psybuzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@wchargin wchargin merged commit f54820d into master Jan 28, 2020
@wchargin wchargin deleted the wchargin-util-test-tzset branch January 28, 2020 00:11
bileschi pushed a commit to bileschi/tensorboard that referenced this pull request Mar 3, 2020
Summary:
Follow-up to tensorflow#2978, which added explicit configuration of `TZ=UTC`. In
cPython 3, the time zone used by `datetime.datetime.fromtimestamp` is
[cached when `time` is imported][1] unless explicitly reset, so mocking
the environment variable is no longer sufficient. We now call `tzset`
ourselves; we could also just set `TZ=UTC` before importing `datetime`,
but this seems cleaner.

[1]: https://github.com/python/cpython/blob/2528a6c3d0660c03ae43d796628462ccf8e58190/Modules/timemodule.c#L1752-L1763

Test Plan:
A test sync shows that this test passes in both Python 2 and Python 3,
whereas it previously only passed in Python 2.

wchargin-branch: util-test-tzset
@bileschi bileschi mentioned this pull request Mar 3, 2020
nfelt pushed a commit that referenced this pull request Mar 4, 2020
Summary:
Follow-up to #2978, which added explicit configuration of `TZ=UTC`. In
cPython 3, the time zone used by `datetime.datetime.fromtimestamp` is
[cached when `time` is imported][1] unless explicitly reset, so mocking
the environment variable is no longer sufficient. We now call `tzset`
ourselves; we could also just set `TZ=UTC` before importing `datetime`,
but this seems cleaner.

[1]: https://github.com/python/cpython/blob/2528a6c3d0660c03ae43d796628462ccf8e58190/Modules/timemodule.c#L1752-L1763

Test Plan:
A test sync shows that this test passes in both Python 2 and Python 3,
whereas it previously only passed in Python 2.

wchargin-branch: util-test-tzset
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants