Skip to content

Commit

Permalink
Merge aa2b976 into e9dd499
Browse files Browse the repository at this point in the history
  • Loading branch information
tailaiw committed Mar 10, 2020
2 parents e9dd499 + aa2b976 commit 72cf57a
Show file tree
Hide file tree
Showing 8 changed files with 130 additions and 111 deletions.
2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
# The short X.Y version.
version = "0.6"
# The full version, including alpha/beta/rc tags.
release = "0.6.0-dev.28+pr.94"
release = "0.6.0"

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
18 changes: 14 additions & 4 deletions docs/developer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@
Contributing
************

- `I have a question/suggestion`_
- `I found a bug`_
- `I want to develop a new detector/transformer/aggregator`_
- `I have a question/suggestion`_
- `The inheritance relationship between model classes is confusing`_
- `Formatter and linter`_
- `Unit test`_
- `Documentation`_
Expand All @@ -15,6 +16,10 @@ Contributing

----------

I have a question/suggestion
============================
Please open a new issue. For questions, please use label **question**. For suggestions, please use label **enhancement**.

I found a bug
=============
Please check first whether the bug has been noticed in `Issues <https://github.com/arundo/adtk/issues>`_ or `Pull requests <https://github.com/arundo/adtk/pulls>`_.
Expand All @@ -28,9 +33,11 @@ I want to develop a new detector/transformer/aggregator
=======================================================
Adding a new detector/transformer/aggregator is usually a task requiring a significant time commitment. Therefore, we want to discuss with you about the necessity of the proposed new component first. Please open a new issue with label **enhancement**. Please do NOT open a PR until the plan of implementation is discussed thoroughly.

I have a question/suggestion
============================
Please open a new issue. For questions, please use label **question**. For suggestions, please use label **enhancement**.

The inheritance relationship between model classes is confusing
===============================================================
Yes, it is somehow confusing, but we think it is logical and minimizes duplication of reusable code.
You may see :ref:`inheritance` for the full relationship.

Formatter and linter
====================
Expand Down Expand Up @@ -94,12 +101,15 @@ This is a guideline of managing branches and releases of ADTK.
- ADTK is in major version zero currently (0.Y.Z), which indicates that the public API is unstable.
- ADTK only supports one stable version. If the most recent release is 0.Y.Z, the previous versions (0.y.z | y < Y) are **NOT** supported.
- Release versions

- An increment of minor version Y (0.[Y+1].Z) introduces modifications that change the API, for example adding new features to existing models, adding new models, etc.
- An increment of patch version Z (0.Y.[Z+1]) introduces modifications that do not change the API, for example bug fix, minor changes to documentation, etc.
- A new version is released when a set of modifications are accumulated, depending on the importance of the new functionalities and urgency of the bug fix.
- A release is published to `PyPI <https://pypi.org/project/adtk/>`_ and `GitHub <https://github.com/arundo/adtk/releases>`_.
- The `stable documentation <https://arundo-adtk.readthedocs-hosted.com/en/stable/>`_ corresponds to the most recent release.

- Pre-release versions

- Every time a pull request is merged into branch **master** or **develop**, a new pre-release version is defined.
- A pull request that changes the public API is versioned as (0.[Y+1].0-dev.N+pr.M), where N is a monotonic increasing index and M is the index of the pull request.

Expand Down
8 changes: 7 additions & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,15 @@ with unified APIs, as well as pipe classes that connect them together into a
model. It also provides some functions to process and visualize time series and
anomaly events.

.. include::
install.rst

.. include::
quickstart.rst

.. toctree::
:caption: Table of Contents
:maxdepth: 2
:maxdepth: 1

install
quickstart
Expand Down
59 changes: 59 additions & 0 deletions docs/inheritance.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
.. _inheritance:

Model Classes Inheritance Diagram
==================================

