Metadata-Version: 2.1
Name: mockseries
Version: 0.3.1
Summary: Easy and intuitive generation of synthetic timeseries.
Home-page: http://mockseries.catheu.tech/
Author: Cyril de Catheu
Author-email: cdecatheu@hey.com
License: BSD
Project-URL: Bug Tracker, https://github.com/cyrilou242/mockseries/issues
Project-URL: Documentation, http://mockseries.catheu.tech/
Project-URL: Source Code, https://github.com/cyrilou242/mockseries
Platform: UNKNOWN
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Classifier: Operating System :: OS Independent
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Requires-Python: >=3.9,<3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib ==3.7.1
Requires-Dist: numpy ==1.26.3
Requires-Dist: scipy ==1.11.4

<p align="center">
  <img src="https://github.com/cyrilou242/mockseries/blob/main/website/static/img/mockingbird200.png">
</p>

# mockseries
**mockseries** is and easy to use and intuitive  Python package that helps generate synthetic (**mock**) time**series**.

[-> Documentation website](https://mockseries.catheu.tech/docs/intro).


## Installation  
    
    #python >=3.9
    pip install mockseries

For older versions of python, here is the compatibility matrix: 

| mockseries version | Python versions |
| --- | --- |
| 0.3.x | 3.9 - 3.12|
| 0.2.x | 3.8 - 3.11|
| 0.1.x | 3.6 - 3.8|
    
## Contributing
Contributions are welcome!   
Standards, objectives and process not defined yet.
    
## Quick Run

#### Define a timeseries

```python
from datetime import timedelta
from mockseries.trend import LinearTrend
from mockseries.seasonality import SinusoidalSeasonality
from mockseries.noise import RedNoise

trend = LinearTrend(coefficient=2, time_unit=timedelta(days=4), flat_base=100)
seasonality = SinusoidalSeasonality(amplitude=20, period=timedelta(days=7)) \
              + SinusoidalSeasonality(amplitude=4, period=timedelta(days=1))
noise = RedNoise(mean=0, std=3, correlation=0.5)

timeseries = trend + seasonality + noise
```

#### Generate values

``` 
from datetime import datetime
from mockseries.utils import datetime_range

ts_index = datetime_range(
    granularity=timedelta(hours=1),
    start_time=datetime(2021, 5, 31),
    end_time=datetime(2021, 8, 30),
)
ts_values = timeseries.generate(ts_index)
```

#### Plot or write to csv
```python
from mockseries.utils import plot_timeseries, write_csv

print(ts_index, ts_values)
plot_timeseries(ts_index, ts_values, save_path="hello_mockseries.png")
write_csv(ts_index, ts_values, "hello_mockseries.csv")
```

### References
- J. R. Maat, A. Malali, and P. Protopapas, “TimeSynth: A Multipurpose Library for Synthetic Time Series in Python,” 2017. [Online]. Available: http://github.com/TimeSynth/TimeSynth.
- TStimulus. Available: https://github.com/cetic/TSimulus.


