Skip to content

Commit 3782955

Browse files
committed
updates following comments
1 parent 63e9634 commit 3782955

File tree

4 files changed

+168
-476
lines changed

4 files changed

+168
-476
lines changed

src/datajudge/constraints/uniques.py

+7-10
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from .. import db_access
1111
from ..db_access import DataReference
12-
from ..utils import util_filternull_default_deprecated
12+
from ..utils import filternull_element
1313
from .base import Constraint, OptionalSelections, T, TestResult, ToleranceGetter
1414

1515

@@ -49,10 +49,10 @@ class Uniques(Constraint, abc.ABC):
4949
`WithinRequirement`.
5050
By default, the null filtering does not trigger if multiple columns are fetched at once.
5151
It can be configured in more detail by supplying a custom ``filter_func`` function.
52-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
53-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
52+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
53+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
5454
For new deployments, using one of the above filters or a custom one is recommended.
55-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
55+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
5656
The deprecated default may change in future versions.
5757
To silence the warning, set ``filter_func`` explicitly.
5858
@@ -91,7 +91,7 @@ class Uniques(Constraint, abc.ABC):
9191
which takes in two collections, and returns modified (e.g. sorted) versions of them.
9292
In most cases, the second argument is simply None,
9393
but for `UniquesSubset` it is the counts of each of the elements.
94-
The suggested function is ``datajudge.utils.util_output_postprocessing_sorter`` from this file,
94+
The suggested function is ``datajudge.utils.output_postprocessing_sorter`` from this file,
9595
- see its documentation for details.
9696
9797
By default, the number of subset or superset remainders (excess or missing values)
@@ -125,11 +125,8 @@ def __init__(
125125
super().__init__(ref, ref2=ref2, ref_value=ref_value, name=name)
126126

127127
if filter_func is None:
128-
warnings.warn(
129-
"Using deprecated default null filter function. "
130-
"Set filter_func explicitly to disable this warning."
131-
)
132-
filter_func = util_filternull_default_deprecated
128+
warnings.warn("Using deprecated default null filter function.")
129+
filter_func = filternull_element
133130

134131
self.filter_func = filter_func
135132
self.local_func = map_func

src/datajudge/requirements.py

+18-24
Original file line numberDiff line numberDiff line change
@@ -279,10 +279,9 @@ def add_uniques_equality_constraint(
279279
for ``WithinRequirement``.
280280
By default, the null filtering does not trigger if multiple columns are fetched at once.
281281
It can be configured in more detail by supplying a custom ``filter_func`` function.
282-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
283-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
284-
For new deployments, using one of the above filters or a custom one is recommended.
285-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
282+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
283+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
284+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
286285
The deprecated default may change in future versions.
287286
To silence the warning, set ``filter_func`` explicitly.
288287
@@ -328,10 +327,9 @@ def add_uniques_superset_constraint(
328327
for ``WithinRequirement``.
329328
By default, the null filtering does not trigger if multiple columns are fetched at once.
330329
It can be configured in more detail by supplying a custom ``filter_func`` function.
331-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
332-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
333-
For new deployments, using one of the above filters or a custom one is recommended.
334-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
330+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
331+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
332+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
335333
The deprecated default may change in future versions.
336334
To silence the warning, set ``filter_func`` explicitly.
337335
@@ -388,10 +386,9 @@ def add_uniques_subset_constraint(
388386
for ``WithinRequirement``.
389387
By default, the null filtering does not trigger if multiple columns are fetched at once.
390388
It can be configured in more detail by supplying a custom ``filter_func`` function.
391-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
392-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
393-
For new deployments, using one of the above filters or a custom one is recommended.
394-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
389+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
390+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
391+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
395392
The deprecated default may change in future versions.
396393
To silence the warning, set ``filter_func`` explicitly.
397394
@@ -1489,10 +1486,9 @@ def add_uniques_equality_constraint(
14891486
for ``WithinRequirement``.
14901487
By default, the null filtering does not trigger if multiple columns are fetched at once.
14911488
It can be configured in more detail by supplying a custom ``filter_func`` function.
1492-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
1493-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
1494-
For new deployments, using one of the above filters or a custom one is recommended.
1495-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
1489+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
1490+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
1491+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
14961492
The deprecated default may change in future versions.
14971493
To silence the warning, set ``filter_func`` explicitly.
14981494
@@ -1541,10 +1537,9 @@ def add_uniques_superset_constraint(
15411537
for ``WithinRequirement``.
15421538
By default, the null filtering does not trigger if multiple columns are fetched at once.
15431539
It can be configured in more detail by supplying a custom ``filter_func`` function.
1544-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
1545-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
1546-
For new deployments, using one of the above filters or a custom one is recommended.
1547-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
1540+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
1541+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
1542+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
15481543
The deprecated default may change in future versions.
15491544
To silence the warning, set ``filter_func`` explicitly.
15501545
@@ -1603,10 +1598,9 @@ def add_uniques_subset_constraint(
16031598
for ``WithinRequirement``.
16041599
By default, the null filtering does not trigger if multiple columns are fetched at once.
16051600
It can be configured in more detail by supplying a custom ``filter_func`` function.
1606-
Some exemplary implementations are available in this module as ``datajudge.utils.util_filternull_default_deprecated``,
1607-
``datajudge.utils.util_filternull_never``, ``datajudge.utils.util_filternull_element_or_tuple_all``, ``datajudge.utils.util_filternull_element_or_tuple_any``.
1608-
For new deployments, using one of the above filters or a custom one is recommended.
1609-
Passing None as the argument is equivalent to ``datajudge.utils.util_filternull_default_deprecated``, but triggers a warning.
1601+
Some exemplary implementations are available in this module as ``datajudge.utils.filternull_element``,
1602+
``datajudge.utils.filternull_never``, ``datajudge.utils.filternull_element_or_tuple_all``, ``datajudge.utils.filternull_element_or_tuple_any``.
1603+
Passing None as the argument is equivalent to ``datajudge.utils.filternull_element``, but triggers a warning.
16101604
The deprecated default may change in future versions.
16111605
To silence the warning, set ``filter_func`` explicitly.
16121606

src/datajudge/utils.py

+19-21
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def format_difference(
4646
)
4747

4848

49-
def util_output_postprocessing_sorter(
49+
def output_postprocessing_sorter(
5050
collection: Collection, counts: Optional[Collection] = None
5151
):
5252
"""
@@ -63,7 +63,7 @@ def util_output_postprocessing_sorter(
6363
if not isinstance(collection[0], tuple):
6464
# package into a 1 tuple and pass into the method again
6565
packaged_list = [(elem,) for elem in collection]
66-
res_main, res_counts = util_output_postprocessing_sorter(packaged_list, counts)
66+
res_main, res_counts = output_postprocessing_sorter(packaged_list, counts)
6767
return [elem[0] for elem in res_main], res_counts
6868

6969
if counts is None:
@@ -82,32 +82,30 @@ def util_output_postprocessing_sorter(
8282
return [elem[1:] for elem in lst], [-elem[0] for elem in lst]
8383

8484

85-
def util_filternull_default_deprecated(values: List[T]) -> List[T]:
86-
return list(filter(lambda value: value is not None, values))
85+
def filternull_element(values: List[T]) -> List[T]:
86+
return [value for value in values if value is not None]
8787

8888

89-
def util_filternull_never(values: List[T]) -> List[T]:
89+
def filternull_never(values: List[T]) -> List[T]:
9090
return values
9191

9292

93-
def util_filternull_element_or_tuple_all(values: List[T]) -> List[T]:
94-
return list(
95-
filter(
96-
lambda value: (value is not None)
97-
and (not (isinstance(value, tuple) and all(x is None for x in value))),
98-
values,
99-
)
100-
)
93+
def filternull_element_or_tuple_all(values: List[T]) -> List[T]:
94+
return [
95+
value
96+
for value in values
97+
if value is not None
98+
and not (isinstance(value, tuple) and all(x is None for x in value))
99+
]
101100

102101

103-
def util_filternull_element_or_tuple_any(values: List[T]) -> List[T]:
104-
return list(
105-
filter(
106-
lambda value: (value is not None)
107-
and (not (isinstance(value, tuple) and any(x is None for x in value))),
108-
values,
109-
)
110-
)
102+
def filternull_element_or_tuple_any(values: List[T]) -> List[T]:
103+
return [
104+
value
105+
for value in values
106+
if value is not None
107+
and not (isinstance(value, tuple) and any(x is None for x in value))
108+
]
111109

112110

113111
def sort_tuple_none_aware(collection: Collection[Tuple], ascending=True):

0 commit comments

Comments
 (0)