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}")
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
duots-0.1.10.tar.gz
(12.1 kB
view details)
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
duots-0.1.10-py3-none-any.whl
(14.1 kB
view details)
File details
Details for the file duots-0.1.10.tar.gz.
File metadata
- Download URL: duots-0.1.10.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bac6e250cc5a17ffbbf3b94c8b28cba24c2119442d8f3f4e8c3ee6082bc0ef9d
|
|
| MD5 |
6651430170846c853ff396204a8c963b
|
|
| BLAKE2b-256 |
48ac6782e4eb2780896ace848a851f9e293254b04af4f0e3cae5a8e8b07a8ceb
|
File details
Details for the file duots-0.1.10-py3-none-any.whl.
File metadata
- Download URL: duots-0.1.10-py3-none-any.whl
- Upload date:
- Size: 14.1 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 |
8b6206abfa879560e931e27aaeff55280dd34a57cbd587dcb1eafd788cdfc629
|
|
| MD5 |
f73b8614a394307729c6082f87ea7bf7
|
|
| BLAKE2b-256 |
cd8c199b1a871657c527698b81ae9c80230e4ed04feea5cc2c11a85a0b5a2315
|