Skip to main content

Aggregate, String and Conditional SQL functions for Django ORM.

Project description

django-aggregates
=================
Aggregate, String and Conditional SQL functions to use into Annotate and Aggregate methods. Any kind of contribitions and ideas are welcome.

Installation
=================
pip install django-aggregates

Usage
=================
>> from aggregates import StringAgg
>> People.objects.aggregate(names=StringAgg('name', delimiter(', ')))
>> {'names': 'Walter, The Dude, Donny, Jesus'}

>> from aggregates import As
>> People.objects.values('address__title').annotate(prettyname=As('address__title')).values('prettyname')
>> [{'prettyname': 'someadress1'}, {'prettyname': 'someaddress2'}]

>> from aggregates.strings import CharLength
>> People.objects.annotate(char_len=CharLength('name')).filter(char_len__gt=6)
>> [<People: Walter>, <People: The Dude>]

>> from aggregates.conditionals import Coalesce, NullIf
>> person=People.objects.annotate(null_if=NullIf('name', othercol='surname'))[0]
>> person.null_if
>> 'Walter'
>> person=People.objects.annotate(coalesce=Coalesce('age', default=18))[0]
>> person.coalesce
>> 18
>> person.age
>>

Available Functions
=================
Aggregates:

from aggregates import ...
- As
- BitAnd
- BitOr
- BoolAnd **# Only PostgreSQL**
- BoolOr **# Only PostgreSQL**
- Every **# Only PostgreSQL**
- StringAgg **# Only PostgreSQL**
- XMLAgg **# Only PostgreSQL**
- Corr **# Only PostgreSQL**
- CovarPop **# Only PostgreSQL**
- CovarSamp **# Only PostgreSQL**
- RegrAvgX **# Only PostgreSQL**
- RegrAvgY **# Only PostgreSQL**
- RegrCount **# Only PostgreSQL**
- RegrIntercept **# Only PostgreSQL**
- RegrR2 **# Only PostgreSQL**
- RegrSlope **# Only PostgreSQL**
- RegrSXX **# Only PostgreSQL**
- RegrSXY **# Only PostgreSQL**
- RegrSYY **# Only PostgreSQL**
- Mode **# Only PostgreSQL 9.4+**
- PercentileCont **# Only PostgreSQL 9.4+**
- PercentileDisc **# Only PostgreSQL 9.4+**

Strings:

from aggregates.string import ...
- BitLength
- CharLength
- CharacterLength
- OctetLength
- Lower
- Upper
- Ascii
- Length
- MD5 **# Only PostgreSQL**

Conditionals:

from aggregates.conditionals import ...
- NullIf
- Coalesce **# Only PostgreSQL**

Requirements
==================================
- Django 1.2+

TODO
=================
- UnitTests.
- More detailed informations about functions.
- JSON functions and operations

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-aggregates-0.1.3.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

django_aggregates-0.1.3-py2-none-any.whl (8.5 kB view details)

Uploaded Python 2

File details

Details for the file django-aggregates-0.1.3.tar.gz.

File metadata

File hashes

Hashes for django-aggregates-0.1.3.tar.gz
Algorithm Hash digest
SHA256 9daf619caca866ef5c84b0216f59f929341efbb18b7dbe748f376efb0cad53a7
MD5 cb92ea59c0d87b4325d8f4c643558145
BLAKE2b-256 2a40dcf66841f61bbc00fb74e3bec831653fef03819ffee37ad9e05358fd3684

See more details on using hashes here.

File details

Details for the file django_aggregates-0.1.3-py2-none-any.whl.

File metadata

File hashes

Hashes for django_aggregates-0.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 8b89324c7b5bf0c3133cda209be4d77fe299f1f254ef71f8ef9ee641c4f4403e
MD5 3c2e7e31b4a4caf580de61ed39f628c0
BLAKE2b-256 d3b0a14e92677083515db41ec388231bdb87f4fc4bdfa665c7d69745d02b1743

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page