Skip to main content

Ultra-precise date and time handling in Rust for scientific applications with leap second support

Project description

Introduction to Hifitime

Hifitime is a powerful Rust and Python library designed for time management. It provides extensive functionalities with precise operations for time calculation in different time scales, making it suitable for engineering and scientific applications where general relativity and time dilation matter. Hifitime guarantees nanosecond precision for 65,536 years around the reference epoch of the initialization time scale, e.g. 01 January 1900 for TAI. Hifitime is also formally verified using the Kani model checker, read more about it this verification here.

Most users of Hifitime will only need to rely on the Epoch and Duration structures, and optionally the Weekday enum for week based computations. Scientific applications may make use of the TimeScale enum as well.

Usage

First, install hifitime either with cargo add hifitime in your Rust project or pip install hifitime in Python.

If building from source, note that the Python package is only built if the python feature is enabled.

Epoch ("datetime" equivalent)

Create an epoch in different time scales.

use hifitime::prelude::*;
use core::str::FromStr;
// Create an epoch in UTC
let epoch = Epoch::from_gregorian_utc(2000, 2, 29, 14, 57, 29, 37);
// Or from a string
let epoch_from_str = Epoch::from_str("2000-02-29T14:57:29.000000037 UTC").unwrap();
assert_eq!(epoch, epoch_from_str);
// Creating it from TAI will effectively show the number of leap seconds in between UTC an TAI at that epoch
let epoch_tai = Epoch::from_gregorian_tai(2000, 2, 29, 14, 57, 29, 37);
// The difference between two epochs is a Duration
let num_leap_s = epoch - epoch_tai;
assert_eq!(format!("{num_leap_s}"), "32 s");

// Trivially convert to another time scale
// Either by grabbing a subdivision of time in that time scale
assert_eq!(epoch.to_gpst_days(), 7359.623402777777); // Compare to the GPS time scale

// Or by fetching the exact duration
let mjd_offset = Duration::from_str("51603 days 14 h 58 min 33 s 184 ms 37 ns").unwrap();
assert_eq!(epoch.to_mjd_tt_duration(), mjd_offset); // Compare to the modified Julian days in the Terrestrial Time time scale.

In Python:

>>> from hifitime import *
>>> epoch = Epoch("2000-02-29T14:57:29.000000037 UTC")
>>> epoch
2000-02-29T14:57:29.000000037 UTC
>>> epoch_tai = Epoch.init_from_gregorian_tai(2000, 2, 29, 14, 57, 29, 37)
>>> epoch_tai
2000-02-29T14:57:29.000000037 TAI
>>> epoch.timedelta(epoch_tai)
32 s
>>> epoch.to_gpst_days()
7359.623402777777
>>> epoch.to_mjd_tt_duration()
51603 days 14 h 58 min 33 s 184 ms 37 ns
>>> 

Hifitime provides several date time formats like RFC2822, ISO8601, or RFC3339.

use hifitime::efmt::consts::{ISO8601, RFC2822, RFC3339};
use hifitime::prelude::*;

let epoch = Epoch::from_gregorian_utc(2000, 2, 29, 14, 57, 29, 37);
// The default Display shows the UTC time scale
assert_eq!(format!("{epoch}"), "2000-02-29T14:57:29.000000037 UTC");
// Format it in RFC 2822
let fmt = Formatter::new(epoch, RFC2822);
assert_eq!(format!("{fmt}"), format!("Tue, 29 Feb 2000 14:57:29"));

// Or in ISO8601
let fmt = Formatter::new(epoch, ISO8601);
assert_eq!(
    format!("{fmt}"),
    format!("2000-02-29T14:57:29.000000037 UTC")
);

// Which is somewhat similar to RFC3339
let fmt = Formatter::new(epoch, RFC3339);
assert_eq!(
    format!("{fmt}"),
    format!("2000-02-29T14:57:29.000000037+00:00")
);

Need some custom format? Hifitime also supports the C89 token, cf. the documentation.

use core::str::FromStr;
use hifitime::prelude::*;

let epoch = Epoch::from_gregorian_utc_hms(2015, 2, 7, 11, 22, 33);

// Parsing with a custom format
assert_eq!(
    Epoch::from_format_str("Sat, 07 Feb 2015 11:22:33", "%a, %d %b %Y %H:%M:%S").unwrap(),
    epoch
);

// And printing with a custom format
let fmt = Format::from_str("%a, %d %b %Y %H:%M:%S").unwrap();
assert_eq!(
    format!("{}", Formatter::new(epoch, fmt)),
    "Sat, 07 Feb 2015 11:22:33"
);

You can also grab the current system time in UTC, if the std feature is enabled (default), and find the next or previous day of the week.

use hifitime::prelude::*;

#[cfg(feature = "std")]
{
    let now = Epoch::now().unwrap();
    println!("{}", now.next(Weekday::Tuesday));
    println!("{}", now.previous(Weekday::Sunday));
}

Oftentimes, we'll want to query something at a fixed step between two epochs. Hifitime makes this trivial with TimeSeries.

