Skip to main content

Travel through time in your tests.

Project description

https://img.shields.io/github/actions/workflow/status/adamchainz/time-machine/main.yml?branch=main&style=for-the-badge https://img.shields.io/badge/Coverage-100%25-success?style=for-the-badge https://img.shields.io/pypi/v/time-machine.svg?style=for-the-badge https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge pre-commit

Travel through time in your tests.

A quick example:

import datetime as dt
from zoneinfo import ZoneInfo
import time_machine

hill_valley_tz = ZoneInfo("America/Los_Angeles")


@time_machine.travel(dt.datetime(1985, 10, 26, 1, 24, tzinfo=hill_valley_tz))
def test_delorean():
    assert dt.date.today().isoformat() == "1985-10-26"

For a bit of background, see the introductory blog post and the benchmark blog post.


Testing a Django project? Check out my book Speed Up Your Django Tests which covers loads of ways to write faster, more accurate tests. I created time-machine whilst writing the book.


Installation

Use pip:

python -m pip install time-machine

Python 3.8 to 3.13 supported. Only CPython is supported at this time because time-machine directly hooks into the C-level API.

Usage

If you’re coming from freezegun or libfaketime, see also the below section on migrating.

travel(destination, *, tick=True)

travel() is a class that allows time travel, to the datetime specified by destination. It does so by mocking 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.

destination specifies the datetime to move to. It may be:

  • A datetime.datetime. If it is naive, it will be assumed to have the UTC timezone. If it has tzinfo set to a zoneinfo.ZoneInfo instance, the current timezone will also be mocked.

  • A datetime.date. This will be converted to a UTC datetime with the time 00:00:00.

  • A datetime.timedelta. This will be interpreted relative to the current time. If already within a travel() block, the shift() method is easier to use (documented below).

  • A float or int specifying a Unix timestamp

  • A string, which will be parsed with dateutil.parse and converted to a timestamp. If the result is naive, it will be assumed to be local time.

Additionally, you can provide some more complex types:

  • A generator, in which case next() will be called on it, with the result treated as above.

  • A callable, in which case it will be called with no parameters, with the result treated as above.

tick defines whether time continues to “tick” after travelling, or is frozen. If True, the default, successive calls to mocked functions return values increasing by the elapsed real time since the first call. So after starting travel to 0.0 (the UNIX epoch), the first call to any datetime function will return its representation of 1970-01-01 00:00:00.000000 exactly. The following calls “tick,” so if a call was made exactly half a second later, it would return 1970-01-01 00:00:00.500000.

Mocked Functions

All datetime functions in the standard library are mocked to move to the destination current datetime:

  • datetime.datetime.now()

  • datetime.datetime.utcnow()

  • time.clock_gettime() (only for CLOCK_REALTIME)

  • time.clock_gettime_ns() (only for CLOCK_REALTIME)

  • time.gmtime()

  • time.localtime()

  • time.monotonic() (not a real monotonic clock, returns time.time())

  • time.monotonic_ns() (not a real monotonic clock, returns time.time_ns())

  • time.strftime()

  • time.time()

  • time.time_ns()

The mocking is done at the C layer, replacing the function pointers for these built-ins. Therefore, it automatically affects everywhere those functions have been imported, unlike use of unittest.mock.patch().

Usage with start() / stop()

To use independently, create an instance, use start() to move to the destination time, and stop() to move back. For example:

import datetime as dt
import time_machine

traveller = time_machine.travel(dt.datetime(1985, 10, 26))
traveller.start()
# It's the past!
assert dt.date.today() == dt.date(1985, 10, 26)
traveller.stop()
# We've gone back to the future!
assert dt.date.today() > dt.date(2020, 4, 29)

travel() instances are nestable, but you’ll need to be careful when manually managing to call their stop() methods in the correct order, even when exceptions occur. It’s recommended to use the decorator or context manager forms instead, to take advantage of Python features to do this.

Function Decorator

When used as a function decorator, time is mocked during the wrapped function’s duration:

import time
import time_machine


@time_machine.travel("1970-01-01 00:00 +0000")
def test_in_the_deep_past():
    assert 0.0 < time.time() < 1.0

You can also decorate asynchronous functions (coroutines):

import time
import time_machine


@time_machine.travel("1970-01-01 00:00 +0000")
async def test_in_the_deep_past():
    assert 0.0 < time.time() < 1.0

Beware: time is a global state - see below.

Context Manager

When used as a context manager, time is mocked during the with block:

import time
import time_machine


def test_in_the_deep_past():
    with time_machine.travel(0.0):
        assert 0.0 < time.time() < 1.0

Class Decorator

