forked from pool/python-time-machine
Compare commits
4 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| 4954b189fa | |||
| 1229b178cd | |||
| c377730420 | |||
| d67bd37e33 |
Binary file not shown.
3
python-time-machine-3.2.0.tar.gz
Normal file
3
python-time-machine-3.2.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:c74880a913e25b30de6be7645fa81b8ff374f0332dbbfd6c22d9445729cee637
|
||||||
|
size 85884
|
||||||
@@ -1,3 +1,96 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
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>
|
Wed Oct 30 19:50:38 UTC 2024 - Dirk Müller <dmueller@suse.com>
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package python-time-machine
|
# spec file for package python-time-machine
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2026 SUSE LLC and contributors
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@@ -16,13 +16,12 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%{?sle15_python_module_pythons}
|
|
||||||
Name: python-time-machine
|
Name: python-time-machine
|
||||||
Group: Development/Languages/Python
|
Version: 3.2.0
|
||||||
Version: 2.16.0
|
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Travel through time in your tests
|
Summary: Travel through time in your tests
|
||||||
License: MIT
|
License: MIT
|
||||||
|
Group: Development/Languages/Python
|
||||||
URL: https://github.com/adamchainz/time-machine
|
URL: https://github.com/adamchainz/time-machine
|
||||||
# pypi packages don't contain the tests anymore since 2.2.0, see changelog
|
# pypi packages don't contain the tests anymore since 2.2.0, see changelog
|
||||||
Source: https://github.com/adamchainz/time-machine/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
Source: https://github.com/adamchainz/time-machine/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
||||||
@@ -30,17 +29,20 @@ BuildRequires: %{python_module devel >= 3.8}
|
|||||||
BuildRequires: %{python_module pip}
|
BuildRequires: %{python_module pip}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: %{python_module wheel}
|
BuildRequires: %{python_module wheel}
|
||||||
BuildRequires: python-rpm-macros
|
|
||||||
# SECTION tests
|
|
||||||
BuildRequires: %{python_module backports.zoneinfo if %python-base < 3.9}
|
|
||||||
BuildRequires: %{python_module pytest}
|
|
||||||
BuildRequires: %{python_module python-dateutil}
|
|
||||||
BuildRequires: timezone
|
|
||||||
# /SECTION
|
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: python-rpm-generators
|
BuildRequires: python-rpm-generators
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
Requires: python-python-dateutil
|
Requires: python-python-dateutil
|
||||||
|
Requires: python-tokenize-rt
|
||||||
Requires: timezone
|
Requires: timezone
|
||||||
|
# SECTION tests
|
||||||
|
BuildRequires: %{python_module backports.zoneinfo if %python-base < 3.9}
|
||||||
|
BuildRequires: %{python_module freezegun}
|
||||||
|
BuildRequires: %{python_module pytest}
|
||||||
|
BuildRequires: %{python_module python-dateutil}
|
||||||
|
BuildRequires: %{python_module tokenize-rt}
|
||||||
|
BuildRequires: timezone
|
||||||
|
# /SECTION
|
||||||
%python_subpackages
|
%python_subpackages
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@@ -55,7 +57,7 @@ It can be used independently, as a function decorator, or as a context manager.
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
%pyproject_install
|
%pyproject_install
|
||||||
%python_expand %fdupes %{buildroot}%{$python_sitelib}
|
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%pytest_arch
|
%pytest_arch
|
||||||
@@ -65,6 +67,6 @@ It can be used independently, as a function decorator, or as a context manager.
|
|||||||
%license LICENSE
|
%license LICENSE
|
||||||
%{python_sitearch}/time_machine
|
%{python_sitearch}/time_machine
|
||||||
%{python_sitearch}/_time_machine.*.so
|
%{python_sitearch}/_time_machine.*.so
|
||||||
%{python_sitearch}/time_machine-%{version}.dist-info
|
%{python_sitearch}/time_machine-%{version}*-info
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
|||||||
Reference in New Issue
Block a user