Skip to main content

Provides a sub-microsecond-precise thread-safe timer and methods to work with date and time data.

Project description

ataraxis-time

A Python library that provides a sub-microsecond-precise thread-safe timer and methods to work with date and time data.

PyPI - Version PyPI - Python Version Ruff uv type-checked: mypy PyPI - License PyPI - Status PyPI - Wheel


Detailed Description

This library uses the 'chrono' C++ library to access the fastest available system clock and use it to provide interval timing and delay functionality via a Python binding API. While the performance of the timer heavily depends on the particular system configuration and utilization, most modern CPUs should be capable of sub-microsecond precision using this timer. Due to using a C-extension to provide interval and delay timing functionality, the library is thread- and process-safe and releases the GIL when using the appropriate delay command. Additionally, the library offers a set of standalone helper functions that can be used to manipulate date and time data.

The library can be used as a standalone module, but it is primarily designed to integrate with the broader 'Ataraxis' science-automation project, providing date- and time-related functionality to other project modules.


Features

  • Supports Windows, Linux, and OSx.
  • Sub-microsecond precision on modern CPUs (~ 3 GHz+) during delay and interval timing.
  • Releases GIL during (non-blocking) delay timing even when using microsecond and nanosecond precision.
  • Pure-python API.
  • Fast C++ core with direct extension API access via nanobind.
  • GPL 3 License.

Table of Contents


Dependencies

For users, all library dependencies are installed automatically for all supported installation methods (see Installation section). For developers, see the Developers section for information on installing additional development dependencies.


Installation

Source

Note. Building from source may require additional build-components to be available to compile the C++ portion of the library. It is highly advised to use the option to install from PIP or CONDA instead.

  1. Download this repository to your local machine using your preferred method, such as git-cloning. Optionally, use one of the stable releases that include precompiled binary wheels in addition to source code.
  2. cd to the root directory of the project using your CLI of choice.
  3. Run python -m pip install . to install the project. Alternatively, if using a distribution with precompiled binaries, use python -m pip install WHEEL_PATH, replacing 'WHEEL_PATH' with the path to the wheel file.
  4. Optionally, run the timer benchmark using benchmark_timer command from your CLI (no need to use 'python' directive). You can use benchmark_timer --help command to see the list of additional configuration parameters that can be used to customize the benchmark behavior.

PIP

Use the following command to install the library using PIP: pip install ataraxis-time

Conda / Mamba

Note. Due to conda-forge contributing process being more nuanced than pip uploads, conda versions may lag behind pip and source code distributions.

Use the following command to install the library using Conda or Mamba: conda install ataraxis-time


Usage

This is a minimal example of how to use the precision timer class from this library:

# First, import the timer class.
from ataraxis_time import PrecisionTimer
import time as tm

# Then, instantiate the timer class using the desired precision. Supported precisions are: 'ns' (nanoseconds),
# 'us' (microseconds), 'ms' (milliseconds), and 's' seconds.
timer = PrecisionTimer('us')

# Interval timing example
timer.reset()  # Resets (re-bases) the timer
tm.sleep(1)  # Simulates work (for 1 second)
print(f'Work time: {timer.elapsed} us')  # This returns the 'work' duration using the precision units of the timer.

print()  # Separates interval example from delay examples

# Delay example:
for i in range(10):
    print(f'us delay iteration: {i}')
    timer.delay_block(500)  # Delays for 500 microseconds, does not release the GIL

print()  # Separates the us loop from ms loop

timer.set_precision('ms')  # Switches timer precision to milliseconds
for i in range(10):
    print(f'ms delay iteration: {i}')
    timer.delay_noblock(500)  # Delays for 500 milliseconds, releases the GIL

This is a minimal example of how to use helper-functions from this library:

# Import the desired function(s) from the time_helpers sub-package.
from ataraxis_time.time_helpers import convert_time, get_timestamp

# Time converter example. The function can convert single inputs and lists / numpy arrays.
initial_time = 12
time_in_seconds = convert_time(time=initial_time, from_units='d', to_units='s')  # Returns 1036800.0

# Obtains the current date and time and uses it to generate a timestamp that can be used in file-names (for example).
dt = get_timestamp(time_separator='-')  # Returns 2024-06-18-00-06-25 (yyyy-mm-dd-hh-mm-ss)

