Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Python price handling for humans
branch: master

Merge pull request #15 from artursmet/add-verbose-error

Add verbose error message for prices multiplication
latest commit 70c56f15b3
@patrys patrys authored
Failed to load latest commit information.
prices Fix error message
.coveragerc Rename AuditTrail to History, better coverage
.gitignore 0.4.2
.travis.yml Test in 3.3 Update 0.5.4

Prices: Python price handling for humans

Build Status Coverage

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')"
Something went wrong with that request. Please try again.