- Drop Python 3.8 support.
- Include wheels for Python 3.13.
Fix
SystemError
on Python 3.13 and Windows when starting time travelling.Thanks to Bernát Gábor for the report in Issue #456.
Fix segmentation fault when the first
travel()
call in a process uses atimedelta
.Thanks to Marcin Sulikowski for the report in Issue #431.
Fix
utcfromtimestamp()
warning on Python 3.12+.Thanks to Konstantin Baikov in PR #424.
Fix class decorator for classmethod overrides.
Thanks to Pavel Bitiukov for the reproducer in PR #404.
Avoid calling deprecated
uuid._load_system_functions()
on Python 3.9+.Thanks to Nikita Sobolev for the ping in CPython Issue #113308.
Support Python 3.13 alpha 4.
Thanks to Miro Hrončok in PR #409.
Add support for
datetime.timedelta
totime_machine.travel()
.Thanks to Nate Dudenhoeffer in PR #298.
Fix documentation about using local time for naive date(time) strings.
Thanks to Stefaan Lippens in PR #306.
Add
shift()
method to thetime_machine
pytest fixture.Thanks to Stefaan Lippens in PR #312.
Mock
time.monotonic()
andtime.monotonic_ns()
. They return the values oftime.time()
andtime.time_ns()
respectively, rather than real monotonic clocks.Thanks to Anthony Sottile in PR #382.
- Include wheels for Python 3.12.
- Drop Python 3.7 support.
- Support Python 3.12.
- Build Windows ARM64 wheels.
- Explicitly error when attempting to install on PyPy.
Thanks to Michał Górny in PR #315.
- Improve type hints for
time_machine.travel()
to preserve the types of the wrapped function/coroutine/class.
- Actually build Python 3.11 wheels.
- Build Python 3.11 wheels.
- Fix usage of
ZoneInfo
from thebackports.zoneinfo
package. This makesZoneInfo
support work for Python < 3.9.
- Support Python 3.11 (no wheels yet, they will only be available when Python 3.11 is RC when the ABI is stable).
- Drop Python 3.6 support.
Add
time_machine.escape_hatch
, which provides functions to bypass time-machine.Thanks to Matt Pegler for the feature request in Issue #206.
- Build musllinux wheels.
- Support Python 3.10.
- Build universal2 wheels for Python 3.8 on macOS.
- Allow passing
tick
toCoordinates.move_to()
and the pytest fixture’stime_machine.move_to()
. This allows freezing or unfreezing of time when travelling.
- Include type hints.
- Convert C module to use PEP 489 multi-phase extension module initialization. This makes the module ready for Python sub-interpreters.
- Release now includes a universal2 wheel for Python 3.9 on macOS, to work on Apple Silicon.
- Stop distributing tests to reduce package size. Tests are not intended to be run outside of the tox setup in the repository. Repackagers can use GitHub's tarballs per tag.
- Release now includes wheels for ARM on Linux.
- Prevent
ImportError
on Windows wheretime.tzset()
is unavailable.
- Release now includes wheels for Windows and macOS.
- Move internal calculations to use nanoseconds, avoiding a loss of precision.
- After a call to
move_to()
, the first function call to retrieve the current time will return exactly the destination time, copying the behaviour of the first call totravel()
. - Add the ability to shift timezone by passing in a
ZoneInfo
timezone. - Remove
tz_offset
argument. This was incorrectly copied fromfreezegun
. Use the new timezone mocking withZoneInfo
instead. - Add pytest plugin and fixture
time_machine
. - Work with Windows’ different epoch.
- Support Python 3.9.
- Move license from ISC to MIT License.
Correctly return naive datetimes from
datetime.utcnow()
whilst time travelling.Thanks to Søren Pilgård and Bart Van Loon for the report in Issue #52.
- Add
move_to()
method to move to a different time whilst travelling. This is based on freezegun'smove_to()
method.
- Move C-level
clock_gettime()
andclock_gettime_ns()
checks to runtime to allow distribution of macOS wheels.
Add
shift()
method to move forward in time by a delta whilst travelling. This is based on freezegun'stick()
method.Thanks to Alex Subbotin for the feature in PR #27.
Fix to work when either
clock_gettime()
orCLOCK_REALTIME
is not present. This happens on some Unix platforms, for example on macOS with the official Python.org installer, which is compiled against macOS 10.9.Thanks to Daniel Crowe for the fix in PR #30.
- Fix
datetime.now()
behaviour with thetz
argument when not time-travelling.
- First non-beta release.
- Added support for
tz_offset
argument. tick=True
will only start time ticking after the first method return that retrieves the current time.- Added nestability of
travel()
. - Support for
time.time_ns()
andtime.clock_gettime_ns()
.
- First release on PyPI.