Skip to content

Commit 936d49f

Browse files
authored
remove tdigest.add weights (#2408)
1 parent b0883b7 commit 936d49f

File tree

4 files changed

+40
-50
lines changed

4 files changed

+40
-50
lines changed

redis/commands/bf/commands.py

+4-10
Original file line numberDiff line numberDiff line change
@@ -370,19 +370,13 @@ def reset(self, key):
370370
""" # noqa
371371
return self.execute_command(TDIGEST_RESET, key)
372372

373-
def add(self, key, values, weights):
373+
def add(self, key, values):
374374
"""
375-
Add one or more samples (value with weight) to a sketch `key`.
376-
Both `values` and `weights` are lists.
377-
For more information see `TDIGEST.ADD <https://redis.io/commands/tdigest.add>`_.
378-
379-
Example:
375+
Adds one or more observations to a t-digest sketch `key`.
380376
381-
>>> tdigestadd('A', [1500.0], [1.0])
377+
For more information see `TDIGEST.ADD <https://redis.io/commands/tdigest.add>`_.
382378
""" # noqa
383-
params = [key]
384-
self.append_values_and_weights(params, values, weights)
385-
return self.execute_command(TDIGEST_ADD, *params)
379+
return self.execute_command(TDIGEST_ADD, key, *values)
386380

387381
def merge(self, destination_key, num_keys, *keys, compression=None, override=False):
388382
"""

redis/commands/bf/info.py

-2
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ class TDigestInfo(object):
7373
merged_weight = None
7474
unmerged_weight = None
7575
total_compressions = None
76-
sum_weights = None
7776
memory_usage = None
7877

7978
def __init__(self, args):
@@ -85,5 +84,4 @@ def __init__(self, args):
8584
self.merged_weight = response["Merged weight"]
8685
self.unmerged_weight = response["Unmerged weight"]
8786
self.total_compressions = response["Total compressions"]
88-
self.sum_weights = response["Sum weights"]
8987
self.memory_usage = response["Memory usage"]

tests/test_asyncio/test_bloom.py

+18-18
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ async def test_tdigest_reset(modclient: redis.Redis):
324324
# reset on empty histogram
325325
assert await modclient.tdigest().reset("tDigest")
326326
# insert data-points into sketch
327-
assert await modclient.tdigest().add("tDigest", list(range(10)), [1] * 10)
327+
assert await modclient.tdigest().add("tDigest", list(range(10)))
328328

329329
assert await modclient.tdigest().reset("tDigest")
330330
# assert we have 0 unmerged nodes
@@ -337,19 +337,19 @@ async def test_tdigest_merge(modclient: redis.Redis):
337337
assert await modclient.tdigest().create("to-tDigest", 10)
338338
assert await modclient.tdigest().create("from-tDigest", 10)
339339
# insert data-points into sketch
340-
assert await modclient.tdigest().add("from-tDigest", [1.0] * 10, [1] * 10)
341-
assert await modclient.tdigest().add("to-tDigest", [2.0] * 10, [10] * 10)
340+
assert await modclient.tdigest().add("from-tDigest", [1.0] * 10)
341+
assert await modclient.tdigest().add("to-tDigest", [2.0] * 10)
342342
# merge from-tdigest into to-tdigest
343343
assert await modclient.tdigest().merge("to-tDigest", 1, "from-tDigest")
344344
# we should now have 110 weight on to-histogram
345345
info = await modclient.tdigest().info("to-tDigest")
346346
total_weight_to = float(info.merged_weight) + float(info.unmerged_weight)
347-
assert 110 == total_weight_to
347+
assert 20.0 == total_weight_to
348348
# test override
349349
assert await modclient.tdigest().create("from-override", 10)
350350
assert await modclient.tdigest().create("from-override-2", 10)
351-
assert await modclient.tdigest().add("from-override", [3.0] * 10, [10] * 10)
352-
assert await modclient.tdigest().add("from-override-2", [4.0] * 10, [10] * 10)
351+
assert await modclient.tdigest().add("from-override", [3.0] * 10)
352+
assert await modclient.tdigest().add("from-override-2", [4.0] * 10)
353353
assert await modclient.tdigest().merge(
354354
"to-tDigest", 2, "from-override", "from-override-2", override=True
355355
)
@@ -362,7 +362,7 @@ async def test_tdigest_merge(modclient: redis.Redis):
362362
async def test_tdigest_min_and_max(modclient: redis.Redis):
363363
assert await modclient.tdigest().create("tDigest", 100)
364364
# insert data-points into sketch
365-
assert await modclient.tdigest().add("tDigest", [1, 2, 3], [1] * 3)
365+
assert await modclient.tdigest().add("tDigest", [1, 2, 3])
366366
# min/max
367367
assert 3 == await modclient.tdigest().max("tDigest")
368368
assert 1 == await modclient.tdigest().min("tDigest")
@@ -375,7 +375,7 @@ async def test_tdigest_quantile(modclient: redis.Redis):
375375
assert await modclient.tdigest().create("tDigest", 500)
376376
# insert data-points into sketch
377377
assert await modclient.tdigest().add(
378-
"tDigest", list([x * 0.01 for x in range(1, 10000)]), [1] * 10000
378+
"tDigest", list([x * 0.01 for x in range(1, 10000)])
379379
)
380380
# assert min min/max have same result as quantile 0 and 1
381381
assert (
@@ -392,7 +392,7 @@ async def test_tdigest_quantile(modclient: redis.Redis):
392392

393393
# test multiple quantiles
394394
assert await modclient.tdigest().create("t-digest", 100)
395-
assert await modclient.tdigest().add("t-digest", [1, 2, 3, 4, 5], [1] * 5)
395+
assert await modclient.tdigest().add("t-digest", [1, 2, 3, 4, 5])
396396
res = await modclient.tdigest().quantile("t-digest", 0.5, 0.8)
397397
assert [3.0, 5.0] == res
398398

@@ -402,7 +402,7 @@ async def test_tdigest_quantile(modclient: redis.Redis):
402402
async def test_tdigest_cdf(modclient: redis.Redis):
403403
assert await modclient.tdigest().create("tDigest", 100)
404404
# insert data-points into sketch
405-
assert await modclient.tdigest().add("tDigest", list(range(1, 10)), [1] * 10)
405+
assert await modclient.tdigest().add("tDigest", list(range(1, 10)))
406406
assert 0.1 == round((await modclient.tdigest().cdf("tDigest", 1.0))[0], 1)
407407
assert 0.9 == round((await modclient.tdigest().cdf("tDigest", 9.0))[0], 1)
408408
res = await modclient.tdigest().cdf("tDigest", 1.0, 9.0)
@@ -415,7 +415,7 @@ async def test_tdigest_cdf(modclient: redis.Redis):
415415
async def test_tdigest_trimmed_mean(modclient: redis.Redis):
416416
assert await modclient.tdigest().create("tDigest", 100)
417417
# insert data-points into sketch
418-
assert await modclient.tdigest().add("tDigest", list(range(1, 10)), [1] * 10)
418+
assert await modclient.tdigest().add("tDigest", list(range(1, 10)))
419419
assert 5 == await modclient.tdigest().trimmed_mean("tDigest", 0.1, 0.9)
420420
assert 4.5 == await modclient.tdigest().trimmed_mean("tDigest", 0.4, 0.5)
421421

@@ -424,7 +424,7 @@ async def test_tdigest_trimmed_mean(modclient: redis.Redis):
424424
@pytest.mark.experimental
425425
async def test_tdigest_rank(modclient: redis.Redis):
426426
assert await modclient.tdigest().create("t-digest", 500)
427-
assert await modclient.tdigest().add("t-digest", list(range(0, 20)), [1] * 20)
427+
assert await modclient.tdigest().add("t-digest", list(range(0, 20)))
428428
assert -1 == (await modclient.tdigest().rank("t-digest", -1))[0]
429429
assert 1 == (await modclient.tdigest().rank("t-digest", 0))[0]
430430
assert 11 == (await modclient.tdigest().rank("t-digest", 10))[0]
@@ -435,17 +435,17 @@ async def test_tdigest_rank(modclient: redis.Redis):
435435
@pytest.mark.experimental
436436
async def test_tdigest_revrank(modclient: redis.Redis):
437437
assert await modclient.tdigest().create("t-digest", 500)
438-
assert await modclient.tdigest().add("t-digest", list(range(0, 20)), [1] * 20)
438+
assert await modclient.tdigest().add("t-digest", list(range(0, 20)))
439439
assert -1 == (await modclient.tdigest().revrank("t-digest", 20))[0]
440-
assert 20 == (await modclient.tdigest().revrank("t-digest", 0))[0]
441-
assert [-1, 20, 10] == await modclient.tdigest().revrank("t-digest", 21, 0, 10)
440+
assert 19 == (await modclient.tdigest().revrank("t-digest", 0))[0]
441+
assert [-1, 19, 9] == await modclient.tdigest().revrank("t-digest", 21, 0, 10)
442442

443443

444444
@pytest.mark.redismod
445445
@pytest.mark.experimental
446446
async def test_tdigest_byrank(modclient: redis.Redis):
447447
assert await modclient.tdigest().create("t-digest", 500)
448-
assert await modclient.tdigest().add("t-digest", list(range(1, 11)), [1] * 20)
448+
assert await modclient.tdigest().add("t-digest", list(range(1, 11)))
449449
assert 1 == (await modclient.tdigest().byrank("t-digest", 0))[0]
450450
assert 10 == (await modclient.tdigest().byrank("t-digest", 9))[0]
451451
assert (await modclient.tdigest().byrank("t-digest", 100))[0] == inf
@@ -457,9 +457,9 @@ async def test_tdigest_byrank(modclient: redis.Redis):
457457
@pytest.mark.experimental
458458
async def test_tdigest_byrevrank(modclient: redis.Redis):
459459
assert await modclient.tdigest().create("t-digest", 500)
460-
assert await modclient.tdigest().add("t-digest", list(range(1, 11)), [1] * 20)
460+
assert await modclient.tdigest().add("t-digest", list(range(1, 11)))
461461
assert 10 == (await modclient.tdigest().byrevrank("t-digest", 0))[0]
462-
assert 2 == (await modclient.tdigest().byrevrank("t-digest", 9))[0]
462+
assert 1 == (await modclient.tdigest().byrevrank("t-digest", 9))[0]
463463
assert (await modclient.tdigest().byrevrank("t-digest", 100))[0] == -inf
464464
with pytest.raises(redis.ResponseError):
465465
(await modclient.tdigest().byrevrank("t-digest", -1))[0]

tests/test_bloom.py

+18-20
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ def test_tdigest_reset(client):
339339
# reset on empty histogram
340340
assert client.tdigest().reset("tDigest")
341341
# insert data-points into sketch
342-
assert client.tdigest().add("tDigest", list(range(10)), [1] * 10)
342+
assert client.tdigest().add("tDigest", list(range(10)))
343343

344344
assert client.tdigest().reset("tDigest")
345345
# assert we have 0 unmerged nodes
@@ -352,19 +352,19 @@ def test_tdigest_merge(client):
352352
assert client.tdigest().create("to-tDigest", 10)
353353
assert client.tdigest().create("from-tDigest", 10)
354354
# insert data-points into sketch
355-
assert client.tdigest().add("from-tDigest", [1.0] * 10, [1] * 10)
356-
assert client.tdigest().add("to-tDigest", [2.0] * 10, [10] * 10)
355+
assert client.tdigest().add("from-tDigest", [1.0] * 10)
356+
assert client.tdigest().add("to-tDigest", [2.0] * 10)
357357
# merge from-tdigest into to-tdigest
358358
assert client.tdigest().merge("to-tDigest", 1, "from-tDigest")
359359
# we should now have 110 weight on to-histogram
360360
info = client.tdigest().info("to-tDigest")
361361
total_weight_to = float(info.merged_weight) + float(info.unmerged_weight)
362-
assert 110 == total_weight_to
362+
assert 20 == total_weight_to
363363
# test override
364364
assert client.tdigest().create("from-override", 10)
365365
assert client.tdigest().create("from-override-2", 10)
366-
assert client.tdigest().add("from-override", [3.0] * 10, [10] * 10)
367-
assert client.tdigest().add("from-override-2", [4.0] * 10, [10] * 10)
366+
assert client.tdigest().add("from-override", [3.0] * 10)
367+
assert client.tdigest().add("from-override-2", [4.0] * 10)
368368
assert client.tdigest().merge(
369369
"to-tDigest", 2, "from-override", "from-override-2", override=True
370370
)
@@ -377,7 +377,7 @@ def test_tdigest_merge(client):
377377
def test_tdigest_min_and_max(client):
378378
assert client.tdigest().create("tDigest", 100)
379379
# insert data-points into sketch
380-
assert client.tdigest().add("tDigest", [1, 2, 3], [1] * 3)
380+
assert client.tdigest().add("tDigest", [1, 2, 3])
381381
# min/max
382382
assert 3 == client.tdigest().max("tDigest")
383383
assert 1 == client.tdigest().min("tDigest")
@@ -389,9 +389,7 @@ def test_tdigest_min_and_max(client):
389389
def test_tdigest_quantile(client):
390390
assert client.tdigest().create("tDigest", 500)
391391
# insert data-points into sketch
392-
assert client.tdigest().add(
393-
"tDigest", list([x * 0.01 for x in range(1, 10000)]), [1] * 10000
394-
)
392+
assert client.tdigest().add("tDigest", list([x * 0.01 for x in range(1, 10000)]))
395393
# assert min min/max have same result as quantile 0 and 1
396394
res = client.tdigest().quantile("tDigest", 1.0)
397395
assert client.tdigest().max("tDigest") == res[0]
@@ -403,7 +401,7 @@ def test_tdigest_quantile(client):
403401

404402
# test multiple quantiles
405403
assert client.tdigest().create("t-digest", 100)
406-
assert client.tdigest().add("t-digest", [1, 2, 3, 4, 5], [1] * 5)
404+
assert client.tdigest().add("t-digest", [1, 2, 3, 4, 5])
407405
assert [3.0, 5.0] == client.tdigest().quantile("t-digest", 0.5, 0.8)
408406

409407

@@ -412,7 +410,7 @@ def test_tdigest_quantile(client):
412410
def test_tdigest_cdf(client):
413411
assert client.tdigest().create("tDigest", 100)
414412
# insert data-points into sketch
415-
assert client.tdigest().add("tDigest", list(range(1, 10)), [1] * 10)
413+
assert client.tdigest().add("tDigest", list(range(1, 10)))
416414
assert 0.1 == round(client.tdigest().cdf("tDigest", 1.0)[0], 1)
417415
assert 0.9 == round(client.tdigest().cdf("tDigest", 9.0)[0], 1)
418416
res = client.tdigest().cdf("tDigest", 1.0, 9.0)
@@ -425,7 +423,7 @@ def test_tdigest_cdf(client):
425423
def test_tdigest_trimmed_mean(client):
426424
assert client.tdigest().create("tDigest", 100)
427425
# insert data-points into sketch
428-
assert client.tdigest().add("tDigest", list(range(1, 10)), [1] * 10)
426+
assert client.tdigest().add("tDigest", list(range(1, 10)))
429427
assert 5 == client.tdigest().trimmed_mean("tDigest", 0.1, 0.9)
430428
assert 4.5 == client.tdigest().trimmed_mean("tDigest", 0.4, 0.5)
431429

@@ -434,7 +432,7 @@ def test_tdigest_trimmed_mean(client):
434432
@pytest.mark.experimental
435433
def test_tdigest_rank(client):
436434
assert client.tdigest().create("t-digest", 500)
437-
assert client.tdigest().add("t-digest", list(range(0, 20)), [1] * 20)
435+
assert client.tdigest().add("t-digest", list(range(0, 20)))
438436
assert -1 == client.tdigest().rank("t-digest", -1)[0]
439437
assert 1 == client.tdigest().rank("t-digest", 0)[0]
440438
assert 11 == client.tdigest().rank("t-digest", 10)[0]
@@ -445,17 +443,17 @@ def test_tdigest_rank(client):
445443
@pytest.mark.experimental
446444
def test_tdigest_revrank(client):
447445
assert client.tdigest().create("t-digest", 500)
448-
assert client.tdigest().add("t-digest", list(range(0, 20)), [1] * 20)
446+
assert client.tdigest().add("t-digest", list(range(0, 20)))
449447
assert -1 == client.tdigest().revrank("t-digest", 20)[0]
450-
assert 20 == client.tdigest().revrank("t-digest", 0)[0]
451-
assert [-1, 20, 10] == client.tdigest().revrank("t-digest", 21, 0, 10)
448+
assert 19 == client.tdigest().revrank("t-digest", 0)[0]
449+
assert [-1, 19, 9] == client.tdigest().revrank("t-digest", 21, 0, 10)
452450

453451

454452
@pytest.mark.redismod
455453
@pytest.mark.experimental
456454
def test_tdigest_byrank(client):
457455
assert client.tdigest().create("t-digest", 500)
458-
assert client.tdigest().add("t-digest", list(range(1, 11)), [1] * 20)
456+
assert client.tdigest().add("t-digest", list(range(1, 11)))
459457
assert 1 == client.tdigest().byrank("t-digest", 0)[0]
460458
assert 10 == client.tdigest().byrank("t-digest", 9)[0]
461459
assert client.tdigest().byrank("t-digest", 100)[0] == inf
@@ -467,9 +465,9 @@ def test_tdigest_byrank(client):
467465
@pytest.mark.experimental
468466
def test_tdigest_byrevrank(client):
469467
assert client.tdigest().create("t-digest", 500)
470-
assert client.tdigest().add("t-digest", list(range(1, 11)), [1] * 20)
468+
assert client.tdigest().add("t-digest", list(range(1, 11)))
471469
assert 10 == client.tdigest().byrevrank("t-digest", 0)[0]
472-
assert 2 == client.tdigest().byrevrank("t-digest", 9)[0]
470+
assert 1 == client.tdigest().byrevrank("t-digest", 9)[0]
473471
assert client.tdigest().byrevrank("t-digest", 100)[0] == -inf
474472
with pytest.raises(redis.ResponseError):
475473
client.tdigest().byrevrank("t-digest", -1)[0]

0 commit comments

Comments
 (0)