use hifitime::prelude::*;

let start = Epoch::from_gregorian_utc_at_midnight(2017, 1, 14);
let end = start + 12.hours();
let step = 2.hours();

let time_series = TimeSeries::inclusive(start, end, step);
let mut cnt = 0;
for epoch in time_series {
    #[cfg(feature = "std")]
    println!("{}", epoch);
    cnt += 1
}
// Check that there are indeed seven two-hour periods in a half a day,
// including start and end times.
assert_eq!(cnt, 7)

In Python:

>>> from hifitime import *
>>> start = Epoch.init_from_gregorian_utc_at_midnight(2017, 1, 14)
>>> end = start + Unit.Hour*12
>>> iterator = TimeSeries(start, end, step=Unit.Hour*2, inclusive=True)
>>> for epoch in iterator:
...     print(epoch)
... 
2017-01-14T00:00:00 UTC
2017-01-14T02:00:00 UTC
2017-01-14T04:00:00 UTC
2017-01-14T06:00:00 UTC
2017-01-14T08:00:00 UTC
2017-01-14T10:00:00 UTC
2017-01-14T12:00:00 UTC
>>> 

Duration

use hifitime::prelude::*;
use core::str::FromStr;

// Create a duration using the `TimeUnits` helping trait.
let d = 5.minutes() + 7.minutes() + 35.nanoseconds();
assert_eq!(format!("{d}"), "12 min 35 ns");

// Or using the built-in enums
let d_enum = 12 * Unit::Minute + 35.0 * Unit::Nanosecond;

// But it can also be created from a string
let d_from_str = Duration::from_str("12 min 35 ns").unwrap();
assert_eq!(d, d_from_str);

Hifitime guarantees nanosecond precision, but most human applications don't care too much about that. Durations can be rounded to provide a useful approximation for humans.

use hifitime::prelude::*;

// Create a duration using the `TimeUnits` helping trait.
let d = 5.minutes() + 7.minutes() + 35.nanoseconds();
// Round to the nearest minute
let rounded = d.round(1.minutes());
assert_eq!(format!("{rounded}"), "12 min");

// And this works on Epochs as well.
let previous_post = Epoch::from_gregorian_utc_hms(2015, 2, 7, 11, 22, 33);
let example_now = Epoch::from_gregorian_utc_hms(2015, 8, 17, 22, 55, 01);

// We'll round to the nearest fifteen days
let this_much_ago = example_now - previous_post;
assert_eq!(format!("{this_much_ago}"), "191 days 11 h 32 min 28 s");
let about_this_much_ago_floor = this_much_ago.floor(15.days());
assert_eq!(format!("{about_this_much_ago_floor}"), "180 days");
let about_this_much_ago_ceil = this_much_ago.ceil(15.days());
assert_eq!(format!("{about_this_much_ago_ceil}"), "195 days");

In Python:

>>> from hifitime import *
>>> d = Duration("12 min 32 ns")
>>> d.round(Unit.Minute*1)
12 min
>>> d
12 min 32 ns
>>> 

hifitime on crates.io hifitime on docs.rs minimum rustc: 1.70 Build Status Build Status codecov

Comparison with time and chrono

First off, both time and chrono are fantastic libraries in their own right. There's a reason why they have millions and millions of downloads. Secondly, hifitime was started in October 2017, so quite a while before the revival of time (~ 2019).

One of the key differences is that both chrono and time separate the concepts of "time" and "date." Hifitime asserts that this is physically invalid: both a time and a date are an offset from a reference in a given time scale. That's why, Hifitime does not separate the components that make up a date, but instead, only stores a fixed duration with respect to TAI. Moreover, Hifitime is formally verified with a model checker, which is much more thorough than property testing.

More importantly, neither time nor chrono are suitable for astronomy, astrodynamics, or any physics that must account for time dilation due to relativistic speeds or lack of the Earth as a gravity source (which sets the "tick" of a second).

Hifitime also natively supports the UT1 time scale (the only "true" time) if built with the ut1 feature.

Features

  • Initialize a high precision Epoch from the system time in UTC
  • Leap seconds (as announced by the IETF on a yearly basis)
  • UTC representation with ISO8601 and RFC3339 formatting and blazing fast parsing (45 nanoseconds)
  • Trivial support of time arithmetic: addition (e.g. 2.hours() + 3.seconds()), subtraction (e.g. 2.hours() - 3.seconds()), round/floor/ceil operations (e.g. 2.hours().round(3.seconds()))
  • Supports ranges of Epochs and TimeSeries (linspace of Epochs and Durations)
  • Trivial conversion between many time scales
  • High fidelity Ephemeris Time / Dynamic Barycentric Time (TDB) computations from ESA's Navipedia
  • Julian dates and Modified Julian dates
  • Embedded device friendly: no-std and const fn where possible

