From 1d39a52f5547c6531a1a2f50d44124ea32d70b8a Mon Sep 17 00:00:00 2001 From: datedote Date: Wed, 7 Aug 2024 19:02:33 -0700 Subject: [PATCH 1/2] [ENH] add type hints to _shapelet_transform.py __init__ method --- .../shapelet_based/_shapelet_transform.py | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/aeon/transformations/collection/shapelet_based/_shapelet_transform.py b/aeon/transformations/collection/shapelet_based/_shapelet_transform.py index 02f0d22c71..b5e28fd934 100644 --- a/aeon/transformations/collection/shapelet_based/_shapelet_transform.py +++ b/aeon/transformations/collection/shapelet_based/_shapelet_transform.py @@ -9,6 +9,7 @@ import heapq import math import time +from typing import Optional, Union import numpy as np from joblib import Parallel, delayed @@ -63,10 +64,10 @@ class RandomShapeletTransform(BaseCollectionTransformer): Upper bound on candidate shapelet lengths. If None no max length is used. remove_self_similar : boolean, default=True Remove overlapping "self-similar" shapelets when merging candidate shapelets. - time_limit_in_minutes : int, default=0 + time_limit_in_minutes : int or float, default=0.0 Time contract to limit build time in minutes, overriding n_shapelet_samples. Default of 0 means n_shapelet_samples is used. - contract_max_n_shapelet_samples : int, default=np.inf + contract_max_n_shapelet_samples : int or float, default=np.inf Max number of shapelets to extract when time_limit_in_minutes is set. n_jobs : int, default=1 The number of jobs to run in parallel for both `fit` and `transform`. @@ -151,18 +152,18 @@ class RandomShapeletTransform(BaseCollectionTransformer): def __init__( self, - n_shapelet_samples=10000, - max_shapelets=None, - min_shapelet_length=3, - max_shapelet_length=None, - remove_self_similar=True, - time_limit_in_minutes=0.0, - contract_max_n_shapelet_samples=np.inf, - n_jobs=1, + n_shapelet_samples: int = 10000, + max_shapelets: Optional[int] = None, + min_shapelet_length: int = 3, + max_shapelet_length: Optional[int] = None, + remove_self_similar: bool = True, + time_limit_in_minutes: Union[int, float] = 0.0, + contract_max_n_shapelet_samples: Union[int, float] = np.inf, + n_jobs: int = 1, parallel_backend=None, - batch_size=100, - random_state=None, - ): + batch_size: Optional[int] = 100, + random_state: Optional[int] = None, + ) -> None: self.n_shapelet_samples = n_shapelet_samples self.max_shapelets = max_shapelets self.min_shapelet_length = min_shapelet_length From ec2bde6ba605946d32454eeb08c051d1caf75092 Mon Sep 17 00:00:00 2001 From: datedote Date: Mon, 12 Aug 2024 11:35:17 -0700 Subject: [PATCH 2/2] change type hint Union[int, float] to float --- .../collection/shapelet_based/_shapelet_transform.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/aeon/transformations/collection/shapelet_based/_shapelet_transform.py b/aeon/transformations/collection/shapelet_based/_shapelet_transform.py index b5e28fd934..cd62012221 100644 --- a/aeon/transformations/collection/shapelet_based/_shapelet_transform.py +++ b/aeon/transformations/collection/shapelet_based/_shapelet_transform.py @@ -9,7 +9,7 @@ import heapq import math import time -from typing import Optional, Union +from typing import Optional import numpy as np from joblib import Parallel, delayed @@ -64,10 +64,10 @@ class RandomShapeletTransform(BaseCollectionTransformer): Upper bound on candidate shapelet lengths. If None no max length is used. remove_self_similar : boolean, default=True Remove overlapping "self-similar" shapelets when merging candidate shapelets. - time_limit_in_minutes : int or float, default=0.0 + time_limit_in_minutes : float, default=0.0 Time contract to limit build time in minutes, overriding n_shapelet_samples. Default of 0 means n_shapelet_samples is used. - contract_max_n_shapelet_samples : int or float, default=np.inf + contract_max_n_shapelet_samples : float, default=np.inf Max number of shapelets to extract when time_limit_in_minutes is set. n_jobs : int, default=1 The number of jobs to run in parallel for both `fit` and `transform`. @@ -157,8 +157,8 @@ def __init__( min_shapelet_length: int = 3, max_shapelet_length: Optional[int] = None, remove_self_similar: bool = True, - time_limit_in_minutes: Union[int, float] = 0.0, - contract_max_n_shapelet_samples: Union[int, float] = np.inf, + time_limit_in_minutes: float = 0.0, + contract_max_n_shapelet_samples: float = np.inf, n_jobs: int = 1, parallel_backend=None, batch_size: Optional[int] = 100,