Add "pragma: no cover" in sqltranslation.py where appropriate
NumericSetExprMonad optimization bug fixed: select(o for o in Order if o.total_price < sum(o.items.price * o.items.quantity))[:]
Whitespace normalization
Minor aggregation bug fixed
Add comparison methods to Entity class. Now entity instances can be sorted by its primary key values
Multiset.__str__ now represents items in sorted order
Multiset tests added
distinct() function

>>> from pony.orm.examples.presentation import *
>>> distinct(['a', 'a', 'a', 'b', 'b'])
>>> select(d for d in Department if 10 < sum(distinct(d.groups.students.gpa)))[:]
>>> select(d for d in Department if 10 < sum(distinct(d.groups.students.gpa * 2)))[:]
>>> select(d for d in Department if 10 < sum(distinct(s.gpa for s in d.groups.students)))[:]
>>> select((g, sum(distinct(s.gpa))) for g in Group for s in g.students)[:]
micro optimization
Finally fixes #21 bugs caused by commit 227727a9 (improved decorators)
Replace 'assertEquals' to 'asertEqual' in all tests
Entity.exists() method added:

>>> from pony.orm.examples.presentation import *
>>> Department.exists(number=1)
>>> Department.exists(lambda d: d.number > x)
>>> Department.exists("lambda d: d.number > x")
Lookup of inherited objects in cache bug fix
Automatically generated default value for nullable optional string attribute should be None, not ''
Error message fixed
Take ignore_none from provider
Bug fixed: during object creation, unique indexes must ignore None values
Add a couple of tests for Optional string attributes
db_session is refactored and fully covered by tests
'ddl' option added to db_session