rstudio / rstudio/pins-python

Use UTC times consistently

Open
#285 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

.new-behavior
Dominant language
Python
Stars
59
Forks
11
PR merge metrics
No merged PRs in 30d

Description

Regarding this comment:
https://github.com/rstudio/pins-python/blob/d215a8cd6cf958be0f4fc41c6e90e21c907b4655/pins/versions.py#L77-L78

As far as I can tell, R pins will write the created datetime as a UTC time:

https://github.com/rstudio/pins-r/blob/de47c3141d97020e9f4a6a2e93d5823bc649105b/R/meta.R#L50

And the functions it uses to parse datetimes also specify UTC (although the two parse_ functions indeed strip it out).
https://github.com/rstudio/pins-r/blob/de47c3141d97020e9f4a6a2e93d5823bc649105b/R/meta.R#L55-L68

I haven't looked into this too deeply though.

As far as I can tell, Python pins will just use the local datetime, e.g.
https://github.com/rstudio/pins-python/blob/d215a8cd6cf958be0f4fc41c6e90e21c907b4655/pins/versions.py#L104

I suggest that this behaviour is changed (this is arguably a breaking change, arguably a bugfix) to use UTC consistently everywhere. To that end, the DTZ rules in ruff could be helpful to enable.

In any case, I think it would be worth documenting this behaviour in more detail.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading pins/versions.py around lines 77-78 and 104, then compare its datetime handling with the linked pins-r implementation. Check where Python pins writes and parses created timestamps, and document the resulting UTC behavior; completion should cover the relevant paths consistently and address the suggested Ruff DTZ rules.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.