Skip to content

Releases: nyx-space/hifitime

Version 3.8.3: Update pyo3 and tabled

17 Aug 21:01
f410365
Compare
Choose a tag to compare

What's Changed

Full Changelog: 3.8.2...3.8.3

Version 3.8.2: Various enhancements and readme

27 May 15:16
edc506b
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 3.8.1...3.8.2

Version 3.8.0: Const formatting options, human time support, UT1 support, thorough formal verification

30 Dec 16:04
69673d2
Compare
Choose a tag to compare

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

What's Changed

Full Changelog: 3.7.0...3.8.0

Version 3.7.0: Numerous usability enhancements

24 Nov 22:06
9c99695
Compare
Choose a tag to compare

What's Changed

  • timescale.rs: derive serdes traits when feasible by @gwbres in #167
  • timecale.rs: introduce format/display by @gwbres in #168
  • readme: fix BeiDou typo by @gwbres in #169
  • epoch: derive Hash by @gwbres in #170
  • timescale: identify GNSS timescales from standard 3 letter codes by @gwbres in #171
  • timescale: standard formatting is now available by @gwbres in #174
  • epoch, duration: improve and fix serdes feature by @gwbres in #175
  • epoch, timescale: implement default trait by @gwbres in #176

Full Changelog: 3.6.0...3.7.0

Version 3.6.0: Add Galileo and BeiDou time scales

25 Oct 03:03
6895e85
Compare
Choose a tag to compare
  • 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

What's Changed

New Contributors

Full Changelog: 3.5.0...3.6.0

Version 3.5.0: Python library

16 Oct 02:27
dfc8598
Compare
Choose a tag to compare
  • 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.

What's Changed

Full Changelog: 3.4.0...3.5.0

Version 2.3.2

08 Dec 22:02
9a76c6b
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.3.1...2.3.2

Version 2.3.1

22 Nov 21:44
84b9683
Compare
Choose a tag to compare

Version 2.3.0

New features

  • Can now build a Duration by calling .seconds(), .nanoseconds(), etc. on several primitive types (unsigned and signed ints and f32 and f64) (#96).

Enhancements

  • Migrated the underlying computation from a generic lossless fraction to TwoFloat, a tuple of two 64bit floats to represent time. This led to an 85% reduction in computation time. (#93)
  • Fix odd behavior of nanoseconds in string conversion (#90)
  • Implement FromStr for TimeSystem for a cleaner API (#95)
    Pull request here

Version 2.3.1

Enhancement

  • Errors now implements std:err::Error allowing it to be used as an actual error.