forked from pool/python-time-machine
- 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.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-time-machine?expand=0&rev=37
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.osc
|
||||
BIN
python-time-machine-2.16.0.tar.gz
LFS
Normal file
BIN
python-time-machine-2.16.0.tar.gz
LFS
Normal file
Binary file not shown.
3
python-time-machine-3.1.0.tar.gz
Normal file
3
python-time-machine-3.1.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ccc9add7f678a2652249d12efea446db0540acc90240ae9327d2fdcbba4f920
|
||||
size 75765
|
||||
229
python-time-machine.changes
Normal file
229
python-time-machine.changes
Normal file
@@ -0,0 +1,229 @@
|
||||
-------------------------------------------------------------------
|
||||
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.
|
||||
71
python-time-machine.spec
Normal file
71
python-time-machine.spec
Normal file
@@ -0,0 +1,71 @@
|
||||
#
|
||||
# spec file for package python-time-machine
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC and contributors
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
Name: python-time-machine
|
||||
Version: 3.1.0
|
||||
Release: 0
|
||||
Summary: Travel through time in your tests
|
||||
License: MIT
|
||||
Group: Development/Languages/Python
|
||||
URL: https://github.com/adamchainz/time-machine
|
||||
# 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
|
||||
BuildRequires: %{python_module devel >= 3.8}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module wheel}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: python-rpm-generators
|
||||
BuildRequires: python-rpm-macros
|
||||
Requires: python-python-dateutil
|
||||
Requires: python-tokenize-rt
|
||||
Requires: timezone
|
||||
# SECTION tests
|
||||
BuildRequires: %{python_module backports.zoneinfo if %python-base < 3.9}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module python-dateutil}
|
||||
BuildRequires: %{python_module tokenize-rt}
|
||||
BuildRequires: timezone
|
||||
# /SECTION
|
||||
%python_subpackages
|
||||
|
||||
%description
|
||||
This library mocks all functions from Python's standard library that return the current date or datetime.
|
||||
It can be used independently, as a function decorator, or as a context manager.
|
||||
|
||||
%prep
|
||||
%setup -q -n time-machine-%{version}
|
||||
|
||||
%build
|
||||
%pyproject_wheel
|
||||
|
||||
%install
|
||||
%pyproject_install
|
||||
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||
|
||||
%check
|
||||
%pytest_arch
|
||||
|
||||
%files %{python_files}
|
||||
%doc README.rst HISTORY.rst
|
||||
%license LICENSE
|
||||
%{python_sitearch}/time_machine
|
||||
%{python_sitearch}/_time_machine.*.so
|
||||
%{python_sitearch}/time_machine-%{version}*-info
|
||||
|
||||
%changelog
|
||||
Reference in New Issue
Block a user