.. code-block:: console
_Model
|-- _NonTrainableModel
| |-- _NonTrainableUnivariateModel
| | |-- _NonTrainableUnivariateDetector
| | | └-- ThresholdAD
| | |
| | └-- _NonTrainableUnivariateTransformer
| | |-- RollingAggregate
| | |-- DoubleRollingAggregate
| | |-- Retrospect
| | └-- StandardScale
| |
| └-- _NonTrainableMultivariateModel
| └-- _NonTrainableMultivariateTransformer
| └-- SumAll
|
|-- _TrainableModel
| |-- _TrainableUnivariateModel
| | |-- _TrainableUnivariateDetector
| | | |-- QuantileAD
| | | |-- InterQuartileRangeAD
| | | |-- GeneralizedESDTestAD
| | | |-- PersistAD
| | | |-- LevelShiftAD
| | | |-- VolatilityShiftAD
| | | |-- SeasonalAD
| | | |-- AutoregressionAD
| | | └-- CustomizedDetector1D
| | |
| | └-- _TrainableUnivariateTransformer
| | |-- ClassicSeasonalDecomposition
| | └-- CustomizedTransformer1D
| |
| └-- _TrainableMultivariateModel
| |-- _TrainableMultivariateDetector
| | |-- MinClusterDetector
| | |-- OutlierDetector
| | |-- RegressionAD
| | |-- PcaAD
| | └-- CustomizedDetectorHD
| |
| └-- _TrainableMultivariateTransformer
| |-- RegressionResidual
| |-- PcaProjection
| |-- PcaReconstruction
| |-- PcaReconstructionError
| └-- CustomizedTransformerHD
|
└-- _Aggregator
|-- AndAggregator
|-- OrAggregator
└-- CustomizedAggregator
3 changes: 2 additions & 1 deletion docs/install.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
************
Installation
============
************

Prerequisites: Python 3.5 or later.

Expand Down
147 changes: 45 additions & 102 deletions docs/releasehistory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,109 +2,52 @@
Release History
***************

Version 0.6.0-dev
Version 0.6.0 (Mar 10, 2020)
===================================
- Support `str` and `int` as time delta for the input arguments in functions `expand_events` and `resample` in the data module (0.6.0-dev.1+pr.39)
- Added an example of DoubleRollingAggregate with different window sizes to the documentation (0.6.0-dev.5+pr.43)
- Optimized release process by publishing package to PyPI through GitHub Actions (0.6.0-dev.7+pr.54, 0.6.0-dev.8+pr.56, 0.6.0-dev.9+pr.57, 0.6.0-dev.10+pr.58)
- Created an interactive demo notebook in Binder (0.6.0-dev.12+pr.64)
- Fixed compatibility issues with statsmodels v0.11 (0.6.0-dev.15+pr.72)
- Fixed compatibility issues with pandas v1.0 (0.6.0-dev.16+pr.73)
- Added Python 3.8 support (0.6.0-dev.17+pr.74)
- Added type hints, and added type checking in CI/CD test (0.6.0-dev.19+pr.79)
- Refactored the inheritance structure (0.6.0-dev.19-pr.79)

.. code-block:: console
_Model
|-- _NonTrainableModel
| |-- _NonTrainableUnivariateModel
| | |-- _NonTrainableUnivariateDetector
| | | |-- ThresholdAD
| | |
| | |-- _NonTrainableUnivariateTransformer
| | |-- RollingAggregate
| | |-- DoubleRollingAggregate
| | |-- Retrospect
| | |-- StandardScale
| |
| |-- _NonTrainableMultivariateModel
| |-- _NonTrainableMultivariateTransformer
| |-- SumAll
|
|-- _TrainableModel
| |-- _TrainableUnivariateModel
| | |-- _TrainableUnivariateDetector
| | | |-- QuantileAD
| | | |-- InterQuartileRangeAD
| | | |-- GeneralizedESDTestAD
| | | |-- PersistAD
| | | |-- LevelShiftAD
| | | |-- VolatilityShiftAD
| | | |-- SeasonalAD
| | | |-- AutoregressionAD
| | | |-- CustomizedDetector1D
| | |
| | |-- _TrainableUnivariateTransformer
| | |-- ClassicSeasonalDecomposition
| | |-- CustomizedTransformer1D
| |
| |-- _TrainableMultivariateModel
| |-- _TrainableMultivariateDetector
| | |-- MinClusterDetector
| | |-- OutlierDetector
| | |-- RegressionAD
| | |-- PcaAD
| | |-- CustomizedDetectorHD
| |
| |-- _TrainableMultivariateTransformer
| |-- RegressionResidual
| |-- PcaProjection
| |-- PcaReconstruction
| |-- PcaReconstructionError
| |-- CustomizedTransformerHD
|
|-- _Aggregator
|-- AndAggregator
|-- OrAggregator
|-- CustomizedAggregator
- We made all second-order sub-modules private and user now can only import from first-order modules (0.6.0-dev.19-pr.79)

- adtk.detector
- adtk.transformer
- adtk.aggregator
- adtk.pipe
- adtk.data
- adtk.metrics
- adtk.visualization

- Improved docstrings and API documentation (0.6.0-dev.19-pr.79)
- Fixed minor bugs and typos (0.6.0-dev.19-pr.79)
- Turned some parameters in some models required (0.6.0-dev.19-pr.79)