This library is validated against NASA/NAIF SPICE for the Ephemeris Time to Universal Coordinated Time computations: there are exactly zero nanoseconds of difference between SPICE and hifitime for the computation of ET and UTC after 01 January 1972. Refer to the leap second section for details. Other examples are validated with external references, as detailed on a test-by-test basis.

Supported time scales

  • Temps Atomique International (TAI)
  • Universal Coordinated Time (UTC)
  • Terrestrial Time (TT)
  • Ephemeris Time (ET) without the small perturbations as per NASA/NAIF SPICE leap seconds kernel
  • Dynamic Barycentric Time (TDB), a higher fidelity ephemeris time
  • Global Positioning System (GPST)
  • Galileo System Time (GST)
  • BeiDou Time (BDT)
  • UNIX

Hifitime offers means to convert between time scales coarsely and precisely. The Polynomial structure allows description of the state of a Timescale with respect to a reference, as typically needed by precise applications or Timescale monitoring & maintenance.

Non-features

  • Time-agnostic / date-only epochs. Hifitime only supports the combination of date and time, but the Epoch::{at_midnight, at_noon} is provided as helper functions.

Design

No software is perfect, so please report any issue or bug on Github.

Duration

Under the hood, a Duration is represented as a 16 bit signed integer of centuries (i16) and a 64 bit unsigned integer (u64) of the nanoseconds past that century. The overflowing and underflowing of nanoseconds is handled by changing the number of centuries such that the nanoseconds number never represents more than one century (just over four centuries can be stored in 64 bits).

Advantages:

  1. Exact precision of a duration: using a floating point value would cause large durations (e.g. Julian Dates) to have less precision than smaller durations. Durations in hifitime have exactly one nanosecond of precision for 65,536 years.
  2. Skipping floating point operations allows this library to be used in embedded devices without a floating point unit.
  3. Duration arithmetics are exact, e.g. one third of an hour is exactly twenty minutes and not "0.33333 hours."

Disadvantages:

  1. Most astrodynamics applications require the computation of a duration in floating point values such as when querying an ephemeris. This design leads to an overhead of about 5.2 nanoseconds according to the benchmarks (Duration to f64 seconds benchmark). You may run the benchmarks with cargo bench.

Epoch

The Epoch stores a duration with respect to the reference of a time scale, and that time scale itself. For monotonic time on th Earth, Standard of Fundamental Astronomy (SOFA) recommends of opting for a glitch-free time scale like TAI (i.e. without discontinuities like leap seconds or non-uniform seconds like TDB).

Leap second support

Leap seconds allow TAI (the absolute time reference) and UTC (the civil time reference) to not drift too much. In short, UTC allows humans to see the sun at zenith at noon, whereas TAI does not worry about that. Leap seconds are introduced to allow for UTC to catch up with the absolute time reference of TAI. Specifically, UTC clocks are "stopped" for one second to make up for the accumulated difference between TAI and UTC. These leap seconds are announced several months in advance by IERS, cf. in the IETF leap second reference.

The "placement" of these leap seconds in the formatting of a UTC date is left up to the software: there is no common way to handle this. Some software prevents a second tick, i.e. at 23:59:59 the UTC clock will tick for two seconds (instead of one) before hoping to 00:00:00. Some software, like hifitime, allow UTC dates to be formatted as 23:59:60 on strictly the days when a leap second is inserted. For example, the date 2016-12-31 23:59:60 UTC is a valid date in hifitime because a leap second was inserted on 01 Jan 2017.

Important

Prior to the first leap second, NAIF SPICE claims that there were nine seconds of difference between TAI and UTC: this is different from the Standard of Fundamental Astronomy (SOFA). SOFA's iauDat function will return non-integer leap seconds from 1960 to 1972. It will return an error for dates prior to 1960. Hifitime only accounts for leap seconds announced by IERS in its computations: there is a ten (10) second jump between TAI and UTC on 01 January 1972. This allows the computation of UNIX time to be a specific offset of TAI in hifitime. However, the prehistoric (pre-1972) leap seconds as returned by SOFA are available in the leap_seconds() method of an epoch if the iers_only parameter is set to false.

Ephemeris Time vs Dynamic Barycentric Time (TDB)

In theory, as of January 2000, ET and TDB should now be identical. However, the NASA NAIF leap seconds files (e.g. naif00012.tls) use a simplified algorithm to compute the TDB:

Equation [4], which ignores small-period fluctuations, is accurate to about 0.000030 seconds.

In order to provide full interoperability with NAIF, hifitime uses the NAIF algorithm for "ephemeris time" and the ESA algorithm for "dynamical barycentric time." Hence, if exact NAIF behavior is needed, use all of the functions marked as et instead of the tdb functions, such as epoch.to_et_seconds() instead of epoch.to_tdb_seconds().

Changelog

4.0.0

This update is not mearly an iteration, but a redesign in how time scale are handled in hifitime, fixing nanosecond rounding errors, and improving the Python user experience. Refer to the blog post for details. As of version 4.0.0, Hifitime is licensed under the Mozilla Public License version 2, refer to discussion #274 for details.

Breaking changes

