44
55import copy
66import itertools
7+ from typing import Generator
78
89import numpy as np
910
2627]
2728
2829
29- def integer_partitioning_generator (n : int , m : int ): # pylint: disable=invalid-name
30+ def integer_partitioning_generator (n : int , m : int ) -> Generator [ list , None , None ] : # pylint: disable=invalid-name
3031 """
3132 Integer partitioning generator
3233
@@ -75,7 +76,7 @@ def integer_partitioning_generator(n: int, m: int): # pylint: disable=invalid-n
7576 x [m ] = n - s [m - 1 ]
7677
7778
78- def all_integer_partitioning_generator (n , k , non_zero , max_count ) : # pylint: disable=invalid-name
79+ def all_integer_partitioning_generator (n : int , k : int , non_zero : bool , max_count : int ) -> Generator [ list , None , None ] : # pylint: disable=invalid-name
7980 """
8081 Generate all integer partitioning of n to k parts (including 0 parts)
8182
@@ -99,7 +100,7 @@ def all_integer_partitioning_generator(n, k, non_zero, max_count): # pylint: di
99100 yield [0 ] * (k - m ) + positives
100101
101102
102- def not_enough_diverse_folds (p_values , n_values ) :
103+ def not_enough_diverse_folds (p_values : list , n_values : list ) -> bool :
103104 """
104105 Checks if there are enough folds with positive and negative samples
105106
@@ -117,8 +118,15 @@ def not_enough_diverse_folds(p_values, n_values):
117118
118119
119120def determine_min_max_p (
120- * , p , n , k_a , k_b , c_a , p_non_zero , n_non_zero
121- ): # pylint: disable=too-many-locals
121+ * ,
122+ p : int ,
123+ n : int ,
124+ k_a : int ,
125+ k_b : int ,
126+ c_a : int ,
127+ p_non_zero : int ,
128+ n_non_zero : int
129+ ) -> tuple [int , int ]:
122130 """
123131 Determines the minimum and maximum number of positives that can appear in folds
124132 of type A
@@ -146,8 +154,14 @@ def determine_min_max_p(
146154
147155
148156def fold_partitioning_generator (
149- * , p , n , k , p_non_zero = True , n_non_zero = True , p_min = - 1
150- ): # pylint: disable=invalid-name,too-many-locals
157+ * ,
158+ p : int ,
159+ n : int ,
160+ k : int ,
161+ p_non_zero : bool = True ,
162+ n_non_zero : bool = True ,
163+ p_min : int = - 1
164+ ) -> Generator [tuple [list , list ], None , None ]:
151165 """
152166 Generates the fold partitioning
153167
@@ -240,7 +254,11 @@ def _check_specification_and_determine_p_n(dataset: dict, folding: dict) -> tupl
240254 return p , n
241255
242256
243- def kfolds_generator (evaluation : dict , available_scores : list , repeat_idx = 0 ):
257+ def kfolds_generator (
258+ evaluation : dict ,
259+ available_scores : list ,
260+ repeat_idx : int = 0
261+ ) -> Generator [list [dict ], None , None ]:
244262 """
245263 Generates the fold configurations
246264
@@ -299,7 +317,10 @@ def kfolds_generator(evaluation: dict, available_scores: list, repeat_idx=0):
299317 ]
300318
301319
302- def repeated_kfolds_generator (evaluation : dict , available_scores : list ):
320+ def repeated_kfolds_generator (
321+ evaluation : dict ,
322+ available_scores : list
323+ ) -> Generator [dict , None , None ]:
303324 """
304325 Generates the evaluation variations
305326
@@ -334,7 +355,10 @@ def repeated_kfolds_generator(evaluation: dict, available_scores: list):
334355 }
335356
336357
337- def experiment_kfolds_generator (experiment : dict , available_scores : list ):
358+ def experiment_kfolds_generator (
359+ experiment : dict ,
360+ available_scores : list
361+ ) -> Generator [dict , None , None ]:
338362 """
339363 Generates the experiment variations
340364
@@ -360,7 +384,11 @@ def experiment_kfolds_generator(experiment: dict, available_scores: list):
360384 }
361385
362386
363- def multiclass_fold_partitioning_generator_22 (n0 : int , n1 : int , c0 : int ):
387+ def multiclass_fold_partitioning_generator_22 (
388+ n0 : int ,
389+ n1 : int ,
390+ c0 : int
391+ ) -> Generator [dict , None , None ]:
364392 """
365393 Generates the configurations for two folds of cardinalities n0 and n1 and two
366394 classes of cardinalities c0 and n0 + n1 - c0
0 commit comments