A custom library for calculating expense splits and settlements
Project description
SettleUp Calculator Library
A custom Python library for calculating expense splits and settlements.
Features
- Calculate expense splits using multiple methods:
- Equal split
- Percentage-based split
- Exact amount split
- Calculate net balances for users
- Generate minimum settlement transactions
Installation
pip install settleup-calculator
Or install from source:
python setup.py install
Usage
Basic Expense Split
from settleup_calculator import ExpenseCalculator, SplitMethod
from decimal import Decimal
# Equal split
splits = ExpenseCalculator.calculate_split(
total_amount=Decimal("100.00"),
participants=["user1", "user2", "user3"],
split_method=SplitMethod.EQUAL
)
# Result: {"user1": Decimal("33.33"), "user2": Decimal("33.33"), "user3": Decimal("33.34")}
# Percentage split
splits = ExpenseCalculator.calculate_split(
total_amount=Decimal("100.00"),
participants=["user1", "user2"],
split_method=SplitMethod.PERCENTAGE,
participant_data={
"user1": {"percentage": 60},
"user2": {"percentage": 40}
}
)
# Result: {"user1": Decimal("60.00"), "user2": Decimal("40.00")}
# Exact split
splits = ExpenseCalculator.calculate_split(
total_amount=Decimal("100.00"),
participants=["user1", "user2", "user3"],
split_method=SplitMethod.EXACT,
participant_data={
"user1": {"amount": 50},
"user2": {"amount": 30},
"user3": {"amount": 20}
}
)
# Result: {"user1": Decimal("50.00"), "user2": Decimal("30.00"), "user3": Decimal("20.00")}
Calculate Settlements
from settleup_calculator import SplitCalculator
expenses = [
{
"paid_by": "user1",
"amount": Decimal("100.00"),
"participants": ["user1", "user2"],
"split_method": "equal"
},
{
"paid_by": "user2",
"amount": Decimal("50.00"),
"participants": ["user1", "user2"],
"split_method": "equal"
}
]
balances = SplitCalculator.calculate_balances(expenses)
settlements = SplitCalculator.calculate_settlements(balances)
License
MIT License
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file settleup_calculator-1.0.1.tar.gz.
File metadata
- Download URL: settleup_calculator-1.0.1.tar.gz
- Upload date:
- Size: 5.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88d5ed38cd041868414a7340e9e867383dfbf82e5cf3eeeff71cc291dbe05294
|
|
| MD5 |
4323a67be54b87d74c0a983828a85a58
|
|
| BLAKE2b-256 |
2789920e193340c49c9210814fe094b1ed2cdb469973a0508ee12704ea7a3727
|
File details
Details for the file settleup_calculator-1.0.1-py3-none-any.whl.
File metadata
- Download URL: settleup_calculator-1.0.1-py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36e04fad9b2a9f2b19b698c3c82da4ac7ee44bea0a71ffe95f6bfee59df6a62c
|
|
| MD5 |
719bd8046d8d87cb250d937e981922f0
|
|
| BLAKE2b-256 |
cc434e71fee459895380355dd50a13cecaa273cbe1a80cab478ae3b0b79275f7
|