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.7 to 3.11 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 float or int specifying a Unix timestamp

  • A string, which will be parsed with dateutil.parse and converted to a timestamp. Again, if the result is naive, it will be assumed to have the UTC time zone.

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.gmtime()

  • time.localtime()

  • time.clock_gettime() (only for CLOCK_REALTIME)

  • time.clock_gettime_ns() (only for CLOCK_REALTIME)

  • 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 that has one method, move_to(), which has the same signature as Coordinates.move_to(). 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"

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.9.0.tar.gz (24.1 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.9.0-cp311-cp311-win_arm64.whl (18.0 kB view details)

Uploaded CPython 3.11Windows ARM64

time_machine-2.9.0-cp311-cp311-win_amd64.whl (19.5 kB view details)

Uploaded CPython 3.11Windows x86-64

time_machine-2.9.0-cp311-cp311-win32.whl (18.7 kB view details)

Uploaded CPython 3.11Windows x86

time_machine-2.9.0-cp311-cp311-musllinux_1_1_x86_64.whl (36.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

time_machine-2.9.0-cp311-cp311-musllinux_1_1_i686.whl (35.0 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

time_machine-2.9.0-cp311-cp311-musllinux_1_1_aarch64.whl (36.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

time_machine-2.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (31.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

time_machine-2.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.1 kB view details)

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

time_machine-2.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (29.5 kB view details)

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

time_machine-2.9.0-cp311-cp311-macosx_10_9_x86_64.whl (16.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

time_machine-2.9.0-cp311-cp311-macosx_10_9_universal2.whl (19.9 kB view details)

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

time_machine-2.9.0-cp310-cp310-win_arm64.whl (18.1 kB view details)

Uploaded CPython 3.10Windows ARM64

time_machine-2.9.0-cp310-cp310-win_amd64.whl (19.6 kB view details)

Uploaded CPython 3.10Windows x86-64

time_machine-2.9.0-cp310-cp310-win32.whl (18.8 kB view details)

Uploaded CPython 3.10Windows x86

time_machine-2.9.0-cp310-cp310-musllinux_1_1_x86_64.whl (36.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

time_machine-2.9.0-cp310-cp310-musllinux_1_1_i686.whl (35.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

time_machine-2.9.0-cp310-cp310-musllinux_1_1_aarch64.whl (36.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

time_machine-2.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

time_machine-2.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (33.1 kB view details)

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

time_machine-2.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (31.4 kB view details)

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

time_machine-2.9.0-cp310-cp310-macosx_10_9_x86_64.whl (16.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

time_machine-2.9.0-cp310-cp310-macosx_10_9_universal2.whl (20.3 kB view details)

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

time_machine-2.9.0-cp39-cp39-win_arm64.whl (18.1 kB view details)

Uploaded CPython 3.9Windows ARM64

time_machine-2.9.0-cp39-cp39-win_amd64.whl (19.6 kB view details)

Uploaded CPython 3.9Windows x86-64

time_machine-2.9.0-cp39-cp39-win32.whl (18.8 kB view details)

Uploaded CPython 3.9Windows x86

time_machine-2.9.0-cp39-cp39-musllinux_1_1_x86_64.whl (36.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

time_machine-2.9.0-cp39-cp39-musllinux_1_1_i686.whl (34.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

time_machine-2.9.0-cp39-cp39-musllinux_1_1_aarch64.whl (36.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

time_machine-2.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

time_machine-2.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.8 kB view details)

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

time_machine-2.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (31.1 kB view details)

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

time_machine-2.9.0-cp39-cp39-macosx_10_9_x86_64.whl (16.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

time_machine-2.9.0-cp39-cp39-macosx_10_9_universal2.whl (20.3 kB view details)

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

time_machine-2.9.0-cp38-cp38-win_amd64.whl (19.6 kB view details)

Uploaded CPython 3.8Windows x86-64

time_machine-2.9.0-cp38-cp38-win32.whl (18.7 kB view details)

Uploaded CPython 3.8Windows x86

time_machine-2.9.0-cp38-cp38-musllinux_1_1_x86_64.whl (38.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

time_machine-2.9.0-cp38-cp38-musllinux_1_1_i686.whl (36.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

time_machine-2.9.0-cp38-cp38-musllinux_1_1_aarch64.whl (37.9 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

time_machine-2.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

time_machine-2.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (33.7 kB view details)

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

time_machine-2.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (31.9 kB view details)

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

time_machine-2.9.0-cp38-cp38-macosx_10_9_x86_64.whl (16.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

time_machine-2.9.0-cp38-cp38-macosx_10_9_universal2.whl (20.2 kB view details)

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

time_machine-2.9.0-cp37-cp37m-win_amd64.whl (19.5 kB view details)

Uploaded CPython 3.7mWindows x86-64

time_machine-2.9.0-cp37-cp37m-win32.whl (18.7 kB view details)

Uploaded CPython 3.7mWindows x86

time_machine-2.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl (35.9 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

time_machine-2.9.0-cp37-cp37m-musllinux_1_1_i686.whl (34.3 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ i686

time_machine-2.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl (36.0 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ARM64

time_machine-2.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (30.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

time_machine-2.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (30.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

time_machine-2.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (28.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

time_machine-2.9.0-cp37-cp37m-macosx_10_9_x86_64.whl (16.4 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: time-machine-2.9.0.tar.gz
  • Upload date:
  • Size: 24.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for time-machine-2.9.0.tar.gz
Algorithm Hash digest
SHA256 60222d43f6e93a926adc36ed37a54bc8e4d0d8d1c4d449096afcfe85086129c2
MD5 bc83d9a87017dce16aba009194e72e51
BLAKE2b-256 68e95629ec57af510e73e7016db727dc96b3827088ec3a593d18754cf407d1b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 4f3755d9342ca1f1019418db52072272dfd75eb818fa4726fa8aabe208b38c26
MD5 1b693bb4043fd1407fb5f77b648f2604
BLAKE2b-256 766e3c764adc796d7c43c9ef3cc88dde15eb845dc8154ea00e2af943258ef0d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1d0ab46ce8a60baf9d86525694bf698fed9efefd22b8cbe1ca3e74abbb3239e1
MD5 ac677603090ef3e5ffa0670ae4b296fe
BLAKE2b-256 65c45d5f284fbd2aae99f4b4f590729966252887ee6c5c4e3de27a97907d3fad

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 fe013942ab7f3241fcbe66ee43222d47f499d1e0cb69e913791c52e638ddd7f0
MD5 8cbd1b437ec691034c5e0c2579bbabb9
BLAKE2b-256 f667116cb6abc102e370ed5c558c61d0d0e03ca56bdc964839add6aaabef265e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a2cf80e5deaaa68c6cefb25303a4c870490b4e7591ed8e2435a65728920bc097
MD5 4ea1a5cba66437eb15f252f4c4f7c6f0
BLAKE2b-256 69aed8787c35140a248294b11688fac9131b5d7d6aad208f473e721a65538643

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b16a2129f9146faa080bfd1b53447761f7386ec5c72890c827a65f33ab200336
MD5 c55bdf0c045f23b59a9718f9bba10a91
BLAKE2b-256 4b5ba3dc9dd3c8303295875f97ac2fa8a629ce907ce6059bd0641affa43f2250

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8830510adbf0a231184da277db9de1d55ef93ed228a575d217aaee295505abf1
MD5 c378fe8560dbcd25c6135644f609472a
BLAKE2b-256 95cee98b6c8a7c4444952609f240e3956b00cf1b9d59760fcad4139790f60054

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d329578abe47ce95baa015ef3825acebb1b73b5fa6f818fdf2d4685a00ca457f
MD5 006558e67eae55faabe64f82ecbdfd25
BLAKE2b-256 ebfa70932b4e45d30dfcd52cd2255fa1007c6edce1d435b26c592a55496f0a75

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 49df5eea2160068e5b2bf28c22fc4c5aea00862ad88ddc3b62fc0f0683e97538
MD5 274d36be90ad6f39ef6dde63c05ebdcf
BLAKE2b-256 4ea0f3e9d18f4dd75aa9d146d7bc13c5d50381b14497b8d2b2a4ab27331ccc6f

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9ba5fc2655749066d68986de8368984dad4082db2fbeade78f40506dc5b65672
MD5 bdd258647c183bb2fc09eee5d453512d
BLAKE2b-256 84082d85e131cf546188aef428da5f3b704c462446347e176f08ac8e3a29a204

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6b632d60aa0883dc7292ac3d32050604d26ec2bbd5c4d42fb0de3b4ef17343e2
MD5 e4d442dec9bbb3d4bd068638fc39c81d
BLAKE2b-256 e24681a1776a1e05e46939ba5b9dd61576611560dd59ce26b27a570a7d005889

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6463e302c96eb8c691c4340e281bd54327a213b924fa189aea81accf7e7f78df
MD5 775c0625f8802cc8278ec6ad90d4b650
BLAKE2b-256 cbb8b53bca37c0ab343eb0efb932ef236cfe46be84f30e1fd24489066af4c829

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 8976b7b1f7de13598b655d459f5640f90f3cd587283e1b914a22e45946c5485b
MD5 13fa02b0fbb8a0974b408464d884f4a6
BLAKE2b-256 0898e95e2a57d66dccaea1252a7a1028b6959189d56a46eede77a90a4829a168

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cb51432652ad663b4cbd631c73c90f9e94f463382b86c0b6b854173700512a70
MD5 487acbb6cdfc462fb3f6afa4f6b16d18
BLAKE2b-256 a7451642ed63b2e927458e8c01064dbcc6e8eb38deefe27538ff85a8c3eaeb9b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 f92d5d2eb119a6518755c4c9170112094c706d1c604460f50afc1308eeb97f0e
MD5 603cb4157c680699c0bdf285354d4e9a
BLAKE2b-256 dc4761b666e952171bf43f29a32ff35070460c75121c0e89047558d354036825

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 948ca690f9770ad4a93fa183061c11346505598f5f0b721965bc85ec83bb103d
MD5 f8cb8f317388140de94160b745cd9c48
BLAKE2b-256 f23360f29023f129460f5b11aa1de8317f6bbc6e7dd72e10f6226fb4bef4d421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c5dbc8b87cdc7be070a499f2bd1cd405c7f647abeb3447dfd397639df040bc64
MD5 4423e848070974efea0410893656fecc
BLAKE2b-256 cfc420ab4ec25b7a29032b55d256fe0605a4795a734f7c45a3344101900cb2d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 68ec8b83197db32c7a12da5f6b83c91271af3ed7f5dc122d2900a8de01dff9f0
MD5 d0ff7009b8bc720df9c5434327657583
BLAKE2b-256 7ce93b696aa044467a676d4fdafa32a0b11cdfc360b5e879a886f0780d52f218

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bfa82614a98ecee70272bb6038d210b2ad7b2a6b8a678b400c34bdaf776802a7
MD5 7e9433e8399e0236581a0ee2afa9180f
BLAKE2b-256 2b497bf2248141c52c9b22bfa6db58d92caf319b696787322c1533ffdf8d803c

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6211beee9f5dace08b1bbbb1fb09e34a69c52d87eea676729f14c8660481dff6
MD5 1e1b52893a485b6e91ccc90b020f243c
BLAKE2b-256 d491970430f8a5c6b059ebcb84dc9c7849a8a51c6cd1546bf5093eec0705784b

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d4380bd6697cc7db3c9e6843f24779ac0550affa9d9a8e5f9e5d5cc139cb6583
MD5 2655b01496e55b1e74d44ebeed7307aa
BLAKE2b-256 2757bb37995c7f8d291290e00a499d7b5767cc1cdd920681a291a0c03bf741a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5657e0e6077cf15b37f0d8cf78e868113bbb3ecccc60064c40fe52d8166ca8b1
MD5 12bf03e38666bdf1eaf3488d3a7aaa49
BLAKE2b-256 8ac1910c7e248448754041884ad2b86de9b2a26b47a4294b316cc3a1983b38ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fd72c0b2e7443fff6e4481991742b72c17f73735e5fdd176406ca48df187a5c9
MD5 d3d479dfb64e92e88d66039f37950a95
BLAKE2b-256 68d41e2b3e56852b65b39717830e13cfe64bf07dcb3330b82be00ab8909b1e59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: time_machine-2.9.0-cp39-cp39-win_arm64.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: CPython 3.9, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 3ce445775fcf7cb4040cfdba4b7c4888e7fd98bbcccfe1dc3fa8a798ed1f1d24
MD5 76c46ee8b2d197c9680c46b4e89c5409
BLAKE2b-256 98198abc3595c8c8a9df33ba4bb061cb60ab6dcb5d7dde8a27441084f84e68fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: time_machine-2.9.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cc6bf01211b5ea40f633d5502c5aa495b415ebaff66e041820997dae70a508e1
MD5 cdd761ac3b655dfd9539ad2169f024e0
BLAKE2b-256 4a566cdbdb9d829ef81f52292f3e275859c343b42b03d1d72ce7bfac982c658f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 d79d374e32488c76cdb06fbdd4464083aeaa715ddca3e864bac7c7760eb03729
MD5 58ad1050ff429d5b03bdf011fb0464b1
BLAKE2b-256 a8f12836ca9741b9c938ee4a5aaa4fa9e2c4ac6ad5317eeef40200e6fedf1009

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 748d701228e646c224f2adfa6a11b986cd4aa90f1b8c13ef4534a3919c796bc0
MD5 819093fd0cff61d5afcb1c93bd09fcd3
BLAKE2b-256 4607cd0963a6e6b3de40b9bf2cd8cc353f0bfc25b6d813b9aaffcb24d29f582d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b8faff03231ee55d5a216ce3e9171c5205459f866f54d4b5ee8aa1d860e4ce11
MD5 674b0b9a34e1f575e6c143e88abc8327
BLAKE2b-256 63aa803f3ddafa3cb3d6b31ef53a1f0aea7e7cdc4b2e9456280484e703a07a28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 372a97da01db89533d2f4ce50bbd908e5c56df7b8cfd6a005b177d0b14dc2938
MD5 e93dcce62765673edaf049887b5e00b5
BLAKE2b-256 1a4c314b735b69ed376c7fb173a9a7f4e6cad954f6cc22dcc178f4b2795c5d86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ae4e3f02ab5dabb35adca606237c7e1a515c86d69c0b7092bbe0e1cfe5cffc61
MD5 6c3c5241caa424cd1b52adbb505871f1
BLAKE2b-256 8bb961f30c5dbdcdffc1a4192d81e6479af2bdc8f3faf0503f6ebb56fdc03187

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b32addbf56639a9a8261fb62f8ea83473447671c83ca2c017ab1eabf4841157f
MD5 540b04665752febf0e9ab06138a26c13
BLAKE2b-256 bba54c6325ab6d395ea0e503dbada6ce47861c4398133fabedfa0f4b67d8f549

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 010a58a8de1120308befae19e6c9de2ef5ca5206635cea33cb264998725cc027
MD5 504e4c0d691a40f0aef29596b8d29d5d
BLAKE2b-256 ecbf7bd0f4629e40bcd1fa6f86e070c1eca7efc84a43cc1fcd6b35319316931c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4b55654aaeaba380fcd6c004b8ada2978fdd4ece1e61e6b9717c6d4cc7fbbcd9
MD5 70791641ca7d4c4a6066c1601dcc90d5
BLAKE2b-256 30501753af59b6f37f4d91d82552fc26ff95d02ec6dab74371ebc2031c72df59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8367fd03f2d7349c7fc20f14de186974eaca2502c64b948212de663742c8fd11
MD5 5cb934d0bc04ba05b28d417901d74fe3
BLAKE2b-256 98258f11f109ace6ec6309b28d51c5f8096f9072874e1947ad68420215c12955

See more details on using hashes here.

File details

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

File metadata

  • Download URL: time_machine-2.9.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3ff5148e2e73392db8418a1fe2f0b06f4a0e76772933502fb61e4c3000b5324e
MD5 371d1d3e2ba7bdcf9981bde03494d3a3
BLAKE2b-256 3e8d11162c6f412d4f8b697d26e31e63083b40ea1792e708376b198d00a3fd1c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 bb15b2b79b00d3f6cf7d62096f5e782fa740ecedfe0540c09f1d1e4d3d7b81ba
MD5 186b7d3eb88c3218f26c90e6791ac571
BLAKE2b-256 383fc0338dea2d71f9185ba5a7391f0d7169989b1b7b681d244944f44efa71b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f6e79643368828d4651146a486be5a662846ac223ab5e2c73ddd519acfcc243c
MD5 d4ad7355b166fd24c70f7136782ad782
BLAKE2b-256 baaa0d70dd65ba60b1ab1733a7c8a75cd80e454fca4f388a38e3df8f74dd4925

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 fcdef7687aed5c4331c9808f4a414a41987441c3e7a2ba554e4dccfa4218e788
MD5 6a4d3320386762c42584a2871429fc40
BLAKE2b-256 839fc0570dc792d93d32cec8a6d6b5b2f9b6f461a4aea4513802d9e77c3c8525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 bdbe785e046d124f73cca603ee37d5fae0b15dc4c13702488ad19de56aae08ba
MD5 3a252c4be2ed7dc7ac30069b8ae15c7c
BLAKE2b-256 d42dae30cbeaebcd62d37026d19e8119839a3297fe87c56029996c35677a154f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2f080f6f7ca8cfca43bc5639288aebd0a273b4b5bd0acff609c2318728b13a18
MD5 c73ad0a0dc956d358a90f4c5754e9ca1
BLAKE2b-256 a0b63621a4c42a1cecc0f6d759148de086490be724a55254a6deb1bf514eb2d7

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f97ed8bc5b517844a71030f74e9561de92f4902c306e6ccc8331a5b0c8dd0e00
MD5 4bfd83de015d88b700c0ec7fba660759
BLAKE2b-256 587eedeece0926c478f4ab6e9a87e9b7241a8b2a9a60c2c6d23639b4c88c54b5

See more details on using hashes here.

File details

Details for the file time_machine-2.9.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.9.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8670cb5cfda99f483d60de6ce56ceb0ec5d359193e79e4688e1c3c9db3937383
MD5 3bc46013e437e8f9bbf3ff5502a08bbd
BLAKE2b-256 61b2a1714c0c709912e40fd242610c22d724e7c0b5ddb759f07fc4c6a44c5207

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c01dbc3671d0649023daf623e952f9f0b4d904d57ab546d6d35a4aeb14915e8d
MD5 31e3a73fdb2bfb1ad075bb0080d18a52
BLAKE2b-256 ae69c1f4b87782dbffd4a6ab4a527ede83c58c8f2adccffe0a2463312e740141

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.9.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 69898aed9b2315a90f5855343d9aa34d05fa06032e2e3bb14f2528941ec89dc1
MD5 04359f518abfd9047177de70e7cdda44
BLAKE2b-256 4a12ca256908d8a60e525416782cc523bd16bd868a4349feda1e28ca7670d963

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 8e797e5a2a99d1b237183e52251abfc1ad85c376278b39d1aca76a451a97861a
MD5 71f72a5b893d0f934f5bc8f9433dac28
BLAKE2b-256 cae848c3b948cd56f0b88feac05c71a69f61c47e3b1996150d6486309afee655

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: time_machine-2.9.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 eaf334477bc0a9283d5150a56be8670a07295ef676e5b5a7f086952929d1a56b
MD5 c876e9564251882d2a0be098ae95b7ab
BLAKE2b-256 b5e89f380f17813f3bce65b4117eb912c8dc4f5cc6e14747af79167b1a43deb5

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0b9c36240876622b7f2f9e11bf72f100857c0a1e1a59af2da3d5067efea62c37
MD5 3b609e9fd201a71d17f2f92aa3ee569f
BLAKE2b-256 b9a6590d469c500a79bacad34d10c789b5a375339f81e35d00f8b143fac06790

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 8bcc86b5a07ea9745f26dfad958dde0a4f56748c2ae0c9a96200a334d1b55055
MD5 84b3c7512f048146cf1ce0dbb66f8560
BLAKE2b-256 77c3c180894305ea5cac5677382075b1e84ff432efb4826c731d6451574db55d

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 728263611d7940fda34d21573bd2b3f1491bdb52dbf75c5fe6c226dfe4655201
MD5 b7ab16024a1d2db6f57d1e026407761e
BLAKE2b-256 7b2de0ed066fa80eede457bbb1a31b46e4e73f379eb6695e95472c9c66b9fe6d

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 359c806e5b9a7a3c73dbb808d19dca297f5504a5eefdc5d031db8d918f43e364
MD5 d1962cbc957df3d89d5c7e9e1e90d50c
BLAKE2b-256 4253a162a02dd976cc155f1eb3b80b46250a824a6e5c27d3dfa560e33a7c6a0f

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-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.9.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 36dde844d28549929fab171d683c28a8db1c206547bcf6b7aca77319847d2046
MD5 0eac3f4b3827758a04bf305bd4e19fa2
BLAKE2b-256 2eabf59c6283ad8321ea647dfdd969eca5472264d375299091431fff38d3d71b

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8e2a90b8300812d8d774f2d2fc216fec3c7d94132ac589e062489c395061f16c
MD5 75accf5f0cde173c8b5940af59ba566f
BLAKE2b-256 8af8737c151677ca35992943cc0ac1a0e6f212f1352dc566a3377251f64bb9fb

See more details on using hashes here.

File details

Details for the file time_machine-2.9.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for time_machine-2.9.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9ee553f7732fa51e019e3329a6984593184c4e0410af1e73d91ce38a5d4b34ab
MD5 94ea6f67a43b3dd0016095d655d22d2a
BLAKE2b-256 5b4c271ecf3840e4ee304949508d3dbe04c655858d5ee18412caa6086c9eea44

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