API Documentation

See the API documentation for the detailed description of the methods and classes exposed by components of this library. The documentation also covers the C++ source code and any cli-interfaces (such as benchmark timer).


Developers

This section provides installation, dependency, and build-system instructions for the developers that want to modify the source code of this library. Additionally, it contains instructions for recreating the conda environments that were used during development from the included .yml files.

Installing the library

  1. Download this repository to your local machine using your preferred method, such as git-cloning.
  2. cd to the root directory of the project using your CLI of choice.
  3. Install development dependencies. You have multiple options of satisfying this requirement:
    1. Preferred Method: Use conda or pip to install tox or use an environment that has it installed and call tox -e import-env to automatically import the os-specific development environment included with the source code in your local conda distribution.
    2. Run python -m pip install .'[dev]' command to install development dependencies and the library. For some systems, you may need to use a slightly modified version of this command: python -m pip install .[dev].
    3. As long as you have an environment with tox installed and do not intend to run any code outside the predefined project automation pipelines, tox will automatically install all required dependencies for each task. Generally, this option is not recommended.

Note: When using tox automation, having a local version of the library may interfere with tox methods that attempt to build the library using an isolated environment. It is advised to remove the library from your test environment, or disconnect from the environment, prior to running any tox tasks. This problem is rarely observed with the latest version of the automation pipeline, but is worth mentioning.

Additional Dependencies

In addition to installing the required python packages, separately install the following dependencies:

  • Doxygen, if you want to generate C++ code documentation.
  • An appropriate build tool or Docker, if you intend to build binary wheels via cibuildwheel (See the link for information on which dependencies to install).
  • Python distributions, one for each version that you intend to support. Currently, this library supports 3.10, 3.11 and 3.12. The easiest way to get tox to work as intended is to have separate python distributions, but using pyenv is a good alternative too. This is needed for the 'test' task to work as intended

Development Automation

To help developers, this project comes with a set of fully configured 'tox'-based pipelines for verifying and building the project. Each of the tox commands builds the project in an isolated environment before carrying out its task. Some commands rely on the 'automation.py' module that provides the helper-scripts implemented in python. This module is stored in the source code root directory for each Sun Lab project.

  • tox -e stubs Builds the library and uses mypy-stubgen to generate the stubs for the library wheel and move them to the appropriate position in the '/src' directory. This enables mypy and other type-checkers to work with this library.
  • tox -e lint Checks and, where safe, fixes code formatting, style, and type-hinting.
  • tox -e {py310, py311, py312}-test Builds the library and executes the tests stored in the /tests directory using pytest-coverage module.
  • tox -e combine-test-reports Combines coverage reports from all test commands (for each python version) and compiles them into an interactive .html file stored inside '/reports' directory.
  • tox -e doxygen Uses externally installed Doxygen distribution to generate documentation from docstrings of the C++ source code files.
  • tox -e docs Uses Sphinx to generate API documentation from Python Google-style docstrings. If Doxygen-generated .xml files for the C++ extension are available, uses Breathe plugin to convert them to Sphinx-compatible format and add them to the final API .html file.
  • tox Sequentially carries out the commands above (in the same order). Use tox --parallel to parallelize command execution (may not work on all platforms).

The commands above are considered 'checkout' commands and generally required to pass before every code push. The commands below are not intended to be used as-frequently and, therefore, are not part of the 'generic' tox-flow.

  • tox -e build Builds the sdist and binary wheels for the library for all architectures supported by the host machine and saves them to the '/dist' directory.
  • tox -e upload Uploads the sdist and wheels to PIP using twine, if they have not yet been uploaded. Optionally use tox -e upload -- --replace-token true to replace the token stored in .pypirc file.
  • tox -e recipe Uses Grayskull to generate the conda-forge recipe from the latest available PIP-distribution. Assumes sdist is included with binary wheels when they are uploaded to PIP.
  • tox -e export-env Exports the os-specific local conda development environment as a .yml and spec.txt file to the '/envs' directory. This automatically uses the project-specific base-environment-name.
  • tox -e import-env Imports and os-specific conda development environment from the .yml file stored in the '/envs' directory.
  • tox -e rename-envs Replaces the base-name for all environment files inside the '/envs' directory. Remember to also change the base-name argument of the export-env command.

Environments

