smoothiepy 0.0.2__py3-none-any.whl → 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,181 @@
1
+ Metadata-Version: 2.4
2
+ Name: smoothiepy
3
+ Version: 0.1.0
4
+ Summary: Smooth real-time data streams like eye tracking or sensor input with this lightweight package.
5
+ Keywords: smoothing,data-smoothing,signal-filter,signal-processing,noise-reduction,real-time,low-latency,live-data,online-processing,streaming-data,data-cleaning,data-filtering,preprocessing,adaptive-filter,ema,moving-average,median-filter,gaussian-smoothing,time-series,trend-analysis,rolling-average,forecasting,financial-data,stock-market,price-smoothing,volatility-reduction,algorithmic-trading,market-data,quantitative-analysis,data-denoising,eye-tracking,gaze-tracking,gaze-analysis,saccade-filtering,fixation-detection,attention-analysis,input-smoothing,cursor-smoothing,head-tracking,sensor-data,tracking-noise,motion-smoothing,imu-data,robotics,embedded-systems,wearable-sensors,biosignal-processing,hci,bci,gesture-recognition,computer-vision,biometrics,machine-learning,feature-extraction,data-preparation,computational-neuroscience,neurotechnology,psychophysics,real-time-processing,live-inference,python,smoothiepy,signal-analysis,time-series-preprocessing
6
+ Author-Email: Timo Seyfarth <timo@seyfarth.dev>
7
+ License-Expression: GPL-3.0-or-later
8
+ License-File: LICENSE
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Development Status :: 3 - Alpha
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Intended Audience :: Science/Research
19
+ Classifier: Intended Audience :: Education
20
+ Classifier: Natural Language :: English
21
+ Classifier: Topic :: Scientific/Engineering
22
+ Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
23
+ Classifier: Topic :: Scientific/Engineering :: Information Analysis
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Project-URL: Homepage, https://github.com/timoseyfarth/smoothiepy
26
+ Project-URL: Documentation, https://github.com/timoseyfarth/smoothiepy/wiki
27
+ Project-URL: Issues, https://github.com/timoseyfarth/smoothiepy/issues
28
+ Requires-Python: >=3.10.0
29
+ Requires-Dist: numpy>=2.1.0
30
+ Requires-Dist: typing_extensions>=4.0.0
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest~=8.3.5; extra == "dev"
33
+ Requires-Dist: pylint>=3.3.7; extra == "dev"
34
+ Description-Content-Type: text/markdown
35
+
36
+ ![Logo SmoothiePy](https://github.com/user-attachments/assets/74e96edd-efe9-4a76-9f13-499c7f5ea551)
37
+
38
+ [![Status](https://img.shields.io/badge/status-alpha-lightblue)]()
39
+ [![PyPI version](https://img.shields.io/pypi/v/smoothiepy)](https://pypi.org/project/smoothiepy/)
40
+ [![Python versions](https://img.shields.io/pypi/pyversions/smoothiepy)](https://pypi.org/project/smoothiepy/)
41
+ [![Downloads](https://img.shields.io/pypi/dm/smoothiepy)](https://pypi.org/project/smoothiepy/)
42
+ [![License](https://img.shields.io/github/license/timoseyfarth/smoothiepy)](https://github.com/timoseyfarth/smoothiepy/blob/main/LICENSE)
43
+ [![Last Commit](https://img.shields.io/github/last-commit/timoseyfarth/smoothiepy)](https://github.com/timoseyfarth/smoothiepy/commits/main)
44
+ [![Repo Size](https://img.shields.io/github/repo-size/timoseyfarth/smoothiepy)](https://github.com/timoseyfarth/smoothiepy)
45
+
46
+ Smooth real-time data streams like eye tracking or sensor input with this lightweight package.
47
+
48
+ ## 📋 Overview
49
+
50
+ SmoothiePy is a Python library designed for smoothing real-time data streams with minimal latency.
51
+ It provides a collection of filters and smoothers that can be applied to one-dimensional and two-dimensional data,
52
+ making it ideal for applications such as:
53
+
54
+ - Eye tracking and gaze analysis
55
+ - Sensor data processing
56
+ - Motion tracking
57
+ - Financial data analysis
58
+ - Time series preprocessing
59
+ - Signal processing
60
+
61
+ The library is built with a focus on flexibility, performance, and ease of use, allowing you to quickly implement sophisticated data smoothing pipelines.
62
+
63
+ ## 🚀 Installation
64
+
65
+ ```bash
66
+ pip install smoothiepy
67
+ ```
68
+
69
+ SmoothiePy requires Python 3.10 or later.
70
+
71
+ ## 🏁 Quick Start
72
+
73
+ Here's a simple example of how to use SmoothiePy to smooth a data stream:
74
+
75
+ ```python
76
+ from smoothiepy.smoother.builder import SmootherBuilder
77
+ from smoothiepy.filter.filter1d import ExponentialMovingAverageFilter1D
78
+
79
+ # Create a smoother with an exponential moving average filter
80
+ smoother = (
81
+ SmootherBuilder()
82
+ .one_dimensional()
83
+ .continuous()
84
+ .attach_filter(ExponentialMovingAverageFilter1D(alpha=0.2))
85
+ .build()
86
+ )
87
+
88
+ # Process data points
89
+ smoother.add(20.0)
90
+ print(f"Smoothed value: {smoother.get()}")
91
+
92
+ smoother.add(60.0)
93
+ print(f"Smoothed value: {smoother.get()}")
94
+
95
+ # Alternatively, use add_and_get to add a value and get the result in one step
96
+ smoothed_value = smoother.add_and_get(3.0)
97
+ print(f"Smoothed value: {smoothed_value}")
98
+ ```
99
+
100
+ ## ✨ Features
101
+
102
+ ### Available Filters
103
+
104
+ SmoothiePy provides a variety of filters:
105
+
106
+ #### One-Dimensional Filters
107
+
108
+ - **Offset Filter**: Adds a constant offset to the data
109
+ - **Simple Moving Average**: Computes the arithmetic mean over a window
110
+ - **Weighted Moving Average**: Applies linearly decreasing weights
111
+ - **Gaussian Average**: Applies a Gaussian weighting function
112
+ - **Median Average**: Computes the median of values in a window
113
+ - **Exponential Moving Average**: Applies exponential weighting
114
+ - **Cumulative Moving Average**: Computes the cumulative average
115
+ - **Fixation Smooth Filter**: Sort of Deadband filter. Specialized for fixation-like data (e.g., eye tracking)
116
+ - **Multi-Pass Moving Average**: Applies multiple passes of a specified moving average type
117
+
118
+ #### Two-Dimensional Filters
119
+
120
+ Each 1D filter is also available in a 2D version, allowing you to smooth data in two dimensions (e.g., x-y coordinates).
121
+
122
+ Many more filters are work in progress, including advanced filters like Kalman filters and more complex multidimensional filters.
123
+
124
+ ### Builder Pattern
125
+
126
+ SmoothiePy uses a builder pattern to create smoothers, making it easy to configure and chain multiple filters:
127
+
128
+ ```python
129
+ from smoothiepy.smoother.builder import SmootherBuilder
130
+ from smoothiepy.filter.filter1d import SimpleMovingAverageFilter1D, GaussianAverageFilter1D
131
+
132
+ # Create a smoother with multiple filters
133
+ smoother = (
134
+ SmootherBuilder()
135
+ .one_dimensional()
136
+ .continuous()
137
+ .attach_filter(SimpleMovingAverageFilter1D(window_size=5))
138
+ .attach_filter(GaussianAverageFilter1D(window_size=3, std_dev=1.0))
139
+ .build()
140
+ )
141
+ ```
142
+
143
+ ## 📚 Documentation
144
+
145
+ For detailed documentation, visit our [GitHub Wiki](https://github.com/timoseyfarth/smoothiepy/wiki).
146
+ Coming soon...
147
+
148
+ ### API Reference
149
+
150
+ #### Filters
151
+
152
+ - `Filter1D`: Base class for one-dimensional filters
153
+ - `SimpleMovingAverageFilter1D`: Simple arithmetic mean
154
+ - `WeightedMovingAverageFilter1D`: Linearly decreasing weights
155
+ - `GaussianAverageFilter1D`: Gaussian weighting function
156
+ - `MedianAverageFilter1D`: Median of values
157
+ - `ExponentialMovingAverageFilter1D`: Exponential weighting
158
+ - `CumulativeMovingAverageFilter1D`: Cumulative average
159
+ - `FixationSmoothFilter1D`: For fixation-like data
160
+ - `MultiPassMovingAverage1D`: Multiple passes of a specified filter
161
+
162
+ - `Filter2D`: Base class for two-dimensional filters
163
+ - Various 2D filter implementations
164
+
165
+ #### Builders
166
+
167
+ - `SmootherBuilder`: Entry point for creating smoothers
168
+ - `Smoother1DBuilder`: For 1D smoothers
169
+ - `Smoother1DContinuousBuilder`: For continuous 1D smoothers
170
+
171
+ ## 📄 License
172
+
173
+ This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0) - see the [LICENSE](LICENSE) file for details.
174
+
175
+ ## 🙏 Acknowledgements
176
+
177
+ - NumPy for efficient numerical operations
178
+
179
+ ## 📬 Contact
180
+
181
+ Timo Seyfarth - timo@seyfarth.dev
@@ -0,0 +1,15 @@
1
+ smoothiepy-0.1.0.dist-info/METADATA,sha256=DvD5lzW-O3ojGJr_xRhZNUCXiHg5hQyeSwguqT92NIA,7782
2
+ smoothiepy-0.1.0.dist-info/WHEEL,sha256=tSfRZzRHthuv7vxpI4aehrdN9scLjk-dCJkPLzkHxGg,90
3
+ smoothiepy-0.1.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
4
+ smoothiepy-0.1.0.dist-info/licenses/LICENSE,sha256=gcuuhKKc5-dwvyvHsXjlC9oM6N5gZ6umYbC8ewW1Yvg,35821
5
+ smoothiepy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ smoothiepy/core.py,sha256=BRK1STVsac_CIwiB7g2viiS5RjfQXgXds-SQxGLc7Pg,853
7
+ smoothiepy/filter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ smoothiepy/filter/basefilter.py,sha256=BLxpYPgBuyuqoiUq7myaEGWG_N2An76WY24fkDCBED0,4605
9
+ smoothiepy/filter/filter1d.py,sha256=vmZy_L6dTshzySqqGahz3jCWkqDkzjGRJjIwJA-cdqE,13570
10
+ smoothiepy/filter/filter2d.py,sha256=FVoduaOUQpZ952D_HNoejWUvJ5rYfP4_JgQqC2WSuVo,1589
11
+ smoothiepy/filter/filter2d_naive.py,sha256=7Q0M6m-ftYIt4As9cOoV7vDb5rH3j0AG0Hdm-C6LK9w,12329
12
+ smoothiepy/smoother/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
+ smoothiepy/smoother/builder.py,sha256=rJqp1-NE0MDZ3LARpZTHQecdXUfamepKoBlpG-pL1ss,3631
14
+ smoothiepy/smoother/smoother.py,sha256=ASU6ktljRer8_CA5yXzIDHsYRCIAauKOQdhDgdxDymc,6874
15
+ smoothiepy-0.1.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: pdm-backend (2.4.4)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+
3
+ [gui_scripts]
4
+