agateblue / lifter

A generic query engine, inspired by Django ORM
ISC License
449 stars 16 forks source link

Allow flat results on aggregates #2

Closed agateblue closed 8 years ago

agateblue commented 8 years ago

Right now, aggregate always return a dictionary:


manager.filter(gender='female').aggregate(lifter.Avg('age'), lifter.Min('age'))
# >>> {'age__sum': 289, 'age__min': 15}

As suggested on reddit, it would be nice to return a flat list:

manager.filter(gender='female').aggregate(lifter.Avg('age'), lifter.Min('age'), flat=True)
# >>> [289, 15]

This would enable unpacking on aggregates:


avg_age, min_age = manager.filter(gender='female')\
                          .aggregate(lifter.Avg('age'), lifter.Min('age'), flat=True)