-
Couldn't load subscription status.
- Fork 311
Closed
Description
Hi, I'm the author of inline-snapshot and have a problem with the way TzInfo.__repr__ is implemented.
TzInfo has currently the following repr:
from pydantic_core import TzInfo
def test_TzInfo():
assert repr(TzInfo(0)) == 'TzInfo(UTC)'
assert repr(TzInfo(1)) == 'TzInfo(+00:00:01)'
assert repr(TzInfo(5000)) == 'TzInfo(+01:23:20)'The problem is that inline-snapshot uses by default repr() to generate the python code for the snapshots.
from pydantic_core import TzInfo
import datetime
from inline_snapshot import snapshot
def test_TzInfo():
assert datetime.datetime(1, 2, 3, tzinfo=TzInfo(0)) == snapshot(
datetime.datetime(1, 2, 3, 0, 0, tzinfo=TzInfo(UTC))
)inline-snapshot users then try to import UTC from somewhere which causes other problems.
Is it possible to change the repr() result of TzInfo to the following (add "").
from pydantic_core import TzInfo
def test_TzInfo():
assert repr(TzInfo(0)) == 'TzInfo("UTC")'
assert repr(TzInfo(1)) == 'TzInfo("+00:00:01")'
assert repr(TzInfo(5000)) == 'TzInfo("+01:23:20")'And to provide the possibility for TzInfo to be constructed from a string?
This should make
assert eval(repr(tzinfo)) == tzinfowork for all TzInfo objects.
Metadata
Metadata
Assignees
Labels
No labels