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.

Installation

Use pip:

python -m pip install time-machine

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


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.


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.13.0.tar.gz (24.6 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.13.0-cp312-cp312-win_arm64.whl (18.3 kB view details)

Uploaded CPython 3.12Windows ARM64

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

Uploaded CPython 3.12Windows x86-64

time_machine-2.13.0-cp312-cp312-win32.whl (19.0 kB view details)

Uploaded CPython 3.12Windows x86

time_machine-2.13.0-cp312-cp312-musllinux_1_1_x86_64.whl (38.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

time_machine-2.13.0-cp312-cp312-musllinux_1_1_i686.whl (36.7 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

time_machine-2.13.0-cp312-cp312-musllinux_1_1_aarch64.whl (38.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

time_machine-2.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

time_machine-2.13.0-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.13.0-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.13.0-cp312-cp312-macosx_10_9_x86_64.whl (16.8 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

time_machine-2.13.0-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.13.0-cp311-cp311-win_arm64.whl (18.3 kB view details)

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11Windows x86

time_machine-2.13.0-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.13.0-cp311-cp311-musllinux_1_1_i686.whl (36.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

time_machine-2.13.0-cp311-cp311-musllinux_1_1_aarch64.whl (37.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

time_machine-2.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (32.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

time_machine-2.13.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.4 kB view details)

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

time_machine-2.13.0-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.13.0-cp311-cp311-macosx_13_0_arm64.whl (17.2 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

time_machine-2.13.0-cp311-cp311-macosx_10_9_universal2.whl (20.5 kB view details)

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

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

Uploaded CPython 3.10Windows ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10Windows x86

time_machine-2.13.0-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.13.0-cp310-cp310-musllinux_1_1_i686.whl (36.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

time_machine-2.13.0-cp310-cp310-musllinux_1_1_aarch64.whl (38.0 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

time_machine-2.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (34.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

time_machine-2.13.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.4 kB view details)

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

time_machine-2.13.0-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.13.0-cp310-cp310-macosx_10_9_x86_64.whl (17.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

time_machine-2.13.0-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.13.0-cp39-cp39-win_arm64.whl (18.4 kB view details)

Uploaded CPython 3.9Windows ARM64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9Windows x86

time_machine-2.13.0-cp39-cp39-musllinux_1_1_x86_64.whl (37.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

time_machine-2.13.0-cp39-cp39-musllinux_1_1_i686.whl (36.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

time_machine-2.13.0-cp39-cp39-musllinux_1_1_aarch64.whl (37.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

time_machine-2.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (34.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

time_machine-2.13.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (34.1 kB view details)

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

time_machine-2.13.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (32.3 kB view details)

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

time_machine-2.13.0-cp39-cp39-macosx_10_9_x86_64.whl (16.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

time_machine-2.13.0-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.13.0-cp38-cp38-win_amd64.whl (20.0 kB view details)

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8Windows x86

time_machine-2.13.0-cp38-cp38-musllinux_1_1_x86_64.whl (39.5 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ i686

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

time_machine-2.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (35.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

time_machine-2.13.0-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.13.0-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.13.0-cp38-cp38-macosx_10_9_x86_64.whl (16.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

time_machine-2.13.0-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.13.0.tar.gz.

File metadata

  • Download URL: time_machine-2.13.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for time_machine-2.13.0.tar.gz
Algorithm Hash digest
SHA256 c23b2408e3adcedec84ea1131e238f0124a5bc0e491f60d1137ad7239b37c01a
MD5 16552d9c49293b060c201d78b5bf3a71
BLAKE2b-256 4850d0c443bc1287dc20a22597346864175774d39f40239223f95fb03d70a044

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 0cc116056a8a2a917a4eec85661dfadd411e0d8faae604ef6a0e19fe5cd57ef1
MD5 6d8fc41ec18fc8a9fc70a87f69443758
BLAKE2b-256 3891b72d3777729e875299e751763866a213ec474e771a2d57e3e88e8e773a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 02b33a8c19768c94f7ffd6aa6f9f64818e88afce23250016b28583929d20fb12
MD5 5c5e1fcaaf6eff40fa8fae814af7bf42
BLAKE2b-256 031ea47b7b9645e81321727b9a86f55b59b36f19f1a82d25d71e96587974c497

See more details on using hashes here.

File details

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

File metadata

  • Download URL: time_machine-2.13.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 f5fa9610f7e73fff42806a2ed8b06d862aa59ce4d178a52181771d6939c3e237
MD5 ed069fca9194bd9b6a3699bc12071c0e
BLAKE2b-256 55021927b632ae17f2494d994cd2a511412ac8bc8324a62e42c48edb465192c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4f2ae8d0e359b216b695f1e7e7256f208c390db0480601a439c5dd1e1e4e16ce
MD5 abb74baa7358ebf33785bb60f80b0d71
BLAKE2b-256 c837425c24e95278252f309c7c801c4a097793f117e8d5e92453ed340d7ccdda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6c16d90a597a8c2d3ce22d6be2eb3e3f14786974c11b01886e51b3cf0d5edaf7
MD5 ba71407ead1b9d73ae6999d84f1c8ab0
BLAKE2b-256 836c90c5c8e8f375eadd9e701eeecae5958bff150e204f3de44ad4a511551d66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 42ef5349135626ad6cd889a0a81400137e5c6928502b0817ea9e90bb10702000
MD5 ed258353a0dbf120791e386a541b4f20
BLAKE2b-256 d1257ad750815ad024f60709561cf2c118cb1c3fd1c7af9971c78a51e3139de2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 71acbc1febbe87532c7355eca3308c073d6e502ee4ce272b5028967847c8e063
MD5 ce4395701d6536cd30e768580ba17058
BLAKE2b-256 e76e9eb8df04842f93ca78071653471d80345f9590d25e6cedf6e22823790faf

See more details on using hashes here.

File details

Details for the file time_machine-2.13.0-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.13.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e3a2611f8788608ebbcb060a5e36b45911bc3b8adc421b1dc29d2c81786ce4d
MD5 839585cc8d10a3f4a8b56ec269a91b1a
BLAKE2b-256 d15b869fac3fe82c91cefb9e0319f63a8f8905e12b45467d4d3b42b060cfa4ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dec0ec2135a4e2a59623e40c31d6e8a8ae73305ade2634380e4263d815855750
MD5 68ca74a531bcd591a9ec05270592d209
BLAKE2b-256 6b331bdbd0d5eb234bd54c6f5d3ffca7b1f0f7654efd31d45853102e27cf078a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e58d82fe0e59d6e096ada3281d647a2e7420f7da5453b433b43880e1c2e8e0c5
MD5 583c4fcf9d82a9d186cfc9b0a5aa4b8e
BLAKE2b-256 7762bfcbc5642028d68ca3784be365a9cb7c0309807e4c8229e04cbbf5750ac8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 34dcdbbd25c1e124e17fe58050452960fd16a11f9d3476aaa87260e28ecca0fd
MD5 f60354db8f3ac80afceb4ec97898bada
BLAKE2b-256 afa561f507e2677816c3e33bbcef926576b7a3be23b4d5410681926625ebe6cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 e9935aff447f5400a2665ab10ed2da972591713080e1befe1bb8954e7c0c7806
MD5 f5c1e9cb76a915f69032751ebde2e729
BLAKE2b-256 d82d1e2a12bc1297912aee454c40883e15b4900dc40bc2680d4269152a63d61b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 62fd14a80b8b71726e07018628daaee0a2e00937625083f96f69ed6b8e3304c0
MD5 dc4f2a2fce34229825e127e2bf9e0a10
BLAKE2b-256 594d7bdf88f9e7227bb52d6cb18382ea28ba3b9de242125f75385e2c13c88318

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 5f87787d562e42bf1006a87eb689814105b98c4d5545874a281280d0f8b9a2d9
MD5 401450b6da8bcd471e2b970542aa97ef
BLAKE2b-256 896c03bf2d31a67aa9f37d60f4c948386abbd997312074461910b4cbb531ceba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 19a3b10161c91ca8e0fd79348665cca711fd2eac6ce336ff9e6b447783817f93
MD5 93fc3ee72a2b534cc12ea6aa3430f80a
BLAKE2b-256 86ea0a16eb7df5b7bf03e93e37b4ab02d999a9b44310a011d5398e2b3e79d094

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 1ac8ff145c63cd0dcfd9590fe694b5269aacbc130298dc7209b095d101f8cdde
MD5 84f5d2374ee4bac3c372ae833be00a60
BLAKE2b-256 daa1b9a0e8a44411b29207d7e8cf61f0cef1e2acb34a06c45f8f7b9435fb247e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 32b71e50b07f86916ac04bd1eefc2bd2c93706b81393748b08394509ee6585dc
MD5 6d034dabc62c0332b4bb92d137cd486a
BLAKE2b-256 b1e0fc717454526870cf992c30ad093c48c36c053b5fe1cb8ca94b969fe107e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cfef4ebfb4f055ce3ebc7b6c1c4d0dbfcffdca0e783ad8c6986c992915a57ed3
MD5 49dcc5ea62919ecb5e028d8fe94993c8
BLAKE2b-256 cfb26fb6526d2612aaa91077a1c3c88a945371e677fcfaf44cfb14f702235679

See more details on using hashes here.

File details

Details for the file time_machine-2.13.0-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.13.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21bef5854d49b62e2c33848b5c3e8acf22a3b46af803ef6ff19529949cb7cf9f
MD5 3d1fa0c1f60eea0785f0fb4f70a3cfeb
BLAKE2b-256 40aa4fd8494dac02abefc988127b81af98409cd63d99ed6b8d628d589701f897

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9f128db8997c3339f04f7f3946dd9bb2a83d15e0a40d35529774da1e9e501511
MD5 ca36013a26b920543fc06eec35a99b52
BLAKE2b-256 2c417ca58458195f377b8522edb5fe6f4a10b15aeb6fdd44bcf1178f0b423ed6

See more details on using hashes here.

File details

Details for the file time_machine-2.13.0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8d526cdcaca06a496877cfe61cc6608df2c3a6fce210e076761964ebac7f77cc
MD5 42814acee739dedd2d92c0d808fe2127
BLAKE2b-256 57d8e53b7a60325237c370df2fd57c3df121fb24db9484c403e0d67a2fcd8432

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2bd4169b808745d219a69094b3cb86006938d45e7293249694e6b7366225a186
MD5 785b684e78e0d4aa9f562dd59f27dd4d
BLAKE2b-256 835d19a56c5aaad6b5979cc03599f62969fdfd0405199b7db0e463ec17b7affb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e9a9d150e098be3daee5c9f10859ab1bd14a61abebaed86e6d71f7f18c05b9d7
MD5 0e37ff468bed445ae151959a5dcac313
BLAKE2b-256 4014b98479ddbb07f65c888ac9e2d5619aa567bbeafa8d7f0176f91d48da5905

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 5aee23cd046abf9caeddc982113e81ba9097a01f3972e9560f5ed64e3495f66d
MD5 e35e0a76d54b8c0aa120ef072c1d16cf
BLAKE2b-256 72281d38a8681247edfbbeafe2ec9e68b16536b2ca4950c447bc970da72eeacc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1812e48c6c58707db9988445a219a908a710ea065b2cc808d9a50636291f27d4
MD5 1399c966f7e8b2913563fb4e94799073
BLAKE2b-256 7e7de2182c14a642d759353e55611641dbbcb5e451ba70eab82a267fd66e906d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 3a7a0a49ce50d9c306c4343a7d6a3baa11092d4399a4af4355c615ccc321a9d3
MD5 ea598237fbacae182cf17f2be61beac1
BLAKE2b-256 0a836ee00de0dc531e5038c91919b383bb8975f303222eaf40344344531fe84c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bdfe4a7f033e6783c3e9a7f8d8fc0b115367330762e00a03ff35fedf663994f3
MD5 5407b32c906db8e34fd390943546b1c3
BLAKE2b-256 bf0a45ef2d9be3b096cad9dc2fb45238f7dea1f854e37fb84e1586853fc40626

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 12eed2e9171c85b703d75c985dab2ecad4fe7025b7d2f842596fce1576238ece
MD5 c7cf4a02f1a474e3cc2379d55e61e3ce
BLAKE2b-256 6a418f36b7b9076c2af796a005870853c30c6e3dbc631505f5f4387c5383465c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0db97f92be3efe0ac62fd3f933c91a78438cef13f283b6dfc2ee11123bfd7d8a
MD5 24cbffcd99888b5e7d0aa01e6306bafb
BLAKE2b-256 fe261c60b6ff67fd066f8babe38da53ebfb766a37ae675e4baa6a80be3d09ba3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 679cbf9b15bfde1654cf48124128d3fbe52f821fa158a98fcee5fe7e05db1917
MD5 3abb4edfecae46afff3bc74390e56971
BLAKE2b-256 ba2fbfa08c4c3ea881089121bc7de8381fa1018861909d5753596f1ae654448c

See more details on using hashes here.

File details

Details for the file time_machine-2.13.0-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.13.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dabb3b155819811b4602f7e9be936e2024e20dc99a90f103e36b45768badf9c3
MD5 17106fe1ecfdec30f296054bc785a965
BLAKE2b-256 3528702687b7da7362c1619ba518fa7b51cb5522c443d7525e42a9115cfff81c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a26bdf3462d5f12a4c1009fdbe54366c6ef22c7b6f6808705b51dedaaeba8296
MD5 9d466e73a4882476830c55a92efa2c43
BLAKE2b-256 1f87c1f249676d84f0a1d9ac0c9d3638036f18628ab9d5c0bcfdc11fadeb2b7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ccbce292380ebf63fb9a52e6b03d91677f6a003e0c11f77473efe3913a75f289
MD5 123cc44180c74f6c903d5c0dd03340fa
BLAKE2b-256 c0d649ec4d09f3c44564a0a6d50a6150d17fa065407dc38e1d32f6360cb987a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 685d98593f13649ad5e7ce3e58efe689feca1badcf618ba397d3ab877ee59326
MD5 aa79131a5ba07f521984ec2c91f523b8
BLAKE2b-256 d18b5a49b6a2534310b757422082b0e6d89e8e2f6465b4aab2988f9e42fbd94e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 3c87856105dcb25b5bbff031d99f06ef4d1c8380d096222e1bc63b496b5258e6
MD5 51c6b3a497416ac1f898487cadd778c6
BLAKE2b-256 423d0b1123ba5615bc7b2266a7d9b45b698537d3ae1beba55eaa54d1a3ca15b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 88601de1da06c7cab3d5ed3d5c3801ef683366e769e829e96383fdab6ae2fe42
MD5 0e03825ef0ee918fcdd024617e05e09d
BLAKE2b-256 771b6b4eb06cc641e4a983a5d089b2fd0dc50b390c90e442164a9db7945fed89

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 1a22be4df364f49a507af4ac9ea38108a0105f39da3f9c60dce62d6c6ea4ccdc
MD5 affd4a49061df42b6347a7a3df703a20
BLAKE2b-256 7b4ad90e9eacd3de71ff7d8250dc71d39494a668e2fce3adff6f12410f922a5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0c9829b2edfcf6b5d72a6ff330d4380f36a937088314c675531b43d3423dd8af
MD5 9bb31cad5b8ced32d4bfb128bc5af506
BLAKE2b-256 5e9d4b0416e505d1dcc474638491740d269b9397efc18f6e96f97fc1c8655863

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 66fb3877014dca0b9286b0f06fa74062357bd23f2d9d102d10e31e0f8fa9b324
MD5 d577cd11c70f0208aa8ab55adf111435
BLAKE2b-256 a0fb0b15dd940913b29b84e58f66da2bcf1b6235fe9dacabf60aa1970de2343a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 924377d398b1c48e519ad86a71903f9f36117f69e68242c99fb762a2465f5ad2
MD5 c7a6ad83bbb269afbb7aaccf41d5f921
BLAKE2b-256 1e22b8c0a9a49a6ed155e401d7c1d737e97f527b243793aa8c833649e9119ad2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5fe3fda5fa73fec74278912e438fce1612a79c36fd0cc323ea3dc2d5ce629f31
MD5 1c7f4b032d8d3f64a192784dd245dc40
BLAKE2b-256 4eebfc28931e5791d4a73757a24a797e50ae8b8faf1915bad2b382f11ce04181

See more details on using hashes here.

File details

Details for the file time_machine-2.13.0-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.13.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e433827eccd6700a34a2ab28fd9361ff6e4d4923f718d2d1dac6d1dcd9d54da6
MD5 5355efab2d3ee3c1bc753f745899133f
BLAKE2b-256 4ec38d4f38666da40155271a1a5b630fc417ff8642ffba828cfdcda71657593d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5c6245db573863b335d9ca64b3230f623caf0988594ae554c0c794e7f80e3e66
MD5 2051452bb318eb91fcfc0f3e6c939308
BLAKE2b-256 6f1fa387a61fb7eb4a2cf53b77a539cb30a79522b5eba8b41e545fe9558d8840

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 918f8389de29b4f41317d121f1150176fae2cdb5fa41f68b2aee0b9dc88df5c3
MD5 0777bd4f10b90a848d1be2b052458eb9
BLAKE2b-256 cce4e3061f8eeeec67f95f02edea9236360cf16b6d12816df87adafbb956e339

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7693704c0f2f6b9beed912ff609781edf5fcf5d63aff30c92be4093e09d94b8e
MD5 e13be0ebc0da6f638818a76b92ee2851
BLAKE2b-256 45b964af9408666cc3d696270c84104e6ebda103caacea351b87f73e59079c19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2dc76ee55a7d915a55960a726ceaca7b9097f67e4b4e681ef89871bcf98f00be
MD5 e7a45334659b197a0a33f9e72bbe002e
BLAKE2b-256 c336bd6e1b3ba4f4d1ab984a2a141f5d52d8ba5d90c20e18f3245ad95cc74d97

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 20205422fcf2caf9a7488394587df86e5b54fdb315c1152094fbb63eec4e9304
MD5 5b465e99bc0d12d2498be34322cd4d50
BLAKE2b-256 f4703579ec6e1e9f9622f6fe36f058a32e737b75c2ce8337b8ffc9863758e165

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9fad549521c4c13bdb1e889b2855a86ec835780d534ffd8f091c2647863243be
MD5 3afa595ac35cc758e62b0d1c436f55b8
BLAKE2b-256 fdc64a17b6b16885e8007cdc574ba1f22c031895af7394d5d1448359439c4123

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 4ca20f85a973a4ca8b00cf466cd72c27ccc72372549b138fd48d7e70e5a190ab
MD5 798773d56101bcd0f004f47489069e39
BLAKE2b-256 f6b040696475640066c0f47a947bcbfa82842aa7a3a4864a1f243858bd7c1648

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b0c8f24ae611a58782773af34dd356f1f26756272c04be2be7ea73b47e5da37d
MD5 99a172fa758024064149082da0064163
BLAKE2b-256 e272285f27d4e49e889a47d2ebbd6fa8b2570512efbc864dff5d9f03895f0c49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d4a2d3db2c3b8e519d5ef436cd405abd33542a7b7761fb05ef5a5f782a8ce0b1
MD5 2fe06cff2eedaa6841a898de1de5ec21
BLAKE2b-256 58ca838d4bb74702db549993b47846f2f977ea21cd2f9c0900e5a08a5b1fa07a

See more details on using hashes here.

File details

Details for the file time_machine-2.13.0-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.13.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ab04cf4e56e1ee65bee2adaa26a04695e92eb1ed1ccc65fbdafd0d114399595a
MD5 4deccb278ef05b33498fea9483209f12
BLAKE2b-256 0421a3a88df11553099292f8e0d28ff151495ee44a003143f1210fe2ac9e13ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7558622a62243be866a7e7c41da48eacd82c874b015ecf67d18ebf65ca3f7436
MD5 b6d520e845161b4b7fea68e195fc68d2
BLAKE2b-256 0f282af18b981d560983f8d4ebd4e11496df5080fde8282e9b623c82592fc422

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 67fa45cd813821e4f5bec0ac0820869e8e37430b15509d3f5fad74ba34b53852
MD5 d0855e147ca2a54b768dabf4aa48ce81
BLAKE2b-256 8a0633f4cc76184a148474b8851c63bbffd2c1f3a4fa02bdf63ac490c0431a69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.13.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 de01f33aa53da37530ad97dcd17e9affa25a8df4ab822506bb08101bab0c2673
MD5 34b31b58c8ee7fba5b6df1b12d935593
BLAKE2b-256 c12a732ac7b8a90975cd72d75a6bb6e6c23daf13a3c2084501b2931d9cf5c655

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