* Add :attr:`time_machine.naive_mode` to control how time-
machine interprets naive datetimes. The default mode is
MIXED, which preserves existing behaviour: naive datetime
objects and date objects are interpreted as UTC, while naive
datetime strings are interpreted as local time. Three
alternative modes are available: UTC: naive datetimes are
always interpreted as UTC. LOCAL: naive datetimes are
interpreted as local time, matching Python's default
semantics, and freezegun. ERROR: naive datetimes raise a
RuntimeError, ensuring your tests are isolated from the
current timezone. Note It’s recommended you use LOCAL or
ERROR to avoid confusion around naive datetimes. PR #591.
Thanks to Paolo Melchiorre for review. Thanks to PhML,
Stefaan Lippens, Matthieu Rigal, Nikita Demir, Steve Mavens,
Andy Freeland, and Paul Ganssle for their input on Issue
#257.
* UTC: naive datetimes are always interpreted as UTC.
* LOCAL: naive datetimes are interpreted as local time,
matching Python's default semantics, and freezegun.
* ERROR: naive datetimes raise a RuntimeError, ensuring your
tests are isolated from the current timezone.
* Raise RuntimeError when attempting to start time travelling
if freezegun is active. This change should help avoid
surprises when migrating complex test suites from freezegun
to time-machine. PR #590.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-time-machine?expand=0&rev=39
260 lines
11 KiB
Plaintext
260 lines
11 KiB
Plaintext
-------------------------------------------------------------------
|
||
Wed Jan 28 12:27:44 UTC 2026 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- update to 3.2.0:
|
||
* Add :attr:`time_machine.naive_mode` to control how time-
|
||
machine interprets naive datetimes. The default mode is
|
||
MIXED, which preserves existing behaviour: naive datetime
|
||
objects and date objects are interpreted as UTC, while naive
|
||
datetime strings are interpreted as local time. Three
|
||
alternative modes are available: UTC: naive datetimes are
|
||
always interpreted as UTC. LOCAL: naive datetimes are
|
||
interpreted as local time, matching Python's default
|
||
semantics, and freezegun. ERROR: naive datetimes raise a
|
||
RuntimeError, ensuring your tests are isolated from the
|
||
current timezone. Note It’s recommended you use LOCAL or
|
||
ERROR to avoid confusion around naive datetimes. PR #591.
|
||
Thanks to Paolo Melchiorre for review. Thanks to PhML,
|
||
Stefaan Lippens, Matthieu Rigal, Nikita Demir, Steve Mavens,
|
||
Andy Freeland, and Paul Ganssle for their input on Issue
|
||
#257.
|
||
* UTC: naive datetimes are always interpreted as UTC.
|
||
* LOCAL: naive datetimes are interpreted as local time,
|
||
matching Python's default semantics, and freezegun.
|
||
* ERROR: naive datetimes raise a RuntimeError, ensuring your
|
||
tests are isolated from the current timezone.
|
||
* Raise RuntimeError when attempting to start time travelling
|
||
if freezegun is active. This change should help avoid
|
||
surprises when migrating complex test suites from freezegun
|
||
to time-machine. PR #590.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Dec 9 21:22:28 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
|
||
|
||
- Update to 3.1.0
|
||
- Optimize patching of uuid module. By avoiding using
|
||
unittest.mock, this small overhead from starting
|
||
time_machine.travel() has been reduced about 20x, from ~600ns
|
||
to ~30ns by one benchmark.
|
||
- Update to 3.0.0
|
||
- Remove mocking of time.monotonic() and time.monotonic_ns().
|
||
This mocking caused too many issues, such as causing freezes
|
||
in asyncio event loops (Issue #387), preventing
|
||
pytest-durations from timing tests correctly (Issue #505),
|
||
and triggering timeouts in psycopg (Issue #509). The root
|
||
cause here is that mocking the monotonic clock breaks its
|
||
contract, allowing it to move backwards when it’s meant to
|
||
only move forwards.
|
||
As an alternative, use unittest.mock to mock the monotonic
|
||
function for the specific tested modules that need it. That
|
||
means that your code should import monotonic() or
|
||
monotonic_ns() directly, so that your tests can mock it in
|
||
those places only.
|
||
- Parse str destinations with datetime.fromisoformat() first,
|
||
before falling back to dateutil if installed.
|
||
datetime.fromisoformat() can parse most valid ISO 8601
|
||
formats, with better performance and no extra dependencies.
|
||
- Make the dependency on dateutil optional.
|
||
- Rename the Coordinates class to Traveller, to match the
|
||
recommended context manager variable name.
|
||
- Drop Python 3.9 support.
|
||
- Make the escape_hatch functions raise ValueError when called
|
||
outside of time-travelling, rather than triggering
|
||
segmentation faults.
|
||
- Update to 2.19.0
|
||
- Add marker support to the pytest plugin. Decorate tests with
|
||
@pytest.mark.time_machine(<destination>) to set time during a test,
|
||
affecting function-level fixtures as well.
|
||
- Add asynchronous context manager support to time_machine.travel(). You can
|
||
now use async with time_machine.travel(...): in asynchronous code, per the
|
||
documentation.
|
||
- Import date and time functions once in the C extension.
|
||
- This should improve speed a little bit, and avoid segmentation faults when
|
||
the functions have been swapped out, such as when freezegun is in effect.
|
||
(time-machine still won’t apply if freezegun is in effect.)
|
||
- Update to 2.18.0
|
||
- Update the migration CLI to detect unittest classes based on whether they
|
||
use self.assert* methods like self.assertEqual().
|
||
- Fix free-threaded Python warning: RuntimeWarning: The global interpreter
|
||
lock (GIL) has been enabled... as seen on Python 3.13+.
|
||
- Add support to travel() for datetime destinations with tzinfo set to
|
||
datetime.UTC (datetime.timezone.utc).
|
||
- Prevent segmentation faults in unlikely scenarios, such as if the
|
||
time_machine module cannot be imported.
|
||
- Make travel() fully unpatch date and time functions when travel ends. This
|
||
may fix certain edge cases.
|
||
- Update to 2.17.0
|
||
- Include wheels for Python 3.14.
|
||
- Support free-threaded Python.
|
||
- Add a new CLI for migrating code from freezegun to time-machine.
|
||
- Install with pip install time-machine[cli] and run with python -m
|
||
time_machine migrate.
|
||
- Move the documentation to Read the Docs, and add a retro-futuristic logo.
|
||
|
||
-------------------------------------------------------------------
|
||
Wed Oct 30 19:50:38 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- update to 2.16.0:
|
||
* Drop Python 3.8 support.
|
||
* Include wheels for Python 3.13.
|
||
|
||
-------------------------------------------------------------------
|
||
Sun Jun 30 08:25:19 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- update to 2.14.2:
|
||
* Fix SystemError on Python 3.13 and Windows when starting time
|
||
travelling.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Apr 20 08:01:44 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- update to 2.14.1:
|
||
* Fix segmentation fault when the first travel() call in a
|
||
process uses a timedelta.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Mar 14 08:17:15 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- update to 2.14.0:
|
||
* Fix utcfromtimestamp() warning on Python 3.12+.
|
||
* Fix utcfromtimestamp() warning on Python 3.12+.
|
||
* Fix class decorator for classmethod overrides.
|
||
* Avoid calling deprecated uuid._load_system_functions() on
|
||
Python 3.9+.
|
||
* Avoid calling deprecated uuid._load_system_functions() on
|
||
Python 3.9+.
|
||
* Thanks to Nikita Sobolev for the ping in CPython Issue
|
||
* Support Python 3.13 alpha 4.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Nov 9 09:05:38 UTC 2023 - ecsos <ecsos@opensuse.org>
|
||
|
||
- Update to 2.13.0
|
||
- Add support for datetime.timedelta to time_machine.travel().
|
||
- Fix documentation about using local time for naive date(time) strings.
|
||
- Add shift() method to the time_machine pytest fixture.
|
||
- Mock time.monotonic() and time.monotonic_ns().
|
||
They return the values of time.time() and time.time_ns()
|
||
respectively, rather than real monotonic clocks.
|
||
- Changes from 2.12.0
|
||
- Include wheels for Python 3.12.
|
||
- Changes from 2.11.0
|
||
- Drop Python 3.7 support.
|
||
- Changes from 2.10.0
|
||
- Support Python 3.12.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jun 9 06:20:34 UTC 2023 - ecsos <ecsos@opensuse.org>
|
||
|
||
- Add %{?sle15_python_module_pythons}
|
||
|
||
-------------------------------------------------------------------
|
||
Wed May 31 09:26:06 UTC 2023 - Ben Greiner <code@bnavigator.de>
|
||
|
||
- Move to PEP517
|
||
- Do not use pytzdata, but system timezone directly
|
||
- Don't catchall sitearch
|
||
|
||
-------------------------------------------------------------------
|
||
Sat May 27 19:44:39 UTC 2023 - Dirk Müller <dmueller@suse.com>
|
||
|
||
- update to 2.9.0:
|
||
* Explicitly error when attempting to install on PyPy.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Apr 11 08:32:21 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
|
||
|
||
- BuildRequire python38-backports.zoneinfo only when python38-base
|
||
is present in the buildsystem: fix build on distros where python
|
||
3.8 is no longer in the supported set of python interpreters.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Oct 29 16:04:03 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
|
||
|
||
- Update to version 2.8.2
|
||
* Improve type hints for time_machine.travel() to preserve the types of the wrapped function/coroutine/class.
|
||
|
||
-------------------------------------------------------------------
|
||
Thu Aug 18 07:00:08 UTC 2022 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.8.1:
|
||
- Actually build Python 3.11 wheels.
|
||
- update to version 2.8.0:
|
||
- Build Python 3.11 wheels.
|
||
- update to version 2.7.1:
|
||
- Fix usage of ``ZoneInfo`` from the ``backports.zoneinfo`` package.
|
||
This makes ``ZoneInfo`` support work for Python < 3.9.
|
||
- update to version 2.7.0:
|
||
- Support Python 3.11 (no wheels yet, they will only be available when Python 3.11 is RC when the ABI is stable).
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Jan 11 10:01:09 UTC 2022 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- Limit package to python >= 3.7
|
||
|
||
-------------------------------------------------------------------
|
||
Mon Jan 10 17:18:47 UTC 2022 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.6.0:
|
||
* Drop Python 3.6 support.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Dec 14 15:06:54 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.5.0:
|
||
* Add ``time_machine.escape_hatch``, which provides functions to bypass
|
||
time-machine.
|
||
Thanks to Matt Pegler for the feature request in `Issue #206
|
||
<https://github.com/adamchainz/time-machine/issues/206>`__.
|
||
|
||
-------------------------------------------------------------------
|
||
Tue Dec 14 07:40:10 UTC 2021 - pgajdos@suse.com
|
||
|
||
- pytest-runner is not required for build
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Nov 27 14:29:53 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.4.1:
|
||
- Build musllinux wheels.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Sep 4 17:54:02 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.4.0:
|
||
- Support Python 3.10.
|
||
|
||
-------------------------------------------------------------------
|
||
Fri Jul 30 08:23:35 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.3.1:
|
||
- Build universal2 wheels for Python 3.8 on macOS.
|
||
- update to version 2.3.0:
|
||
- Allow passing ``tick`` to ``Coordinates.move_to()`` and the pytest fixture’s
|
||
``time_machine.move_to()``. This allows freezing or unfreezing of time when
|
||
travelling.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat Jul 3 13:17:35 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- update to version 2.2.0:
|
||
- 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.
|
||
|
||
-------------------------------------------------------------------
|
||
Sat May 29 07:50:49 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- skip python2 to fix leap build
|
||
- add missing group tag to fix leap build
|
||
|
||
-------------------------------------------------------------------
|
||
Tue May 25 11:43:44 UTC 2021 - Sebastian Wagner <sebix+novell.com@sebix.at>
|
||
|
||
- initial package for version 2.1.0.
|