Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Python price handling for humans

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 prices
Octocat-spinner-32 .coveragerc
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 README.md
Octocat-spinner-32 setup.py
README.md

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.