Python price handling for humans
Python
Latest commit aec3348 Feb 23, 2016 @patrys patrys 0.5.8
Failed to load latest commit information.
prices remove pdb Feb 23, 2016
.coveragerc Rename AuditTrail to History, better coverage Oct 21, 2013
.gitignore 0.4.2 Aug 20, 2013
.travis.yml Drop support for Python 3.2, add 3.4 and 3.5 Jan 12, 2016
README.md Update README.md Jun 12, 2015
setup.py 0.5.8 Feb 23, 2016

README.md

Prices: Python price handling for humans

Build Status codecov.io


from prices import Price, PriceRange, LinearTax
p = Price('1.99')
p += Price(50)
p |= LinearTax('0.23', '23% VAT')
print p.quantize('0.01').gross
# Decimal('63.95')
pr = PriceRange(Price(50), Price(100))
print p in pr
# True

While protecting you from all sorts of mistakes:

Price(10, currency='USD') < Price(15, currency='GBP')
# ValueError: Cannot compare prices in 'USD' and 'GBP'
Price(5, currency='BTC') + Price(7, currency='INR')
# ValueError: Cannot add price in 'BTC' to 'INR'

And being helpful:

from prices import Price, LinearTax, inspect_price
p = Price('1.99')
p += Price(50)
p |= LinearTax('0.23', '23% VAT')
print inspect_price(p)
# "Price('1.99', currency=None) + Price('50', currency=None) | LinearTax('0.23', name='23% VAT')"