Transformation functions for Tyche market data pipelines
Project description
Tyche Transforms
This package provides the transformation functions defined in MARKETS_INFO.md for Tyche market data pipelines,
operating on xarray DataArray inputs.
The intent is to keep the same implementations between local development and the Chainlink adapter.
Install
uv pip install tyche-transforms
For development:
uv pip install -e ".[test]"
Usage
import pandas as pd
import xarray as xr
from tyche_transforms.transforms import daily_average, hdd, runlen_lt
times = pd.date_range("2024-01-01", periods=3)
data = xr.DataArray([15.0, 10.0, 8.0], dims="time", coords={"time": times})
print(daily_average(data))
print(hdd(data))
print(runlen_lt(data, threshold=9.0))
GitHub Actions
This repo includes a workflow that runs tests on every push/PR and publishes to PyPI when you push a tag
matching v* (for example v0.2.0). To enable publishing:
- Add a repository secret named
PYPI_API_TOKENcontaining your PyPI token. - Push a version tag:
git tag v0.2.0
git push origin v0.2.0
Transformation Functions
DataArray -> DataArray
CONVERT_M_TO_MM(0 args): convert meters to millimeters.CONVERT_KELVIN_TO_CELSIUS(0 args): convert Kelvin to Celsius.CUMULATIVE_TO_INCREMENT(0 args): convert cumulative totals to daily increments.DAILY_AVERAGE(0 args): resample to daily mean values.DAILY_SUM(0 args): resample to daily sum values.DAILY_MAX(0 args): resample to daily maximum values.DAILY_MIN(0 args): resample to daily minimum values.HDD(0 args): daily temperature -> HDD series (base 18 C).CDD(0 args): daily temperature -> CDD series (base 18 C).
DataArray -> Scalar
SUM(0 args): sum over window -> scalar.AVG(0 args): average over window -> scalar.MAX(0 args): max over window -> scalar.INDEX_OF_MAX_VALUE(0 args): index of the max value -> scalar.MIN(0 args): min over window -> scalar.DATE_MAX(0 args): timestamp of the max value -> scalar (timestamp).DATE_FIRST:threshold(1 arg): timestamp of first value > threshold, or epochpd.Timestamp(0)if none -> scalar (timestamp).RUNLEN_LT:threshold(1 arg): longest run length where value < threshold -> scalar.RUNLEN_GT:threshold(1 arg): longest run length where value > threshold -> scalar.
Scalar -> Scalar
ABS(0 args): absolute value of a scalar -> scalar.SUBTRACT_V:threshold(1 arg): subtract a scalar to the given threshold -> scalar.
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
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 tyche_transforms-0.1.6.tar.gz.
File metadata
- Download URL: tyche_transforms-0.1.6.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4096267ef4c79d50038f3089dfbc09234e0a4c6638cb3765ab29e88e86245945
|
|
| MD5 |
625fc9aa5f8bd3f77476b92183ab1e52
|
|
| BLAKE2b-256 |
f0cc6f36ff6d939b8252bcc701a412d11b838d7546bbd653ee595b88817e13a8
|
File details
Details for the file tyche_transforms-0.1.6-py3-none-any.whl.
File metadata
- Download URL: tyche_transforms-0.1.6-py3-none-any.whl
- Upload date:
- Size: 5.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d75a584f14fd771d34f99e6d60dbc6a8231cedab59ca2c33b5794b037886044a
|
|
| MD5 |
768d8f3b2fddb35243ea2eb88e18ba1e
|
|
| BLAKE2b-256 |
85102865b45b671fec807cf476db735b1b73c5a4f0aff7c4abf5352fe4a78bfa
|