Note: as of version 4.0.0, dependency updates will increment the minor version.

New features / improvements

Bug fixes

The main change in this refactoring is that Epochs now keep the time in their own time scales. This greatly simplifies conversion between time scales, and ensures that all computations happen in the same time scale as the initialization time scale, then no sub-nanosecond rounding error could be introduced.

Maintenance

3.9.0

3.8.5

Changes from 3.8.2 are only dependency upgrades until this release.

Minimum Supported Rust version bumped from 1.64 to 1.70.

3.8.2

  • Clarify README and add a section comparing Hifitime to time and chrono, cf. #221
  • Fix incorrect printing of Gregorian dates prior to to 1900, cf. #204

3.8.1 (unreleased)

  • Fix documentation for the formatter, cf. #202
  • Update MSRV to 1.59 for rayon v 1.10

3.8.0

Thanks again to @gwbres for his work in this release!

  • Fix CI of the formal verification and upload artifacts, cf. #179
  • Introduce time of week construction and conversion by @gwbres, cf.#180 and #188
  • Fix minor typo in src/timeunits.rs by @gwbres, cf. #189
  • Significantly extend formal verification of Duration and Epoch, and introduce kani::Arbitrary to Duration and Epoch for users to formally verify their use of time, cf. #192
  • It is now possible to specify a Leap Seconds file (in IERS format) using the LeapSecondsFile::from_path (requires the std feature to read the file), cf. #43.
  • UT1 time scale is now supported! You must build a Ut1Provider structure with data from the JPL Earth Orientation Parameters, or just use Ut1Provider::download_short_from_jpl() to automatically download the data from NASA JPL.
  • strptime and strftime equivalents from C89 are now supported, cf. #181. Please refer to the documentation for important limitations and how to build a custom formatter.
  • ISO Day of Year and Day In Year are now supported for initialization of an Epoch (provided a time scale and a year), and formatting, cf. #182.
  • Python: the representation of an epoch is now in the time scale it was initialized in

3.7.0

Huge thanks to @gwbres who put in all of the work for this release. These usability changes allow Rinex to use hifitime, check out this work.

3.6.0

  • Galileo System Time and BeiDou Time are now supported, huge thanks to @gwbres for all that work!
  • Significant speed improvement in the initialization of Epochs from their Gregorian representation, thanks @conradludgate for #160.
  • Epoch and Duration now have a min and max function which respectively returns a copy of the epoch/duration that is the smallest or the largest between self and other, cf. #164.
  • Python Duration and Epochs now support the operators >, >=, <, <=, ==, and !=. Epoch now supports init_from_gregorian with a time scape, like in Rust. Epochs can also be subtracted from one another using the timedelta function, cf. #162.
  • TimeSeries can now be formatted in different time scales, cf. #163

3.5.0

  • Epoch now store the time scale that they were defined in: this allows durations to be added in their respective time scales. For example, adding 36 hours to 1971-12-31 at noon when the Epoch is initialized in UTC will lead to a different epoch than adding that same duration to an epoch initialized at the same time in TAI (because the first leap second announced by IERS was on 1972-01-01), cf. the test_add_durations_over_leap_seconds test.
  • RFC3339 and ISO8601 fully supported for initialization of an Epoch, including the offset, e.g. Epoch::from_str("1994-11-05T08:15:30-05:00"), cf. #73.
  • Python package available on PyPI! To build the Python package, you must first install maturin and then build with the python feature flag. For example, maturin develop -F python && python will build the Python package in debug mode and start a new shell where the package can be imported.
  • Fix bug when printing Duration::MIN (or any duration whose centuries are minimizing the number of centuries).
  • TimeSeries can now be formatted
  • Epoch can now be ceil-ed, floor-ed, and round-ed according to the time scale they were initialized in, cf. #145.
  • Epoch can now be initialized from Gregorian when specifying the time system: from_gregorian, from_gregorian_hms, from_gregorian_at_noon, from_gregorian_at_midnight.
  • Fix bug in Duration when performing operations on durations very close to Duration::MIN (i.e. minus thirty-two centuries).
  • Duration parsing now supports multiple units in a string and does not use regular expressions. THis allows it to work with no-std.
  • Epoch parsing no longer requires regex.
  • Functions are not more idiomatic: all of the as_* functions become to_* and in_* also becomes to_*, cf. #155.

3.4.0

  • Ephemeris Time and Dynamical Barycentric Time fixed to use the J2000 reference epoch instead of the J1900 reference epoch. This is a potentially breaking change if you relied on the previous one century error when converting from/to ET/TDB into/from UTC and storing the data as a string. There is no difference if the original representation was used.
  • Ephemeris Time now strictly matches NAIF SPICE: the error between SPICE and hifitime is now zero nanoseconds. after the introduction of the first leap second. Prior to the first leap second, NAIF SPICE claims that there were nine seconds of difference between TAI and UTC: this is different from SOFA. Hifitime instead does not account for leap seconds in prehistoric (pre-1972) computations at all.
  • The Standard of Fundamentals of Astronomy (SOFA) leap seconds from 1960 to 1972 are now available with the leap_seconds() -> Option<f64> function on an instance of Epoch. Importantly, no difference in the behavior of hifitime should be noticed here: the prehistoric leap seconds are ignored in all calculations in hifitime and only provided to meet the SOFA calculations.
  • Epoch and Duration now have the C memory representation to allow for hifitime to be embedded in C more easily.
  • Epoch and Duration can now be encoded or decoded as ASN1 DER with the asn1der crate feature (disabled by default).