All environments used during development are exported as .yml files and as spec.txt files to the envs folder. The environment snapshots were taken on each of the three supported OS families: Windows 11, OSx 14.5 and Ubuntu Cinnamon 24.04 LTS.

To install the development environment for your OS:

  1. Download this repository to your local machine using your preferred method, such as git-cloning.
  2. cd into the envs folder.
  3. Use one of the installation methods below:
    1. Preferred Method: Install tox or use another environment with already installed tox and call tox -e import-env.
    2. Alternative Method: Run conda env create -f ENVNAME.yml or mamba env create -f ENVNAME.yml. Replace 'ENVNAME.yml' with the name of the environment you want to install (axt_dev_osx for OSx, axt_dev_win64 for Windows and axt_dev_lin64 for Linux).

Note: the OSx environment was built against M1 (Apple Silicon) platform and may not work on Intel-based Apple devices.


Authors


License

This project is licensed under the GPL3 License: see the LICENSE file for details.


Acknowledgments

  • All Sun Lab members for providing the inspiration and comments during the development of this library.
  • My NBB Cohort for answering 'random questions' pertaining to the desired library functionality.

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

ataraxis_time-1.0.3.tar.gz (86.3 kB view details)

Uploaded Source

Built Distributions

ataraxis_time-1.0.3-pp310-pypy310_pp73-win_amd64.whl (86.9 kB view details)

