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 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.12.0.tar.gz (23.9 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.12.0-cp312-cp312-win_arm64.whl (18.0 kB view details)

Uploaded CPython 3.12Windows ARM64

time_machine-2.12.0-cp312-cp312-win_amd64.whl (19.5 kB view details)

Uploaded CPython 3.12Windows x86-64

time_machine-2.12.0-cp312-cp312-win32.whl (18.7 kB view details)

Uploaded CPython 3.12Windows x86

time_machine-2.12.0-cp312-cp312-musllinux_1_1_x86_64.whl (37.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

time_machine-2.12.0-cp312-cp312-musllinux_1_1_i686.whl (35.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ i686

time_machine-2.12.0-cp312-cp312-musllinux_1_1_aarch64.whl (37.1 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

time_machine-2.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (32.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

time_machine-2.12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (32.2 kB view details)

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

time_machine-2.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.5 kB view details)

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

time_machine-2.12.0-cp312-cp312-macosx_10_9_x86_64.whl (16.4 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

time_machine-2.12.0-cp312-cp312-macosx_10_9_universal2.whl (19.9 kB view details)

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

time_machine-2.12.0-cp311-cp311-win_arm64.whl (18.0 kB view details)

Uploaded CPython 3.11Windows ARM64

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

Uploaded CPython 3.11Windows x86-64

time_machine-2.12.0-cp311-cp311-win32.whl (18.6 kB view details)

Uploaded CPython 3.11Windows x86

time_machine-2.12.0-cp311-cp311-musllinux_1_1_x86_64.whl (36.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

time_machine-2.12.0-cp311-cp311-musllinux_1_1_i686.whl (34.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

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

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

time_machine-2.12.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.12.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.12.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.12.0-cp311-cp311-macosx_13_0_arm64.whl (16.8 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

time_machine-2.12.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.12.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.12.0-cp310-cp310-win_arm64.whl (18.1 kB view details)

Uploaded CPython 3.10Windows ARM64

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

Uploaded CPython 3.10Windows x86-64

time_machine-2.12.0-cp310-cp310-win32.whl (18.7 kB view details)

Uploaded CPython 3.10Windows x86

time_machine-2.12.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.12.0-cp310-cp310-musllinux_1_1_i686.whl (35.1 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

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

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

time_machine-2.12.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.12.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.12.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.12.0-cp310-cp310-macosx_10_9_x86_64.whl (16.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

time_machine-2.12.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.12.0-cp39-cp39-win_arm64.whl (18.1 kB view details)

Uploaded CPython 3.9Windows ARM64

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

Uploaded CPython 3.9Windows x86-64

time_machine-2.12.0-cp39-cp39-win32.whl (18.7 kB view details)

Uploaded CPython 3.9Windows x86

time_machine-2.12.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.12.0-cp39-cp39-musllinux_1_1_i686.whl (34.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

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

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

time_machine-2.12.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.12.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.12.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.12.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.12.0-cp39-cp39-macosx_10_9_universal2.whl (20.2 kB view details)

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

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8Windows x86

time_machine-2.12.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.12.0-cp38-cp38-musllinux_1_1_i686.whl (36.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

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

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

time_machine-2.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (33.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

time_machine-2.12.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.12.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.12.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.12.0-cp38-cp38-macosx_10_9_universal2.whl (20.2 kB view details)

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

File details

Details for the file time_machine-2.12.0.tar.gz.

File metadata

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

File hashes

Hashes for time_machine-2.12.0.tar.gz
Algorithm Hash digest
SHA256 e0c98003096624cc70caa5743fe6a1fd0e97ffeaf9b44560e4158b0e1a38168e
MD5 4f82c1414290d0682ffa8f2e2a755710
BLAKE2b-256 de4b791fb35715ed15ce91506ec001c59ff6db5f9c5e37100a68489824d246e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 5240e1cb013826449a5065062b47a46ce3d431fc47cbddc938e3c05e3fe4a951
MD5 4ab30f9a1803a225c9f27c3eb275298c
BLAKE2b-256 62a59ff9a0aac4be707810263f0d0ca9098ae8726d1882029a4effa730652de3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 156fdd17fde2a3ea9c41a8108b8ac877e4f90a7ac5e6db533ab6ecb86f723891
MD5 ee0a26f73ec0cecb1da7ecb3ac26bbcd
BLAKE2b-256 41459fbbd1f76912f2945517e8fe39898472c4b27350b5e348eded161fb504d5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 58ec76d58dcc3ab6a3d7951ae08ae99c7b413a40c7e8255c106b5df4f768f8dd
MD5 e86f465fa0cb7e57bfcf18be1017b767
BLAKE2b-256 c0bbc8f88bc93a7e163c88ba88a3fa9c8ccd45b3bbcd3df390ed42e2720e2ca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 81b88ac04e61c772854fa85b8e04428e3068fe690487a50b69bb07dda2168c36
MD5 ea925d54796a80ece786f62cfed3cbdf
BLAKE2b-256 ffbad995c7da530843503eff2f907e881fc3f4db11298e67a4f1de66a85a568f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 26d2be6009151de7aa210e8569c49eece6563b8beb7e290ebd4a10b2b8d2fc5c
MD5 75e3153a8565feb28169cd34e4012d21
BLAKE2b-256 f9fdab50db05462ba476b64e565786f22cb4eaa6f8ab7e2a160407c66d7c8ad3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 fafb423453e711ea95a669373bdaf628e9e8a0c606c1366499835f3e446554dc
MD5 d8cb083486f286acd4879dc177a48f5f
BLAKE2b-256 f825a50abb3b88346d3759797fa9e79c2c61b1a065935266c81bd90ac7f969e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a1b7b1b758de72de73fcf063be8ae9e2e98dd4bab0e6cd8b32c8e7d0462d78b0
MD5 6ffd5a47f77ee8027022ae6f5d23ac69
BLAKE2b-256 2db96c2a11cdfe4d3a4a19382680471eb10417ffcb5cfc18e6589eff4aee96f4

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8c764bd6690b83a72b4294934774044c8cea4356cb9b103b7dbb8232242b3047
MD5 af1029e236e537ac730889af17106c06
BLAKE2b-256 8a237cf97d5ef52d5aa1cbe01923dba4cefb723caee8341e4bc6d0dfd4a5f90e

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a9f13f8c8dc72541654830d16efcc6249969bac1cbe591bee4a0ac19490592e2
MD5 7160beca04b466d19c7c659bd09e9c14
BLAKE2b-256 14fa76ad7c75a64ebf38c9ebc8a1dfcb359dadfc89d7cd62fb5993606a340ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b9dec9619ff5e89798e9cfb5e2a53e1eed18afa1b20460d7158fa2db94dd2d3b
MD5 fbb945252655a1b3cd17f0837a77e47a
BLAKE2b-256 b8064648c50cf738b2f5750dbc520ce2d0907b2c41bd9725ba0620f80a261e94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2b84449a2b170ed51c26a725a2ca983bc98490c5f23d28e9473402adc7e694ba
MD5 92fcc57d8b714494e47ba3bc56b34743
BLAKE2b-256 090200aa1d28f925add77a32361a79e26676eadae72dcaa63e193ea26555c458

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 d09aaa1d323c4a4b5b4569f44a02bb24ba5030b55adc9710a895843796363c0c
MD5 74a9685787f4eaf575e74cd77e15e3fb
BLAKE2b-256 693bccaab1f21694f9c129c229547962654a51f50f5b614f4db262e96216a559

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8176eba6b182f88fa8afd9a964c9391b73f3456f6c2f59bb2514957ec6269724
MD5 4a952ef26e4b6a6b9c5d74f240d7b149
BLAKE2b-256 f4d2c1ea10f21e3d57bc207a76113d9b5e5b04b61ac27e05eca61407e72ff280

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 82062eef6096c42ce14c7c07a7898caa3d696ac189fdb1586f59562893f6abf4
MD5 db59ab18d3979ee8cc15081b02819a8b
BLAKE2b-256 a396cbc0d02e7899692404e09132d5c928e7de7cae6239c94e81be533acaeaf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 669437542e9027db55e06ff05e848a9cb0e88d1fc6e659b412e9721be227b9be
MD5 f4b398a61eb2df0538b0a1adea743547
BLAKE2b-256 485770db2a525db5b051554c697946dc4390db28bb8c3d24b5e2375c15a2c5fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 05f7320851edb3e887d79a5c797966c8c1b64458fb8b8ee74982c6593606a387
MD5 d8b1bcfce1e8afff9ec5df037cd7ef1a
BLAKE2b-256 6f78b0c8f6780a02d76a4dd110b844f775f0218bfeb76cc72242825a4a47d22f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 d4f546b262e0d955376bf0af9a4de13a910f5f27c5e44e4db46ceea61b4c4a7d
MD5 77d3a2f55c1ce7506f08c731e179426b
BLAKE2b-256 045458e928e52751be79746d7066f3697c96477a843d05aa41a46c7c405e15ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3fe070414ef05359c55bbbf94b7a895d532af726705e6f33e6f2eeb26326042
MD5 e77c23ef5f461f4d4036ddbbbbbb03e5
BLAKE2b-256 b251bde487b1d8a131ef8c3bfd3bd0e9346a62a80a1aa154ccde01b7061a6558

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc80ba01ff5663c74ce74c9ee2267dbf900ee8e8d18d55937b5e83eb1e179998
MD5 d116868aa468b3ba184cfe8354242b74
BLAKE2b-256 75b63418780958b984218c08b59528c69d328e4db2a134cd8a72d84d6800b4e7

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 43a4a5d722f7a6b6ee8f1d3cdeffe6d7c3421452219dce0d22778e6810fb645c
MD5 0acf5bfe0fb01e10b97d4abf54f11086
BLAKE2b-256 5387d640f89d4e8559abda856ed51a41b8b7432cd0ae7669beebface4f4fb7e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 8ec623cff18e328781ab7a6251f1ee77e225f14e1f5a26633028a14b7d90ed82
MD5 c875c4bf2d97f214e84f2e9a60cf3221
BLAKE2b-256 1d4435b9fc4a992073cf56a680e6cda9920023b1a27c46c369854a76880445f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 93c84850c9e529433613af2b2097634d27b30e9853271b6ea1384ee00be5424a
MD5 ae45e3a88b0327d770d020fd4eb0834d
BLAKE2b-256 dae93bc9bdeadca33e0dbe692e428b3e4bde994d7a770e1bbd592c6bb4d0af6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ead6c3a1858c551b4edbba781d48892a487fda6ef6416c87f8ed559bfb29c904
MD5 e522f5a9639cdbb41bfae82ff2992ca4
BLAKE2b-256 37b683005b725464ef5990a12fe0b4a58479235f9a24b1757dcd1f77a7e521c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 a525dd4fd6f7a2ecf2b54fce3c8b9982650dc570992ca6e38987c3922684099a
MD5 05df1e31e5afaae2795d6f67cea66819
BLAKE2b-256 c37030cb3d52f0df19a95e99cfceb42e4ed67169dfc669efd815bd0b61c41158

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 796968ca8e770ee1121fe209a18cee9bd462bc0cacf57e2b1d528df08c6f18d6
MD5 f2c7b2ea7066eecd3156b2eb776c5b26
BLAKE2b-256 cddc51f42e867d2efc000c20d5463ee9dd7cf3573fac2c5e25fa23f96f6b557a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 d7442e9cffccd76115521f8d64c270e923e566e9487ba9da9824149653cf0641
MD5 792865d9b56a781b5888b0c3622d5752
BLAKE2b-256 df64dd4931ab19d914f282b11fc922bead2da88c0a857e578e041a183131fc81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 496a47e2eef78893eb6915d0a5215c59346ebe29d5c88a56301ed74deebe45cc
MD5 2e036fcfbe34a0f1e86336336ac51e3e
BLAKE2b-256 a459c6ca00b0f40d83ff70516951c8daf496b0821abcd5999e54e1a147d4bd6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 328266ea13f0c517cdf758c16a2d83f0118516b8ac7910bba4eba6d4d3b3b2f1
MD5 bf5b5e41dbd1ec6c4c74b423be991b65
BLAKE2b-256 27bdb35a7ebab6ab1ce623f2dda60fcf0d61bcc26d3fe26a6491c6e9f0f4f2ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 1e3b07d7aa993a2f24e3a2ef5a216869f0a1fcaaba6227ad73b265c4f15feca5
MD5 1784f9587ac37d66de1aa3de45f429cb
BLAKE2b-256 9f47d5fff544f497ccaf28ff1e4fc63ce92543bebf8da526e4b99f0c533bf161

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 47dc877f3a475d0e818b31a6ad6fc1fbe40f334dcd73d2cb076057aff4d73beb
MD5 9b5f635aa96663c3e009907cb3d71d19
BLAKE2b-256 ec751a434b91ea261700252551deb8cd2b6049969b8f24d2166de2fd52f2e3f7

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8676471983482522f3e124ad2c8fe38d6d6ed957379504910d2ea0c646d96cb4
MD5 1b96da7aaf824f66d29c4a523d9b51c0
BLAKE2b-256 0034c614160e8ac8a31de8fecbb8072a6830bea4addf6e97777ad01c04e48ebd

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fcb41d70da706e14a805fcbf42bdb17435d4a91420bd5b6a88f8f61beb95b862
MD5 9759941bd4d00140661d838cc106a096
BLAKE2b-256 6ba39d89730f4e190b697c384023161281e899122328e60160316e510176fc9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 35ec4170e5045ac0d5dfb1255320e301d5b6fc359f9cf36010007bf572888e73
MD5 bdaa241853506a5c61d5fb864fa65553
BLAKE2b-256 a2263dc855a795d2ac3f72e1481bfc4dc4e4c0071c5d1e0f47f35674e3efbb94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 786efcc336edc196e5a854a73ff714be198bc57da6856064083677a188c8e018
MD5 7767d8cc6b7349cd2f6df9a5e552a90f
BLAKE2b-256 4ceccbd75fb79bba4a09d954c3e7cbb8b547adb5053c823e9360a8e442717a91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-win_arm64.whl
Algorithm Hash digest
SHA256 dfe8b2478b4c3556a913b187ce598ad2afd07e6acfcf652be8e5a56dee2bf200
MD5 6587ef1db308cafa9acedc944f44f42b
BLAKE2b-256 672f8b7d38421d5994ab1b3f257a4a5410da510e26b83616ecacd788124b5e33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 81095391ccef01c56b6061248216da4e2d749b543952fce199b628b8a8ce5ca2
MD5 1d5c2ce8bd67473833d6d36158b7e3ed
BLAKE2b-256 8c2893c60764ec8b215eba3058cf8b63674ced5be17a79332cebb9ef29279379

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 9b255feaa4f3c46c7ebd1319a630ee1e3aa87078c9b428f9428980597c3ce830
MD5 12dca35e69c5274508d7c42ed07677e2
BLAKE2b-256 8dfa287897642d639bfa1e317d6e774ac11035ec80234632e4940fbc4559e742

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4cf10267610244d4398312c4eea5cfc2f68f9a0286260d2157d45d1a54dcc6b2
MD5 ed77f52bcb5422a23526cc835d510c9a
BLAKE2b-256 3ad54c9d87d53d8be810803541f89db9e0d447173a6134cab548a537a8dfdee2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 a5304de3e41c33cd6e4be7b85f09409b1059b9ff6a8289482352c42fb50b4e42
MD5 985467de6473faf8b88e2851aad3a6f1
BLAKE2b-256 c5eb58a52897a14082b569d5bc7f1d98840079241df31937441fbdbac17f0824

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 0613aef850db722f2ceee1923d67fc050ae8d6a09fa2cd1ca1dae0748864e6d7
MD5 ed0c6b697d9059160580f3fe53a9ed10
BLAKE2b-256 2c44ba59a0c1577068765b7b67d4d36cf87e6a28423de089dda01a81551c9d2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0f9c48f19a6af887ac769740e914f8eb8e406a3d33a651e107f28bba1adc3796
MD5 b74c6576f0f09619be22399d27e0c5b9
BLAKE2b-256 64db0c5290c89d8caf46c8f9e725cc7213243af4f23333fcc325e3f4eabacd6d

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 353b6b43e43aee22df79194584c587225ec1a06a2f444099ada2096d806d602e
MD5 89fa39e43a24cccb0cd27f04157b212e
BLAKE2b-256 6947132bcb95aff852f3500d51cafcccc8d4f6dfcef56c91910a7db0838dd9d2

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2a0a3fb0c316c23b0d79810cf7a158c7d4671acc02a5dfa5cda7aa673478a0dc
MD5 2df111aa33d7d672d7b4a2adac965b13
BLAKE2b-256 6fe590ec67cd0c521508fc49059e5aa0b3d6a3a1245d7743d3695552d74aeb13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d365d6e0faaf6bcddacfb71d8c033011b7a65f1a94142350a1bc9da3c85bfb8e
MD5 513646942505b7a746dc7b695905ea77
BLAKE2b-256 be9b548b396a0610a708abc890e7905f9a63fe98bc07fca2015408d1b110bff4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b535a2524e1adbac3c8028c49cdceb764f800ca95c2f7421aad11c5d4c274ed7
MD5 42ac2f7bed02fe36ac908634694cbfab
BLAKE2b-256 5a2f20104ea36bb5cee80bf74acdfa06ebe754db7bb6b14b20e5c169895d5441

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9ac560499086184142b0a0b28eca0ea1d245e9df1c008ef3356b0e3ea6cb1536
MD5 10825845007f21d885c51c42b198b3c4
BLAKE2b-256 185cf7009f0aa9ed13646eddb4d9ca4ececefce268d93c9688b0344e89ad3ad8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: time_machine-2.12.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.4

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 5e62e45a71674b5df9f9275ffbb342c78ba026c9b556478d0b4bc4470e9f2b4b
MD5 b0c4829c4d9d7a4f288a40e15be20e27
BLAKE2b-256 5f3b615b263f642fc0b83a14c093af3112f69c66f17f386bea6bbf309a01ba10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9c389ef8508f787ff1ec963b473838616773db8e00bc043cab9374f36d9e8201
MD5 c8e293ff1119786f1fb63dfebf7fe4ef
BLAKE2b-256 9146453ca1b3bb2907f3034c4e585d29af012b1545d7c94c23c1ccbaac979115

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 4bd89a8bf7756b50de180258517004f30857deea82c1841f291a2c8e25cfaa83
MD5 338cb945c7b3a78ab367a672cf62b1a4
BLAKE2b-256 26af8f31092493f4c0a263446c701eef4404cdb6e41a3f9f9f8dd6dd47d55758

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 e45505414fba93a15957a43ff52bbf737c3ef7905464eb16ef45e1395e95206d
MD5 2c6df170f19eecbd9c5c08a8ee98d050
BLAKE2b-256 5a5bf59ced6b8cee193d415de12d56017ca661062fae3f01a0b64abf70f75e2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3992b9285c75c6f74fabfdb0ca7f17f12e22d0fc631ff43d0e110ccd53382569
MD5 eebf76feb1ca07eb5d36df33272e4957
BLAKE2b-256 d4e1ef8fb3d006a07ebc583fc40680223152311d81ea284571fb44b7b6cfbb62

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 715956ef123645ef22d1c7a13963bb9bc50c02b8578797704715a410bfa49575
MD5 611e9652de901c0985caf74a250a6295
BLAKE2b-256 0c961e7476786bc191399d166e0355b97e54e3030b88e875ec64b52027932bc5

See more details on using hashes here.

File details

Details for the file time_machine-2.12.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.12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 33ee51c6f9f02d7b1d792d379b42321a3d13b819ecd8d136fb287be4adc7b9da
MD5 3925f50ae1fe1ba4198d2863ed57ce3b
BLAKE2b-256 5c2b52b639637616dfeedfca5ff47d06460f0f7685ad07f00e51fc15600c0281

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8d5ae0f0a25b3aa7207688edf23de514f918a91ea05edbeffdbdd56d8497c13
MD5 dcc65d2eb1e24bd22e3a0f7fccf7f2bb
BLAKE2b-256 54901462749da944001a5d563d7d9b00da0727d9af69c7efb80aca7dd860fe3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for time_machine-2.12.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bb60d061978487db5cba8a20fb84b3ae29af5ca004a0e991cd5eaa31b0851b59
MD5 c0a4eb190d2dccdca8dfb9811e3bf50e
BLAKE2b-256 83d34978e94afab71eb2c15d1eadb7b551d53245e5cd5da05669a73fcbf63b97

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