3.3.0

  • Formal verification of the normalization operation on Duration, which in turn guarantees that Epoch operations cannot panic, cf. #127
  • Fix len and size_hint for TimeSeries, cf. #131, reported by @d3v-null, thanks for the find!
  • Epoch now implements Eq and Ord, cf. #133, thanks @mkolopanis for the PR!
  • Epoch can now be printed in different time systems with format modifiers, cf. #130
  • (minor) as_utc_duration in Epoch is now public, cf. #129
  • (minor) The whole crate now uses num-traits thereby skipping the explicit use of libm. Basically, operations on f64 look like normal Rust again, cf. #128
  • (minor) Move the tests to their own folder to make it obvious that this is thoroughly tested

3.2.0

  • Fix no-std implementation by using libm for non-core f64 operations
  • Add UNIX timestamp, thanks @mkolopanis
  • Enums now derive Eq and some derive Ord (where relevant) #118
  • Use const fn where possible and switch to references where possible #119
  • Allow extracting the centuries and nanoseconds of a Duration and Epoch, respectively with to_parts and to_tai_parts #122
  • Add ceil, floor, round operations to Epoch and Duration

3.1.0

  • Add #![no_std] support
  • Add to_parts to Duration to extract the centuries and nanoseconds of a duration
  • Allow building an Epoch from its duration and parts in TAI system
  • Add pure nanosecond (u64) constructor and getter for GPST since GPS based clocks will count in nanoseconds

Possibly breaking change

  • Errors::ParseError no longer contains a String but an enum ParsingErrors instead. This is considered possibly breaking because it would only break code in the cases where a datetime parsing or unit parsing was caught and handled (uncommon). Moreover, the output is still Display-able.

3.0.0

  • Backend rewritten from TwoFloat to a struct of the centuries in i16 and nanoseconds in u64. Thanks to @pwnorbitals for proposing the idea in #107 and writing the proof of concept. This leads to at least a 2x speed up in most calculations, cf. this comment.
  • Fix GPS epoch, and addition of a helper functions in Epoch by @cjordan

Important Update on Versioning Strategy

We want to inform our users of an important change in Hifitime's versioning approach. Starting with version 3.9.0, minor version updates may include changes that could potentially break backward compatibility. While we strive to maintain stability and minimize disruptions, this change allows us to incorporate significant improvements and adapt more swiftly to evolving user needs. We recommend users to carefully review the release notes for each update, even minor ones, to understand any potential impacts on their existing implementations. Our commitment to providing a robust and dynamic time management library remains steadfast, and we believe this change in versioning will better serve the evolving demands of our community.

Development

Thanks for considering to help out on Hifitime!

For Rust development, cargo is all you need, along with build tools for the minimum supported Rust version.

Python development

First, please install maturin and set up a Python virtual environment from which to develop. Also make sure that the package version in Cargo.toml is greater than any published version. For example, if the latest version published on PyPi is 4.0.0-a.0 (for alpha-0), make sure that you change the Cargo.toml file such that you're at least in version alpha-1, or the pip install will download from PyPi instead of installing from the local folder. To run the Python tests, you must install pytest in your virtual environment.

The exact steps should be:

  1. Jump into the virtual environment: source .venv/bin/activate (e.g.)
  2. Make sure pytest is installed: pip install pytest
  3. Build hifitime specifying the output folder of the Python egg: maturin build -F python --out dist
  4. Install the egg: pip install dist/hifitime-4.0.0.alpha1-cp311-cp311-linux_x86_64.whl
  5. Run the tests using the environmental pytest: .venv/bin/pytest

Type hinting

Hifitime uses the approach from dora to enable type hinting in IDEs. This approach requires running maturin twice: once to generate to the bindings and a second time for it to incorporate the pyi file.

maturin develop -F python;
python generate_stubs.py hifitime hifitime.pyi;
maturin develop

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686

hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-cp313-cp313-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.13Windows x86-64

hifitime-4.1.1-cp313-cp313-win32.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86

hifitime-4.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

hifitime-4.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686

hifitime-4.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

hifitime-4.1.1-cp313-cp313-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

hifitime-4.1.1-cp312-cp312-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.12Windows x86-64

hifitime-4.1.1-cp312-cp312-win32.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86

hifitime-4.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

hifitime-4.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686

hifitime-4.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

hifitime-4.1.1-cp312-cp312-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

hifitime-4.1.1-cp311-cp311-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.11Windows x86-64

hifitime-4.1.1-cp311-cp311-win32.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86