Uploaded PyPy Windows x86-64

ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (105.1 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (108.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (101.6 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

ataraxis_time-1.0.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl (79.0 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

ataraxis_time-1.0.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (80.2 kB view details)

Uploaded PyPy macOS 10.15+ x86-64

ataraxis_time-1.0.3-cp312-abi3-win_arm64.whl (81.2 kB view details)

Uploaded CPython 3.12+ Windows ARM64

ataraxis_time-1.0.3-cp312-abi3-win_amd64.whl (86.8 kB view details)

Uploaded CPython 3.12+ Windows x86-64

ataraxis_time-1.0.3-cp312-abi3-win32.whl (82.7 kB view details)

Uploaded CPython 3.12+ Windows x86

ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_x86_64.whl (539.4 kB view details)

Uploaded CPython 3.12+ musllinux: musl 1.2+ x86-64

ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_i686.whl (579.3 kB view details)

Uploaded CPython 3.12+ musllinux: musl 1.2+ i686

ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_aarch64.whl (519.6 kB view details)

Uploaded CPython 3.12+ musllinux: musl 1.2+ ARM64

ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (105.3 kB view details)

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

ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (108.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (101.5 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

ataraxis_time-1.0.3-cp312-abi3-macosx_11_0_arm64.whl (79.2 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

ataraxis_time-1.0.3-cp312-abi3-macosx_10_14_x86_64.whl (81.2 kB view details)

Uploaded CPython 3.12+ macOS 10.14+ x86-64

ataraxis_time-1.0.3-cp311-cp311-win_arm64.whl (82.7 kB view details)

Uploaded CPython 3.11 Windows ARM64

ataraxis_time-1.0.3-cp311-cp311-win_amd64.whl (88.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

ataraxis_time-1.0.3-cp311-cp311-win32.whl (84.2 kB view details)

Uploaded CPython 3.11 Windows x86

ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl (542.4 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_i686.whl (583.0 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl (522.3 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (108.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (111.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (104.1 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

ataraxis_time-1.0.3-cp311-cp311-macosx_11_0_arm64.whl (81.5 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

ataraxis_time-1.0.3-cp311-cp311-macosx_10_14_x86_64.whl (83.7 kB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

ataraxis_time-1.0.3-cp310-cp310-win_arm64.whl (82.8 kB view details)

Uploaded CPython 3.10 Windows ARM64

ataraxis_time-1.0.3-cp310-cp310-win_amd64.whl (89.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

ataraxis_time-1.0.3-cp310-cp310-win32.whl (84.3 kB view details)

Uploaded CPython 3.10 Windows x86

ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl (542.6 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_i686.whl (583.4 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl (522.2 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (108.3 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (111.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (104.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

ataraxis_time-1.0.3-cp310-cp310-macosx_11_0_arm64.whl (81.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

ataraxis_time-1.0.3-cp310-cp310-macosx_10_14_x86_64.whl (83.8 kB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

File details

Details for the file ataraxis_time-1.0.3.tar.gz.

File metadata

  • Download URL: ataraxis_time-1.0.3.tar.gz
  • Upload date:
  • Size: 86.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for ataraxis_time-1.0.3.tar.gz
Algorithm Hash digest
SHA256 d467ab49f12a62ef6ec7e367e7bb0b84350f18fbc6b5210bf0fb27887089f3f9
MD5 7c86d89600ef9338c2c0d338f23f626b
BLAKE2b-256 1b5afcd2718905302fdb1f948e79eeed29dd5945318417c668d37fcf877461f3

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 437610e779d34876e5db951010e36f139a4dbb4c11dcbb973fa39cf5939aeda0
MD5 be1cea61156e481af3a05a9157eaf78a
BLAKE2b-256 b0cdca36b6cab174454e976a4f5fe87e159587cdf0aceab45e166953a8ec3a6f

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9fb38c421b0263d0a7d6da7f3d2a71e411098fbc9aafbd8c62ad0b3a346c1d3a
MD5 c48daf3a570c15c61f93928682dd5ad6
BLAKE2b-256 59dffd2603bd426d9143904a8f64685a52db2f9d9abdcdc1b485ab94d77f3250

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 deb9295e5f952230998be79268e732a28acb1664b8f3cf1aeb8cb369343c8511
MD5 aaa4417d79af658ce9c5450a75b80e09
BLAKE2b-256 efc92ddfb78ab7c8e19fe24193eb455fe6d5358f7799c77a438a37a19ec59a85

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 15efd67ec29d93200a1ef217c268d2c2b91948e047d1c4e07c56bc16ab29be95
MD5 864a2ec851e6505e320b01b7682d75e2
BLAKE2b-256 af5b9f1bef2b836e80b13921664c631dc9e1da6c4dc7614d5830aa6afc198cf2

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 364632c7680b0930e42369e37840aa43c7db3cdc5aca70cc6b8b3cfb1b346d60
MD5 8ebabd32eb30bd262fd853717938adf6
BLAKE2b-256 d4b4868dda53c035990b79c866f1e4947166a10f8c4e29a1152e69315e7d6413

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ad04795873c5f341a0f1d54fc7cd3f61a309810389a1b5c0b1d3e184265d0ec9
MD5 afae2439d7ba430367f0f55b2a15f124
BLAKE2b-256 46a3aa8c02079aef5ed34cb6a2d70bbccb8acdfc1d98ce4efdeb6289f00e7a76

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 7410b0fbcc5777d31c12b0da090f4218a29524e7cf1f27f7e9acb6065f378859
MD5 057dbbf10b56fdc0fdd53dad5560741a
BLAKE2b-256 7e0ecbeaf502dc64b49f199537b7658f2f18525e04bbb1b6ae6efa5303788b06

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8804ca2d9d9d6f49c4b8db40d49880871d2faf2ffe9856c587a0d84c87cd45ca
MD5 0216e1fef649f6a116ec1f79bcb831e5
BLAKE2b-256 9a73644285bb3181e548520a26201dd2d67699eb22d0b21ecad5de23829ce574

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-win32.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 192f0da12eeae7a9314c304b2c563a3240f48709942daad46857e880bd407791
MD5 772193902f2753d8db99068b16da59dd
BLAKE2b-256 13e63e4c2e9aeed6d98b61217aaa7f7009a631cb7ca45bed473cce1bc659c0a6

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 806a86d58faf193d67df7430f2486e35584aa7d5d171666f1177e5396c8b52cf
MD5 fd14215fac7c63f7af5d785e77fc6b20
BLAKE2b-256 d4c4951824105307bae1908560a5998d1687fb7a6f3cea143ef803e9e9edf881

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 30aa43dfa3a8c775084a560994e41681bd2f649ee298b5620c25dc44d4a963ad
MD5 e853cac35abb9c9030f556d2b4225745
BLAKE2b-256 e3e1a9ef74faafb9d4507cb724b6043d39829531934f83d48a7fd7b2bade23dc

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 157adf395d3d6def5dcefadd684324013dbf2b0187caa5a5f6d3fb9e2ab53e3c
MD5 e72cadcb18c11b7cb4eb67f705592175
BLAKE2b-256 fd26337b80ad2b3046fe8e93e1a85f1a9726a66f407dfd386d8ba0e1f5799b4a

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fcd4872f2e6719aa4fe43693a2d6aaf0e2471a254878e698bc15dda58aaed94b
MD5 8a580703a69398124e41e04e851d9f94
BLAKE2b-256 abb4577a00f2df84bf9245f7563717898d05b9a15c1b797f3e9fe6ba73031cd3

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 37d3ff3271d584e49a6ddb577a97275d6c625e2dc86b8047cb3c751ac194f907
MD5 df159b2c168990a428a4ce5ee3860ac5
BLAKE2b-256 311fce3c4654dc552dfd9f436deee635f7acb3e8ece14b667a07b7659dd207b7

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1183fb69c3f520af2dc130b412f01ba3e4b62d29582f5182f03039c02895f183
MD5 ef8b894508f7aa8c836276a8fb8debd0
BLAKE2b-256 fdf5fb78dc9cebc939397bdda89671c8cb0b0b99dfb4e71e2be13661f2ab4733

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 566b88372edcb85c317c813f563cd491e8762b846f72b568f78ec68fd89c6d85
MD5 69b6a65f17b4b5f6e6058520cb54ced1
BLAKE2b-256 7aafd60481f5287f74e7fc690b9e2d4378cf2aa45c4c6c52427dbbbe74f4c9d8

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp312-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp312-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 30ec5fd3622ce93053ccaae75e1b666b69a1737328015ee8a32123d87ecac375
MD5 56e078cc0c7161f20f2c8ac3e167925c
BLAKE2b-256 258489f78bab9e47557eccf9cc2b6020810ed2f778e78c0f4770076984a8931c

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-win_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 64ffb7d722255c9c3542b4accadfa078957884d007864e5508c26be32cd1e87e
MD5 b41ec1d61ade50425bb4bf83f40153ec
BLAKE2b-256 ae13039c40ef4a64533afdafe9749673c2299df1a74aa88ce857b79cc644cf7d

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cfb85116cda967cdc100d25c5db6dd12812dd9cf85343cb41540c38d9b801fbc
MD5 a20ff113d16c688c5ba4697e47c13f5e
BLAKE2b-256 6d31207b816c389169466eb35bdac516d4fc1fb4a67a62bf6ec695ec843c36cb

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f9c1f022a97748130bc26b525126c60b84761832bb1f00456ef63b3030d374fc
MD5 562dd7c535e3fdc20e8cf49cfff7f54d
BLAKE2b-256 ba4e050c302cabb5b35022e80a38012e33a0eb9fbe01f7032caeb84e0b83319e

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b7272534f2717bf1ff2f74c574419ee50c795723268419cb928227d922b7d1bc
MD5 6321d138fc4741053944a06ce8077e80
BLAKE2b-256 aaf72e7056a5aa927d8af338854998c85be70193e1676878efe3aaf15e736b19

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 b68070cd7a98b5227e45006b1bcb3eee5ed19b660bda8789cb72d84dc9d0754a
MD5 68d002e8ebbe1ab84e465b5e63258a6c
BLAKE2b-256 be158b89fb330b6ee7a988cb084e0bfb6f01887d5cddb1cd02f3da777c2b5699

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 62c3b80a83bae0366c505e14f9930198980e9d7ee49d136f9483a37fee5a88b1
MD5 7e2b54473d7e71a9dd8d504306ab1b14
BLAKE2b-256 d76ac4ee8c3d79b4ff5969006c33aba608117bfa7cc84cc843d291aeaae3baf4

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 38facdcf30aec844bec3bba1dcc54331d38786d59abeb6ac2001e2a06c9f782d
MD5 f2ecaa7008816bd4f21f8848110e73ef
BLAKE2b-256 dcf80ce5f353c30dd7ea20393c98aa6f22fabd2892a08c176df163a51acddaf9

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3f3d09a28d1ef75533f4e51b87bea5f8c3d994a66bea6e13c1f6abab51074b46
MD5 975a20d8958fd531759a4c412802b163
BLAKE2b-256 24b5fb97226d7894668bb1840696fe63f92a435053f4643e575248426b3c3e31

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 632ed64424cbe8f54e1340ced960a3485fe7b19cbf60cb2c6d45d708480b6e99
MD5 bf160cb6822ef9c185d4bb353e71f143
BLAKE2b-256 671257c26f257f967ec5450a1f71d4744140b0644ce8a063e8aec6666deb125c

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d25001fcb8f62b40b1ad05e6dc488d04cdae28349b7c58fc3e12fd640e23293
MD5 4723963b55ab79364b1885f8de41901f
BLAKE2b-256 4b62f2f7b77326efdb55f36bf7993670953bde8918dd4520d5853ab82e0acfc8

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 be2a343aa55bf550248645635fecdb57536fc9368111b05a6e5b0a6942ca6ec2
MD5 cad6d665599828063f89ac645b42cc0f
BLAKE2b-256 5b53d707d843c462f76cbb6ee3e030d7dbbe2f74607c3160d7493870b6134b5f

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-win_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 163db4fae7f2f607065eb9b0fb1b81f2cdc35439ca345dc860c99369e8fdd30b
MD5 5f6d2cb54b52468eab6921696cfafb89
BLAKE2b-256 a047eb9bb421371688b4ed27eee83c49e70e828636c3916543278a173842a5e6

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ac85dd71f87ee9d65a4d840d83303cb54a9f21146b7fd66237ca6b68c0341881
MD5 ede01c74dcbdb4a3eb49b00fffd05e06
BLAKE2b-256 3a3017f3b13aa4d56bb4267a0ef3bdeb56eac58026cb0548401d0611309e4f07

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 2c5cbb335edc75721f70c725bb7eece29e429f0f9cbec89be20f883f3b2a7867
MD5 916ea68c8ffca74a01fd3cf934c90e1f
BLAKE2b-256 a5f9ec79f45312481c030fa7dcb2b52d2648bdbb18135750bd007433083c7497

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af0c738ef104dc34adc24a45bb39dfd0c012226f299e5b9d8a4a937e4e377bf3
MD5 db8ac2f8c05497a4748a2bc694803dcb
BLAKE2b-256 40e00a482e879980a549fa379089dd004dfc7f24dcfb23bb4a802e1445e40e84

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 83a90564c94c7ae35d4bd3751b266f0dbca6896cff247cc162f6c69a1bfd8eff
MD5 a4dc59c5a0b9e4a833c0bf159d4af5c3
BLAKE2b-256 b89b2e524028b80ea23c9fe2c8a00ac06930db2afd7af07b050b2c667f612dc3

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d70f01a2cdd6e3683d527d1be9be0a216c3d33cdded922e434958995635645c2
MD5 54819221b627aa563df967299cbe884e
BLAKE2b-256 a234579b92742ed7068b0ec58926dbe116a0e5902343b0af95fa1a96fb3ebffd

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 889887e6d13823428f3700abc4c84c677cb559a72bbd442abff86fd761685a6f
MD5 4a6a30edde912b378bf70888497d847e
BLAKE2b-256 6665a92cfd9fa329fcf354c5b21b7c29ad722065b5183313d9d558a751ac6e34

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a4b1a1a76ac4aff89eaf6ed8ced38874e34dd29269005d0d71c4635e634a9e3a
MD5 979e842021ace1c5fe3ad2a56e7e3a61
BLAKE2b-256 5170d27b304da415d17afb432a68bc19cf33dbcf83b3e51d8a25145ca9626aae

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1cac183fdd78021c537a97eff93383995ba20f28a88f8118ea6ec859bdcfba3e
MD5 607d1e88256f42106c70fb5ec6aab3c9
BLAKE2b-256 938a971d141c5e4455b122900a68f2305486430c3468abac0114599385834a7a

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20402b6c70d5fae636898bbadd4395b265678f0b0e5fb0a2519a1c5892eeef99
MD5 46c09a256f3bed20b1a6b019414d6eb6
BLAKE2b-256 71f9a86c3fe78d615749305709aed93ba158e5cd8747f15c79f6af7c0af1e306

See more details on using hashes here.

File details

Details for the file ataraxis_time-1.0.3-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for ataraxis_time-1.0.3-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f6c85d0061388653db384c5e028db8090b8681c4af3e4b70d065ebd57a2017e9
MD5 79dd6b533976e473d88470b8339d7a65
BLAKE2b-256 4b0ecf15c7921ffd51500435467150d7c6c510fbb7e66131a37a7b1d0f3d180e

See more details on using hashes here.

Supported by

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