Only unittest.TestCase subclasses are supported. When applied as a class decorator to such classes, time is mocked from the start of setUpClass() to the end of tearDownClass():

import time
import time_machine
import unittest


@time_machine.travel(0.0)
class DeepPastTests(TestCase):
    def test_in_the_deep_past(self):
        assert 0.0 < time.time() < 1.0

Note this is different to unittest.mock.patch()'s behaviour, which is to mock only during the test methods. For pytest-style test classes, see the pattern documented below.

Timezone mocking

If the destination passed to time_machine.travel() or Coordinates.move_to() has its tzinfo set to a zoneinfo.ZoneInfo instance, the current timezone will be mocked. This will be done by calling time.tzset(), so it is only available on Unix. The zoneinfo module is new in Python 3.8 - on older Python versions use the backports.zoneinfo package, by the original zoneinfo author.

time.tzset() changes the time module’s timezone constants and features that rely on those, such as time.localtime(). It won’t affect other concepts of “the current timezone”, such as Django’s (which can be changed with its timezone.override()).

Here’s a worked example changing the current timezone:

import datetime as dt
import time
from zoneinfo import ZoneInfo
import time_machine

hill_valley_tz = ZoneInfo("America/Los_Angeles")


@time_machine.travel(dt.datetime(2015, 10, 21, 16, 29, tzinfo=hill_valley_tz))
def test_hoverboard_era():
    assert time.tzname == ("PST", "PDT")
    now = dt.datetime.now()
    assert (now.hour, now.minute) == (16, 29)

Coordinates

The start() method and entry of the context manager both return a Coordinates object that corresponds to the given “trip” in time. This has a couple methods that can be used to travel to other times.

move_to(destination, tick=None)

move_to() moves the current time to a new destination. destination may be any of the types supported by travel.

tick may be set to a boolean, to change the tick flag of travel.

For example:

import datetime as dt
import time
import time_machine

with time_machine.travel(0, tick=False) as traveller:
    assert time.time() == 0

    traveller.move_to(234)
    assert time.time() == 234

shift(delta)

shift() takes one argument, delta, which moves the current time by the given offset. delta may be a timedelta or a number of seconds, which will be added to destination. It may be negative, in which case time will move to an earlier point.

For example:

import datetime as dt
import time
import time_machine

with time_machine.travel(0, tick=False) as traveller:
    assert time.time() == 0

    traveller.shift(dt.timedelta(seconds=100))
    assert time.time() == 100

    traveller.shift(-dt.timedelta(seconds=10))
    assert time.time() == 90

pytest plugin

time-machine also works as a pytest plugin. It provides a function-scoped fixture called time_machine with methods move_to() and shift(), which have the same signature as their equivalents in Coordinates. This can be used to mock your test at different points in time and will automatically be un-mock when the test is torn down.

For example:

import datetime as dt


def test_delorean(time_machine):
    time_machine.move_to(dt.datetime(1985, 10, 26))

    assert dt.date.today().isoformat() == "1985-10-26"

    time_machine.move_to(dt.datetime(2015, 10, 21))

    assert dt.date.today().isoformat() == "2015-10-21"

    time_machine.shift(dt.timedelta(days=1))

    assert dt.date.today().isoformat() == "2015-10-22"

If you are using pytest test classes, you can apply the fixture to all test methods in a class by adding an autouse fixture:

import time

import pytest


class TestSomething:
    @pytest.fixture(autouse=True)
    def set_time(self, time_machine):
        time_machine.move_to(1000.0)

    def test_one(self):
        assert int(time.time()) == 1000.0

    def test_two(self, time_machine):
        assert int(time.time()) == 1000.0
        time_machine.move_to(2000.0)
        assert int(time.time()) == 2000.0

escape_hatch

The escape_hatch object provides functions to bypass time-machine. These allow you to call the real datetime functions, without any mocking. It also provides a way to check if time-machine is currently time travelling.

These capabilities are useful in rare circumstances. For example, if you need to authenticate with an external service during time travel, you may need the real value of datetime.now().

The functions are:

  • escape_hatch.is_travelling() -> bool - returns True if time_machine.travel() is active, False otherwise.

  • escape_hatch.datetime.datetime.now() - wraps the real datetime.datetime.now().

  • escape_hatch.datetime.datetime.utcnow() - wraps the real datetime.datetime.utcnow().

  • escape_hatch.time.clock_gettime() - wraps the real time.clock_gettime().

  • escape_hatch.time.clock_gettime_ns() - wraps the real time.clock_gettime_ns().

  • escape_hatch.time.gmtime() - wraps the real time.gmtime().

  • escape_hatch.time.localtime() - wraps the real time.localtime().

  • escape_hatch.time.strftime() - wraps the real time.strftime().

  • escape_hatch.time.time() - wraps the real time.time().

  • escape_hatch.time.time_ns() - wraps the real time.time_ns().