hifitime-4.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

hifitime-4.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

hifitime-4.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

hifitime-4.1.1-cp311-cp311-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

hifitime-4.1.1-cp310-cp310-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.10Windows x86-64

hifitime-4.1.1-cp310-cp310-win32.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86

hifitime-4.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

hifitime-4.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

hifitime-4.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

hifitime-4.1.1-cp39-cp39-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.9Windows x86-64

hifitime-4.1.1-cp39-cp39-win32.whl (1.1 MB view details)

Uploaded CPython 3.9Windows x86

hifitime-4.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

hifitime-4.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

hifitime-4.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

hifitime-4.1.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

File details

Details for the file hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8845858fd57e174e6545eacc5467d3a8130afa28a04a24a08d9edd3a18d4bdcd
MD5 b1b60ea50cb5f50cba296caca13f3a04
BLAKE2b-256 4d1d025eaa910174c71b01ca864e00712a4acaeae2d77d2842068630e24d7c83

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 94d73495c0d2f4ca3e8f24a978eff77bb632f42e87cf9c11416915553f2cb9de
MD5 73935bc8d62f55e9e2f6f797ee31edfa
BLAKE2b-256 12c27411302af0462bc4015d4e37169b4eccca1cd0fb9371301209cf072f2fc3

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bbe45abbda758846978428ec7ead86371084db57b9efcbbf746b3fd63dae95bf
MD5 a53f5ee5d8fe1326bc8b8522eab7aa85
BLAKE2b-256 96fbef5a2e980e42e814d22bb32255a1b592ed6419106dce2355107bca24aa4c

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a61e28339e6ac03877d08cd9ba30da93980e588182ef46484f08367c9c09a0a4
MD5 4d38c6b57f0bf4ab73afafcf03b40889
BLAKE2b-256 4316da9399ea456be2cdffd4a9797553df896d2410abd54b539449817c7eb268

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7ae42fc127e1a32dfb59185d4139b032dd0ba880a48e807b967e267bd3a1c061
MD5 3c821cfcd2a6ef92856e9a4bd5dcf99c
BLAKE2b-256 006dd2257c76fc2510842bbcf67c1ded275c88e7ffb99125f045f38d1a34a1d8

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 8968e5d581799a6ec24584bd0e65328b6e3af41fd9173c726e515f248e7ed8a2
MD5 cfab67b308450d5e62bbcd65e7586ea9
BLAKE2b-256 e19678346cf09a77e24a9695be95388616865b34764045bba03a0f3fc748eccc

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 38d6b9b7e743ab8606b21c250dbc0005decf072a88a61876da45810902cfdfbe
MD5 2a26c1c6e695a720ac80af6585ede7db
BLAKE2b-256 80a1aea3abacd9e90aebe6a75a52a7aeeda084eecf9aae20e6cf306ab27f267b

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 dbc16a48b47fc8d7dbb79809be5d3f5eb6073831947492ee493034adb0f8e39a
MD5 a5a9762b405a270ba848c12f76b87bf6
BLAKE2b-256 59e324953c0c0c0b4191fc922f7bd5d8b8d2e570debe4df7ed626265cfe5de4b

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 06288ef6562106c583c3d07f580d11768d225401e379b67ff85db3e6b18b5ef3
MD5 4cca73b1054f43397478a3d655da3a8d
BLAKE2b-256 e62839bd4854eacc69b80f6654d6fcef057053904960adc72e0f4e872ecb3847

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-win32.whl.

File metadata

  • Download URL: hifitime-4.1.1-cp313-cp313-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 78708b82e0cb9db7702ce0d2f16abd398f5b2f766780c43e80126f3b77cd9418
MD5 05f7cb267fd47784a1e0ce698c5120d2
BLAKE2b-256 9140b5cb68c75f6a535968fcf3ab6715e78021e99d680caad06919cb86063dea

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ee490d73e81620f765bf7977bcb0b89ccca53021fd93c762d0dd5a3f0639d8c
MD5 ee0070e13685944c32b607f2f7f4e145
BLAKE2b-256 3f99a8489ea9eea0aee0c3fc5cfda93333ce517ed6913521c2c63051cefd164e

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2284288c57f41a6363d5ad87271c6f8b98d23f678a1f677af630ee98e1ce49c6
MD5 8f8921095e6d99b8b6df0168602b2b0d
BLAKE2b-256 1af4b5791ffefd7578d653bd3cdad63b0305aab275b3bbd017dd415d0c7e4827

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b2678140841dba2ff377e0796e340fd57a9e1074a5f2057bb6c3a2130413b3bd
MD5 92f8adcbb530e079aed2f39cdfc4d201
BLAKE2b-256 f5adb4e06e0fdcc07ce8c28871b7efdfb820f501da85b1a7d92919add7dcfe57

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 43048f98dccff44533938ac244c1492ed3f8ab9f0e539f52c8765e29480ea185
MD5 33f28b921f396ab5f91dcb2c53189c80
BLAKE2b-256 27a0154bbf192df6d0cc64854276974f1640b8535f5fc3c0d4ba55403d29c3a9

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2a2cdf9ff55bb3457a8c7d6c867c94a0375c87813d3d12f7029da79bdc297aa3
MD5 d1c1f9a3f712935b3030eeeaf9806709
BLAKE2b-256 9854e02305407147548ef979f75ead193cea6e1769445881e709b541dd3b1d3f

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fea156ae11398f33e54c5172ae00d7ad1db232bf48ce1b6a4d783028295b2e3c
MD5 7b98d2b3fa1e233c51c2c9a1cfd41d07
BLAKE2b-256 f335bfcb5a53dd741ec09dc1fc620ae0a3f57cfc089802ddeeb9694b54925e2a

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 46a2180eca7f518a774822fe83a7a11bf32f674d1d4f154ad6c9df3b0b7f91dd
MD5 69b943466a4ea74c42b87d647424da8b
BLAKE2b-256 a1e82074db98d66833e1aeeb411c11a104adb99832accf80d51d6ce0e56d26e7

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-win32.whl.

