Skip to content

Python framework to manage time series structured as one-level dictionaries.

License

Notifications You must be signed in to change notification settings

SynStratos/gregory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gregory

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

Overview

This framework is an extension of the 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.