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
=================
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
Built Distribution
File details
Details for the file django-aggregates-0.1.3.tar.gz
.
File metadata
- Download URL: django-aggregates-0.1.3.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9daf619caca866ef5c84b0216f59f929341efbb18b7dbe748f376efb0cad53a7 |
|
MD5 | cb92ea59c0d87b4325d8f4c643558145 |
|
BLAKE2b-256 | 2a40dcf66841f61bbc00fb74e3bec831653fef03819ffee37ad9e05358fd3684 |
File details
Details for the file django_aggregates-0.1.3-py2-none-any.whl
.
File metadata
- Download URL: django_aggregates-0.1.3-py2-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b89324c7b5bf0c3133cda209be4d77fe299f1f254ef71f8ef9ee641c4f4403e |
|
MD5 | 3c2e7e31b4a4caf580de61ed39f628c0 |
|
BLAKE2b-256 | d3b0a14e92677083515db41ec388231bdb87f4fc4bdfa665c7d69745d02b1743 |