File metadata

  • Download URL: hifitime-4.1.1-cp312-cp312-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 11361306db5211040fbed2dcb6abfa58dbc436359cc1217e1476072c883ba46d
MD5 9e16277b89ab7e38a2a8b46914e9f82f
BLAKE2b-256 2787f48c19dc4f2a05c7ed072e7c70c45c6d3b389291fbc6460e6845f98ab532

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8e81afd9cfb9fdeca057eeb86466a9c24adaaac3db04fee0fd0404a3bd16eed
MD5 1d5c0ca09b609f319e2a69eff3ccba72
BLAKE2b-256 71a663c70d4de56fcdee07d9720e8494f78f48c5462d891549ecedef13f3d0f0

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 ce075c3bd2c9f635c65e68c24b8e8deb3b09a6daf9debfacb67f8c92bd77030d
MD5 03dba7dd692c79fc6295d1692b053465
BLAKE2b-256 e85ad91e216f87c91b5f60db6dee84077c1602b928e19790d84e94d0c5544a33

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 653ba0bff87e0da943d9e7b92a588ad21a7486757b370b8feb33d3008097f9f3
MD5 3afe551d9bffd562329b54672a1d5915
BLAKE2b-256 aa964385159a9247b09b183cc4e20477575c0f790e59534b4fa7c49c2ca6bf3e

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 7c33d5a0f69450628a7bc67c0780d48b30c8c29f71b1b7ec043b5e1bfa767b0e
MD5 28ae0cff8fff1da98d719e08505dc4a5
BLAKE2b-256 c4292c4f5ec1e58c6e591b330a31cccdf8d3de9be87ccf2eaa11ffd2b38d3317

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22a7cc4eac826d32966ff0a6cf388a189dcd6820f364942646cbf44b98cb742a
MD5 1fb3ccb13bcc879033c85799356625ae
BLAKE2b-256 1098bb91c2b93f3340b1ac0adb431db8ecc23ebaa6ebcf5e58ee6b0817aa5af0

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 83a78a02751622f4735996ed90a790dc6901a6cc8b1affec3856c053006cc9b1
MD5 7e9f38e069eb0802973f41c4524ef813
BLAKE2b-256 6bc97a8454a6f71a80b2ebc962355a8a88f7553e1b88febd2ae04f8d5674c2f3

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 30e0151f6d4b6b1dd9f86646494704f9fc7cae6ec96544a73c76a9ec71d9d967
MD5 78a0bd0d887a2eac81523e65a34a525f
BLAKE2b-256 b1d3721562283b2016802989e61d9f845b048b62c2a2804500241b81e032635a

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-win32.whl.

File metadata

  • Download URL: hifitime-4.1.1-cp311-cp311-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 024dcfd24417e49efe903e432af89190b0f3fb668d459ffcd91ea0440fe4e557
