Ora is a freestanding time and date implementation for C++ and Python.
Docs at http://ora.readthedocs.io/en/latest/.
Many Python time libraries already exist, including the standard library
datetime
module.
Ora provides:
- An opinionated, concise API centered around physical times.
- Built-in time zones.
- High performance for all operations.
- Multiple widths and precisions for times and dates.
- Rich C++ interoperability.
Ora is not a drop-in replacement for datetime
or other Python time libraries,
but supports easy interoperability.
Ora is currently prerelease software; bugs are plentiful, and APIs are subject to change.
Similar to datetime
, Ora uses the
(proleptic)
Gregorian calendar, for years 1 – 9999 only. Alternate calendars and
B.C.E. dates are not provided. There is no support for leap seconds,
relativistic effects, or astronomical times. However, time precision of 1 ns
or smaller is supported.
- Requires C++17 and Python 3.6+.
- Tested on Linux and MacOS. Currently no Windows support.
- Tested on x86-64 only.
Ora is distributed:
-
On PyPI, as source and Linux x64 / MacOS binary wheels:
pip install ora
-
On Anaconda, as Linux x64 / MacOS conda packages:
conda install -c alexhsamuel ora
-
On GitHub.
Building from source requires a C++14 compiler. See developing.md for more information.