Metadata-Version: 2.1
Name: gregory
Version: 3.1.1
Summary: Python framework to manage time series structured as one-level dictionaries
Home-page: https://github.com/SynStratos/gregory
Author: Luca Spartera
Author-email: synstratos.dev@gmail.com
Keywords: time series,ts,timeseries,temporal data
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Natural Language :: English
Requires-Python: >=3.8, <3.11
Description-Content-Type: text/markdown
License-File: LICENSE

# Gregory
Python Framework to Manage Time Series structured as one-level dictionaries.

## Overview
This framework is an extension of the **[outatime](https://github.com/SynStratos/outatime)** package to facilitate operations on time series built as dictionaries.

The main requirement is that the _data_ attribute of the dataclass **TimeSeriesData** is a one-level dictionary.

E.g.
```
TimeSeriesData(
    day=date('2022-04-28'),
    data={
        'gold': 1887.77,
        'silver': 23.03
    }
)
```

Some features are added such as:
* interpolation of missing data
* trend and seasonality calculation
* methods of aggregation between dictionaries
* other

## Installation
To install it use:

```
pip install gregory
```

or download the last git version and use:

```
python setup.py install
```

## Framework Structure
```
gregory
├── dataclass
│   └── time_series_data.py --> Class used to manage daily data.
│
├── granularity
│   ├── granularity.py --> Set of classes used for managing time intervals of different length.
│   ├── granularity_factory.py --> Factory class for creating granularity objects.
│   └── utils.py --> Utils related to granularities.
│
├── timeseries
│   ├── batches.py --> Set of methods to operate on time series dividing them into batches.
│   ├── expr.py --> Set of operations between time series.
│   ├── processing.py --> Set of methods to elaborate time series.
│   └── time_series.py --> Core class that represents a series of daily records.
│
└── util
    ├── agenda.py --> Utils related to calendar info and evalutations.
    ├── bisect.py --> Utils related to binary search.
    ├── decorators.py --> Useful decorators.
    ├── dictionaries.py --> Utils related to operations on dictionaries.
    └── relativedelta.py --> Class that extends relativedelta with useful properties.
```

## License
MIT license, see ``LICENSE`` file.