MD5 560a92aa79ec595863701099c27a9030
BLAKE2b-256 9f06f4151642d3f4f4c1a7b62d1e113ce8692b48c0c168642c643ac91dd8003f

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1277ccf565cc2d9892928db1ec236c6210632de836a9533d4cd2cb3b83923eff
MD5 157781d6f9b82c94d0143f312485bc3d
BLAKE2b-256 0702132307df6aebf1f68fea72a3835fc3bd1407e708574334bb00c7862cee66

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 702ee026d72c0da6cd52d69a05a8130bad0f55fb603e96daae72ad51d3eab1e5
MD5 51889148ba573f7264d6e76aa96a8b6e
BLAKE2b-256 ba5076885e46da03d5ef73d0aa73714cbbf18b81ce8eaadfd27dfbad4cb60550

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2ffe5c48f9c5497404b4d631d7d9d38b59ef01b880f1da68c6b5e4ec02f570c1
MD5 9c495060626dc29f4a5bca2383684c29
BLAKE2b-256 f01ab23380def6e5bd416ade03c90ed6b29649a603a4df6ca558498d8f7500b2

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5eb9d636dfa88f7335aa3765f8f006525ef29fe3582009cee03777dc04d3231f
MD5 c7193fabb73ec576dfc914e79cc7df1e
BLAKE2b-256 d7f76e42393cce16ce0a363b5653ba336195d2b21d86a0d8ddce54edfa53e604

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 722c55f901f6236063ee77af6054c2d35e2ea9d56238442bd895c5fd9f8dfeeb
MD5 359d03cd23c6e03d71d82adca8923847
BLAKE2b-256 49932cb9f405f2ef436c5741cfa9527586a2ba4bb4c4cfdd9f085dae43414160

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c545100f4bce42aafe3b4ce7567bd8ceb906410cdc0bfe00aaafb4346ec7592b
MD5 427f697da7611155d11b3367d0d154b9
BLAKE2b-256 23676d5059997af51c8b8309ebd0e2233d3bff24252a6ad6aa0ce3e156b8a97e

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7e1e6e33198a141db576bc39ba20fd35edf2cbefbaacf2c086fb66bc1d328076
MD5 edbd383b6e9acfc594ab3f4f86021142
BLAKE2b-256 18d9de196416a80675e3d9004bbb312c32584f03acb4ecb1912396f67bfa381e

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: hifitime-4.1.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for hifitime-4.1.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 5692febc5c03ededee4cd0b9fea3f36dbc461bc49697bb7311d358cb729de8f6
MD5 d9dd60ade365a1c3ca67f7940b107188
BLAKE2b-256 921bdcdddedfa61fd77c9f1fb7f3a133e4811da96efa719b54ea78d49922ba98

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc2487d13bfe5d09c10dde06ceb6402b92242f6736780a44b5cfd1fec2c327ca
MD5 4a729c299aba7e1b86ca8dc95a57dd37
BLAKE2b-256 3ad5b8eaede9558a7af09172a87751acf08c702b6282a2fe2dd52b6ea253f189

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 bd1f606749f8b1cf2b16f5703590ac1295f3885057c725ede5dc41af9a8e9854
MD5 aeab9ea6eca563ba6e233669e724af72
BLAKE2b-256 36c65bedcbc8da7d3d76167ea2c5a3e66eaf1f3cce7344055a088e60a7569688

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a7d612ea5bfbacbefcca926f8a82e5a39273fd85f56e552331a465f935701ce8
MD5 567bb301b810e32fef6da2ee0e450961
BLAKE2b-256 fa2ec8dc70e87158c35d4c34feb3e11c2c246c482859c590cd44ec12ab4367c6

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 189ac958b3ea7d8d4cc051b47042c98164b93a6b4071385dd3272d8dff150721
MD5 eaed1ca504e1b35b952621a02efe32a0
BLAKE2b-256 1d522d181a2ffbe563492fdafbc2b2aa15329c96c0775af3b2ff7907fbdf5f5d

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: hifitime-4.1.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for hifitime-4.1.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 afce660990c0d247f9e7cc00505176ba552df1384ecc958e5fc87eb6bc485f83
MD5 da135fb8d5ffb83e7f304a6898ffb369
BLAKE2b-256 272dbcd132f115fa894916ae77e342531008eb386c76d364a0bb5e91f686f4d3

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: hifitime-4.1.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for hifitime-4.1.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 736bd669014525f570dbb6795ad001e1c32ece7bb2065d8a38f2335b83ce9236
MD5 2a94372e0542699901d2c05b0ba11f65
BLAKE2b-256 250ba047d471ae793dcdf0813a353e9c874984874cffc40b4d648b9a2d3ebf17

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a62f3f7e6d5b386f5ee3cee442c5c245a15624500bc00c036918c76b9cb073d0
MD5 a0aa290e9d86902a6274e6b99b4d7d14
BLAKE2b-256 5bfd4a5db46b96323be163fd694c30a23500849b3506d30acd169d8c03bc8032

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b7b6f89351e4f1ccdb3baeaeb39d21f947a4f89142f53adc24c44114957e06c9
MD5 eb1cd8ba8bd9e219ed279009181dbffc
BLAKE2b-256 b72ee2a9cbaaf952d82e3b6ad7a2a0f2b480a73ff1dedc3d900e7a87f23380ef

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2a334e5a96d4bb94f932056fa65a8938dfda2c5eeb851ec47594838befbf314c
MD5 c76e504c278d0d4fff1e8ef82394986b
BLAKE2b-256 80cbba6da4d865b5e56e3dfa83084a7eb2c41d840ca7ee269cb39ab92ce9e001

See more details on using hashes here.

File details

Details for the file hifitime-4.1.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for hifitime-4.1.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 013697704f45d4dd4d1272d30067a9f98ee2de1a0f85c153fc3a0b83bbe8fe62
MD5 db60e77e46863ffec353ea31bddac795
BLAKE2b-256 a6064528f131c915b9640f6a1ef32a57726a2a145182fc3b730b2d46bb4dd380

See more details on using hashes here.

Supported by

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