[1.0.1] - 2025-09
Minor bug fixes and updates.
[1.0] - 2025-09
New major version of feets, with a full redesign and modernization.
Support for older versions of Python has been removed. feets now officially supports Python 3.10+.
Highlights of this release
Parallelized workflow & batch processing
A new Dask-powered parallelized model has been introduced for feature extraction.
- Dramatically reduces runtime for large datasets.
- Enables scalable batch processing of multiple light curves simultaneously using the new
FeatureSpace.extract_many()method. - Simplifies large-scale analyses and integration with machine learning pipelines by processing multiple datasets in a single call.
Integration with light-curve
This release incorporates all extractors available in the light-curve library.
- Existing extractors in
feetshave been replaced by optimized implementations fromlight-curve, improving speed, numerical stability, and reliability. - Additional extractors from
light-curvehave been added, expanding the feature set. - New compatibility with
fluxandflux_errordata vectors, allowing extractors to operate directly on flux-based inputs as well as magnitudes.
Configuration persistence
New functionality for saving and loading FeatureSpace configurations has been introduced.
- Configurations can now be exported and imported in JSON and YAML formats.
- Methods
FeatureSpace.to_json()andFeatureSpace.to_yaml(), as well as functionsfeets.read_json()andfeets.read_yaml(), enable reproducible workflows and easy sharing of feature extraction setups. - This makes it straightforward to store, reuse, and distribute predefined extraction pipelines across projects.
Main changes to the API
feets.Extractor
The extractor system has been fully redesigned for clarity, configurability, and performance.
- Removed: the
data,dependencies, andparamsattributes. - Changed: the
fit()method has been renamed toextract(). - Changed: data requirements and feature dependencies are now inferred directly from the signature of the
extract()method. - Changed: extractor parameters are now defined in the
__init__()constructor instead of aparamsdictionary. - Added:
flatten_feature()method for custom flattening of multi-value features. - Added: compatibility with new data vectors (
flux,flux_error).
feets.FeatureSpace
- Changed: the
extract()method now accepts light-curve data as keyword arguments (e.g.,extract(time=t, magnitude=m)). - Added:
extract_many()method for batch feature extraction from multiple light curves. - Added:
from_dict(),to_dict(),to_json(), andto_yaml()methods for configuration persistence and reproducibility. - Added:
from_lightcurve()andfrom_lightcurves()for automatic feature selection based on the available data.
feets.features
- Added:
Featuresclass for a structured representation of extracted features. Encapsulates feature values, names, and associated metadata in a single object, with support for easy conversion to dictionaries,pandas.DataFrames, and other formats for downstream analysis.
feets.registry
- Added:
ExtractorRegistryclass for registration, discovery, and ordering of extractors. - Added: a central
extractor_registryobject that stores available extractors and features, ensuring correct execution order and dependency resolution.
feets.io
- Added:
load_json()andload_yaml()functions for reading existingFeatureSpaceconfigurations.
feets.runner
- Added:
run()function for running instances of feature extractors in parallel withdask.