Skip to main content

Rust-implemented time-series utilities exposed to Python via PyO3.

Project description

rust_timeseries

PyPI CI

rust_timeseries is a high-performance Python library for time-series diagnostics.
The first release implements the Escanciano–Lobato (2009) robust automatic portmanteau test for serial dependence.
Heavy lifting is handled in Rust (via PyO3) so you get C-level speed with a pure-Python interface.


✨ Highlights

Why it matters What you get
Native-code core Tight Rust loops compiled to machine code
Zero-copy I/O numpy.ndarray / pandas.Series buffers are viewed directly—no copying ever
Heteroskedastic-robust τ̂-adjusted autocorrelations maintain validity under conditional heteroskedasticity
Automatic lag choice Data-driven (p̃) maximises the penalised statistic (L_p)
Friendly errors Clear ValueError / OSError when inputs are invalid

📦 Installation

pip install rust_timeseries

Binary wheels are provided for Python 3.9–3.13 on Linux x86-64, macOS (Intel & Apple Silicon) and Windows 64-bit.
If no wheel matches your platform a source install will build automatically—just have Rust 1.76+ on PATH.


🚀 Quick start

import rust_timeseries as rts
import numpy as np

y = np.random.randn(500)

test = rts.statistical_tests.EscancianoLobato(y, q=3.5)  # d defaults to ⌊n**0.2⌋
print(f"Q*      = {test.statistic:.3f}")
print(f"p̃       = {test.p_tilde}")
print(f"p-value = {test.pvalue:.4f}")

API snapshot

Object Attribute Meaning
EscancianoLobato .statistic Robust Box–Pierce statistic (Q^{*}_{p̃})
.pvalue Asymptotic χ² (1) tail probability
.p_tilde Data-driven lag (p̃)

Constructor signature

EscancianoLobato(data, /, *, q=2.4, d=None)

⚙️ How it works

All numerics live in safe Rust (src/), compiled into a shared library and imported by Python.
The Rust crate is internal; no stable Rust API is promised.


🛠 Development setup

git clone https://github.com/your-org/rust_timeseries
cd rust_timeseries
python -m venv .venv && source .venv/bin/activate
pip install -U pip maturin
maturin develop --features pyo3/extension-module
pytest

📜 License

Released under the MIT License – free for commercial and academic use.


📖 Reference

Escanciano, J. C. & Lobato, I. N. (2009). Testing serial correlation in time series with missing observations. Journal of Econometrics 150, 209–225.

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

rust_timeseries-0.1.7.tar.gz (13.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rust_timeseries-0.1.7-cp313-cp313-win_amd64.whl (149.1 kB view details)

Uploaded CPython 3.13Windows x86-64

rust_timeseries-0.1.7-cp313-cp313-manylinux_2_34_x86_64.whl (291.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

rust_timeseries-0.1.7-cp313-cp313-macosx_11_0_arm64.whl (255.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rust_timeseries-0.1.7-cp312-cp312-win_amd64.whl (149.2 kB view details)

Uploaded CPython 3.12Windows x86-64

rust_timeseries-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl (291.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

rust_timeseries-0.1.7-cp312-cp312-macosx_11_0_arm64.whl (255.1 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rust_timeseries-0.1.7-cp311-cp311-win_amd64.whl (148.7 kB view details)

Uploaded CPython 3.11Windows x86-64

rust_timeseries-0.1.7-cp311-cp311-manylinux_2_34_x86_64.whl (291.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

rust_timeseries-0.1.7-cp311-cp311-macosx_11_0_arm64.whl (258.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file rust_timeseries-0.1.7.tar.gz.

File metadata

  • Download URL: rust_timeseries-0.1.7.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.13

File hashes

Hashes for rust_timeseries-0.1.7.tar.gz
Algorithm Hash digest
SHA256 f616de9f692b17cbd921651010e82e7155f83ec9e98a43bef2710e3d8f122c09
MD5 43b34994f816b07dff2d513bc302c59a
BLAKE2b-256 cdaa582b6ba908d50e1f71c2437712766306cfe51502342280ea95dc65c234a5

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b17f880228ce5b799a1f243a7b7d5e6be0104501be7660f498b7f36a1fb0fd38
MD5 fddf67acbd439702f4310f17532778ed
BLAKE2b-256 1f0fd86b36dafed6275df4d4cedffe5e25e495bc3737b198d391a94a7cea1c64

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2de28598e54ed4ec9fa666cc339d8416537c76a29e74ccda4ae34fc4a8ddff9c
MD5 a8129051e4a61eef81f70ce4d3a35e78
BLAKE2b-256 a774be09317b420f650958244a7a8fa159bfb41932a0d110ee6a20a74c90c00d

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0151f612fa786f8a35b5d379ee22711f3254f8d36bf6dcb0f87af7c439fc659
MD5 e9b6dd8f1f39200b500f90941ec3db95
BLAKE2b-256 f67aee4076395b9f43ea7f37db056b84d55f5884bae83eb48bd23bc74a5dcd96

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5cb4f4a1294fe43407ac4ef515fd0fb5e3a1e69b8c4722cab8a0ad26406a7b04
MD5 2af8b0292124808e93bd35b12d7fec0d
BLAKE2b-256 83f57c0daf1c6ec697598d6fc17d3ad3d407b6f1257ea1eb239f94bb06fd9a94

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 8cadde41c6546101bd8fb1cb017febb8b6c2fac54e09a7297837101a8e639091
MD5 22a267bbba5e87fa3cea5a776464d62b
BLAKE2b-256 9c30a4a3eaf52230644e538892992fd03cff038721e46701f846a9199e10f6fa

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26d51fa66903eb7a351fe5b722c3b1089bb4b2b6e9cb7081eb89cbff8fce7eed
MD5 03f21ec9fe4d8cd69b7434ea8d3aca91
BLAKE2b-256 96ac7601f48ebe538e433714ef9049d91998b1229cb3d77662604e2616b6680d

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bc285e375cbf86999d682726f4f8733308b3f984b23e9ed329aeceb3eb4d73ab
MD5 a11c9be0beed8f56f22ba5e0fc5e9e12
BLAKE2b-256 365ed11b50e72c76950d069890d710729ed40e49eab38e183ea26ae01a1c6e21

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 40512074ac6cd77ea15a03155113b757c68a7416ddbff583c77e9e659371d9c0
MD5 40c1fc4139be11a5fddd8cef297ddf0c
BLAKE2b-256 0796c7d4ebb2e55d1b8054ec671e15d0952467bdc276f03d7002dffdf0b5fb3b

See more details on using hashes here.

File details

Details for the file rust_timeseries-0.1.7-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_timeseries-0.1.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7760277d64ab5c71b2f16885d5df4f3dbb8ec9b4cf170eddce4c0c7204359a60
MD5 b6d3831cd0977dc129e5b3def91a92ed
BLAKE2b-256 da396ab10976b0d7c149862bb24507591f449bc0e51cd9212b3895eca59f4a9d

See more details on using hashes here.

Supported by

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