Releases: nyx-space/hifitime
Releases · nyx-space/hifitime
Version 3.8.3: Update pyo3 and tabled
What's Changed
- Update pyo3 requirement from 0.18.1 to 0.19.0 by @dependabot in #242
- Update tabled requirement from 0.12.0 to 0.14.0 by @dependabot in #251
Full Changelog: 3.8.2...3.8.3
Version 3.8.2: Various enhancements and readme
What's Changed
- Add example for #202 by @ChristopherRabotin in #207
- Update tabled requirement from 0.10.0 to 0.11.1 by @dependabot in #219
- Export epoch formatters to Python by @ChristopherRabotin in #220
- Switch from staticmethod to classmethod by @ChristopherRabotin in #222
- Add action summary for benchmark by @ChristopherRabotin in #223
- Update tabled requirement from 0.11.1 to 0.12.0 by @dependabot in #225
- Cleanup README and fix Gregorian print bug < 1900 by @ChristopherRabotin in #233
- Update criterion requirement from 0.4.0 to 0.5.1 by @dependabot in #236
- fix december for MonthName from u8 by @Massou31 in #235
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
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
andEpoch
, and introducekani::Arbitrary
toDuration
andEpoch
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 thestd
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 useUt1Provider::download_short_from_jpl()
to automatically download the data from NASA JPL. strptime
andstrftime
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
- Fix formal verification by @ChristopherRabotin in #179
- timeofweek: introduce time of week construction and conversion by @gwbres in #180
- src/timeunits.rs: fix minor typo by @gwbres in #189
- src/epoch.rs: fix gh 187 by @gwbres in #188
- Extend formal verification by @ChristopherRabotin in #192
- Support strftime and strptime equivalent for formatting and parsing by @ChristopherRabotin in #190
- Add support for LeapSecondsFile and UT1 by @ChristopherRabotin in #194
Full Changelog: 3.7.0...3.8.0
Version 3.7.0: Numerous usability enhancements
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
- 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
andmax
function which respectively returns a copy of the epoch/duration that is the smallest or the largest betweenself
andother
, cf. #164. - [Python] Duration and Epochs now support the operators
>
,>=
,<
,<=
,==
, and!=
. Epoch now supportsinit_from_gregorian
with a time scape, like in Rust. Epochs can also be subtracted from one another using thetimedelta
function, cf. #162. - TimeSeries can now be formatted in different time scales, cf. #163
What's Changed
- optimise gregorian by @conradludgate in #160
- Remove redundant tests by @SUPERCILEX in #161
- Usability enhancements, especially for Python by @ChristopherRabotin in #165
- introducing GNSS timescales by @gwbres in #166
New Contributors
- @conradludgate made their first contribution in #160
- @SUPERCILEX made their first contribution in #161
- @gwbres made their first contribution in #166
Full Changelog: 3.5.0...3.6.0
Version 3.5.0: Python library
- 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 thepython
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, andround
-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 becometo_*
andin_*
also becomesto_*
, cf. #155.
What's Changed
- Usability enhancements and python package by @ChristopherRabotin in #144
- Add {ceil, floor, round}_in_timesystem by @ChristopherRabotin in #146
- Workflow improvements by @ChristopherRabotin in #148
- RFC3339 and Epoch store the initial time scale used by @ChristopherRabotin in #149
- Use lexical_core for parsing durations by @ChristopherRabotin in #152
- Remove Regex in favor of lexical_core for parsing by @ChristopherRabotin in #153
- Fix formatting of Epochs by @ChristopherRabotin in #156
- Methods renamed to be idiomatic by @ChristopherRabotin in #157
Full Changelog: 3.4.0...3.5.0
Version 2.3.2
What's Changed
- Fix Duration display and allow init from hi/lo values by @ChristopherRabotin in #105
Full Changelog: 2.3.1...2.3.2
Version 2.3.1
Version 2.3.0
New features
- Can now build a
Duration
by calling.seconds()
,.nanoseconds()
, etc. on several primitive types (unsigned and signedint
s andf32
andf64
) (#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
forTimeSystem
for a cleaner API (#95)
Pull request here
Version 2.3.1
Enhancement
Errors
now implementsstd:err::Error
allowing it to be used as an actual error.