Composable timeseries feature extraction for paired signals.
Project description
duots
duots is a lightweight Python package for calculating features from paired time series signals — like those collected from symmetrical body parts (e.g., left and right wrists). It provides a composable, lazy, and efficient pipeline to build complex signal analysis routines.
Features
- Composable feature pipelines using functional programming
- Modular primitives: segmentation, transformation, timeseries ops, value aggregation
- Efficient via
functools.lru_cache(minimizes redundant computation) - Minimal dependencies: uses only
scipy(and optionally sampen-gpu) - Designed for paired signals (e.g.,
(left, right)or(x, y)) - Easy to extend, debug, and test
Design Philosophy
- Composable: Build powerful feature extractors from simple, small functions.
- Efficient: Shared operations are cached; performance scales with reuse.
- Minimal: Only
scipyis used for FFT, skew, and kurtosis; avoids heavy dependencies.
📦 Installation
From PyPI -- duots
pip install duots
From Source
git clone https://github.com/4d30/duots.git
cd duots
pip install .
Example Usage
from duots import generate, compose
# Create a pair of signals, e.g., (left, right)
# They must be tuples, of the same length, without NaNs
sig_a = tuple(range(1, 100))
sig_b = tuple(range(1, 100))
signal_pair = (sig_a, sig_b,)
# Calculate values for each process
for proc in generate.processes():
names, funcs = zip(*proc)
name = compose.descriptors(names)
composed_function = compose.functions(funcs)
value = composed_function(signal_pair)
print(f"{name}: {value}")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file duots-0.1.4.tar.gz.
File metadata
- Download URL: duots-0.1.4.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1144361b12fd183e7e905daaf91a04d7669eada62100de3c377d8618e6a630f
|
|
| MD5 |
442fbab8573cb24e922868637bb92cf7
|
|
| BLAKE2b-256 |
d97a63f7440558ee6a1d3f50de24f339cbbc052b9d1cd126ca5afc0206dd03f0
|
File details
Details for the file duots-0.1.4-py3-none-any.whl.
File metadata
- Download URL: duots-0.1.4-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a3a7765cd214b938e771a441468614537a5834110aeeff7065e3639317c2556
|
|
| MD5 |
efc34f8d607c3f237f8bc791f2580e4f
|
|
| BLAKE2b-256 |
515fceb348f6bd201a70f9ef224013c5479afcb3b8e678c841498a7d8d8b0e23
|