Skip to content

Commit

Permalink
cleaned up grouping tests to take advantage of new T and Val (#251)
Browse files Browse the repository at this point in the history
  • Loading branch information
kurtbrose committed Jan 19, 2023
1 parent 13432c2 commit 5476983
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
6 changes: 3 additions & 3 deletions glom/grouping.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,14 @@ class Group(object):
For example, here we get a map of even and odd counts::
>>> glom(range(10), Group({lambda x: x % 2: T}))
>>> glom(range(10), Group({T % 2: T}))
{0: 8, 1: 9}
And here we create a `"bucketized"
<https://boltons.readthedocs.io/en/latest/iterutils.html#boltons.iterutils.bucketize>`_
map of even and odd numbers::
>>> glom(range(10), Group({lambda x: x % 2: [T]}))
>>> glom(range(10), Group({T % 2: [T]}))
{0: [0, 2, 4, 6, 8], 1: [1, 3, 5, 7, 9]}
target is the current target, accumulator is a dict
Expand Down Expand Up @@ -101,7 +101,7 @@ def GROUP(target, spec, scope):
Group mode dispatcher; also sentinel for current mode = group
"""
recurse = lambda spec: scope[glom](target, spec, scope)
tree = scope[ACC_TREE] # current acuumulator support structure
tree = scope[ACC_TREE] # current accumulator support structure
if callable(getattr(spec, "agg", None)):
return spec.agg(target, tree)
elif callable(spec):
Expand Down
10 changes: 5 additions & 5 deletions glom/test/test_grouping.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

from pytest import raises

from glom import glom, T, SKIP, STOP, Auto, BadSpec
from glom import glom, T, SKIP, STOP, Auto, BadSpec, Val
from glom.grouping import Group, First, Avg, Max, Min, Sample, Limit

from glom.reduction import Merge, Flatten, Sum, Count


def test_bucketing():
assert glom(range(4), Group({lambda t: t % 2 == 0: [T]})) == {True: [0, 2], False: [1, 3]}
assert (glom(range(6), Group({lambda t: t % 3: {lambda t: t % 2: [lambda t: t / 10.0]}})) ==
assert glom(range(4), Group({T % 2: [T]})) == {0: [0, 2], 1: [1, 3]}
assert (glom(range(6), Group({T % 3: {T % 2: [T / 10.0]}})) ==
{0: {0: [0.0], 1: [0.3]}, 1: {1: [0.1], 0: [0.4]}, 2: {0: [0.2], 1: [0.5]}})


Expand All @@ -19,10 +19,10 @@ def test_corner_cases():
target = range(5)

# immediate stop dict
assert glom(target, Group({(lambda t: STOP): [T]})) == {}
assert glom(target, Group({Val(STOP): [T]})) == {}

# immediate stop list
assert glom(target, Group([lambda t: STOP])) == []
assert glom(target, Group([Val(STOP)])) == []

# dict key SKIP
assert glom(target, Group({(lambda t: SKIP if t < 3 else t): T})) == {3: 3, 4: 4}
Expand Down

0 comments on commit 5476983

Please sign in to comment.