For example:

import time_machine


with time_machine.travel(...):
    if time_machine.escape_hatch.is_travelling():
        print("We need to go back to the future!")

    real_now = time_machine.escape_hatch.datetime.datetime.now()
    external_authenticate(now=real_now)

Caveats

Time is a global state. Any concurrent threads or asynchronous functions are also be affected. Some aren’t ready for time to move so rapidly or backwards, and may crash or produce unexpected results.

Also beware that other processes are not affected. For example, if you use SQL datetime functions on a database server, they will return the real time.

Comparison

There are some prior libraries that try to achieve the same thing. They have their own strengths and weaknesses. Here’s a quick comparison.

unittest.mock

The standard library’s unittest.mock can be used to target imports of datetime and time to change the returned value for current time. Unfortunately, this is fragile as it only affects the import location the mock targets. Therefore, if you have several modules in a call tree requesting the date/time, you need several mocks. This is a general problem with unittest.mock - see Why Your Mock Doesn’t Work.

It’s also impossible to mock certain references, such as function default arguments:

def update_books(_now=time.time):  # set as default argument so faster lookup
    for book in books:
        ...

Although such references are rare, they are occasionally used to optimize highly repeated loops.

freezegun

Steve Pulec’s freezegun library is a popular solution. It provides a clear API which was much of the inspiration for time-machine.

The main drawback is its slow implementation. It essentially does a find-and-replace mock of all the places that the datetime and time modules have been imported. This gets around the problems with using unittest.mock, but it means the time it takes to do the mocking is proportional to the number of loaded modules. In large projects, this can take several seconds, an impractical overhead for an individual test.

It’s also not a perfect search, since it searches only module-level imports. Such imports are definitely the most common way projects use date and time functions, but they’re not the only way. freezegun won’t find functions that have been “hidden” inside arbitrary objects, such as class-level attributes.

It also can’t affect C extensions that call the standard library functions, including (I believe) Cython-ized Python code.

python-libfaketime

Simon Weber’s python-libfaketime wraps the libfaketime library. libfaketime replaces all the C-level system calls for the current time with its own wrappers. It’s therefore a “perfect” mock for the current process, affecting every single point the current time might be fetched, and performs much faster than freezegun.

Unfortunately python-libfaketime comes with the limitations of LD_PRELOAD. This is a mechanism to replace system libraries for a program as it loads (explanation). This causes two issues in particular when you use python-libfaketime.

First, LD_PRELOAD is only available on Unix platforms, which prevents you from using it on Windows.

Second, you have to help manage LD_PRELOAD. You either use python-libfaketime’s reexec_if_needed() function, which restarts (re-execs) your test process while loading, or manually manage the LD_PRELOAD environment variable. Neither is ideal. Re-execing breaks anything that might wrap your test process, such as profilers, debuggers, and IDE test runners. Manually managing the environment variable is a bit of overhead, and must be done for each environment you run your tests in, including each developer’s machine.

time-machine

time-machine is intended to combine the advantages of freezegun and libfaketime. It works without LD_PRELOAD but still mocks the standard library functions everywhere they may be referenced. Its weak point is that other libraries using date/time system calls won’t be mocked. Thankfully this is rare. It’s also possible such python libraries can be added to the set mocked by time-machine.

One drawback is that it only works with CPython, so can’t be used with other Python interpreters like PyPy. However it may possible to extend it to support other interpreters through different mocking mechanisms.

Migrating from libfaketime or freezegun

freezegun has a useful API, and python-libfaketime copies some of it, with a different function name. time-machine also copies some of freezegun’s API, in travel()'s destination, and tick arguments, and the shift() method. There are a few differences:

  • time-machine’s tick argument defaults to True, because code tends to make the (reasonable) assumption that time progresses whilst running, and should normally be tested as such. Testing with time frozen can make it easy to write complete assertions, but it’s quite artificial. Write assertions against time ranges, rather than against exact values.

  • freezegun interprets dates and naive datetimes in the local time zone (including those parsed from strings with dateutil). This means tests can pass when run in one time zone and fail in another. time-machine instead interprets dates and naive datetimes in UTC so they are fixed points in time. Provide time zones where required.

  • freezegun’s tick() method has been implemented as shift(), to avoid confusion with the tick argument. It also requires an explicit delta rather than defaulting to 1 second.

  • freezegun’s tz_offset argument is not supported, since it only partially mocks the current time zone. Time zones are more complicated than a single offset from UTC, and freezegun only uses the offset in time.localtime(). Instead, time-machine will mock the current time zone if you give it a datetime with a ZoneInfo timezone.