- `window` in `adtk.detector.LevelShiftAD`
- `window` in `adtk.detector.VolatilityShiftAD`
- `window` in `adtk.transformer.RollingAggregate`
- `window` in `adtk.transformer.DoubleRollingAggregate`
- `model` in `adtk.detector.MinClusterDetector`
- `model` in `adtk.detector.OutlierDetector`
- `target` and `regressor` in `adtk.detector.RegressionAD`
- `target` and `regressor` in `adtk.transformer.RegressionResidual`
- `aggregate_func` in `adtk.aggregator.CustomizedAggregator`
- `detect_func` in `adtk.detector.CustomizedDetector1D`
- `detect_func` in `adtk.detector.CustomizedDetectorHD`
- `transform_func` in `adtk.transformer.CustomizedTransformer1D`
- `transform_func` in `adtk.detector.CustomizedTransformer1D`
- `steps` in `adtk.pipe.Pipeline`

- Re-designed the API of `adtk.visualization.plot` (0.6.0-dev.20-pr.80)
- Added `Black` and `isort` to developer requirement and CI/CD check (0.6.0-dev.21-pr.88)
- Added consistency check between training and testing inputs in multivariate models (0.6.0-dev.23+pr.89)
- Improved time index check in time-dependent models (0.6.0-dev.24+pr.90, 0.6.0-dev.25+pr.91)
- Changed the output type of `adtk.data.split_train_test` from a 2-tuple of lists to a list of 2-tuples (0.6.0-dev.26+pr.92)
- Removed `adtk.data.resample` because its functionality is highly overlapped with pandas resampler module (0.6.0-dev.27+pr.93)
- Made `adtk.data.expand_event` accept events as pandas Series/DataFrame (0.6.0-dev.28-pr.94)
- Re-designed the API of :py:mod:`adtk.visualization.plot`
- Removed :py:mod:`adtk.data.resample` because its functionality is highly overlapped with pandas resampler module
- Made :py:mod:`adtk.data.expand_event` accept events in the form of pandas Series/DataFrame
- Made :py:mod:`adtk.data.expand_event` accept time delta in the form of `str` or `int`
- Changed the output type of :py:mod:`adtk.data.split_train_test` from a 2-tuple of lists to a list of 2-tuples
- Turned the following model parameters required from optional

- `window` in :py:mod:`adtk.detector.LevelShiftAD`
- `window` in :py:mod:`adtk.detector.VolatilityShiftAD`
- `window` in :py:mod:`adtk.transformer.RollingAggregate`
- `window` in :py:mod:`adtk.transformer.DoubleRollingAggregate`
- `model` in :py:mod:`adtk.detector.MinClusterDetector`
- `model` in :py:mod:`adtk.detector.OutlierDetector`
- `target` and `regressor` in :py:mod:`adtk.detector.RegressionAD`
- `target` and `regressor` in :py:mod:`adtk.transformer.RegressionResidual`
- `aggregate_func` in :py:mod:`adtk.aggregator.CustomizedAggregator`
- `detect_func` in :py:mod:`adtk.detector.CustomizedDetector1D`
- `detect_func` in :py:mod:`adtk.detector.CustomizedDetectorHD`
- `transform_func` in :py:mod:`adtk.transformer.CustomizedTransformer1D`
- `transform_func` in :py:mod:`adtk.detector.CustomizedTransformer1D`
- `steps` in :py:mod:`adtk.pipe.Pipeline`

- Added consistency check between training and testing inputs in multivariate models
- Improved time index check in time-dependent models
- Turned all second-order sub-modules private, and a user now can only import from the following first-order modules

- :py:mod:`adtk.detector`
- :py:mod:`adtk.transformer`
- :py:mod:`adtk.aggregator`
- :py:mod:`adtk.pipe`
- :py:mod:`adtk.data`
- :py:mod:`adtk.metrics`
- :py:mod:`adtk.visualization`

- Refactored the inheritance structure of model components (see :ref:`inheritance`)
- Added Python 3.8 support
- Fixed compatibility issues with statsmodels v0.11
- Fixed compatibility issues with pandas v1.0
- Created an interactive demo notebook in Binder
- Added type hints, and added type checking in CI/CD test
- Added `Black` and `isort` to developer requirement and CI/CD check
- Optimized release process by publishing package to PyPI through GitHub Actions
- Improved docstrings and API documentation
- Fixed many minor bugs and typos

Version 0.5.5 (Feb 24, 2020)
===================================
Expand Down
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = adtk
version = 0.6.0-dev.28+pr.94
version = 0.6.0
author = Arundo Analytics, Inc.
maintainer = Tailai Wen
maintainer_email = tailai.wen@arundo.com
Expand Down
2 changes: 1 addition & 1 deletion src/adtk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
"""

__version__ = "0.6.0-dev.28+pr.94"
__version__ = "0.6.0"

0 comments on commit 72cf57a

Please sign in to comment.