Some features aren’t supported like the auto_tick_seconds argument. These may be added in a future release.

If you are only fairly simple function calls, you should be able to migrate by replacing calls to freezegun.freeze_time() and libfaketime.fake_time() with time_machine.travel().

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

time-machine-2.14.1.tar.gz (25.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

time_machine-2.14.1-cp312-cp312-win_arm64.whl (18.3 kB view details)

Uploaded CPython 3.12Windows ARM64

time_machine-2.14.1-cp312-cp312-win_amd64.whl (19.9 kB view details)

Uploaded CPython 3.12Windows x86-64

time_machine-2.14.1-cp312-cp312-win32.whl (19.1 kB view details)

Uploaded CPython 3.12Windows x86

time_machine-2.14.1-cp312-cp312-musllinux_1_1_x86_64.whl (38.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

time_machine-2.14.1-cp312-cp312-musllinux_1_1_i686.whl (36.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

time_machine-2.14.1-cp312-cp312-musllinux_1_1_aarch64.whl (38.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

time_machine-2.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (34.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

time_machine-2.14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (33.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

time_machine-2.14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (31.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

time_machine-2.14.1-cp312-cp312-macosx_14_0_arm64.whl (17.2 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

time_machine-2.14.1-cp312-cp312-macosx_10_9_x86_64.whl (16.8 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

time_machine-2.14.1-cp312-cp312-macosx_10_9_universal2.whl (20.5 kB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

time_machine-2.14.1-cp311-cp311-win_arm64.whl (18.3 kB view details)

Uploaded CPython 3.11Windows ARM64

time_machine-2.14.1-cp311-cp311-win_amd64.whl (19.9 kB view details)

Uploaded CPython 3.11Windows x86-64

time_machine-2.14.1-cp311-cp311-win32.whl (19.0 kB view details)

Uploaded CPython 3.11Windows x86

time_machine-2.14.1-cp311-cp311-musllinux_1_1_x86_64.whl (37.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

time_machine-2.14.1-cp311-cp311-musllinux_1_1_i686.whl (36.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

time_machine-2.14.1-cp311-cp311-musllinux_1_1_aarch64.whl (37.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

time_machine-2.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (32.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

time_machine-2.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

time_machine-2.14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

time_machine-2.14.1-cp311-cp311-macosx_10_9_x86_64.whl (16.8 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

time_machine-2.14.1-cp311-cp311-macosx_10_9_universal2.whl (20.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

time_machine-2.14.1-cp310-cp310-win_arm64.whl (18.4 kB view details)

Uploaded CPython 3.10Windows ARM64

time_machine-2.14.1-cp310-cp310-win_amd64.whl (20.0 kB view details)

Uploaded CPython 3.10Windows x86-64

time_machine-2.14.1-cp310-cp310-win32.whl (19.1 kB view details)

Uploaded CPython 3.10Windows x86

time_machine-2.14.1-cp310-cp310-musllinux_1_1_x86_64.whl (38.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

time_machine-2.14.1-cp310-cp310-musllinux_1_1_i686.whl (36.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

time_machine-2.14.1-cp310-cp310-musllinux_1_1_aarch64.whl (38.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

time_machine-2.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (34.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

time_machine-2.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

time_machine-2.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (32.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

time_machine-2.14.1-cp310-cp310-macosx_10_9_x86_64.whl (17.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

time_machine-2.14.1-cp310-cp310-macosx_10_9_universal2.whl (20.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

time_machine-2.14.1-cp39-cp39-win_arm64.whl (18.4 kB view details)

Uploaded CPython 3.9Windows ARM64

time_machine-2.14.1-cp39-cp39-win_amd64.whl (20.0 kB view details)

Uploaded CPython 3.9Windows x86-64

time_machine-2.14.1-cp39-cp39-win32.whl (19.1 kB view details)

Uploaded CPython 3.9Windows x86

time_machine-2.14.1-cp39-cp39-musllinux_1_1_x86_64.whl (38.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

time_machine-2.14.1-cp39-cp39-musllinux_1_1_i686.whl (36.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

time_machine-2.14.1-cp39-cp39-musllinux_1_1_aarch64.whl (37.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

time_machine-2.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (34.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

time_machine-2.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

time_machine-2.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (32.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

time_machine-2.14.1-cp39-cp39-macosx_10_9_x86_64.whl (17.0 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

time_machine-2.14.1-cp39-cp39-macosx_10_9_universal2.whl (20.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

time_machine-2.14.1-cp38-cp38-win_amd64.whl (20.0 kB view details)

Uploaded CPython 3.8Windows x86-64

time_machine-2.14.1-cp38-cp38-win32.whl (19.1 kB view details)

Uploaded CPython 3.8Windows x86

time_machine-2.14.1-cp38-cp38-musllinux_1_1_x86_64.whl (39.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

time_machine-2.14.1-cp38-cp38-musllinux_1_1_i686.whl (37.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

time_machine-2.14.1-cp38-cp38-musllinux_1_1_aarch64.whl (39.4 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

time_machine-2.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (35.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

time_machine-2.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (35.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

time_machine-2.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (33.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

time_machine-2.14.1-cp38-cp38-macosx_10_9_x86_64.whl (17.0 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

time_machine-2.14.1-cp38-cp38-macosx_10_9_universal2.whl (20.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file time-machine-2.14.1.tar.gz.

File metadata

  • Download URL: time-machine-2.14.1.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for time-machine-2.14.1.tar.gz
Algorithm Hash digest
SHA256 57dc7efc1dde4331902d1bdefd34e8ee890a5c28533157e3b14a429c86b39533
MD5 e7dac75fed96300e1eef92094520f58f
BLAKE2b-256 dcc1ca7e6e7cc4689dadf599d7432dd649b195b84262000ed5d87d52aafcb7e6

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-win_arm64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 edea570f3835a036e8860bb8d6eb8d08473c59313db86e36e3b207f796fd7b14
MD5 31d49a1ccaed3d2708e14653bbe5fa46
BLAKE2b-256 225e19db2889ac0930ffa3e128206422d56ff96c19a610cb6c81200d67e0af19

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 36aa4f17adcd73a6064bf4991a29126cac93521f0690805edb91db837c4e1453
MD5 5de0c0bf6ac6fab669584e270b755bca
BLAKE2b-256 bea827a4937a4126a9fa6cf3ee1c2c6c9b5471db88e14c2babbd7546ab497b02

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: time_machine-2.14.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 6706eb06487354a5e219cacea709fb3ec44dec3842c6218237d5069fa5f1ad64
MD5 7dc3eaa0e8665ffb4dfefcc1e0c0435e
BLAKE2b-256 886cc7f62a1beb11749aeae0b055106d4982bf725cecec20db0491f67f1f360c

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d63ef00d389fa6d2c76c863af580b3e4a8f0ccc6a9aea8e64590588e37f13c00
MD5 6d20ae603d3b9ecee853c13a3e708732
BLAKE2b-256 b0f9aef680042be5adee01b7b0cf532b04e47456a31b10a206bd68659c06aad6

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e7fa70a6bdca40cc4a8386fd85bc1bae0a23ab11e49604ef853ab3ce92be127f
MD5 d33fe60f42431a06cb544a18c28aa2de
BLAKE2b-256 c345e6932c2c73e4f6ff575f56c137fe636fe6074785e7ef2dad6e767cd73eea

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c77a616561dd4c7c442e9eee8cbb915750496e9a5a7fca6bcb11a9860226d2d0
MD5 1bf6e5cd0a0bda85161b2b94303334e8
BLAKE2b-256 7ea1ff47ac095674a0b20cba2e511662b04b2ffef128e2fbe894fff7e21db930

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7fd7d188b4f9d358c6bd477daf93b460d9b244a4c296ddd065945f2b6193c2bd
MD5 1937f0fb3856b03656f11525c50bb3c9
BLAKE2b-256 317e7083ec1cfdd8fb1246f6c743d13f791009c7d23c86918943c0098c62d8a7

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a927d87501da8b053a27e80f5d0e1e58fbde4b50d70df2d3853ed67e89a731cf
MD5 e56c60661a4fdacc165b65c9119fe0e0
BLAKE2b-256 8f68f8570de2080ea01ff28a8510ede07eaec3581efb16a49e8da2c939554c2c

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 99e6f013e67c4f74a9d8f57e34173b2047f2ad48f764e44c38f3ee5344a38c01
MD5 5c0905607b49b3b4d682ca6b505f8cd3
BLAKE2b-256 12ea1029dd2776c3cc42266919fb294f122b87d7480ceb84c226275f7f6fb2a4

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 39de6d37a14ff8882d4f1cbd50c53268b54e1cf4ef9be2bfe590d10a51ccd314
MD5 3fd874e468a2080b9a22c72edd1297a6
BLAKE2b-256 428c5e32b5b8bf6be7938e1f7964ba159c85ac4c11123e2e2f296f2578598a6e

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d45bd60bea85869615b117667f10a821e3b0d3603c47bfd105b45d1f67156fc8
MD5 6a097de14e7398d5ad62509b799c31e6
BLAKE2b-256 6b0942850355ba563f92022c9512445b5973d93a806e601bb5ff4e9340675556

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 30a4a18357fa6cf089eeefcb37e9549b42523aebb5933894770a8919e6c398e1
MD5 05f793cdf3314e623f71d707bba824ef
BLAKE2b-256 3f4f3dc3995be802f820fa608bc9eab2ece3399ddb7ba8306faf890a5cb96bb6

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 6ced9de5eff1fb37efb12984ab7b63f31f0aeadeedec4be6d0404ec4fa91f2e7
MD5 e7afd35192c7e094a4e914e6e28c58d2
BLAKE2b-256 005c8e030a8ea64c519586021647abd1ffcc307122c530b07e70d46b2b508747

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee68597bd3fa5ab94633c8a9d3ebd4032091559610e078381818a732910002bc
MD5 9174366740c7cae31860229a54b77be5
BLAKE2b-256 9129bf1165eb607d91838e5e3a8bd6a7ef75156a10de45ac8d078bba8a5ef155

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: time_machine-2.14.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 27f735cba4c6352ad7bc53ce2d86b715379261a634e690b79fac329081e26fb6
MD5 ddfc053a08f5a56338e21b25f79dbbce
BLAKE2b-256 e2d2aae19ebd8448663255c98d55cf0ca18c105edf201b6fa8a82a1c741e3f14

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4f00f67d532da82538c4dfbbddc587e70c82664f168c11e1c2915d0c85ec2fc8
MD5 d41a7689ad54374f6931c0564de62a8d
BLAKE2b-256 47808b4f96d5b5137f4bc7e4ac5028d6f8614291ba2f651a3b4cc552c18560c5

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 59a02c3d3b3b29e2dc3a708e775c5d6b951b0024c4013fed883f0d2205305c9e
MD5 0ae1f119dab676564b6e2001bc8caeb3
BLAKE2b-256 3d636fb938009f6e637ac53240b6ee1fe17eaa57345ec0c9992b18f1dca0f6bd

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 90725f936ad8b123149bc82a46394dd7057e63157ee11ba878164053fa5bd8ad
MD5 d080a07aa0f25b6a15f937276f65bbff
BLAKE2b-256 b2ea28e57b2e63839e406e8699c9e7ab8717f98d0dcc4bec9c5aec5d0e1a7667

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0a39dba3033d9c28347d2db16bcb16041bbf4e9032e2b70023686b6f95deac9d
MD5 caf782436c759e41e23d4173fc6c2e0c
BLAKE2b-256 77136b15375a24f0a6bead3ba1106004a6ee069e2ad9f3ead4a264513c1a5d85

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 993ab140eb5678d1ee7f1197f08e4499dc8ea883ad6b8858737de70d509ec5b5
MD5 73cce5250db4ba954cef5e2a5802dec8
BLAKE2b-256 9b35d8fc9ecddfce1fe1e44ac80489d06eddcea65828504277ed160b2ac9aade

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e030d2051bb515251d7f6edd9bbcf79b2b47811e2c402aba9c126af713843d26
MD5 6906ebd40c08a0d51aeb32cd3ae7c43c
BLAKE2b-256 9780d3515a8bd3c3b6189fdf412052f61451c5eb1638d3db9f6a0f41d16b2ed4

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0312b47f220e46f1bbfaded7fc1469882d9c2a27c6daf44e119aea7006b595cc
MD5 968f3654ccb69f7c35909b01014e98f9
BLAKE2b-256 b93a4c44df5deb5427a93f081ff4d9fb33bd8954fe3e127b81c350e3a83858cd

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 442d42f1b0ef006f03a5a34905829a1d3ac569a5bcda64d29706e6dc60832f94
MD5 1ba08d8aca544874f400e550bd3180b9
BLAKE2b-256 f67765a24ee3fb6274c145f3fc63ecd472641a252921e90a6e3f4f426aef8f75

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 19db257117739b2dda1d57e149bb715a593313899b3902a7e6d752c5f1d22542
MD5 af3e858350885b0bdf8689fe4b8a9e35
BLAKE2b-256 c8dc4084f981a4316b940765f420fe4bcb2dd7ef7d14621543695877e7b0af94

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fb467d6c9e9ab615c8cf22d751d34296dacf801be323a57adeb4ff345cf72473
MD5 ed8982c92bcbf3cba141893897e20f8d
BLAKE2b-256 57b8bfd33e45daf3d9e064bbcdc8b3f2f9648c84ff60520b50fd6a13d6673d60

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: time_machine-2.14.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 0e120f95c17bf8e0c097fd8863a8eb24054f9b17d9b17c465694be50f8348a3a
MD5 a92fcf91862e4b8d036688f91082480b
BLAKE2b-256 e581806dddc923224406058ddd98997f7a01065ba6812844fb9bbc1515c74b18

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 be215eb63d74a3d580f7924bb4209c783fabcfb3253073f4dcb3424d57d0f518
MD5 8025eac971247f3896c984ebc3ed1034
BLAKE2b-256 db9615c7cec060d10959b25bd6b6d67f0f31a766778a2162499ec2222ffda415

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b951b6f4b8a752ab8c441df422e21954a721a0a5276aa3814ce8cf7205aeb6da
MD5 80cf7c6a488c4c1621031bf29b931dc0
BLAKE2b-256 fb77ebf4a342b05f628dae51fb1a15fcc7d68df2e8e2469fd69c170cb2e45f67

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 364353858708628655bf9fa4c2825febd679c729d9e1dd424ff86845828bac05
MD5 194749c226610eec0f6e0b46b4e60299
BLAKE2b-256 6da3a6f3f24706eb26fa2e729122df043f45b68a8cda40e676ba7a720aa58f59

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ddbbba954e9a409e7d66d60df2b6b8daeb897f8338f909a92d9d20e431ec70d1
MD5 04b75fe632e6511581bdbf0cccb843da
BLAKE2b-256 82b436e8fdb764b5a9e749a783d18f937e5257d76015508a0f3c504b7b82ea29

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b94274abe24b6a90d8a5c042167a9a7af2d3438b42ac8eb5ede50fbc73c08db
MD5 d5f49ab5030ce04c594ea28aa672f8f8
BLAKE2b-256 6669e88badf012710221ca01bff0bc00467b165f7f2d3d526dca5204a6da93ca

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 72a153b085b4aee652d6b3bf9019ca897f1597ba9869b640b06f28736b267182
MD5 4cbdd902ab6a257f84827e61bb68d6c0
BLAKE2b-256 4d4d054fff82b0465a33132dd288f5968d8c65813b6a73e546f381f5ddce7a5d

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 06e913d570d7ee3e199e3316f10f10c8046287049141b0a101197712b4eac106
MD5 84fe96870b4518372f675aa926fedd11
BLAKE2b-256 ed72b625138c0bd98b27bd870c676bce59f26e975a0a809dfa3e91e4ef95f7d9

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 528d588d1e8ba83e45319a74acab4be0569eb141113fdf50368045d0a7d79cee
MD5 fcfe8832de0423dd2fd30eacc2195d78
BLAKE2b-256 9b7b0ef163a82e03df536a50ad658a305bb244d658619a7163cc06dc249986e8

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-win_arm64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 2c774f4b603a36ca2611327c57aa8ce0d5042298da008238ee5234b31ce7b22c
MD5 076f4835f8adb0783243d20b23408a39
BLAKE2b-256 005c99b9fa4a26cc6e4babb5455b3686f51c6108f4f020c682be26c82fc163da

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f5d371a5218318121a6b44c21438258b6408b8bfe7ccccb754cf8eb880505576
MD5 1f71ee5f77650fc85bd171a78fefaf9d
BLAKE2b-256 7c2ac0538aaa3da50978391153c7d79bb22fe5d9e2f2bee7b2df27c5c13657f1

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: time_machine-2.14.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 5e19b19d20bfbff8c97949e06e150998cf9d0a676e1641fb90597e59a9d7d5e2
MD5 dd31d46bed76b9601f3041a9550b8e19
BLAKE2b-256 9306049ee355ab52b91ab6cf61cff53b563178cea0d4987646767ceb34da61b9

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 dd26039a9ffea2d5ee1309f2ec9b656d4925371c65563822d52e4037a4186eca
MD5 096731f7baddd4156fd7732b179f92cc
BLAKE2b-256 8d8e1468b4317f05d090e82f42bcf2c5a9bb3f51e53a431f307db17e112d2d3d

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 fd8645b820f7895fdafbc4412d1ce376956e36ad4fd05a43269aa06c3132afc3
MD5 725c7867d94dbc1ad04d3286acdec71e
BLAKE2b-256 2a5c0ab65ee3fba5ec1a325f5aa5cef244f81655a7cdb8f94b50c29c1eca7335

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 cab4abf4d1490a7da35db5a321ff8a4d4a2195f4832a792c75b626ffc4a5584c
MD5 f73f537358cb304767f7ea44c9bdfe5a
BLAKE2b-256 34175c6156f21762b474118def598bd6f596ea40be2e03ec50cdb98967027fa2

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 adfbfa796dd96383400b44681eacc5ab06d3cbfad39c30878e5ead0bfdca808a
MD5 566a8fd837197283f3831ae00548a238
BLAKE2b-256 8940f20894071b52fcebc4deaeb4cf16f62f5f2f8eedacddd077065d7a00eb64

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 107caed387438d689180b692e8d84aa1ebe8918790df83dc5e2146e60e5e0859
MD5 db8ca2cda68cf3062b3c5a2a68ee5efe
BLAKE2b-256 1c8243e08d8514d46ba5f9bf1d33598ebb3c2331a6f51be0aade2957d5b062a6

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 31e6e9bff89b7c6e4cbc169ba1d00d6c107b3abc43173b2799352b6995cf7cb2
MD5 d240ea4402fc52bcace69b1dc0cd8868
BLAKE2b-256 9fb5b37015fc7fa5ce2ff7df6ed42f091723103ea1f72071ca40a3c290832abf

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 416d94eab7723c7d8a37fe6b3b1882046fdbf3c31b9abec3cac87cf35dbb8230
MD5 9ee77bcfe5875c95ae1642bef9d536a3
BLAKE2b-256 65f3e2e434adef5ba04d77772061b3345d03bdec6470ad856a1c1bebcf991977

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bb3a2518c52aa944989b541e5297b833388eb3fe72d91eb875b21fe771597b04
MD5 3b6a707a302fb73c2fd6fa8dbd64efa0
BLAKE2b-256 f5093063453cbab0535c82bc44f84a6e7e8a7d9bd2b92ae8ed98d1b9dbb61dee

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 15cf3623a4ba2bb4fce4529295570acd5f6c6b44bcbfd1b8d0756ce56c38fe82
MD5 d9a8269eed3cc25fa61e4e6fad1fbf84
BLAKE2b-256 a40f80af6fb3a86e5d1cef127664149db6b2ed01cdbd460d8b08626bc6fd0816

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-win32.whl.

File metadata

  • Download URL: time_machine-2.14.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 b0f8ba70fbb71d7fbc6d6adb90bed72a83db15b3318c7af0060467539b2f1b63
MD5 077f0601f53904d7959b6b83f9cb7519
BLAKE2b-256 2cbc3aa595e9a5fef18d266aea9ebbe0112e698c8f53501579451b440cb8ff5a

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a75e24e59f58059bbbc50e7f97aa6d126bbc2f603a8a5cd1e884beffcf130d8f
MD5 d1a5c243a8ad217ac03c3b4552092a47
BLAKE2b-256 97629b3d3cbed37319257595e8df8305bc7e34ff8920b64b9479f8e652434291

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 5f3d5c21884aee10e13b00ef45fab893a43db9d59ec27271573528bd359b0ef5
MD5 ea1eab5dfe0862c129fb75532e84ce10
BLAKE2b-256 71b511111a20dc687ce7cca970ff229d062769f7f7789f483eeb4411a177084a

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fe508a6c43fb72fa4f66b50b14684cf58d3db95fed617177ec197a7a90427bae
MD5 d4532ee42ecd7f6642123d7516b0bfbe
BLAKE2b-256 54bfcf0efbadc88008182e8a690628ab2a6268cbad2cfe8c6ff8c2f63327b427

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc48d3934109b0bdbbdc5e9ce577213f7148a92fed378420ee13453503fe4db9
MD5 73727aff300833e55683d8aae25cba32
BLAKE2b-256 d2f0bedae4c631ee04b8431c41749f3d37dcf1c2e0285f278a44cbd5520b047e

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39fceeb131e6c07b386de042ce1016be771576e9516124b78e75cbab94ae5041
MD5 6757f362cc94a582f852f6e76809dc7e
BLAKE2b-256 e910e68c705d13ee5d80b30913bf30596222016d95d0069e0cccf94bb4df2403

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7161cea2ff3244cc6075e365fab89000df70ead63a3da9d473983d580558d2de
MD5 1e9217508380a426f9ce3c3744aa222b
BLAKE2b-256 0b1ebaab75e98a2eac92e8d7f79f88617fd41ac90602ef5bb6f1f908e2c97f5d

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c69c0cb498c86ef843cd15964714e76465cc25d64464da57d5d1318f499de099
MD5 778ad42953078c6d67d7c1a800ffa01a
BLAKE2b-256 fe7e7f897249051d54133c430c922c4fb651f3df1b005f623128fe17ea8c74a7

See more details on using hashes here.

File details

Details for the file time_machine-2.14.1-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for time_machine-2.14.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 87e80408e6b6670e9ce33f94b1cc6b72b1a9b646f5e19f586908129871f74b40
MD5 28cb35fbb87eb4ec0f476a11fa1641a3
BLAKE2b-256 384c2e62b177ac276ccf97e8657c6010bd3ed3edcc593bf5c6a71800f0e7d1c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page